國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷16(共255題)_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷16(共255題)_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷16(共255題)_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷16(共255題)_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷16(共255題)_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷16(共9套)(共255題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是()。A、算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度B、算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度C、算法的復(fù)雜度是指算法程序中指令的數(shù)量D、算法的復(fù)雜度是指算法所處理的數(shù)據(jù)量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法復(fù)雜度是指算法在編寫成可執(zhí)行程序后,運(yùn)行時(shí)所需要的資源,資源包括時(shí)間資源和內(nèi)存資源。算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度。算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間。2、下列排序方法中,最壞情況下比較次數(shù)最少的是A、冒泡排序B、簡(jiǎn)單選擇排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序、簡(jiǎn)單選擇排序和直接插入排序法在最壞的情況下比較次數(shù)為:n(n-1)/2。而堆排序法在最壞的情況下需要比較的次數(shù)為O(nlog2n)。其中堆排序的比較次數(shù)最少。3、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹D、帶鏈棧標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:樹是簡(jiǎn)單的非線性結(jié)構(gòu),所以二叉樹作為樹的一種,也是一種非線性結(jié)構(gòu)。4、數(shù)據(jù)庫(kù)中對(duì)概念模式內(nèi)容進(jìn)行說(shuō)明的語(yǔ)言是()。A、數(shù)據(jù)控制語(yǔ)言B、數(shù)據(jù)操縱語(yǔ)言C、數(shù)據(jù)定義語(yǔ)言D、數(shù)據(jù)并發(fā)語(yǔ)言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:概念模式主要描述數(shù)據(jù)的概念記錄類型以及它們間的關(guān)系,它還包括一些數(shù)據(jù)間的語(yǔ)義約束,對(duì)它的描述可用DDL語(yǔ)言(數(shù)據(jù)定義語(yǔ)言)定義。5、定義學(xué)生、教師和課程的關(guān)系模式S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學(xué)號(hào)、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號(hào)、課程名、先修課);SC(S#,C#,G)(其屬性分別為學(xué)號(hào)、課程號(hào)和成績(jī)),則該關(guān)系為()。A、第一范式B、第二范式C、第三范式D、BCNF范式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題中關(guān)系s中的“學(xué)號(hào)”列可決定“所在系”列,“所在系”列又可決定“所在系的系主任”,存在傳遞函數(shù)依賴,不滿足第三范式。6、下面屬于白盒測(cè)試方法的是()。A、等價(jià)類劃分法B、邏輯覆蓋C、邊界值分析法D、錯(cuò)誤推測(cè)法標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試等,所以答案選B。7、若函數(shù)調(diào)用時(shí)的實(shí)參為變量,下列關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元B、形參只是形式上的存在,不占用具體存儲(chǔ)單元C、同名的實(shí)參和形參占同一存儲(chǔ)單元D、函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題重點(diǎn)考查的是函數(shù)的形參和實(shí)參。在定義函數(shù)時(shí),函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡(jiǎn)稱形參),在主調(diào)函數(shù)中調(diào)用一個(gè)函數(shù)時(shí),函數(shù)名后面括弧中的參數(shù)(可以是一個(gè)表達(dá)式)稱為“實(shí)際參數(shù)”(簡(jiǎn)稱實(shí)參)。C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元,因此A選項(xiàng)正確。8、有以下程序#includevoidmain(){charb,c;inti;b=’a’;c=’A’;for(i=0:i<6.i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、ABCDEFB、aBcDeFC、abcdefD、AbCdEf標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)變量i從0依次遞增到5,依次輸出字母A,b,C,d,E,f。9、C語(yǔ)言中的標(biāo)識(shí)符分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符,以下敘述正確的是A、關(guān)鍵字可用作用戶標(biāo)識(shí)符,但失去原有含義B、在標(biāo)識(shí)符中大寫字母和小寫字母被認(rèn)為是相同的字符C、用戶標(biāo)識(shí)符可以由字母和數(shù)字任意順序組成D、預(yù)定義標(biāo)識(shí)符可用作用戶標(biāo)識(shí)符,但失去原有含義標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:預(yù)定義標(biāo)識(shí)符是C語(yǔ)言中的標(biāo)識(shí)符,在C語(yǔ)言中也有特定的含義,如函數(shù)prinff、scanf、sin等和編譯預(yù)處理命令名(如define和include)。預(yù)定義標(biāo)識(shí)符可以作為用戶標(biāo)識(shí)符使用,只是這樣會(huì)失去系統(tǒng)規(guī)定的原義。10、若intk,則關(guān)于for(k=一l;k<0;k++)printf(’’****\n’’);語(yǔ)句執(zhí)行情況的敘述中正確的是()。A、循環(huán)體不執(zhí)行B、循環(huán)體執(zhí)行一次C、循環(huán)體執(zhí)行二次D、構(gòu)成無(wú)限循環(huán)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查for循環(huán)的使用。在程序中,for循環(huán)的初始值k=-1,循環(huán)結(jié)束條件是k<0,每次循環(huán)k增加1,第一次進(jìn)入循環(huán)的時(shí)候k為一1,k小于0,執(zhí)行打印,然后k的值變成0,下次進(jìn)入循環(huán)k不小于0,循環(huán)結(jié)束,因此循環(huán)只能執(zhí)行一次。11、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過(guò)公共域的相等值進(jìn)行連接。通過(guò)觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。12、有以下程序#includevoidmain(){chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++)if(S[i]>=’0’&&S[i]<=’9’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、7C、3D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中的for循環(huán)語(yǔ)句中,當(dāng)s[i]的值不等于0~9之間的數(shù)字時(shí),結(jié)束循環(huán)語(yǔ)句的執(zhí)行。由字符數(shù)組s的初值可以得到for循環(huán)語(yǔ)句執(zhí)行了三次,所以變量n的值等于3。13、設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為()。A、0B、’\0’C、非0值D、NULL標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查文件的定位。feof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),eof函數(shù)值為非零值,否則為0,所以C選項(xiàng)正確。14、下面屬于系統(tǒng)軟件的是A、瀏覽器B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、人事管理系統(tǒng)D、天氣預(yù)報(bào)的app標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:系統(tǒng)軟件是指控制和協(xié)調(diào)計(jì)算機(jī)及外部設(shè)備,支持應(yīng)用軟件開發(fā)和運(yùn)行的系統(tǒng),是無(wú)需用戶干預(yù)的各種程序的集合,主要功能是調(diào)度,監(jiān)控和維護(hù)計(jì)算機(jī)系統(tǒng);負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)中各種獨(dú)立的硬件,使得它們可以協(xié)調(diào)工作。有代表性的系統(tǒng)軟件有:操作系統(tǒng)、語(yǔ)言處理程序、數(shù)據(jù)庫(kù)管理和輔助程序。15、C語(yǔ)言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中char類型數(shù)據(jù)占字節(jié)數(shù)為1個(gè)字節(jié),這個(gè)值可以用sizeof(char)求得。答案選A。16、以下敘述中正確的是A、在包含文件中,不得再包含其他文件B、#include命令行不能出現(xiàn)在程序文件的中間C、在一個(gè)程序中,允許使用任意數(shù)量的#include命令行D、雖然包含文件被修改了,包含該文件的源程序也可以不重新進(jìn)行編譯和連接標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:#include文件包含命令,使用時(shí)應(yīng)注意以下5個(gè)規(guī)則:①包含文件的#include命令行通常應(yīng)書寫在所用源程序文件的開頭,故有時(shí)也把包含文件稱作“頭文件”。頭文件名可以由用戶指定,其后綴不一定用“.h”。②包含文件中,一般包含有一些公用的。#define命令行、外部說(shuō)明或?qū)?庫(kù))函數(shù)的原型說(shuō)明。⑧當(dāng)包含文件修改后,對(duì)包含該文件的源程序必須重新進(jìn)行編譯連接。④在一個(gè)程序中,允許有任意多個(gè)#include命令行。⑤在包含文件中還可以包含其他文件。17、有三個(gè)關(guān)系R,S和T如下圖所示:其中關(guān)系T由關(guān)系R和S通過(guò)運(yùn)算得到,則該運(yùn)算是A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由關(guān)系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由關(guān)系R和S的數(shù)據(jù)組成。所以關(guān)系T是由關(guān)系R和T通過(guò)并運(yùn)算得到的。18、有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("%d",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是A、2344B、4332C、1234D、1123標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組c的4個(gè)元素的值分別為4、3、3、2。因此B選項(xiàng)正確。19、以下正確的字符串常量是()。標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符串常量是由兩個(gè)雙引號(hào)引起來(lái)的若干字符所構(gòu)成的字符序列,而且?\\\?不是C語(yǔ)言合法字符,所以"\\\"也不是合法的字符串常量,答案選A。20、有以下程序,己知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是main(){charc1,c2;c1=’A’+’8’-’4’:c2=’A’+’8’一’5’;printf("%c,%\n",c1,c2);}A、D,69B、E,68C、E,DD、輸出無(wú)定值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符變量c1的AsCII值等于69,而字符變量c2的AsCII值等于68,當(dāng)分別以字符和整型輸出c1和c2的ASCII碼值時(shí),其結(jié)果為E,68。21、以下敘述中正確的是A、continue語(yǔ)句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)B、break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)C、在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同D、break語(yǔ)句只能用于switch語(yǔ)句體中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句。continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,立刻進(jìn)行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。而break語(yǔ)句可以使程序流程跳出switch語(yǔ)句體,也可用break語(yǔ)句在循環(huán)結(jié)構(gòu)中終止循環(huán)體。22、下列條件語(yǔ)句中,輸出結(jié)果與其他語(yǔ)句不同的是A、if(a==0)printf("%d\n",x);elseprintf("%d\n",y);B、if(a==0)printf("%d\n",y);elseprintff"%d\n",x);C、if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);D、if(a)printf("%d\n",x);elseprintf("%d\n",y);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B)、C)、D)這三條語(yǔ)句都是在變量不等于0的情況下,輸出x;等于0的情況下輸出y,而選項(xiàng)A)則正好相反。23、有以下程序段structst{intx;int*y;)*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項(xiàng)中表達(dá)式的值為11的是A、pt->xB、*pt->yC、++pt->xD、(pt++)->x標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由題目的已知條件可知,pt指向結(jié)構(gòu)體數(shù)組c[2]的第一元素c[0],所以pt->x=10,執(zhí)行自加運(yùn)算后為11。24、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intx=35,B;charz=’B’;B=((x)&&(z<’b’));printf("%d\n",B);}A、0B、35C、1D、66標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式((x)&&(z<’b’)),x為35非零,考慮表達(dá)式z<’b’,成立,則B的值為1。25、以下敘述中正確的是A、函數(shù)的返回值不能是結(jié)構(gòu)體類型B、函數(shù)的返回值不能是結(jié)構(gòu)體指針類型C、在調(diào)用函數(shù)時(shí),可以將結(jié)構(gòu)體變量作為實(shí)參傳給函數(shù)D、結(jié)構(gòu)體數(shù)組不能作為參數(shù)傳給函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:和普通變量相似,結(jié)構(gòu)體變量也可以作為函數(shù)實(shí)參或者形參,函數(shù)的返回值也可以是結(jié)構(gòu)體類型。26、若有以下程序#includeintk=7,m=5;voidf(int**s){int*t=&k;s=&t;*s=&m;printf("%d,%d,%d,",k,*t,**s);}main(){inti=3,*p=&i,**r=&p;f(r);printf("%d,%d,%d\n",i,*p,**r);}則程序的輸出結(jié)果是A、7,5,7,3,3,3,B、7,5,7,3,5,7,C、7,5,5,3,3,3,D、7,7,5,3,3,3,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查二級(jí)指針作為函數(shù)的參數(shù),可以通過(guò)函數(shù)調(diào)用來(lái)改變主函數(shù)中一級(jí)指針的指向。主函數(shù)中指針變量p指向i,r指向p,調(diào)用f函數(shù),形參指針s指向p,流程轉(zhuǎn)到f函數(shù)執(zhí)行,指針變量t指向k,s指向t,此時(shí)更改了s的指向,s指向了t,更改了s指向的地址空間內(nèi)容為m的地址,同時(shí)t也指向變量m,因此**s的值為m的值,*t為m的值,k為7。流程返回到主函數(shù),沒(méi)有對(duì)主函數(shù)空間的數(shù)據(jù)和指向作出更改,因此全部為3。27、有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s++;t=t一2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是A、任意正奇數(shù)B、任意負(fù)偶數(shù)C、任意正偶數(shù)D、任意負(fù)奇數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查基本輸入和循環(huán)。程序代碼的功能是通過(guò)scanf給變量n賦值,在do…while循環(huán)中,s變量自增,t變量每次減2,t的初值為1,循環(huán)執(zhí)行執(zhí)行一次后t的值變成.1,然后是-3、-5…,直到t的值和n的值相同循環(huán)結(jié)束。從t的值的變化可知,t是一個(gè)變化的負(fù)奇數(shù),因此輸入的n如果是負(fù)奇數(shù),則循環(huán)能退出,否則是死循環(huán)。28、程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量S、P、q均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量S總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。若有以下程序段:q=s;S=S->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實(shí)現(xiàn)的功能是A、尾結(jié)點(diǎn)成為首結(jié)點(diǎn)B、首結(jié)點(diǎn)成為尾結(jié)點(diǎn)C、刪除首結(jié)點(diǎn)D、刪除尾結(jié)點(diǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:分析程序可知,程序段首先讓q指向鏈表的首結(jié)點(diǎn),s指向鏈表的第二結(jié)點(diǎn),p此時(shí)指向鏈表的第二個(gè)結(jié)點(diǎn)。然后在while循環(huán)中,當(dāng)p的后繼結(jié)點(diǎn)非空時(shí),讓p指向鏈表的最后一個(gè)結(jié)點(diǎn),退出循環(huán)。然后讓尾結(jié)點(diǎn)指向首結(jié)點(diǎn),并使首結(jié)點(diǎn)的后繼結(jié)點(diǎn)為NULL。所以最終實(shí)現(xiàn)鏈表的首結(jié)點(diǎn)成為尾結(jié)點(diǎn)。29、若有以下語(yǔ)句typedefstructS{intg;charh;}T;以下敘述中正確的是A、可用S定義結(jié)構(gòu)體變量B、S是struct類型的變量C、T是structS類型的變量D、可用T定義結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查typedef,T是structS的新名稱,因此可用T定義結(jié)構(gòu)體變量,但是T并不是變量,只是scructS的新名稱。30、有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%dt",--y);}程序的運(yùn)行結(jié)果是A、963B、852C、741D、875421標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:y的值的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),if語(yǔ)句的條件成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式一y的值。因?yàn)樽詼p符號(hào)在y的前面,所以首先y的自減1,然后再輸出y的值,故輸出結(jié)果為852。31、有以下程序intf(intm)main(){intn=0;{staticintn=0;printf("%d,",f(++n));n+=m;returnn;}printf("%d\n",f(n++));}程序運(yùn)行后的輸出結(jié)果是A、1,1B、1,2C、2,3D、3,3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于在函數(shù)f中,變量n為靜態(tài)局部變量,所以在主函數(shù)中第一次調(diào)用函數(shù)f后,變量n的值等于1,當(dāng)?shù)诙{(diào)用函數(shù)f時(shí),在函數(shù)f的內(nèi)部靜態(tài)局部變量n的值仍然保留等于1,所以返回函數(shù)值等于2。32、有以下程序#include#includevoidfun(char*s){chara[10];strcpy(a,"STRING");s=a;}main(){char*p="PROGRAM";fun(p);printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是(此處□代表空格)A、STRINGB、STRING□□□□C、STRING□□□D、PROGRAM標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查字符串指針作為函數(shù)參數(shù),本題中p作為字符串指針傳入fun中,p指向的內(nèi)容并沒(méi)有發(fā)生變化,所以選項(xiàng)D正確。33、有以下程序,程序運(yùn)行后的輸出結(jié)果是#include#defineSUB(X,Y)(X+1)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));)A、20B、12C、16D、25標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:宏展開的結(jié)果(a+++1)*b++,后綴自加表達(dá)式參加運(yùn)算,先用a和b的初值得到表達(dá)式的值,進(jìn)行計(jì)算,然后a和b在自加。因此計(jì)算結(jié)果為16。34、下列關(guān)于棧的敘述正確的是()。A、棧按“先進(jìn)先出”組織數(shù)據(jù)B、棧按“先進(jìn)后出”組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按“先進(jìn)后出”的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進(jìn)行操作。35、下面關(guān)于位運(yùn)算符的敘述,正確的是A、#表示“按位異或”的運(yùn)算B、||表示“按位或”的運(yùn)算C、~表示“按位異或”的運(yùn)算D、&表示“按位與”的運(yùn)算標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言提供了6種位運(yùn)算符,各種位運(yùn)算符的含義見下表:各種位運(yùn)算符及其含義36、若有以下程序#includemain(){inta=0,b=0,c=0c=(a+=++b,b+=4);printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,5,1B、1,5,5C、-1,4,4D、-1,4,-1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:逗號(hào)運(yùn)算符的結(jié)合性從左到右,因此逗號(hào)表達(dá)式將從左到右進(jìn)行計(jì)算。且逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。先計(jì)算a+=++b,結(jié)果a為1,b為1,然后計(jì)算b+=4,b的值為5。逗號(hào)表達(dá)式的值為其中最后一個(gè)表達(dá)式的值,所以將5賦給變量c,即a為1,b為5,c為5。所以選擇B。37、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、可行性分析報(bào)告B、軟件需求規(guī)格說(shuō)明書C、概要設(shè)計(jì)說(shuō)明書D、集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A)錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C錯(cuò)誤,概要設(shè)計(jì)說(shuō)明書是總體設(shè)計(jì)階段產(chǎn)生的文檔。D錯(cuò)誤,集成測(cè)試計(jì)劃是在概要設(shè)計(jì)階段編寫的文檔。B正確,需求規(guī)格說(shuō)明書是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。38、以下敘述中錯(cuò)誤的是()。A、可以給指針變量賦一個(gè)整數(shù)作為地址值B、函數(shù)可以返回地址值C、改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值D、當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:不能將一個(gè)整數(shù)直接賦給指針變量作為地址,所以A是錯(cuò)誤的。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會(huì)傳遞給實(shí)參。39、下列敘述中正確的是()。A、順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B、順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)C、順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)既可以針對(duì)線性結(jié)構(gòu)也可以針對(duì)非線性結(jié)構(gòu),所以B與C錯(cuò)誤。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以D錯(cuò)誤。40、下列排序方法中,最壞情況下比較次數(shù)最少的是()。A、冒泡排序B、簡(jiǎn)單選擇排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序與簡(jiǎn)單插入排序與簡(jiǎn)單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlo2g國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、設(shè)計(jì)算法時(shí)要考慮時(shí)間復(fù)雜度和空間復(fù)雜度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法復(fù)雜度,即算法在編寫成可執(zhí)行程序后,運(yùn)行時(shí)所需要的資源,資源包括時(shí)間資源和內(nèi)存資源。算法分析的目的在于選擇合適算法和改進(jìn)算法。一個(gè)算法的評(píng)價(jià)主要從時(shí)間復(fù)雜度和空間復(fù)雜度來(lái)考慮。2、下列敘述中正確的是A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查了棧、隊(duì)列、循環(huán)隊(duì)列的概念,棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),又可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。3、在面向?qū)ο蠓椒ㄖ校粚儆凇皩?duì)象”基本特點(diǎn)的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象有如下一些基本特點(diǎn):標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好,所以選擇A選項(xiàng)。4、下面描述中不屬于軟件需求分析階段任務(wù)的是()。A、撰寫軟件需求規(guī)格說(shuō)明書B、軟件的總體結(jié)構(gòu)設(shè)計(jì)C、軟件的需求分析D、軟件的需求評(píng)審標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說(shuō)明書和需求評(píng)審。軟件的總體結(jié)構(gòu)設(shè)計(jì)屬于軟件設(shè)計(jì)階段的任務(wù)。5、設(shè)一棵樹的度為3,其中沒(méi)有度為2的結(jié)點(diǎn),且葉子結(jié)點(diǎn)數(shù)為5。該樹中度為3的結(jié)點(diǎn)數(shù)為A、1B、2C、3D、不可能有這樣的樹標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:樹的度是指一棵樹中,最大的結(jié)點(diǎn)的度稱為樹的度。本題中樹的度為3,那么樹中最少有一個(gè)結(jié)點(diǎn)的度為3。而樹中沒(méi)有度為2的結(jié)點(diǎn),葉子結(jié)點(diǎn)數(shù)為5,度為1的結(jié)點(diǎn)下面只有一個(gè)葉子結(jié)點(diǎn)。因此,該樹中含2個(gè)度為3的結(jié)點(diǎn)滿足題目要求。6、若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是A、x=n%2.5:B、x+n=i;C、x=5=4+1;D、x=y==5;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)D的含義是把關(guān)系表達(dá)式y(tǒng)==5的值賦給變量x。所以這是一條正確的賦值語(yǔ)句。因?yàn)橘x值運(yùn)算符左側(cè)的操作數(shù)必須是一個(gè)變量,而不能是表達(dá)式或者常量。因?yàn)榍笥噙\(yùn)算符“%”兩側(cè)的運(yùn)算對(duì)象都應(yīng)當(dāng)是整型數(shù)據(jù)。7、若在定義語(yǔ)句:inta,b,c,*p=&c;接著執(zhí)行以下選項(xiàng)中的語(yǔ)句,則能正確執(zhí)行的語(yǔ)句是A、scanf(’’%d%d%dtt,a,b,c);B、scanf(’’%dt.,a,b,c);C、scanf(’’%d’’,p);D、scanf(’’%d’’,&p);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序語(yǔ)句inta,b,c,*p=&c;定義了三個(gè)整型變量a,b,c,和一個(gè)整型指針變量p,并且把變量c的地址賦給p。scanf函數(shù)的一般形式為”scanf(“格式控制字符串”,地址列表)”,其中的地址列表應(yīng)當(dāng)是存放輸入數(shù)據(jù)變量的地址。8、合法的C語(yǔ)言常量是()。A、-20.B、-020C、-2el.0D、-20.0e標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言常量指數(shù)表達(dá)式中字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。9、若變量已正確定義為int型,要通過(guò)語(yǔ)句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯(cuò)誤的是(注:□代表一個(gè)空格符)()。A、1,2,3<回車>B、□□□1,2,3<回車>C、1,□□□2,□□□3<回車>D、1□2□3<回車>標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時(shí),輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個(gè)數(shù)不限。scanf()的格式控制串也可以使用其他非空白字符,如本題中的逗號(hào),但在輸入時(shí)必須輸入這些字符,以保證匹配,所以逗號(hào)必須輸入。10、軟件調(diào)試的目的是A、發(fā)現(xiàn)錯(cuò)誤B、改正錯(cuò)誤C、改善軟件的性能D、驗(yàn)讓軟件的正確性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試活動(dòng)由兩部分組成,一是根據(jù)錯(cuò)誤的跡象確定程序中的錯(cuò)誤的確切性質(zhì)、原因和位置。二是對(duì)程序進(jìn)行修改,排除這個(gè)錯(cuò)誤。11、有以下程序:#include<stdio.h>main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf("%d",t[2-i][i]);}程序的運(yùn)行結(jié)果是()。A、357B、753C、369D、751標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二維數(shù)組t[][3]實(shí)際上指t[3][3]={{9,8,7},{6,5,4},{3,2,1}},通過(guò)循環(huán)語(yǔ)句for語(yǔ)句可以得到i=0,t[2][0]=3、i=1,t[1][1]=5、i=2,t[0][2]=7、i=3時(shí)循環(huán)結(jié)束,即t[2][0]=3、t[1][1]=5、t[0][2]=7,因此A選項(xiàng)正確。12、某系統(tǒng)結(jié)構(gòu)圖如下圖所示,則該結(jié)構(gòu)圖的深度是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:樹中結(jié)點(diǎn)的層次從根開始定義起,根為第一層,根的孩子為第二層,依次累計(jì)。樹中結(jié)點(diǎn)的最大層次稱為樹的深度。所以由題目中系統(tǒng)結(jié)構(gòu)圖,得到該樹的深度為3,因此應(yīng)選C選項(xiàng)。13、軟件設(shè)計(jì)一般劃分為兩個(gè)階段,兩個(gè)階段依次是A、總體設(shè)計(jì)(概要設(shè)計(jì))和詳細(xì)設(shè)計(jì)B、算法設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)C、界面設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì)D、數(shù)據(jù)設(shè)計(jì)和接口設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。概要設(shè)計(jì)就是結(jié)構(gòu)設(shè)計(jì),其主要目標(biāo)就是給出軟件的模塊結(jié)構(gòu),用軟件結(jié)構(gòu)圖表示。詳細(xì)設(shè)計(jì)的首要任務(wù)就是設(shè)計(jì)模塊的程序流程、算法和數(shù)據(jù)結(jié)構(gòu),次要任務(wù)就是設(shè)計(jì)數(shù)據(jù)庫(kù),常用方法還是結(jié)構(gòu)化程序設(shè)計(jì)方法。所以選項(xiàng)A正確。14、不合法的數(shù)組定義是()。A、inta[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};B、inta[][3]={{0},{1},{1,2,3}};C、inta[][3]={1,2,3,4};D、inta[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二維數(shù)組定義和初始化是允許省略行下標(biāo),不允許省略列下標(biāo),因此inta[4][]的定義有誤。15、以下程序的輸出結(jié)果是()。voidfun(intn,int*s){intf;if(n==1)*s=n+1;else{fun(n一1,&f);*s=f;}}main(){intx=0;fun(4,&x);printf(’’%d\n’’,x);}A、4B、3C、1D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目中函數(shù)fun為遞歸調(diào)用函數(shù),如果n的值為1,那么后面形參指向的空間存放n+1,否則繼續(xù)計(jì)算fun(n一1)的值。調(diào)用分析過(guò)程:fun(4,&x)→fun(3,&x)→fun(2,&x)→fun(1,&x)在回歸的過(guò)程中,對(duì)于x內(nèi)的數(shù)據(jù)并沒(méi)有改動(dòng)。16、若有以下程序段charstr[4][12]={’’aa’’,’’bbb’’,’’ccccc’’,’’d’’),*strp[4];inti;for(i=0;i<4;i++)strp[i]=str[i];不能正確引用字符串的選項(xiàng)是A、strpB、str[0]C、strp[3]D、*strp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序段中定義指針數(shù)組*strp,含有4個(gè)元素,for循環(huán)strp分別保存了二維數(shù)組str中的4個(gè)字符串的首地址,因此strl)為二級(jí)地址,不能保存字符串的首地址*strp或者strp[0]中存放了字符串”aa”的首地址。所以不能正確引用字符串的為選項(xiàng)A。17、程序中對(duì)fun函數(shù)有如下說(shuō)明voidfun();此說(shuō)明的含義是A、fun函數(shù)無(wú)返回值B、fun函數(shù)的返同值可以是任意的數(shù)據(jù)類型C、fun函數(shù)的返回值是無(wú)值型的指針類型D、指針fun指向一個(gè)函數(shù),該函數(shù)無(wú)返回值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考察函數(shù)的聲明,voidfun()表示fun函數(shù)沒(méi)有輸入?yún)?shù),函數(shù)返回void表示函數(shù)無(wú)返回值。18、以下關(guān)于函數(shù)的敘述中正確的是A、每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個(gè)函數(shù)都可以被單獨(dú)編譯C、每個(gè)函數(shù)都可以單獨(dú)運(yùn)行D、在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查函數(shù)的定義和使用。選項(xiàng)A)錯(cuò)誤,main函數(shù)可以調(diào)用其他函數(shù),但是其他函數(shù)不能調(diào)用main函數(shù);選項(xiàng)B)正確;選項(xiàng)C)錯(cuò)誤,只有main函數(shù)可以單獨(dú)運(yùn)行,其他函數(shù)只能被調(diào)用;選項(xiàng)D)錯(cuò)誤,C語(yǔ)言中不能在函數(shù)內(nèi)部定義函數(shù)。19、有以下程序#includecharfun(char*c){if(*c<=’Z’&&*c>=’A’)*c-=’A’-’a’;return*c;}main(){chars[81],*p=s;gets(s);while(*p){*p=fun(p);putchar(*p);p++;}printf("\n");}若運(yùn)行時(shí)從鍵盤上輸入OPENTHEDOOR<回車>,程序的輸出結(jié)果是()。A、openthedoorB、oPENtHEdOORC、OPENTHEDOORD、OpenTheDoor標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查地址傳參。函數(shù)fun()的作用是將字符c由大寫轉(zhuǎn)為小寫,地址傳參中,形參的改變和實(shí)參的改變保持同步,所以本程序?qū)⑤斎氲淖址D(zhuǎn)為對(duì)應(yīng)的小寫形式:openthedoor,答案選A。20、下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是A、不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串B、可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組C、字符數(shù)組中的內(nèi)容不一定是字符串D、字符數(shù)組只能存放字符串標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查字符數(shù)組。選項(xiàng)A、B和C都是正確的,字符數(shù)組存放其他數(shù)據(jù)。21、若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是A、形參只是形式上的存在,不占用具體存儲(chǔ)單元B、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元C、同名的實(shí)參和形參占同一存儲(chǔ)單元D、函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,函數(shù)的實(shí)參單元與形參單元在內(nèi)存中分配不同的存儲(chǔ)單元。在調(diào)用函數(shù)時(shí),給形參分配臨時(shí)存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,在被調(diào)用函數(shù)中對(duì)形參存儲(chǔ)單元中的值進(jìn)行運(yùn)算,最后通過(guò)return語(yǔ)句把函數(shù)值返回調(diào)用函數(shù)。當(dāng)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。22、若有定義:intw[3][5];則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A、*(w+1)[4]B、*(*w+3)C、*(*(w+1))D、*(&w[0][0]+1)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:若要訪問(wèn)第二行第五列的元素需要用(*(w+1))[4],選項(xiàng)A)少了一個(gè)圓括號(hào),如果不加圓括號(hào),根據(jù)結(jié)合性,(w+1)會(huì)先和[4]結(jié)合,這是沒(méi)有意義的,所以答案選A)。23、若有以下程序typedefstructstu{charname[10],gender;intscore;}STU;voidf(STUa,STUb){b=a;printf("%s,%c,%d,",b.name,b.gender,b.score);}main(){STUa={"Zhao",’m’,290},b={"Qian",’f’,350};f(a,b);printf("%s,%c,%d\n",b.name,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Zhao,m,290B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,f,350標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)f(STUa,STUb)的主要功能是為把結(jié)構(gòu)體變量a的值存放到b中,然后輸出b中各個(gè)成員的值。主函數(shù)中調(diào)用函數(shù)f(a,b),輸出賦值以后b的數(shù)據(jù),實(shí)際為a{"Zhao",’m’,290}的數(shù)據(jù),函數(shù)調(diào)用結(jié)束,形參a和b撤銷,流程到主函數(shù)輸出b{"Qian",’f’,350}的數(shù)據(jù)。24、以下敘述中錯(cuò)誤的是()。A、函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡(jiǎn)單類型B、只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值C、可以通過(guò)指針變量來(lái)訪問(wèn)結(jié)構(gòu)體變量的任何成員D、函數(shù)可以返回指向結(jié)構(gòu)體變量的指針標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)的返回值類型可以為C語(yǔ)言中任意合法的數(shù)據(jù)結(jié)構(gòu),不僅可以為簡(jiǎn)單的數(shù)據(jù)類型,也可以為復(fù)雜的構(gòu)造類型和指針類型,選項(xiàng)A)描述錯(cuò)誤,答案選A)。25、以下敘述中正確的是A、如果p是指針變量,則&p是不合法的表達(dá)式B、如果p是指針變量,則*p表示變量p的地址值C、在對(duì)指針進(jìn)行加、減算術(shù)運(yùn)算時(shí),數(shù)字1表示1個(gè)存儲(chǔ)單元的長(zhǎng)度D、如果p是指針變量,則*p+1和*(p+1)的效果是一樣的標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:B選項(xiàng)中,如果p是指針變量,則*p表示變量p所指向的地址的值;A選項(xiàng)中,如果p是指針變量,則&p表示變量p的地址;D選項(xiàng)中,如果p是指針變量,*p+1表示將p所指的值加上1,而*(p+1)表示的是先將指針右移一位再取所指向變量的值。因此C選項(xiàng)正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、對(duì)于循環(huán)隊(duì)列,下列敘述中止確的是A、隊(duì)頭指針是同定不變的B、隊(duì)頭指鈄一定大于隊(duì)尾指針C、隊(duì)頭指針一定小于隊(duì)尾指針D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置。循環(huán)隊(duì)列的主要操作是:入隊(duì)運(yùn)算和退隊(duì)運(yùn)算。每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就進(jìn)一。每進(jìn)行一次退隊(duì)運(yùn)算,隊(duì)頭指針就進(jìn)一。當(dāng)rear或front等于隊(duì)列的長(zhǎng)度加1時(shí),就把rear或front值置為1。所以在循環(huán)隊(duì)列中,隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針。2、下列程序的運(yùn)行結(jié)果是()。#includevoidfun(int*s,int*p){staticintt=3;*P=s[t];t--;}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素“逆置”賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。3、線性表的長(zhǎng)度為n。在最壞情況下,比較次數(shù)為n-1的算法是()。A、順序查找B、同時(shí)尋找最大項(xiàng)與最小項(xiàng)C、尋找最大項(xiàng)D、有序表的插入標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:順序查找要逐個(gè)查看所有元素,會(huì)比較n次。在最壞情況下,尋找最大項(xiàng)無(wú)論如何需要查看表中的所有元素,n個(gè)元素比較次數(shù)為n-1。同時(shí)尋找最大項(xiàng)和最小項(xiàng),需要為判斷較大值和較小值分別進(jìn)行比較,會(huì)有更多的比較次數(shù)。有序表的插入最壞情況下是插入到表中的最后一個(gè)元素的后面位置,則會(huì)比較n次。4、下列序列中不滿足堆條件的是()。A、(98,95,93,94,89,90,76,80,55,49)B、(98,95,93,94,89,85,76,64,55,49)C、(98,95,93,94,89,90,76,64,55,49)D、(98,95,93,96,89,85,76,64,55,49)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)堆的定義,n個(gè)元素的序列(h1,h2,…h(huán)n),當(dāng)且僅當(dāng)hi≤h2i;且hi≤h2i+1時(shí)為小頂堆,當(dāng)且僅當(dāng)hi≥h2i且hi≥h2i+1時(shí)為大頂堆。D項(xiàng)中,h2=95,h4=96,h2<h4,但h5=89,h2>h5,不滿足小頂堆和大頂堆條件。5、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是()。A、1,2,3,A,B,CB、C,B,A,1,2,3C、C,B,A,3,2,1D、1,2,3,C,B,A標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧的修改是按“后進(jìn)先出”的原則進(jìn)行的,所以順序應(yīng)與入棧順序相反,故C選項(xiàng)正確。6、設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則此二叉樹中的葉子結(jié)點(diǎn)數(shù)為A、85B、120C、250D、350標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:①具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為[long2n]+1,計(jì)算出該完全二叉樹的深度為10。②設(shè)度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))為n0,度為1的結(jié)點(diǎn)為n1,度為2的結(jié)點(diǎn)為n2,總結(jié)點(diǎn)數(shù)為n。深度為k。n=n1+n2+n0,由于n0=n2+1則n2=n0-1,故n=n1+n0-1+n0=n1+2n0-1。由于完全二叉樹中度為1的結(jié)點(diǎn)數(shù)只有兩種可能:0或1。⑨假設(shè)度為1的結(jié)點(diǎn)數(shù)為0即滿二叉樹,根據(jù)滿二叉樹的定義,其2m-1個(gè)結(jié)點(diǎn),根據(jù)以上計(jì)算所得的深度10來(lái)計(jì)算,應(yīng)有210-1=1024-1=1023個(gè)結(jié)點(diǎn),顯然與題目中700個(gè)結(jié)點(diǎn)不符。因此,度為1的結(jié)點(diǎn)數(shù)必然為1。故n=n1+2n0-1=1+2n0-1=2n0,則n0=n/2=700/2=350。7、T列數(shù)據(jù)結(jié)構(gòu)中,不能采用順序存儲(chǔ)結(jié)構(gòu)的是A、棧B、堆C、隊(duì)列D、非完全二叉樹標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:堆中某個(gè)結(jié)點(diǎn)的值總是不大于或不小于其父結(jié)點(diǎn)的值、堆總是一棵完全二叉樹,可以以順序存儲(chǔ)結(jié)構(gòu)存儲(chǔ);隊(duì)列的存儲(chǔ)結(jié)構(gòu)分為鏈?zhǔn)酱鎯?chǔ)、順序存儲(chǔ)兩種;棧作為一種數(shù)據(jù)結(jié)構(gòu),是一種只能在一端進(jìn)行插入和刪除操作的特殊線性表,可以以順序存儲(chǔ)結(jié)構(gòu)存儲(chǔ)。8、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標(biāo)有名字的箭頭表示控制流。所以選擇C。9、在面向?qū)ο蠓椒ㄖ?,不屬于“?duì)象”基本特點(diǎn)的是A、一致性B、分類性C、多態(tài)性D、標(biāo)識(shí)惟一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象具有如下特征:標(biāo)識(shí)惟一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性。10、下面不屬于軟件需求分析階段主要工作的是A、需求變更申請(qǐng)B、需求分析C、需求評(píng)審D、需求獲取標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在軟件開發(fā)的過(guò)程中,應(yīng)該盡早的制定測(cè)試計(jì)劃,其中在需求分析階段制定系統(tǒng)測(cè)試計(jì)劃,在概要設(shè)計(jì)階段制定集成測(cè)試計(jì)劃,在詳細(xì)設(shè)計(jì)階段制定單元測(cè)試計(jì)劃。11、數(shù)據(jù)流程圖(DFD圖)是A、軟件概要設(shè)計(jì)的工具B、軟件詳細(xì)設(shè)計(jì)的工具C、結(jié)構(gòu)化方法的需求分析工具D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ邩?biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:DFD(數(shù)據(jù)流圖Data-Flow-Diagram)是描述數(shù)據(jù)處理過(guò)程的工具,是需求理解的邏輯模型的圖形表示。它直接支持系統(tǒng)功能建模。在軟件詳細(xì)設(shè)計(jì)的過(guò)程階段,要對(duì)每個(gè)模塊規(guī)定的功能以及算法的設(shè)計(jì)給出適當(dāng)?shù)乃惴枋觥?2、有以下程序#includeintflintx){inty;if[x==0‖x==1)retulm(3);y=x*x-f(x-2);returny;}main(){intz:z=f(3);printf("%d\n",z);}程序的運(yùn)行結(jié)果是A、9B、0C、6D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)調(diào)用墳)函數(shù),將實(shí)參3傳遞給x,進(jìn)行if條件語(yǔ)句的判斷不成立,接著執(zhí)行y=3*3-f(1),再執(zhí)行f(1),而f(1)滿足if條件語(yǔ)句,所以f(1)的值為3,代入y=3*3一f(1)=9—3=6。13、下列敘述中錯(cuò)誤的是()。A、可以給指針變量賦一個(gè)整數(shù)作為地址值B、函數(shù)可以返回地址值C、改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值D、當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:不能將一個(gè)整數(shù)直接賦給指針變量作為地址,所以A選項(xiàng)是錯(cuò)誤的。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會(huì)傳遞給實(shí)參。14、若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A、形參只是形式上的存在,不占用具體存儲(chǔ)單元B、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元C、同名的實(shí)參和形參占同一存儲(chǔ)單元D、函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,函數(shù)的實(shí)參單元與形參單元在內(nèi)存中分配不同的存儲(chǔ)單元。在調(diào)用函數(shù)時(shí),如果是值傳遞給形參分配臨時(shí)存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,在被調(diào)用函數(shù)中對(duì)形參存儲(chǔ)單元中的值進(jìn)行運(yùn)算,最后通過(guò)retum語(yǔ)句把函數(shù)值返回調(diào)用函數(shù)。當(dāng)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。15、以下選項(xiàng)中合法的變量是()。A、_10_B、5aC、A%D、sizeof標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符由字母(A~Z,a~z)、數(shù)字(0~9)或者下劃線(_)組成,并且第一個(gè)字符必須為字母或者下劃線。變量為用戶標(biāo)識(shí)符,命名方法需要遵循標(biāo)識(shí)符的命名規(guī)則,答案選A。16、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){chara=’H’;a=(a>=’A’&&a<=’Z’)?(a+32):a;printf("%c\n",A);}A、HB、AC、hD、a標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式a=(a>=’A’&&a<=’Z’)?(a+32):a,為條件表達(dá)式,如果a是大寫字符,則轉(zhuǎn)換為小寫字符存放到a中,否則不變。17、有以下程序voidfun(int*p,int*q){intt;t=*p;*p=*q;*q=t;*q==*p;}main(){inta=0,b=9;fun(&a,&b);Ptintf(”%d%d\n",a,b);}程序的輸出結(jié)果是A、00B、99C、90D、09標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù):fun的主要功能是交換p和q指向的地址空間的數(shù)據(jù),然后更改p的指向的地址空間數(shù)據(jù),使之和q指向的數(shù)據(jù)相同。主函數(shù)調(diào)用fun后,p指向a,q指向b,囚此a和b的數(shù)據(jù)全部為9。18、若有定義語(yǔ)句:inta=3,b=2,c=1;以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是A、a=b=c+1;B、a=(b=4)=3;C、a=(b=4)+c;D、a=1+(b=c=4);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查賦值表達(dá)式,對(duì)于賦值表達(dá)式來(lái)說(shuō),賦值號(hào)“=”的左邊一定為變量名,右邊為一個(gè)C語(yǔ)言合法的表達(dá)式。19、有以下程序#include<string.h>main(){charp[20]={’a’,’b’,’c’,’d’},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}程序運(yùn)行后的輸出結(jié)果是A、9B、11C、6D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串連接函數(shù)strcat(p,r)的功能是把字符數(shù)組p[]和r[]連接起來(lái),此時(shí)字符數(shù)組p[]的有效字符長(zhǎng)度為9,再執(zhí)行strcpy(p+strlen(q),q)字符串復(fù)制函數(shù),把字符數(shù)組q[]復(fù)制到字符數(shù)組p[]從p[3]開始到p[5]數(shù)組位置中,由于字符數(shù)組q[]中的內(nèi)容為字符串“abc”復(fù)制時(shí)把字符串結(jié)束標(biāo)志’\null’也復(fù)制到字符數(shù)組p[]中,這時(shí)字符函數(shù)strlen(p)返回字符數(shù)組p[]的有效字符長(zhǎng)度為6。20、以下程序的功能是:給r輸入數(shù)據(jù)后計(jì)算半徑為r的圓面積s。程序在編譯時(shí)出錯(cuò)main()/*Beginning*/{intr;floats;scanf("%d",r);s=*π*r*r;printf("s=%f\n",s);}出錯(cuò)的原因是A、注釋語(yǔ)句書寫位置錯(cuò)誤B、存放圓半徑的變量r不應(yīng)該定義為整型C、輸出語(yǔ)句中格式描述非法D、計(jì)算圓面積的賦值語(yǔ)句使用了非法變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了C語(yǔ)言的基本輸入輸出函數(shù)。選項(xiàng)A錯(cuò)誤,代碼里面的注釋是正確的,“/*”和“*/”配對(duì);選項(xiàng)B錯(cuò)誤,r變量定義為整型是可以的;選項(xiàng)C輸出語(yǔ)句格式正確;選項(xiàng)D正確,計(jì)算s的時(shí)候s=*π*r*r使用了未定義變量π。21、以下敘述中正確的是()。A、如果企圖通過(guò)一個(gè)空指針來(lái)訪問(wèn)一個(gè)存儲(chǔ)單元,將會(huì)得到一個(gè)出錯(cuò)信息B、即使不進(jìn)行強(qiáng)制類型轉(zhuǎn)換,在進(jìn)行指針賦值運(yùn)算時(shí),指針變量的基類型也可以不同C、設(shè)變量p是一個(gè)指針變量,則語(yǔ)句p=0;是非法的,應(yīng)該使用p=NULL;D、指針變量之間不能用關(guān)系運(yùn)算符進(jìn)行比較標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:空指針意味著該指針沒(méi)有指向任何具體的變量,所以不能訪問(wèn)一個(gè)存儲(chǔ)單元,A)正確。指針的賦值運(yùn)算只能在同一數(shù)據(jù)類型之間進(jìn)行,故選項(xiàng)B)錯(cuò)。語(yǔ)句p=0和p=NULL是一樣的,都是把一個(gè)空指針賦給指針變量p,故選項(xiàng)C)錯(cuò)。指針之間能進(jìn)行關(guān)系運(yùn)算,比較的是地址值的大小,選項(xiàng)D)錯(cuò)。答案選A)。22、有以下程序#includevoidmain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)ifi[s[i]>=’a’&&s[i]<=’z’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、3C、5D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個(gè)數(shù)。在程序中字符串s的值為“012xy”,所以在字符串s中符合要求的字符的個(gè)數(shù)等于2。23、若有以下程序段structst{intn;structst*next;};structsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;p=&a[0];則以下選項(xiàng)中值為6的表達(dá)式是A、++(p->n)B、(*p).nC、p->n++D、P->n標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A中表達(dá)式++(p->n)為前綴自加表達(dá)式,p->n和a[0].n等價(jià),其值為5,前綴自加后值為6。選項(xiàng)B中表達(dá)式(*p).n和選項(xiàng)D的表達(dá)式p->n含義相同,表示取結(jié)構(gòu)指針p所指向的成員,因此值為5。選項(xiàng)C中表達(dá)式p->n++為后綴自加表達(dá)式,相當(dāng)于(p->n)++,表達(dá)式值為5。24、以下敘述中正確的是A、結(jié)構(gòu)體數(shù)組名不能作為實(shí)參傳給函數(shù)B、結(jié)構(gòu)體變量的地址不能作為實(shí)參傳給函數(shù)C、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員D、即使是同類型的結(jié)構(gòu)體變量,也不能進(jìn)行整體賦值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體變量作為函數(shù)參數(shù),結(jié)構(gòu)體變量的地址可以作為參數(shù)傳給函數(shù),結(jié)構(gòu)體數(shù)組名就是一個(gè)地址,可以傳給函數(shù),如果是同類型的結(jié)構(gòu)體變量,可以整體賦值。25、有下列程序:voidf(intb[]){intI;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10,i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是A、1,2,3,4,5,6,7,8,9,10,B、1,2,3,4,10,12,14,16,9,10,C、1,2,6,8,10,12,7,8,9,10,D、1,2,6,8,10,12,14,16,9,10,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)voidf(intb[])的功能是對(duì)數(shù)組b[]中第2個(gè)到第5個(gè)元素的值逐個(gè)擴(kuò)大2倍。所以在main()函數(shù)中,f(a)語(yǔ)句的作用是對(duì)數(shù)組a[10]中從a[2]到a[5]的各個(gè)數(shù)字乘以2,因而數(shù)組a[10]的元素就變成了{(lán)1,2,6,8,10,12,7,8,9,10}。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共40題,每題1.0分,共40分。)1、在數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部結(jié)構(gòu)體系中,索引屬于()。A、模式B、內(nèi)模式C、外模式D、概念模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)備級(jí)上(如磁盤及磁盤操作)。2、設(shè)順序表的長(zhǎng)度為16,對(duì)該表進(jìn)行簡(jiǎn)單插入排序。在最壞情況下需要的比較次數(shù)為()。A、120B、60C、30D、15標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:簡(jiǎn)單插入排序在最壞情況下,即初始排序序列是逆序的情況下,比較次數(shù)為n(n-1)/2,移動(dòng)次數(shù)為n(n-1)/2。本題中n=16,16×(16-1)÷2=8÷15=120。3、有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return(y);elseretum((x+y)/2);}main(){inta=4,b=5,c=6;printf(’’%d\n’’,fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是()。A、3B、6C、8D、12標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun(b,c)即fun(5,6),5!=6,所以返回6;fun(2*a,6)即fun(8,6),8!=6,所以返回6。4、若變量已正確定義,以下選項(xiàng)中非法的表達(dá)式是A、a!=4‖’b’B、’a’%4C、’a’=1/2*(x=y=20,x*3)D、’A’+32標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:賦值表達(dá)式左邊應(yīng)為變量,選項(xiàng)C)中左邊為字符常量,因此非法,其余表達(dá)式均為合法的表達(dá)式。5、構(gòu)成計(jì)算機(jī)軟件的是()。A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件的定義為:與計(jì)算機(jī)系統(tǒng)的操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù)。答案選D。6、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào)、課名),選課SC(學(xué)號(hào),課號(hào),成績(jī)),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號(hào),成績(jī)B、學(xué)號(hào),成績(jī)C、學(xué)號(hào),課號(hào)D、學(xué)號(hào),姓名,成績(jī)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)鍵字是指屬性或?qū)傩缘慕M合,其值能夠唯一地標(biāo)識(shí)一個(gè)元組,而在SC中學(xué)號(hào)和課號(hào)的組合可以對(duì)元組進(jìn)行唯一的標(biāo)識(shí)。7、帶鏈??盏臈l件是A、top=bottom=NULLB、top=-1且bottom=NULLC、top=NULL且bottom-1D、top=bottom=-1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為鏈棧。在鏈棧中,只會(huì)出現(xiàn)棧空和非空兩種狀態(tài)。當(dāng)棧為空時(shí),有top=bottom=NULL;當(dāng)棧非空時(shí),top指向鏈表的第一個(gè)結(jié)點(diǎn)(棧頂)。所以選項(xiàng)A正確。8、以下關(guān)于C語(yǔ)言函數(shù)參數(shù)傳遞方式的敘述中正確的是()。A、數(shù)據(jù)只能從實(shí)參單向傳遞給形參B、數(shù)據(jù)可以在實(shí)參和形參之間雙向傳遞C、數(shù)據(jù)只能從形參單向傳遞給實(shí)參D、C語(yǔ)言的函數(shù)參數(shù)既可以從實(shí)參單向傳遞給形參,也可以在實(shí)參和形參之間雙向傳遞,可視情況選擇使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)只能由實(shí)參單向傳遞給形參稱為“值傳遞”,而不能由形參傳回來(lái)給實(shí)參,A選項(xiàng)正確;數(shù)組名、指針等作參數(shù),實(shí)參傳遞給形參地是地址值,這樣形參和實(shí)參就指向同一段內(nèi)存單元,在函數(shù)體內(nèi)對(duì)形參數(shù)據(jù)的改變也將影響到實(shí)參。實(shí)參和形參之間不可雙向傳遞,BD選項(xiàng)錯(cuò)誤。數(shù)據(jù)不能從形參傳遞給實(shí)參,C選項(xiàng)錯(cuò)誤。9、內(nèi)聚性是對(duì)模塊功能強(qiáng)度的衡量,下列選項(xiàng)中,內(nèi)聚性較弱的是()。A、順序內(nèi)聚B、偶然內(nèi)聚C、時(shí)間內(nèi)聚D、邏輯內(nèi)聚標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)聚是從功能角度來(lái)衡量模塊的聯(lián)系,它描述的是模塊內(nèi)的功能聯(lián)系。內(nèi)聚有如下種類,它們之間的內(nèi)聚度由弱到強(qiáng)排列:偶然內(nèi)聚一一模塊中的代碼無(wú)法定義其不同功能的調(diào)用。但它使該模塊能執(zhí)行不同的功能,這種模塊為巧合強(qiáng)度模塊。邏輯內(nèi)聚一一這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的參數(shù)來(lái)確定該模塊應(yīng)完成那一種功能。時(shí)間內(nèi)聚一一這種模塊順序完成一類相關(guān)功能,比如初始化模塊,它順序地為變量置初值。過(guò)程內(nèi)聚一一如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過(guò)程內(nèi)聚。通信內(nèi)聚一一這種模塊除了具有過(guò)程內(nèi)聚的特點(diǎn)外,還有另外一種關(guān)系,即它的所有功能都通過(guò)使用公用數(shù)據(jù)而發(fā)生關(guān)系。順序內(nèi)聚一一如果一個(gè)模塊內(nèi)各個(gè)處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù),則稱為順序內(nèi)聚。功能內(nèi)聚一一如果一個(gè)模塊包括為完成某一具體任務(wù)所必需的所有成分,或者說(shuō)模塊中所有成分結(jié)合起來(lái)是為了完成一個(gè)具體的任務(wù),此模塊則為功能內(nèi)聚模塊。10、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:50),初始狀態(tài)為front=rear=50。經(jīng)過(guò)一系列正常的操作后,front-1=rear。為了在該隊(duì)列中尋找值最大的元素,在最壞情況下需要的比較次數(shù)為A、0B、1C、48D、49標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:暫無(wú)解析11、下列敘述中正確的是A、軟件過(guò)程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)B、軟件過(guò)程是軟件開發(fā)過(guò)程C、軟件過(guò)程是軟件維護(hù)過(guò)程D、軟件過(guò)程是軟件開發(fā)過(guò)程和軟件維護(hù)過(guò)程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件過(guò)程是指軟件整個(gè)生命周期,從需求獲取,需求分析,設(shè)計(jì),實(shí)現(xiàn),測(cè)試,發(fā)布和維護(hù)一個(gè)過(guò)程模型。一個(gè)軟件過(guò)程定義了軟件開發(fā)中采用的方法,但軟件過(guò)程還包含該過(guò)程中應(yīng)用的技術(shù)——技術(shù)方法和自動(dòng)化工具。過(guò)程定義一個(gè)框架,為有效交付軟件工程技術(shù),這個(gè)框架必須創(chuàng)建。軟件過(guò)程構(gòu)成了軟件項(xiàng)目管理控制的基礎(chǔ),并且創(chuàng)建了一個(gè)環(huán)境以便于技術(shù)方法的采用、工作產(chǎn)品(模型、文檔、報(bào)告、表格等)的產(chǎn)生、里程碑的創(chuàng)建、質(zhì)量的保證、正常變更的正確管理。12、有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N]){inti;for(i=0;i<N;i++)a[0][i]+=a[N—1][N—1—i];}voidmain()intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i;fun(x);for(i=0;i<N;i++)printf(″%d″,x[i][i]);printf(″\n″);}程序運(yùn)行后的輸出結(jié)果是()。A、1761116B、161116C、471013D、5132129標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:按照二維數(shù)組的訪問(wèn)方式逐個(gè)查找,然后總結(jié)規(guī)律是這種題型常用的解決方法。13、有以下程序#iticludevoidmain(){charb,c;inti;b=’a’;c=’A’;for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+C);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、ABCDEFB、aBcDeFC、abcdefD、AbCdEf標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)變量i從0依次遞增到5,依次輸出字母A,b,C,d,E,f。14、下面不屬于軟件需求分析階段任務(wù)的是A、需求配置B、需求獲取C、需求分析D、需求評(píng)審標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:需求分析是要弄清用戶對(duì)軟件系統(tǒng)的全部需求,編寫需求規(guī)格說(shuō)明書和初步的用戶手冊(cè),提交評(píng)審。15、下列各項(xiàng)中不屬于軟件設(shè)計(jì)階段任務(wù)的是()。A、制訂軟件確認(rèn)測(cè)試計(jì)劃B、數(shù)據(jù)庫(kù)設(shè)計(jì)C、軟件總體設(shè)計(jì)D、算法設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)階段的主要任務(wù)包括兩個(gè):一是進(jìn)行軟件系統(tǒng)的可行性分析,確定軟件系統(tǒng)的建設(shè)是否值得,能否建成;二是進(jìn)行軟件的系統(tǒng)分析,了解用戶的需求,定義應(yīng)用功能,詳細(xì)估算開發(fā)成本和開發(fā)周期。16、C語(yǔ)言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。A、3B、4C、1D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:char類型數(shù)據(jù)占1個(gè)字節(jié)。17、若變量己正確定義并賦值,以下不能構(gòu)成C語(yǔ)句的選項(xiàng)是A、A=a+b;B、B++;C、a=a+bD、A?a:b;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言語(yǔ)句的表示為分號(hào),不加分號(hào)的表達(dá)式不能看成C語(yǔ)句。18、C語(yǔ)言中的標(biāo)識(shí)符分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符,以下敘述正確的是A、關(guān)鍵字可用作用戶標(biāo)識(shí)符,但失去原有含義B、在標(biāo)識(shí)符中大寫字母和小寫字母被認(rèn)為是相同的字符C、用戶標(biāo)識(shí)符可以由字母和數(shù)字任意順序組成D、預(yù)定義標(biāo)識(shí)符可用作用戶標(biāo)識(shí)符,但失去原有含義標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:預(yù)定義標(biāo)識(shí)符是C語(yǔ)言中的標(biāo)識(shí)符,在C語(yǔ)言中也有特定的含義,如函數(shù)prinff、scanf、sin等和編譯預(yù)處理命令名(如define和include)。預(yù)定義標(biāo)識(shí)符可以作為用戶標(biāo)識(shí)符使用,只是這樣會(huì)失去系統(tǒng)規(guī)定的原義。19、有以下程序#includeintfun(int(*s)[4],intn,intk){intm,i;m=s[0][k];for(i=1;im)m=s[i][k];returnm;}main(){inta[4][4]={{1,2,3,4),{11,12,13,14},{21,22,23,24},{31,32,33,34}};printf("%d\n",fun(a,4,0));}程序的運(yùn)行結(jié)果是A、31B、34C、4D、32標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)fun(int(*s)[4],intn,intk)的功能是返回二維數(shù)組第k列的最大元素。在主函數(shù)中由于二維數(shù)組a[4][4]已經(jīng)初始化,所以fun(a,4,0)的值是二維數(shù)組a[][]第1列中的最大元素31。20、有以下程序intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];retumsum;}main(){inta[]-{1,2,3,4,5),b[]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(’’%d\n’’,s);}A、50B、45C、60D、55標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)intfun(intx[],intn)的定義中,變量sum使川rstatic修飾符,這說(shuō)明了變量sum為一個(gè)靜態(tài)局部變量。由于在整個(gè)程序運(yùn)行期問(wèn),靜態(tài)局部變量在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久的存儲(chǔ)單元。即使退出函數(shù)之后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量繼續(xù)使用原來(lái)存儲(chǔ)單元中原來(lái)的值。函數(shù)intfun(intx[]intn)的功能是求出數(shù)組各個(gè)元素的和。所以在主函數(shù)中,調(diào)用函數(shù)Fun(a,5)后,變量sum=1+2+3+4+5=15,當(dāng)再次調(diào)用Fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。21、以下敘述中正確的是A、每個(gè)后綴為.c的C語(yǔ)言源程序都應(yīng)該包含一個(gè)main函數(shù)B、在C語(yǔ)言程序中,main函數(shù)必須放在其他函數(shù)的最前面C、每個(gè)后綴為.c的C語(yǔ)言源程序都可以單獨(dú)進(jìn)行編譯D、在C語(yǔ)言程序中,只有main函數(shù)才可單獨(dú)進(jìn)行編譯標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:每一個(gè)C語(yǔ)言的文件或函數(shù)都可以單獨(dú)編譯,但只有main函數(shù)的才可以執(zhí)行。22、有以下程序,程序運(yùn)行后的輸出結(jié)果是#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf"%d,%d,%d\n",x,y,z);}A、2,3,1B、2,3,2C、2,3,3D、2,2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在程序中,整型變量x、y的初值都為1,賦值語(yǔ)句“z=x++,y++,++y”右邊的“對(duì)++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,所以逗號(hào)表達(dá)式的值為++y的值。執(zhí)行逗號(hào)表達(dá)式“x++,y++,++y”后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式的值,為1。23、以下敘述中正確的是()。A、當(dāng)用scanf從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在沒(méi)按下回車鍵(Enter鍵)前,可以任意修改B、花括號(hào)對(duì){}只能用來(lái)表示函數(shù)的開頭和結(jié)尾,不能用于其他目的C、空語(yǔ)句就是指程序中的空行D、復(fù)合語(yǔ)句在語(yǔ)法上包含多條語(yǔ)句,其中不能定義局部變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:花括號(hào)對(duì)可以將一條或者多條語(yǔ)句括起來(lái)形成一個(gè)語(yǔ)句組,在語(yǔ)法上被當(dāng)做一個(gè)整體對(duì)待,相當(dāng)于一條語(yǔ)句,而不僅僅是用于區(qū)分函數(shù)的開頭和結(jié)尾,選項(xiàng)B)錯(cuò)誤;空語(yǔ)句指的是只有分號(hào)的語(yǔ)句,選項(xiàng)C)錯(cuò)誤;復(fù)合語(yǔ)句中可以定義局部變量,只是該局部變量的生存域?yàn)樵搹?fù)合語(yǔ)句,選項(xiàng)D)錯(cuò)誤;回車鍵(Enter鍵)表示一行輸入的結(jié)束,在沒(méi)按下回車鍵前,可以對(duì)當(dāng)前行輸入的數(shù)據(jù)進(jìn)行修改,所以答案選A)。24、以下敘述中正確的是()。A、else不是一條獨(dú)立的語(yǔ)句,它只是if語(yǔ)句的一部分B、對(duì)于邏輯表達(dá)式:a++&&b++,設(shè)a的值為0,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變C、對(duì)于邏輯表達(dá)式:a++||b++,設(shè)a的值為1,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變D、關(guān)系運(yùn)算符的結(jié)果有三種:0,1,-1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:else必須與if配對(duì)才能構(gòu)成一個(gè)完整的if選擇結(jié)構(gòu),所以else語(yǔ)句是if語(yǔ)句的一部分,選項(xiàng)A)正確;邏輯或(與)表達(dá)式滿足"短路求值"原理,對(duì)于邏輯與,若第一個(gè)表達(dá)式的值為假,整個(gè)表達(dá)式的值為假,第二表達(dá)式不再計(jì)算。同樣,對(duì)于邏輯或,若第一個(gè)表達(dá)式的值為真,則整個(gè)表達(dá)式的值為真,第二表達(dá)式也不再計(jì)算。所以b的值不一定會(huì)改變,選項(xiàng)B)、C)錯(cuò);關(guān)系運(yùn)算符的結(jié)果只有兩種情況:"0"或"1",選項(xiàng)D)錯(cuò);答案選A)。25、定義學(xué)生、教師和課程的關(guān)系模式S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學(xué)號(hào)、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號(hào)、課程名、先修課);SC(S#,C#,G)(其屬性分別為學(xué)號(hào)、課程號(hào)和成績(jī)),則該關(guān)系為A、第二范式B、第一范式C、第三范式D、BCNF范式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在關(guān)系模式S(S#,Sn,Sd,Dc,Sa)中把學(xué)號(hào)S#設(shè)置為主鍵,則其它列姓名、所在系、所在系的系主任、年齡都依賴主鍵學(xué)號(hào)S#。在C(C#,Cn,P#)中將C#課程號(hào)設(shè)置為主鍵,則課程名、先修課都依賴主鍵C#。在SC(S#,C#,G)中,將S#,C#設(shè)置為主鍵,則G成績(jī)依賴于主鍵S#,C#。所以該關(guān)系模式是第二范式。選擇A選項(xiàng)。26、若有以下程序,則程序的輸出結(jié)果是#include<stdio.h>main(){inta=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);printf("%d,%d,%d\n",a,b,c);}A、0,4,4B、1,4,1C、0,4,0D、1,4,4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式c=(a=++a),(a+=b,b+=4)相當(dāng)于逗號(hào)表達(dá)式,首先計(jì)算c=(a-=++a),其中(a-=++a)等價(jià)a=a-(++a),得到a的值0,c的值為0,在計(jì)算(a+=b,b+=4)時(shí),a和b的初值為0,計(jì)算以后,a為0,b為4。27、設(shè)有n個(gè)數(shù)按從大到小的順序存放在數(shù)組x中,以下能使這n個(gè)數(shù)在x數(shù)組中的順序變?yōu)閺男〉酱蟮氖牵ǎ?。A、for(i=0;iB、for(i=0;iC、for(i=0;iD、for(i=0;i標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析::要將這n個(gè)數(shù)逆序排列,需將前半部分和后面部分對(duì)應(yīng)的元素(如x[i]與x[n-1-i])對(duì)調(diào),選項(xiàng)B)執(zhí)行結(jié)束后,數(shù)組沒(méi)有變化,選項(xiàng)C)數(shù)組越界,選項(xiàng)D)只將下標(biāo)為偶數(shù)的元素逆序排列,只有選項(xiàng)A)實(shí)現(xiàn)了該算法。答案選A)。28、下列敘述中正確的是A、算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量C、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法的效率與問(wèn)題的規(guī)模和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)都有關(guān),A錯(cuò)誤。算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量,B正確。由于數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位置關(guān)系可能與邏輯關(guān)系不同,因此數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)不是一一對(duì)應(yīng)的,C錯(cuò)誤。算法的時(shí)間復(fù)雜度和空間復(fù)雜度沒(méi)有直接的聯(lián)系,D錯(cuò)誤。29、以下程序調(diào)用fun函數(shù)求數(shù)組中最大值所在元素

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論