月全國(guó)計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言程序設(shè)計(jì)終極押密卷5整理版_第1頁(yè)
月全國(guó)計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言程序設(shè)計(jì)終極押密卷5整理版_第2頁(yè)
月全國(guó)計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言程序設(shè)計(jì)終極押密卷5整理版_第3頁(yè)
月全國(guó)計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言程序設(shè)計(jì)終極押密卷5整理版_第4頁(yè)
月全國(guó)計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言程序設(shè)計(jì)終極押密卷5整理版_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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)介

1、一2013年9月全國(guó)計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言程序設(shè)計(jì)終極押密卷(5)、選擇題(每小題1分,共40分)1有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是(C)。A. char a='a'; B. char a='n' C. char a='aa';D. char a='x2d';解析:char類型用于存儲(chǔ)單個(gè)字符的簡(jiǎn)單變量類型,它可以被指定為一個(gè)字符常量或一個(gè)整數(shù)。2下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是(C)0、A. 雙向鏈表 B. 帶鏈的棧 C. 二叉鏈表 D. 循環(huán)鏈表 解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是描述數(shù)據(jù)之間的關(guān)系,分兩大類:線性結(jié)構(gòu)和非線

2、性結(jié)構(gòu)。線性結(jié)構(gòu)是n個(gè)數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對(duì)一”的線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。常用的線性結(jié)構(gòu)有:線性表,棧,隊(duì)列,雙隊(duì)列,數(shù)組,串。非線性結(jié)構(gòu)的邏輯特征是一個(gè)結(jié)點(diǎn)元素可能對(duì)應(yīng)多個(gè)直接前驅(qū)和多個(gè)后驅(qū)。常見(jiàn)的非線性結(jié)構(gòu)有:樹(shù)(二叉樹(shù)等),圖(網(wǎng)等),廣義表。 3在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是(D)。A. 程序外部功能 B. 程序內(nèi)部邏輯 C. 程序數(shù)據(jù)結(jié)構(gòu) D. 程序流程圖 解析:黑盒測(cè)試是不考慮內(nèi)部結(jié)構(gòu),而程序流程圖是程序內(nèi)部的表示方法,所以此測(cè)試是根據(jù)程序流程圖進(jìn)行的,答案選擇D4定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是(B)。A.

3、 -369 B. 369 C. 0369 D. 整數(shù)集合1,2,3,4,5解析:其中A選項(xiàng)是有符號(hào)的,C選項(xiàng)是小數(shù),D選項(xiàng)是結(jié)合并不是類的實(shí)例化對(duì)象,只有B完全符合。 5有以下程序: #include<stdioh> main() short C=124; C=C_; printf("%dn",c); 若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是( D )。A. >>2 B. 248 C. &0248 D. <<1解析:124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所

4、以選D6設(shè)有定義:int x23;,則以下關(guān)于二維數(shù)組X的敘述錯(cuò)誤的是(D)。A. x0可看做是由3個(gè)整型元素組成的一維數(shù)組B. x0和xl是數(shù)組名,分別代表不同的地址常量C. 數(shù)組X包含6個(gè)元素D. 可以用語(yǔ)句xo=0;為數(shù)組所有元素賦初值0解析:x0是不能賦值的。 7以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù) #include<stdioh>main()double a15,k; k=fun(a); .則以下選項(xiàng)中錯(cuò)誤的fun函數(shù)首部是(A)。 、A. double fun(double al5) B. double fun(double *a) 。C. double f

5、un(double a) D. double fun(double a)解析:由題可知fun的參數(shù)為變量,而a15為常量,所以答案為A。 8有以下程序: #include<stdioh>, main()int S; scanf("%d",&s); while(s>O)switch(s)case l:printf("%d",s+5); case 2:printf("%d",s+4);break; case 3:printf("%d",s+3); default:("%d"

6、,s+1);break; scanf("%d",&s); 運(yùn)行時(shí),若輸入1 2 3 4 5 0<回車>,由輸出結(jié)果是(A)。A. 6566456 B. 66656 C. 66666 D. 6666656解析:根據(jù)題意,當(dāng)s=1時(shí),輸出65;當(dāng)s=2時(shí),輸出6;當(dāng)S=3時(shí),則輸出64;當(dāng)S=4時(shí),輸出5;當(dāng)s=5時(shí),輸出6;當(dāng)s=0時(shí),程序直接退出。所以最后答案為6566456,A選項(xiàng)正確。 9有三個(gè)關(guān)系R、S和T如下: 則由關(guān)系R和S得到關(guān)系T的操作是(D)。A. 自然連接 B. 并 C. 交 D. 差 解析:關(guān)系的基本運(yùn)算有差、交、并、投影等。根據(jù)R和

7、S得到T,可以看出,此關(guān)系為差,所以答案選擇D。10有以下定義和語(yǔ)句: struct workers int num;char name20;char C; structint day;int month;int year;)S; ; struct workers w,*pw; pw=&w; 能給w中year成員賦1980的語(yǔ)句是(D)。A. *pwyear=1980; B. wyear=1980;C. pw->year=1980 D. wSyear=1980; 解析:結(jié)構(gòu)workers中的成員s是一個(gè)嵌套的結(jié)構(gòu)類型定義,因此在給year賦值時(shí),要用“”運(yùn)算在深入一層訪問(wèn)到最基本

8、的成員year,只有D項(xiàng)反映出了這一點(diǎn)。 11在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是(D)。A. 軟件集成測(cè)試計(jì)劃 B. 軟件詳細(xì)設(shè)計(jì)說(shuō)明書C. 用戶手冊(cè) D. 軟件需求規(guī)格說(shuō)明書 解析:軟件需求分析階段所生成的說(shuō)明書為需求規(guī)格說(shuō)明書。 12以下敘述中錯(cuò)誤的是(C)。A. 一個(gè)C程序中可以包含多個(gè)不同名的函數(shù)B. 一個(gè)C程序只能有一個(gè)主函數(shù)C. C程序在書寫時(shí),有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過(guò)D. C程序的主函數(shù)必須用main作為函數(shù)名 解析:C語(yǔ)言程序中有且只有一個(gè)主函數(shù),但允許自定義多個(gè)函數(shù)。主函數(shù)的表示方法為main(),所以答案選擇C。13下列敘述中正確的是( B )。A. 數(shù)據(jù)

9、庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B. 數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題C. 數(shù)據(jù)庫(kù)管理系統(tǒng)就是數(shù)據(jù)庫(kù)系統(tǒng)D. 以上三種說(shuō)法都不對(duì) 解析:數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)管理員、硬件平臺(tái)、軟件平臺(tái)這五部分共同構(gòu)成了一個(gè)以數(shù)據(jù)庫(kù)為核心的完整的運(yùn)行實(shí)體,稱為數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)技術(shù)的根本目的是要解決數(shù)據(jù)的共享問(wèn)題a數(shù)據(jù)庫(kù)管理系統(tǒng)是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它是數(shù)據(jù)庫(kù)系統(tǒng)的一部分,二者不能等同。 14以下定義數(shù)組的語(yǔ)句錯(cuò)誤的是(B)。A. int num=1,2,3,4,5,6;B. int num3=1,2

10、,3,4,5,6;C. int num24=1,2,3,4,5,6;D. int num4=1,2,3,4,5,6; 解析:二維數(shù)組的定義有3種形式,第一種是分行為兩位數(shù)組賦值,即int num=12,3, 4,5,6,第二種是按照數(shù)組排列順序進(jìn)行賦值,即int num=1,2,3,4,5,6,第三種為對(duì)部分元素賦初值,即int num=1,2,3,4,5,6,所以錯(cuò)誤的為B。 15有以下程序: #include<stdioh>struct Sint a,b;)data2=10,100,20,200); main()struet S p=datal; printf("%d

11、n",+(pa); 程序運(yùn)行后的輸出結(jié)果是(D)。A. 10 B. 11 C. 20 D. 2116有如下嵌套的if語(yǔ)句: if(a<b)if(a<c)k=a; else k=C: elseif(b<c)k=b; else k=C; 以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是(C)。A. k=(a<b)?a:b;k=(b<c)?b:C;B. k=(a<b)?(b<c)?a:b):(b>c)?b:c);C. k=(a<b)?(a<c)?a:c):(b<c)?b:c);D. k=(a<b)?a:b;k=(a<c)?a

12、:c; 解析:條件運(yùn)算符(?:)是C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符,它是對(duì)第一個(gè)表達(dá)式做真假檢測(cè),然后根據(jù)結(jié)果返回兩個(gè)表達(dá)式中的一個(gè)作為運(yùn)算的結(jié)果。<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>。在運(yùn)算中,首先對(duì)第一個(gè)表達(dá)式進(jìn)行檢驗(yàn),如果為真,則返回表達(dá)式2的值;如果為假,則返回表達(dá)式3的值。 17有以下程序: #include <stdioh>int a=1,b=2: void funl(int a,int b)printf( "%d%d",a,b); void fun2() a=3;b=4; main() funl(5,6);fun

13、2(); printf("%d%dn",a,b); 程序運(yùn)行后的輸出結(jié)果是(B)。A. 1 2 5 6 B. 5 6 3 4 C. 5 6 1 2 D. 3 4 5 6解析:Funl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結(jié)果是563418若有定義語(yǔ)句“int a,b;double X;”,則下列選項(xiàng)中沒(méi)有錯(cuò)誤的是( C )。A. switch(X%2) case 0:a+;break; case l:b+;break; default:a+;b+; B. switch(int)x/2O) case 0:a+;break; case l:b+;br

14、eak; default:a+;b+; C. switch(int)X%2) case 0:a+;break; case l:b+;break; default:a+;b+; D. switch(int)(x)%2) case 00:a+;break; case l0:b+;break; default:a+;b+; 解析:C語(yǔ)言中,switch語(yǔ)句中的表達(dá)式和case表達(dá)式都不能是浮點(diǎn)類型。所以選C。19有以下程序(函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作): #include<stdioh> void fun(int*a。int n) int i,j,k,t; for(i=0;i

15、<n-1;i+=2)k=i; for(j=i;j<n;j+=2)if(aj>ak)k=j; tai;ai=ak;ak=t; main()int aalO=1,2,3,4,5,6,7,a; fun(aa,7); for(i=0;i<7;i+)printf("%d,",aai); printf("n"); 程序運(yùn)行后的輸出結(jié)果是( A )。A. 7,2,5,4,3,6,1, B. 1,6,3,4,5,2,7,C. 7,6,5,4,3,2,1, D. 1,7,3,5,6,2,1, 解析:對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行降序排序,下標(biāo)為奇數(shù)元素保持

16、不變。 20有以下程序: #include<stdioh>#include<strin9h>main()printf"%dn",strlen("%dn",strlen("ATSn012"); 程序運(yùn)行后的輸出結(jié)果是(B)。A. 3 B. 8 C.4 D. 9解析:本題考查strlen函數(shù)和轉(zhuǎn)移字符,strlen函數(shù)的功能是求字符串的長(zhǎng)度,在本題中有“”,C語(yǔ)言中“”是轉(zhuǎn)義字符,在計(jì)算長(zhǎng)度時(shí)會(huì)將轉(zhuǎn)義符以及后面的第一個(gè)字符作為1個(gè)長(zhǎng)度進(jìn)行計(jì)算,所以答 21下列定義數(shù)組的語(yǔ)句中,正確的是( D )。A. int N=

17、10;int xN: B. #define N l0 ; int xN;C. int x010; D. int x;解析:選項(xiàng)A、B中n為變量,C語(yǔ)言中不允許動(dòng)態(tài)定義數(shù)組維數(shù),即維數(shù)不能是變量。選項(xiàng)C無(wú)此語(yǔ)法。22有以下程序: #include<stdioh>int fun()static int x=1; X*=2: return x; main()int i,S=1; for(i=1;i<=3;i+)S*=fun(); printf("%dn",s); 程序運(yùn)行后的輸出結(jié)果是(D)。A. 0 B. 10 C.30 D. 64解析:函數(shù)fun()是2的次

18、方的運(yùn)算,而s*=fun(),所以答案為64。 23設(shè)有以下函數(shù): void fun(int n,char*s) 則下面對(duì)函數(shù)指針的定義和賦值均正確的是(A)。A. void(*pf)();pf=fun; B. void*pf();pf=funC. void*pf();*pf=fun;D. void(*pf)(int,char);pf=&fun; 解析:函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時(shí),直接將函數(shù)指針指向函數(shù)名就行了。選項(xiàng)A正確。24有如下程序: main()int x=1,a=0,b=0; switch(

19、x)case 0:b+; case l:a+; case 2:a+;b+; printf("a=%d,b=%dn",a,b); 該程序的輸出結(jié)果是(A)。A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=2解析:當(dāng)X為1時(shí),執(zhí)行case1,a自加等于1,因?yàn)閏ase1后沒(méi)有break,接著執(zhí)行case 2,此時(shí)a的值為2,b自加為1,故選擇A選項(xiàng)。 25函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是(B)。A. 文件開(kāi)始 B. 文件末尾 C. 文件當(dāng)前位置 D. 以上都不對(duì) 解析:SEEK_SET代表文件的

20、開(kāi)始,SEEK_END代表文件末尾,SEEK_CUR代表文件當(dāng)前位置。26有以下程序: #include<stdioh>main()unsigned char a=8,C; C=a>>3: printf("%dn",c); 程序運(yùn)行后的輸出結(jié)果是(C)。A. 32 B. 16 C. 1 D. 0解析:題中定義了無(wú)符號(hào)數(shù),c=a>>3;是指右移3位,然后輸出。結(jié)果為C27以下敘述中錯(cuò)誤的是( B )。A. C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B. C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行C. 所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)

21、行D. C程序中整型變量只能存放整數(shù),實(shí)型變量只能存放浮點(diǎn)數(shù) 解析:C語(yǔ)言中,參與運(yùn)算的數(shù)可以以八進(jìn)制、十進(jìn)制、十六進(jìn)制等多種形式表示。 28以下選項(xiàng)中非法的字符常量是(D)。A. '101' B. '65' C. 'xff' D. '019'解析:在選項(xiàng)中,'019',以0開(kāi)頭的數(shù)都為八進(jìn)制數(shù),而八進(jìn)制的表示數(shù)字是07,所以答案選擇D。 29有以下程序 #include<stdi0h> main()int a=2,3,5,4),i; for(i=0;i<4;i+)switch(i2)case 0

22、:switch(ai2)case 0:ai+;break; case l:ai-; break; case1:ai=0; for(i=0;i<4;i+)printf("d",ai);printf("n"); 程序運(yùn)行后的輸出結(jié)果是(C)。A. 3344 B. 2050 C. 3040 D. 0304解析:本題考查嵌套分支語(yǔ)句。共輸出4個(gè)值:當(dāng)i=0時(shí),i2取余后還是0,則執(zhí)行ease 0語(yǔ)句,繼續(xù)switch語(yǔ)句,此時(shí)i為0,數(shù)據(jù)的下標(biāo)是從0開(kāi)始的,a03的值為2,則a02=0,繼續(xù)執(zhí)行case 0,數(shù)組a0+,值變?yōu)?,執(zhí)行break跳出第二重開(kāi)

23、關(guān)語(yǔ)句。出來(lái)后繼續(xù)執(zhí)行break,跳出第一重開(kāi)關(guān)語(yǔ)句,繼續(xù)循環(huán);輸出第一個(gè)值為3。i+后值為1,i2=12取余后值為1,執(zhí)行case l,將0賦給al,退出開(kāi)關(guān)語(yǔ)句,輸出第二個(gè)值為0。i+后值為2,i2=22取余后值為0a2的值為5,則a22=1,繼續(xù)執(zhí) 行case l,數(shù)組a2-,值變?yōu)?,執(zhí)行break跳出第二重開(kāi)關(guān)語(yǔ)句。出來(lái)后繼續(xù)執(zhí)行break,跳出第一重開(kāi)關(guān)語(yǔ)句,繼續(xù)循環(huán);輸出第三個(gè)值為4。i+后值為3,i2=32取余后值為1,執(zhí)行case l,將0賦給a3,退出開(kāi)關(guān)語(yǔ)句,輸出第四個(gè)值為0。結(jié)果為3 0 4 0。 30有以下程序(注:字符a的ASCIl碼值為97)#include<

24、;stdioh>main() char*s="abc") doprintf("%d",*S%10");+S; while(*s); 隉序運(yùn)行后的輸出結(jié)果是(B)。A. abc B. 789 C. 7890 D. 979899解析:程序中的*s%10是求余運(yùn)算,分別是a、b、C的ASCIl碼值對(duì)10進(jìn)行求余運(yùn)算然后輸出,所以輸出的答案為789。 31有下列程序: main() char*P="3697","2584"); int i,j;long num=0; for(i=0;i<2;i+)j=

25、0; while(pij!='0')if(pij-t0')%2)num=10*num+pjj-'0'; j+=2; printf("%dn",num); 程序執(zhí)行后的輸出結(jié)果是(D)。A. 35 B. 37 C. 39 D. 3975解析:執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式piJ!='o'來(lái)判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒(méi)有到達(dá),繼續(xù)執(zhí)行while中的語(yǔ)句。if語(yǔ)句表示(pij-'o')除2的余數(shù)不為0時(shí),即字符串所有奇數(shù),執(zhí)行后面的語(yǔ)句。所以退出第1次for的循環(huán)體時(shí),輸出為397,執(zhí)行

26、第2次循環(huán)體。對(duì)字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。 32軟件生命周期可分為定義階段、開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于(B)。A. 定義階段 B. 開(kāi)發(fā)階段 C. 維護(hù)階段 D. 上述三個(gè)階段 解析:開(kāi)發(fā)階段在開(kāi)發(fā)初期分為需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)3個(gè)階段,在開(kāi)發(fā)后期分為編碼、測(cè)試兩個(gè)子階段。 33在軟件設(shè)計(jì)中不使用的工具是(C)。 A. 系統(tǒng)結(jié)構(gòu)圖 B. 程序流程圖 C. PAD圖 D. 數(shù)據(jù)流圖(DFD圖)解析:數(shù)據(jù)分析主要使用的是數(shù)據(jù)流圖和數(shù)據(jù)字典,概念設(shè)計(jì)階段使用的是系統(tǒng)結(jié)構(gòu)圖,在詳細(xì)設(shè)計(jì)階段使用的是程序流程圖。所以答案選擇C。34面向?qū)ο蠓椒ㄖ?,繼

27、承是指( D )。A. 一組對(duì)象所具有的相似性質(zhì) B. 一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C. 各對(duì)象之間的共同性質(zhì) D. 類之間共享屬性和操作的機(jī)制 解析:在程序設(shè)計(jì)中,繼承是指子類自動(dòng)享用父類的屬性和方法,并可以追加新的屬性和方法的一種機(jī)制。它是實(shí)現(xiàn)代碼共享的重要手段,可以使軟件更具有開(kāi)放性、可擴(kuò)充性,這是信息組織與分類的行之有效的方法,也是面向?qū)ο蟮闹饕獌?yōu)點(diǎn)之一。繼承又分為單重繼承和多重繼承。單重繼承是指子類只能繼承一個(gè)父類的屬性和操作;而多重繼承是指子類可以繼承多個(gè)父類的屬性和操作。java是一種單重繼承語(yǔ)言,而C+是一種多重繼承語(yǔ)言。 35以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是( C )。

28、A. 一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成B. 結(jié)構(gòu)化程序使用goto語(yǔ)句會(huì)很便捷C. 在C語(yǔ)言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的D. 由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問(wèn)題 解析:在程序設(shè)計(jì)中,繼承是指子類自動(dòng)享用父類的屬性和方法,并可以追加新的屬性和方法的一種機(jī)制。它是實(shí)現(xiàn)代碼共享的重要手段,可以使軟件更具有開(kāi)放性、可擴(kuò)充性,這是信息組織與分類的行之有效的方法,也是面向?qū)ο蟮闹饕獌?yōu)點(diǎn)之一。繼承又分為單重繼承和多重繼承。單重繼承是指子類只能繼承一個(gè)父類的屬性和操作;而多重繼承是指子類可以繼承多個(gè)父類的屬性和操作。java是一種單重繼承語(yǔ)言,而C+是一種多重繼承語(yǔ)言。 36

29、下列敘述中正確的是(B)。A. 有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B. 只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C. 循環(huán)鏈表是非線性結(jié)構(gòu) D. 雙向鏈表是非線性結(jié)構(gòu) 解析:有一個(gè)根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)a37有以下程序: #include<stdioh>main() int a; scanf("%d",&a); if(a+<9)printf("%dn",a); clsc printf("%dn",a-); 程序運(yùn)行時(shí)從鍵盤輸入9<回車>,則輸出結(jié)果是(A)。A. 10 B. 1

30、1 C. 9 D. 8解析:有一個(gè)根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)a38若有函數(shù) void fun(double a。int*n)以下敘述中正確的是(B)。A. 調(diào)用fun函數(shù)時(shí)只有數(shù)組執(zhí)行按值傳送,其他實(shí)參和形參之間執(zhí)行按地址傳送B. 形參a和n都是指針變量C. 形參a是一個(gè)數(shù)組名,n是指針變量D. 調(diào)用fun函數(shù)時(shí)將把double型參數(shù)組元素一一對(duì)應(yīng)地傳送給形參a數(shù)組 解析:本題考查函數(shù)中數(shù)組和指針的傳值,數(shù)組a在參數(shù)傳遞時(shí),是傳遞的數(shù)組a的首地址,所以形參a和n都是指針變量。39有以下程序: #include<stdioh>main() char a='H';

31、 a=(a>='A'&&a<='2')?(a-'A'+'a'):a; printf("%cn",a); 程序運(yùn)行后的輸出結(jié)果是(D)。A. A B. a C. H D. H解析:多元運(yùn)算符問(wèn)號(hào)前面表達(dá)式為真,所以(a-'A'+'a')賦值給a,括號(hào)里的運(yùn)算是把大寫字母變成小寫字母,所以答案應(yīng)為選項(xiàng)D。 40有以下程序: #include<stdioh>void func(int n) static int num=1); num=num+n

32、;printf("%d",num); main() funo(3);func(4);printf("n"); 程序運(yùn)行后的輸出結(jié)果是(A)。 A. 4 8 B. 3 4 C. 3 5 D. 4 5解析:第一調(diào)用func函數(shù)時(shí)輸出4,第二次調(diào)用func函數(shù)時(shí)num的值并不會(huì)釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是4 8。 二、基本操作題(共18分)41請(qǐng)補(bǔ)充main()函數(shù),該函數(shù)的功能是:如果數(shù)組arr的前一個(gè)元素比后一個(gè)元素小,則把它保存在數(shù)組bb中并輸出。 例如,若數(shù)組中的元素為:“40,68,62,33,35,52,48,9

33、5,66,73”,則輸出:“40,33,35,48,66”。 注意:部分源程序給出如下。 請(qǐng)勿改動(dòng)函數(shù)()main和其他函數(shù)中的任何內(nèi)容,僅在main()函數(shù)的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。 試題程序: #include<stdlibh>#include<stdioh>#define M l0void main()int i,n=0; int arrM=(40,68,62,33,35,52,48,95,66,73); int bbM; system("CLS"); for(i=0;i<【1】;i+)if(arri<arri+1)【2

34、】 ; printf("n*display bb*n"); for(i=0;i<n;i+)printf("bbd=2d",【3】); 解析:【1】M-1【2】bbn+=arri【3】i,bbi 【解析】由整個(gè)for循環(huán)可知,變量i為數(shù)組arr的下標(biāo),題目中要求取出前一個(gè)元素比后一個(gè)元素小的元素,所以只需要判斷前M-1個(gè)元素即可。因此,【1】處填“M-1”;如果第i個(gè)元素比第i+1個(gè)元素小,將第1個(gè)元素放入數(shù)組bb中,因此,【2】處填“bbn+=arri”。最后,要輸出數(shù)組bb中的每一個(gè)元素。因此,【3】處填“i,bbi”。 三、程序改錯(cuò)題(共24分

35、)42下列給定程序中,函數(shù)proc()的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。 例如,輸入opdye,則應(yīng)輸出deopy。 請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。 注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。 試題程序: #includestringh>#includestdlibh>#include<conioh>#include<stdioh>/*found* int proc(char str)char C; unsigned i,j; for(i=0;i<strlen(str)-1;i+)for(j=i+1;j<strlen(str);j4-+)if(stri>strj)c=strj: /*found*strj=stri+; stri=C; void main()char st/81; system("CLS"); printf("nPlease enter a characterstring:"); gets(str); printf("nknBefore sorting:n %s",s

溫馨提示

  • 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)論