二級C語言分類模擬題511_第1頁
二級C語言分類模擬題511_第2頁
二級C語言分類模擬題511_第3頁
免費預(yù)覽已結(jié)束,剩余5頁可下載查看

下載本文檔

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

文檔簡介

1、二級 C 語言分類模擬題 511( 總分: 57.00 ,做題時間: 90 分鐘 )一、選擇題 (總題數(shù): 35,分?jǐn)?shù): 57.00)1. 下列敘述中正確的是 。(分?jǐn)?shù): 1.00 )A. 算法就是程序B. 設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C. 設(shè)計算法時只需要考慮結(jié)果的可靠性D. 以上3種說法都不對V解析:解析程序(program)是為實現(xiàn)特定目標(biāo)或解決特定問題而用計算機語言編寫的命令序列的集合。 設(shè)計算法時要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計,但是不僅是要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計,還要考慮到其他的程序結(jié)構(gòu) 的問題。設(shè)計算法時不能只考慮結(jié)果的正確性和可靠性,還需要考慮到程序的時間冗余度等方面。所以答 案選擇

2、 D。2. 若有以下程序段:struct stint n;struct st*next; stmct st a3=5,a1,7, a2,9,"/0",*p;p=a0; 則以下選項中值為 6 的表達(dá)式是 (分?jǐn)?shù): 1.00 )A. p- > nB. (*p).nC. p- > n+D. +(p- >n) V解析:解析本題考查結(jié)構(gòu)體變量的引用,其中a為定義的結(jié)構(gòu)體數(shù)組,D選項中p- >n為5, +(p- >n)為 6,所以 D 選項正確。3. 下面程序輸出的結(jié)果是 。main() int i;int a33=1,2,3,4,5,6,7,8,9; f

3、or(i=0; i printf("% d", a2-ii); (分?jǐn)?shù): 1.00 )A. 1 5 9B. 7 5 3VC. 3 5 7D. 5 9 1解析: 解析 本題用循環(huán)的方法考查對數(shù)組概念的掌握。首先,當(dāng) i=0 時,數(shù)組中的位置是 a20=7,當(dāng)然,如果用排除法,就不用考慮后面的循環(huán),因為在4個選項中,第1個數(shù)為7的選項只有B本題執(zhí)行第 2次循環(huán)時, i 的值為 1,則 printf 函數(shù)中的數(shù)組指向為 a11=5 ,依次循環(huán),可求出答案。4. 函數(shù) ftell(fp) 的作用是 。(分?jǐn)?shù): 2.50 )A. 得到 fp 所指向文件的當(dāng)前讀寫位置 VB. 初始化流

4、式文件的位置指針C. 移動流式文件的位置指針D. 以上答案均正確解析: 解析 位置指針當(dāng)前值函數(shù) ftell() 的基本調(diào)用格式為 ftell(fp) 。ftell 函數(shù)的功能: 得到 fp 所指向文件的當(dāng)前讀寫位置, 即位置指針的當(dāng)前值, 如果函數(shù)的返回值為 -1L , 表示出錯。5. 設(shè)有如下函數(shù)定義#include < stdio.h >int fun(int k if(k < 1) return 0;else if(k=1) return 1;else return fun(k-1)+1;若執(zhí)行調(diào)用語句“ n=fun(3); ”,則函數(shù) fun 總共被調(diào)用的次數(shù)是 。

5、(分?jǐn)?shù): 1.00 )A. 3VB. 2C. 4D. 5解析:解析首先調(diào)用“n=fun(3) ”,3被當(dāng)作參數(shù)傳遞進(jìn)去,進(jìn)行了第一次調(diào)用,3被當(dāng)作參數(shù)傳進(jìn)去后,程序會執(zhí)行語句“ else return fun(k -1)+1; ”進(jìn)行第二次調(diào)用,參數(shù)是 3-1 也就是 2, 2 被當(dāng)作參數(shù) 傳進(jìn)去后,程序會執(zhí)行語句“ else return fun(k - 1)+1; ”進(jìn)行第三次調(diào)用,參數(shù)是 2-1 也就是 1, 1 被當(dāng) 作參數(shù)傳進(jìn)去后,程序會執(zhí)行語句“ else if(k=1)return 1; ”不再遞歸調(diào)用,因此最終結(jié)果為 3 次,選 項 A 正確。6. 若變量已正確定義,在if(W

6、)printf("%d/n",k);中,以下不可替代 W的是。(分?jǐn)?shù): 2.50 )A. a <> b+c VB. ch=getchar()C. a=b+cD. a+解析:解析選項A是非法的表達(dá)式,C語言中沒有“<>”運算符。7. 在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是(分?jǐn)?shù): 2.00 )A. auto 和 register VB. extern 和 registerC. auto 和 staticD. static和 register解析:解析在C語言中只有自動變量和寄存器變量在使用時才占用內(nèi)存單元。8. 下列程序的輸出結(jié)果是

7、 。#include < stdio.h >void main() int a=0,b=1,c=2;if(+a > 0|+b > 0)+c;printf("%d,%d,%d",a,b,c);(分?jǐn)?shù): 2.50 )A. 0,1,2B. 1,2,3C. 1,1,3VD. 1,2,2解析:解析本題考查if語句。先判斷if語句的條件是否成立,因為“ +a=1>0”,所以條件成立,又 因為是進(jìn)行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算對象的真假,即 不進(jìn)行+b操作,就可以直接得出整個表達(dá)式的值為邏輯1,執(zhí)行下面的+c。9. 若

8、已定義x和y為double類型,則表達(dá)式“ x=1, y=x+3/2 ”的值是 。(分?jǐn)?shù): 1.00 )A. 1B. 2C. 2.0VD. 2.5解析: 解析 本題中的表達(dá)式為逗號表達(dá)式,此表達(dá)式的結(jié)果為 y=x+3/2 的值。 y=x+3/2 的運算次序為: 先進(jìn)行 3/2 運算,兩個運算數(shù)均為整型量, 結(jié)果也為整型量, 等于 1 ,此結(jié)果將與 double 類型數(shù)進(jìn)行相加, 要轉(zhuǎn)換為 1.00.00 。最后將 x 的值 1 轉(zhuǎn)換成 double 型,與 1.00.00 相加。10. 在數(shù)據(jù)庫設(shè)計中,將 E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于 。(分?jǐn)?shù): 1.00 )A. 需求分析階段B. 概

9、念設(shè)計階段C. 邏輯設(shè)計階段 VD. 物理設(shè)計階段解析:解析將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計出表,因此 屬于邏輯設(shè)計階段,答案為C。11. C 語言中,字符 (char) 型數(shù)據(jù)在微機內(nèi)存中的存儲形式是 。(分?jǐn)?shù): 1.00 )A. 反碼B. 補碼C. EBCDIC 碼D. ASCII 碼 V解析: 解析 ASCII 碼其他 3個是用來進(jìn)行數(shù)值處理的。12. 算法分析的目的是 。(分?jǐn)?shù): 2.50 )A. 找出數(shù)據(jù)結(jié)構(gòu)的合理性B. 找出算法中輸入和輸出之間的關(guān)系C. 分析算法的易懂性和可靠性D. 分析算法的效率以求改進(jìn) V解析: 解析 算法分析是指對一個

10、算法的運行時間和占用空間做定量的分析,計算相應(yīng)的數(shù)量級,并用時 間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí) 行效率。13. 下面 4 個選項中,均是不合法的用戶標(biāo)識符的選項是 。(分?jǐn)?shù): 1.00 )A. A P_0 doB. float la0_AC. b-a goto intVD. _123 temp int解析:解析合法的標(biāo)識符只能由字母、數(shù)字或下劃線組成。C選項中b-a出現(xiàn)非法字符“ -”;goto和int 均為關(guān)鍵字。故本題答案為C。14. 以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是(分?jǐn)?shù): 1.00 )A. 一個結(jié)構(gòu)化程序必須同時由順序

11、、分支、循環(huán)三種結(jié)構(gòu)組成B. 結(jié)構(gòu)化程序使用 goto 語句會更便捷C. 在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的VD. 由 3 種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題 解析:解析 結(jié)構(gòu)化程序設(shè)計由順序、分支和循環(huán) 3 種結(jié)構(gòu)組成,但不是必須在每個程序中都同時包含這 3 種結(jié)構(gòu),這 3 種基本結(jié)構(gòu)構(gòu)成的程序也可以解決大規(guī)模的問題。結(jié)構(gòu)化程序設(shè)計應(yīng)該盡量避免使用 goto 無條件轉(zhuǎn)向語句,這個語句會破壞結(jié)構(gòu)化程序的總體結(jié)構(gòu)。故選項A、B、D錯誤。C語言中,程序模塊化是利用函數(shù)來實現(xiàn)的。15. 有以下程序:#include < stdio.h >main()char c1="

12、;A", c2="Y" printf("%d, %d/n", c1, c2); 程序的輸出結(jié)果是 。(分?jǐn)?shù): 2.50 )A. 因輸出格式不合法,無正確輸出B. 65, 90C. A, YD. 65, 89 V解析:解析直接輸出A和Y的ASCII值,他們的ASCII值分別為65和89,因此正確答案為 D項。16. 有以下程序:#include < stdio.h >main() char c1, c2, c3, c4, c5, c6; scanf("%c% c% c%c",c1, c2, c3, c4);c5=g

13、etchar(); c6=getchar();putchar(c1); putchar(c2); printf("%c% c/n", c5, c6); 程序運行后,若從鍵盤輸入 (從第 1列開始 ): 123<回車>45678<回車> 則輸出結(jié)果是 (分?jǐn)?shù): 2.00 )A. 1267B. 1256C. 1278D. 1245 V解析: 解析 putchar(c1) 輸出 1, putchar(c2) 輸出 2, printf("%c% c/n", c5, c6) 輸出 45。17. 下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是 。(分

14、數(shù): 2.50 )A. 可封裝 VB. 自頂向下C. 模塊化D. 逐步求精解析: 解析 結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用go to 語句,因此本題答案為 A。18. 若有以下程序:#include < stdio.h > int *f(int *s,int *t) int *k;if(*s < *t) k=s; s=t; t=k; return s;main() int i=3,j=5, *p=&i, *q=&j,*r;r=f(p,q); printf("%d,%d,%d,%d,%d/n",i,j,*p,*q,

15、*r);則程序的輸岀結(jié)果是。(分?jǐn)?shù):2.00 )A. 3,5,5,3,5B. 3,5,3,5,5VC. 5,3,5,3,5D. 5,3,3,5,5解析:解析在主函數(shù)中分別給整型變量i、j和指針型變量p、q賦初值,并聲明指針變量r;調(diào)用f函數(shù),并將實參變量p和q的值傳遞給形參變量 s和t,而且f函數(shù)是指針型函數(shù),即函數(shù)的返回值是一個 地址。在f函數(shù)中,如果條件成立,則將指針變量s和t互換,并且將指針 s的地址返回主函數(shù)。最后輸出i,j,*p,*q,*r 的值,即3,5,3,5,5 。因此B選項正確。19. 在面向?qū)ο蠓椒ㄖ校枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。(分?jǐn)?shù):2.50)A. 屬性B.

16、事件C. 方法D. .類 V解析:解析類(class)描述的是具有相似屬性與操作的一組對象,具體對象是類的實例。20. 若已建立以下鏈表結(jié)構(gòu),指針p、s分別指向如圖所示結(jié)點:則不能將s所指結(jié)點插入到鏈表末尾的語句組是 。(分?jǐn)?shù):1.00 )A. p=p- > next:s- > next=p;p- > next=s; VB. s- > next="/0"p=p-> next;p- > next=s;C. p=p- > next;s- > next=p- > next;p- >next=s;D. p=(*p). ne

17、xt;(*s). next=(*p). next;(*p). next=s;解析:解析本題考查向鏈表中插入結(jié)點。 A選項中,執(zhí)行語句p=p- >next;后指針p指向data F所在的 結(jié)點。執(zhí)行語句s- >next=p ;后data F所在的結(jié)點移動到指針 s所指結(jié)點之后。執(zhí)行語句 p- >next=s ; 后指針s所指結(jié)點又回移到data F所在的結(jié)點之后,與題目要求不符,語句顯然是錯誤的。21. 邏輯模型是面向數(shù)據(jù)庫系統(tǒng)的模型,下面屬于邏輯模型的是 。(分?jǐn)?shù):1.00 )A. 關(guān)系模型VB. 謂詞模型C. 物理模型D. 實體一聯(lián)系模型解析:解析邏輯模型是面向數(shù)據(jù)庫系統(tǒng)的

18、模型,著重于在數(shù)據(jù)庫系統(tǒng)一級的實現(xiàn)。成熟并大量使用的邏 輯模型有層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P偷取?2. 以下敘述中正確的是。(分?jǐn)?shù):1.00 )A. if語句只能嵌套一層B. if子句和else子句中可以是任意的合法的 C語句 VC. 不能在else子句中再嵌套if語句D. 改變if-else語句的縮進(jìn)格式,會改變程序的執(zhí)行流程解析:解析A選項中,if語句的嵌套沒有規(guī)定層數(shù); C選項中,可以在else子句中再嵌套if語句;D 選項中,改變 if-else 語句的縮進(jìn)格式,不會改變程序的執(zhí)行流程,但需要注意 if 和 else 的配對問題。 因此B選項正確。23. 若希望下列的程序

19、運行后輸出 25,程序空白處的正確選項是 。main()int id=50, a=7, 4, 10, 5, 8;forj+=ai;printf("%d", j-40);(分?jǐn)?shù): 2.50 )A.i=1; i< 4; +iB.i=1; i< 3; +iC.i=4; i> 2; i-D.i=2; i< 4; +iV解析: 解析 要想使程序輸出 25,則 j-40=25 , j=65 ,而 j 初值是 50,所以填入 for 循環(huán)的語句,使引 用的數(shù)組元素累加 65-50=15即可。D選項中,i下標(biāo)從0開始,i=2指向第3個數(shù)50+a2=50+10=60,

20、繼 續(xù)循環(huán) 60+a3=60+5=65 ,此時 i=4 跳出,循環(huán)結(jié)束。24. 有以下程序:#include < stdio.h >main() FILE*fp;int i,a6=1,2,3,4,5,6;f=fopen("d2.dat","w+");for(i=0;i < 6;i+)fprintf(fp,"%d/n",ai);rewind(fp);for(i=0;i < 6;i+)fscanf(fp,"%d",a5-i);fclose(fp);for(i=0;i < 6;i+)prin

21、tf("%d,",ai);程序運行后的輸出結(jié)果是 。(分?jǐn)?shù): 1.00 )A. 1,2,3,4,5,6,B. 6,5,4,3,2,1,VC. 4,5,6,1,2,3,D. 1,2,3,3,2,1,解析: 解析 本題考查文件操作函數(shù) fprintf 和 rewind 函數(shù)。 rewind 函數(shù)將文件內(nèi)部的位置指針重新指向一個流(數(shù)據(jù)流/文件)的開頭,程序首先是將數(shù)組a的六個數(shù)寫入d2文件中,然后又將a數(shù)組從后往前覆蓋到d2中的內(nèi)容,所以結(jié)果為“ 6,5,4,3,2,1,”,選項 B正確。25. 有以下程序段:char ch;int k;ch="a"k=12

22、;printf("%c,%d,",ch,ch,k);printf("k=%d/n",k);已知字符 a 的 ASCII 十進(jìn)制代碼為 97,則執(zhí)行上述程序段后輸出結(jié)果是 。(分?jǐn)?shù): 2.00 )A. 因變量類型與格式描述符的類型不匹配輸出無定值B. 輸出項與格式描述符個數(shù)不符,輸出為零值或不定值C. a, 97, 12k=12D.a , 97, k=12 V解析:26. 將 E-R 圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為 。(分?jǐn)?shù): 1.00 )A. 屬性B. . 鍵C. 關(guān)系 VD. . 域解析:解析從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)

23、系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。所以選擇 C 選項。27. 以下選項中,能表示邏輯值“假”的是 。(分?jǐn)?shù): 1.00 )A. 1B. 0.000001C. 0 VD. 100.0解析: 解析 本題考查邏輯值假,在程序中非 0字符表示邏輯真, 0 表示邏輯假,所以答案選擇C。28. 在16位編譯系統(tǒng)上,若有定義“ int a=10, 20, 30, *p=&a;”,當(dāng)執(zhí)行“ p+; ”后,下列說法錯誤的是。(分?jǐn)?shù): 2.50 )A. p 向高地址移了一個字節(jié)VB. p 向高地址移了一個存儲單元C. p 向高地址移了兩個字節(jié)D. p 與 a+1 等價解析:解析因為

24、p是整型的指針變量,因此其移動一個位置即兩個字節(jié),故選擇A選項。29. 下列敘述中正確的是 。(分?jǐn)?shù): 2.50 )A. 在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化B. 在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化C. 在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化VD. 在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化解析: 解析 棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由 棧頂指針的變化來完成,因此本題答案C。30. 為了避免在嵌套的if-else語句中產(chǎn)生二義性,C語言規(guī)定與else子句配對是。(分?jǐn)?shù): 1.0

25、0 )A. 與其在同一行上的 if 子句B. 在其之后最近的不帶 else 的 if 子句C. 與其縮排位置相同的 if 子句D. 在其之前最近的不帶 else 的同層 if 子句 V解析: 解析 注意 if 與 else 的配對關(guān)系。原則是 if 總是與它上面最近的、未配對的 else 配對,因此答 案為D選項。31. 循環(huán)隊列的存儲空間為 Q(1:50) ,初始狀態(tài)為 front=rear=50 。經(jīng)過一系列正常的入隊與退隊操作后,front=rear=25 ,此后又正常地插入了一個元素,則循環(huán)隊列中的元素個數(shù)為 。(分?jǐn)?shù): 1.00 )A. 51B. 50C. 49D. 1 V解析: 解析 循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),用隊尾指針 rear 指向隊列中的隊尾元素,用排頭指 針 front 指向排頭元素的前一個位置。 入隊運算時, 隊尾指針進(jìn) 1( 即 rear+1) ,然后在 rear 指針指向的位 置插入新元素。當(dāng) front=rear=25 時可知隊列空或者隊列滿,此后又正常地插入了一個元素說明之前隊列 為空,所以插入操作之后隊列里只有一個元素。故D 選項正確。32. 關(guān)于“ while( 條件表達(dá)式 ) 循環(huán)體”,以

溫馨提示

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

評論

0/150

提交評論