![二級(jí)C語言筆試-396_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/99ffb8d2-cfb1-4c71-a6d6-ef6c6850872f/99ffb8d2-cfb1-4c71-a6d6-ef6c6850872f1.gif)
![二級(jí)C語言筆試-396_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/99ffb8d2-cfb1-4c71-a6d6-ef6c6850872f/99ffb8d2-cfb1-4c71-a6d6-ef6c6850872f2.gif)
![二級(jí)C語言筆試-396_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/99ffb8d2-cfb1-4c71-a6d6-ef6c6850872f/99ffb8d2-cfb1-4c71-a6d6-ef6c6850872f3.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、二級(jí) C 語言筆試 -396( 總分: 100.00 ,做題時(shí)間: 90 分鐘 )一、選擇題 (總題數(shù): 40,分?jǐn)?shù): 40.00)1. 下列描述中正確的是A)算法是指對(duì)解題方案準(zhǔn)確而完整的描述B)算法的有窮性是指算法程序的長度是有限的C)算法是否有效與擁有的情報(bào)無關(guān)D)算法的基本特征有可行性、確定性和有窮性 (分?jǐn)?shù): 1.00 )A. VB.C.D.解析: 解析 算法是指對(duì)解題方案準(zhǔn)確而完整的描述。算法具有 4 個(gè)特征:可行性、確定性、有窮性和擁 有足夠的情報(bào)。有窮性指算法必須在有限時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。當(dāng)算法 擁有足夠的情報(bào)時(shí),此算法才是有效的;而當(dāng)提供的情報(bào)不
2、夠時(shí),算法可能無效。2. 下列數(shù)據(jù)結(jié)構(gòu)中屬于非線性結(jié)構(gòu)的是A)隊(duì)列 B) 線性表 C) 二叉樹 D) 棧(分?jǐn)?shù): 1.00 )A.B.C. VD.解析: 解析 線性結(jié)構(gòu)滿足兩個(gè)條件:有且只有一個(gè)根結(jié)點(diǎn);每個(gè)結(jié)點(diǎn)最多只有一個(gè)前件,也最多只有一 個(gè)后件。棧、隊(duì)列、線性表都屬于線性結(jié)構(gòu),而二叉樹是一種非線性結(jié)構(gòu),因?yàn)槌~子結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn) 都有兩個(gè)后件,不滿足線性結(jié)構(gòu)的條件。3.4個(gè)元素A、B、C、D依次入棧,入棧過程中允許棧頂元素出棧,假設(shè)某一時(shí)刻棧的狀態(tài)是C(棧頂)、B、A(棧底),則不可能的出棧順序是A)D 、C、B、A B) C 、B、D、AC) C 、A、D、B D) C 、D、B、A(分
3、數(shù): 1.00 )A.B.C. VD.解析:解析棧的特點(diǎn)是先進(jìn)后出,所以后入棧的最先出棧。在棧的狀態(tài)是C(棧頂)、B、A(棧底)時(shí),D未入棧,棧頂元素可以出棧,但A不可能比B先出棧,所以選項(xiàng) C)錯(cuò)誤。4. 下列敘述中正確的是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ǔ)空間(分?jǐn)?shù): 1.00 )A. VB.C.D.解析:解析 順序存儲(chǔ)方式是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里,結(jié)點(diǎn)之間的關(guān)系由存儲(chǔ)單元
4、的鄰接關(guān)系來體現(xiàn)。其優(yōu)點(diǎn)是占用最少的存儲(chǔ)空間,所以選項(xiàng)D)錯(cuò)誤。順序存儲(chǔ)結(jié)構(gòu)可以存儲(chǔ)如二叉樹這樣的非線性結(jié)構(gòu),所以選項(xiàng)B)錯(cuò)誤。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也可以存儲(chǔ)線性表,所以選項(xiàng)C)錯(cuò)誤。5. 下面概念中,不屬于面向?qū)ο蠓椒ǖ氖茿)對(duì)象 B) 繼承 C) 類 D) 過程調(diào)用(分?jǐn)?shù): 1.00 )A.B.C.D. V解析: 解析 類是指具有共同屬性、共同方法的對(duì)象的集合,所以類是對(duì)象的抽象,對(duì)象是對(duì)應(yīng)類的一個(gè)實(shí)例。繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。所以選項(xiàng)A)、B)、C)屬于面向?qū)ο蠓椒ǎx項(xiàng) D )屬于面向過程方法。6. 下列選項(xiàng)中屬于軟件生命周期開發(fā)階段任務(wù)的是A)可行性研究 B
5、) 需求分析 C) 詳細(xì)設(shè)計(jì) D) 軟件維護(hù)(分?jǐn)?shù): 1.00 )A.B.C. VD.解析: 解析 軟件生命周期可分為軟件定義、軟件開發(fā)和軟件運(yùn)行維護(hù) 3個(gè)階段。軟件開發(fā)期包括概要設(shè) 計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試 4 個(gè)階段。7. 軟件設(shè)計(jì)中衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是A)抽象和信息隱蔽B)局部化和封裝化C)內(nèi)聚性和耦合性D)激活機(jī)制和控制方法(分?jǐn)?shù): 1.00 )A.B.C. VD.解析: 解析 耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中, 各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊 之間的耦合性和提高模塊內(nèi)的內(nèi)
6、聚性,有利于提高模塊的獨(dú)立性。8. 下列不屬于過程設(shè)計(jì)工具中圖形工具的是A) N-S B) PAD C) 程序流程圖 D) PDL(分?jǐn)?shù):1.00 )A.B.C.D. V解析:解析常用的過程設(shè)計(jì)工具有圖形工具 (程序流程圖、N-S圖、PAD圖、HIPO卜表格工具(判定表)、 語言工具(PDL)。9. 下列敘述中錯(cuò)誤的是A)數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的核心B)數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員3部分組成C)數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段D)數(shù)據(jù)庫中的數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序(分?jǐn)?shù):1.00 )A.B. VC.D.解析:解析數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,它位于用戶和操作系
7、統(tǒng)之間,屬于系統(tǒng)軟件。數(shù)據(jù)庫 系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺(tái)和軟件平臺(tái)5部分組成。數(shù)據(jù)庫技術(shù)的發(fā)展經(jīng)歷了 3個(gè)階段,人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)庫中的數(shù)據(jù) 獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。10. 如圖所示,兩個(gè)關(guān)系 R1和R2:則由關(guān)系R1和R2得到關(guān)系R3的操作是A)笛卡兒積B)連接C)交D)除(分?jǐn)?shù):1.00 )A.B. VC.D.解析:解析連接運(yùn)算也稱9連接,是對(duì)兩個(gè)關(guān)系進(jìn)行運(yùn)算,其意義是從兩個(gè)關(guān)系的笛卡兒積中選擇滿 足給定屬性間一定條件的那些元組。本題關(guān)系R3為關(guān)系R1中B屬性和關(guān)系R2中D屬性相等連接而成。11. 以下可
8、用作C語言用戶標(biāo)識(shí)符的是A) void,define,WORD B) a3_b3,_123,IFC) FOR,-abc,Case D) 2a,Do,Sizeof(分?jǐn)?shù):1.00 )A.B. VC.D.解析:解析C語言規(guī)定用戶標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,且第一個(gè)字符必須是字母或下劃線,可 見選項(xiàng)C),D)是錯(cuò)誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識(shí)符,而選項(xiàng) A)中的void正是C語言 的關(guān)鍵字。12. 以下敘述中錯(cuò)誤的是A)C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的B)用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行C)通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行D)在沒有安裝C語言集成開
9、發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件(分?jǐn)?shù):1.00)A.B.C.D. V解析:解析C語言的可執(zhí)行程序是由一系列機(jī)器指令組成的,用C語言編寫的源程序必須經(jīng)過編譯生成二進(jìn)制目標(biāo)代碼,再經(jīng)過連接才能運(yùn)行,并且可以脫離C語言集成開發(fā)環(huán)境。故答案為D)。13. 以下4個(gè)選項(xiàng)中,不能看作一條語句的是A) ; B) a=5,b=2.5,c=3.6;C) if(b!=5)x=2;y=6; D) return j;(分?jǐn)?shù):1.00 )A.B.C. VD.C)為兩條語句解析:解析C語言規(guī)定每個(gè)語句以;(分號(hào))結(jié)束,因此選項(xiàng)14.以下不能正確計(jì)算代數(shù)式值的C語言表達(dá)式是A) 1/3*sin(1/2)*
10、sin(1/2) B) sin(0.5)*sin(0.5)/3C) pow(sin(0.5),2)/3 D) 1/3.0*pow(sin(1.0/2),2)(分?jǐn)?shù):1.00 )A. VB.C.D.解析:解析本題考查的是C語言表達(dá)式。如果算術(shù)運(yùn)算符“ /”中參與運(yùn)算的變量都是整型變量,則“/”表示整除運(yùn)算,所以“1/3 ”的值應(yīng)為 0,故選項(xiàng)A)的表達(dá)式值為0,而事實(shí)上代數(shù)式的值并不為 0,所以 選項(xiàng)A)不能正確計(jì)算題目所要求的代數(shù)式。15. 若有說明:int *p ,m=5 n;,以下正確的程序段是A) p=&n ; scanf("%d",&p); B) p
11、=&n ; scanf("%d",*p)C) scanf("%d" ,&n);*p=n; D) p=&n;*p=m;(分?jǐn)?shù):1.00 )A.B.C.D. V解析:解析“&是求址運(yùn)算符,“ *”是指變量說明符。選項(xiàng)A)、B)應(yīng)改為scanf("%d" , p);選項(xiàng)C)中指針變量 p 未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。16. 以下程序的輸出結(jié)果是main()int a=20;printf("%d,%o,%x/n",a,a,a);A) 20, 024,
12、0x14 B) 20, 24, 14C) 20, 0x14, 024 D) 20, 20, 20(分?jǐn)?shù): 1.00 )A.B. VC.D.解析: 解析 本題的考查點(diǎn)是不同格式的數(shù)據(jù)輸出。 printf 函數(shù)對(duì)不同類型的數(shù)據(jù)用不同的格式字符,“qod”是以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào));“%0以八進(jìn)制無符號(hào)形式輸出整數(shù)(不包括前導(dǎo)符0) X以十六進(jìn)制無符號(hào)形式輸出整數(shù)(不包括前導(dǎo)符Ox)。17. 下面程序的運(yùn)行結(jié)果是main()int y=5,x=14; y=(x=3*y,x+6),x-1);printf("x=%d,y=%d",x,y);A) x=27,y=2
13、7 B) x=12,y=13C) x=15 , y=14 D) x=y=27(分?jǐn)?shù): 1.00 )A.B.C. VD.解析: 解析 本題考查的是逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個(gè)逗號(hào)表達(dá)式的值就是最后一個(gè)表達(dá)式N的值。表達(dá)式(x=3*y , x+6)中,x=15。表達(dá)式 y=x-1=14 。18. 設(shè)變量 x 和 y 均已正確定義并賦值。以下 if 語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是A) if(x+); B) if(x> y&&y!=0);C) if(x> 0) x- D) if(y < 0);els
14、e y+ ; else x+;分?jǐn)?shù): 1.00 )A.B.C. VD.解析:解析本題考查的是if語句。if是C語言關(guān)鍵字,表達(dá)式兩側(cè)的圓括號(hào)不可少,最后是一條語句 或是用花括號(hào)括起來的一組語句。選項(xiàng)A)和B)是在表達(dá)式后跟了一條空語句,選項(xiàng)D)是在表達(dá)式后跟了一組空語句,選項(xiàng) C)中x-是表達(dá)式而不是語句,所以在編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤信息,在x-后面加上“;”號(hào)就對(duì)了。19. 請(qǐng)閱讀以下程序:#include < stdio.h >main()int x=1,y=0,a=0,b=0;switch(x)case 1 :switch(y)case 0:a+ ; break;case 2 :a
15、+, b+; break ; printf("a=%d,b=%d/n",a,b);上面程序運(yùn)行后的輸出結(jié)果是A) a=2,b=1 B) a=2,b=1 C) a=1,b=0 D) a=2,b=2(分?jǐn)?shù): 1.00 )A. VB.C.D.解析: 解析 考查 switch 語句的使用, switch 語句的執(zhí)行過程為:進(jìn)入 switch 結(jié)構(gòu)后,對(duì)條件表達(dá)式 進(jìn)行運(yùn)算,然后從上至下去尋找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行 switch結(jié)構(gòu)中后面的各語句,直到遇到 break 語句,則跳出 switch 語句,如果各 case 都不匹配時(shí),則執(zhí)行 default
16、后面的 語句。20. 以下敘述中正確的是A) 調(diào)用 printf 函數(shù)時(shí),必須要有輸出項(xiàng)B) 使用 putchar 函數(shù)時(shí),必須在之前包含頭文件 stdio.hC) 在C語言中,整數(shù)可以用十二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出D) 調(diào)用getchar函數(shù)讀入字符時(shí),可以從鍵盤上輸入字符所對(duì)應(yīng)的ASCH碼(分?jǐn)?shù): 1.00 )A.B. VC.D.解析: 解析 本題考查的是標(biāo)準(zhǔn)輸入輸出函數(shù)。在使用標(biāo)準(zhǔn)輸入輸出庫函數(shù) ( 除了 printf 和 scanf) 前, 必須要用預(yù)編譯命令“ #include ”將頭文件“ stdio.h ”包括到用戶源文件中。調(diào)用 printf 函數(shù)時(shí)可以沒 有輸出項(xiàng),比
17、如printf("") 是允許的。C語言中整數(shù)的輸出形式?jīng)]有十二進(jìn)制的形式。getchar函數(shù)讀人字符時(shí)可以得到第一個(gè)輸入字符的 ASCH碼,無法通過輸入相應(yīng)字符的 ASCH得到該字符。21. 有以下語句: char b8 ; int c ;,則正確的輸入語句是A) scanf("%s%d" , &b,&c); B) scanf("%s%d",&b,c);C) scanf("%s%d",b,c); D) scanf("%s%d",b,&c);(分?jǐn)?shù): 1.00 )
18、A.B.C.D. V解析:解析scanf函數(shù)常用的格式控制中“ s”代表輸入的是字符串,“ d”代表輸入帶符號(hào)的十進(jìn)制整 型數(shù),根據(jù)語句 char b8 ;int c ;可確定正確的輸入語句是選項(xiàng)D)。22. 有以下程序:#include < stdio.h >main()int a=1,2,3,4,y,*p=&a3;-p; y=*p;printf("y=%d/n",y);程序的運(yùn)行結(jié)果是A) y=0 B) y=1 C) y=2 D) y=3(分?jǐn)?shù): 1.00 )A.B.C.D. V解析: 解析 在程序中指針變量 p 初始指向 a3 ,執(zhí)行 p 減 1
19、后, p 指向 a2 ,語句 y=*p 的作用是把 a2 的值賦給變量y,所以輸出為y=3。23. 若有以下說明和語句,對(duì) c 數(shù)組元素正確引用是int c45, (*cp)5;cp=c;A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)(分?jǐn)?shù): 1.00 )A.B.C.D. V解析: 解析 本題的考查點(diǎn)是數(shù)組元素的引用。 cp=c 這個(gè)語句是將數(shù)組 c 的首行元素地址賦給了指針數(shù)組cp。選項(xiàng)A), cp+1是指將數(shù)組c的首行地址加1,即為第2行地址;選項(xiàng)B), *(cp+3)是地址,等于數(shù) 組c的首地址加3的那個(gè)內(nèi)存單元的內(nèi)容,不是對(duì)數(shù)組元素的引用;選項(xiàng)
20、C), *(cp+1) +3是地址,等于數(shù) 組c的首地址加1的那個(gè)內(nèi)存單元中存放的值加 3,不是對(duì)數(shù)組元素的引用。24. 有以下程序:#include < string.h >main()char p20='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) 9 B) 6 C) 11 D) 7分?jǐn)?shù): 1.
21、00 )A.B. VC.D.解析: 解析 本題考查的是用于字符串處理的函數(shù)。題目中首先通過 strcat(p , r) 將 r 所指字符串的內(nèi) 容連接到 p 所指的字符串后面, p20='a','b','c','d','a','b','c','d','e'。然后通過 p+strlen(q)在數(shù)組元素 p0 地址的基礎(chǔ)上向后移動(dòng) 3 位,再將 q 所指字符串的內(nèi)容復(fù)制到 p 所指的存儲(chǔ)空間中,從字 符“d”往后全部覆蓋,p20='a',
22、'b' , 'c' , 'a' , 'b' , 'c'。在輸出語句中strlen(p)是求字符串的長度,值為 6。25. 以下程序段中的變量已正確定義:for(i=0 ; i v 4 ; i+ , i+)for(k=1;k v 3;k+);printf("*");程序段的輸出結(jié)果是A)*B)C)*D)(分?jǐn)?shù): 1.00 )A.B.C.D. V解析: 解析 本題考察 for 循環(huán)語句,注意第二個(gè) for 語句的后面有一個(gè)分號(hào),即 printf 函數(shù)不屬于循 環(huán)體,無論循環(huán)執(zhí)行多少次, printf
23、( “*” )語句只執(zhí)行一次。因此,本題的正確答案為D)。26. 以下程序運(yùn)行后的輸出結(jié)果是main()char ch="uvwxyz" , *pc;pc=ch;printf("%c/n" , *(pc+5);A) z B) 0 C) 元素 ch5 地址 D) 字符 y 的地址(分?jǐn)?shù): 1.00 )A. VB.C.D.解析:解析表達(dá)式*(pc+5)先將指針向后移動(dòng)5個(gè)存儲(chǔ)單元,指向ch5,再取出其中的值。其值為字 符 z 。27. 有以下程序:#include v stdio.h >void fun(char *p)+p;printf("
24、%s/n", *p) ;main()char *a="Morning","Afternoon","Evening","Night"fun(a) ;程序運(yùn)行后的輸出結(jié)果是:A) Afternoon B) fternoon C) Morning D) orning(分?jǐn)?shù): 1.00 )A. VB.C.D.解析: 解析 語句 void fun(char *p) 中的形參是一個(gè)指向指針的指針,在調(diào)用函數(shù) fun(a) 后,指針數(shù) 組a加1,則指向了數(shù)組的第 2個(gè)字符串“ Aftemoon”的'a'
25、的地址。28. 以下程序運(yùn)行后的輸出結(jié)果是void f(int n,int *r)int r1=0;if(n%3=0) r1=n/3;else if(n%5=0) r1=n/5;else f(-n, &r1) ;*r=r1 ;main()int m=7,r;f(m , &r) ;printf("%d/n",r) ;A) 2 B) 1 C) 3 D) 0(分?jǐn)?shù): 1.00 )A. VB.C.D.解析:解析參數(shù)r的傳遞是地址傳遞,函數(shù)調(diào)用會(huì)改變其值。函數(shù)f的功能是:判斷n是否為3或5的倍數(shù),如果是,則將指針r所指的內(nèi)存空間賦值為n除以3或5的商;否則n遞減,直到
26、它可以被 3或5整除。初始時(shí)調(diào)用函數(shù)f(7,&r) ;n=7,執(zhí)行else子句,調(diào)用f(6,&r1);后n=6,執(zhí)行語句if(n%3=0) r1=n/3 ;, 此后執(zhí)行語句 *r=r1 ;。所以 r=6/3=2 。29. 有以下程序:main() int a32=0,(*ptr)2,i,j; for(i=0 ; i v 2 ; i+) ptr=a+i; scanf("%d",ptr);ptr+; for(i=0 ; i < 3 ; i+)for(j=0;j v 2;j+) printf("%2d",aij);printf("
27、;/n") ;若運(yùn)行時(shí)輸入:1 23 v回車,則輸出結(jié)果是A) 編譯錯(cuò)誤2 00 0B) 1 02 00 0C) 1 22 03 0D) 1 0(分?jǐn)?shù): 1.00 )A.B. VC.D.解析: 解析 首先二維數(shù)組 a 中的元素都初始化為 0,其次定義了指向數(shù)組的指針 ptr ,并且依次將 ptr 指向二維數(shù)組 a 中的各行, 循環(huán)語句 for(i=0 ; i v 2; i+) 等價(jià)于: scanf("%d" , a+0) ; scanf("%d" , a+1) ; 其中 a+i 即是數(shù)組 ai 的首地址,也是元素 ai0 的地址,故以上語句讀入
28、兩個(gè)整數(shù),分別存入二維數(shù) 組 a 的第 1 列中,在輸入 1 2 3 后,a=1 , 0 , 2 , 0 , 0 , 0。30. 有以下程序:#include v stdio.h >void fun(char *s)while(*s)if(*s%2=0)printf("%c", *s) ;s+;main()char a="good" ;fun(a) ; printf("/n") ;注意:字母a的ASQ碼值為97,程序運(yùn)行后的輸出結(jié)果是A) d B) go C) god D) good(分?jǐn)?shù): 1.00 )A. VB.C.D.解析
29、:解析fun函數(shù)的功能是輸出字符串中ASQ碼能被2整除的字符,g的ASQ碼為103,0的ASQ碼為111,d的ASCI碼為100,只有d滿足。因此,本題答案為A)。31. 有以下程序:main()int i,s=0,t=1,2,3,4,5,6,7,8,9;for(i=0;1 v 9;i+=2) s+=*(t+i);printf("%d/n",s);程序執(zhí)行后的輸出結(jié)果是A) 45 B) 20 C) 25 D) 36(分?jǐn)?shù): 1.00 )A.B.C. VD.解析:解析統(tǒng)計(jì)19九個(gè)數(shù)中的奇數(shù)和,此題重點(diǎn)考查指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址
30、。因此 *(t+i) 代表數(shù)組的第 i+1 個(gè)元素。程序運(yùn)行后的結(jié)果是 1+3+5+7+9=25。32. 當(dāng)用“#define F 37.5f”定義后,下列敘述正確的是A) F 是 fl0at 型數(shù) B) F 是 char 型數(shù)C) F 無類型 D) F 是字符串(分?jǐn)?shù): 1.00 )A.B.C.D. V解析: 解析 字符替換定義格式為: #define 標(biāo)識(shí)符 ( 形參表 ) 形參表達(dá)式。本題中 F 是代表形參表達(dá)式的 標(biāo)識(shí)符 ( 字符串 ) 。33. 有以下程序 (函數(shù) fun 只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作 ):#include v stdio.h >v0id fun (int *a
31、,int n)int i,j ,k,t;f0r(i=0;i v n-1 ;i+=2)k=i;f0r(j=i;j v n;j+=2) if(aj > ak) k=j;t=ai;ai=ak;ak=t;main()int aa10=1,2,3,4,5,6,7,i;fun(aa,7) ;f0r(i=0;i v 7;i+) printf("%d,",aai);printf("/n") ;程序運(yùn)行后的輸出結(jié)果是A) 7,2,5,4,3,6,1, B) 1,6,3,4,5,2,7,C) 7,6,5,4,3,2,l, D) 1,7,3,5,6,2,1,(分?jǐn)?shù): 1
32、.00 )A. VB.C.D.解析:解析由函數(shù)fun(int *a , int n)中語句if(aj >ak)k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對(duì)數(shù)組 a 中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序, 即對(duì) a0 , a2 , a4 , a6 中的數(shù)據(jù) 1, 3, 5, 7 進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答 案為 A)。34. 閱讀下列程序,則運(yùn)行結(jié)果為#include "stdio.h"fun()static int x=3;x+;return x ;main() int i,x;for(i=0 ; i v
33、3 ; i+) x=fun(); printf("%d/n" , x) ; A) 3 B) 4 C) 5 D) 6(分?jǐn)?shù): 1.00 )A.B.C.D. V解析: 解析 在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久的存儲(chǔ)單元,即使退 出函數(shù)以后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來的存儲(chǔ)單元,靜態(tài)局部變量的初值是在編譯 的時(shí)候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)3次調(diào)用函數(shù)fun() ,3次對(duì)靜態(tài)變量x進(jìn)行操作, x 的值應(yīng)依次為 4, 5, 6。35. 下列程序的輸出結(jié)果是#include "stdio.h"#def
34、ine N 3 #define M 3 void fun(int aMN) printf("%d/n" , *(a1+2);main()int aMN;int i , j ;for(i=0 ; i v M; i+)for(j=0 ; j v N; j+) aij=i+j-(i-j);fun(a) ;A) 3 B) 4 C) 5 D) 6(分?jǐn)?shù): 1.00 )A.B. VC.D.解析:解析若有以下定義:int a3 4, i , j ;,且Owi < 3, 0<j < 4,則可以有以下幾種方式來引用數(shù)組中的第 i 行,第 j 列的元素:aij, *(ai+j
35、), *(*(a+i)+j),(*(a+i)j, *(&aOO+4*i+j)。賦值語句完成后數(shù)組中數(shù)據(jù)如下:O 2 4O 2 4O 2 4因?yàn)?fun() 函數(shù)打印的是第 1行第 2列的數(shù)據(jù),所以為 4。36. 有以下程序段:typedef struct NODEint num; struct NODE *next;OLD;以下敘述中正確的是A) 以上的說明形式非法 B) NODE 是一個(gè)結(jié)構(gòu)體類型C) OLD 是一個(gè)結(jié)構(gòu)體類型 D) OLD 是一個(gè)結(jié)構(gòu)體變量(分?jǐn)?shù): 1.OO )A.B.C. VD.解析: 解析 本題考查的是結(jié)構(gòu)體的定義。 typedef 關(guān)鍵字用于聲明一個(gè)新的類型名
36、代替已有的類型名。 本題中如果沒有用 typedef 進(jìn)行定義,則 struct NODE 為結(jié)構(gòu)體類型,現(xiàn)在用 typedef 定義后,相當(dāng)于用 OLD弋表了 struct NODE這一結(jié)構(gòu)體類型,故 OLD為結(jié)構(gòu)體類型。37. 有以下程序:struct Sint n;int a2O;void f(int *a, int n)int i ;for(i=0;i v n-1;i+)ai+=i;main()int i;struct S s=10,12,3,1,6,8,7,5,4 ,10,9;f(s a, sn) ;for(i=0;i v s.n;i+)printf("%d,",
37、s.ai);程序運(yùn)行后的輸出結(jié)果是A) 2,4,3,9,12,12,11,11,18,9, B) 3,4,2,7,9,8,6,5,11,10,C) 2,3,1,6,8,7,5,4,10,9, D) 1,2,3,6,8,7,5,4,10,9,(分?jǐn)?shù): 1.00 )A. VB.C.D.解析: 解析 本題考查的是結(jié)構(gòu)體成員的引用。在主函數(shù) main() 中定義了一個(gè)整型變量 i 和一個(gè)結(jié)構(gòu)體 變量s。f()函數(shù)中,通過指針 a來引用數(shù)組中的元素;通過 for循環(huán)語句將數(shù)組中除最后一個(gè)元素外的其 他元素(由條件i v n-1決定的)分別加上由0開始的遞增數(shù)據(jù)(即0、1、28),所以最后的輸出結(jié)果為2,
38、4, 3, 9, 12, 12, 11 , 11 , 18, 9,。38. 下列選項(xiàng)中,能夠滿足“若字符串si等于字符串S2,則執(zhí)行ST要求的是A) if(strcmp(s2,s1)=0) ST; B) if(s1=s2) ST;C) if(strcpy(s1,s2)=1) ST; D) if(s1-s2=0) ST;(分?jǐn)?shù): 1.00 )A. VB.C.D.解析:解析函數(shù)strcmp(s2 , si)的作用是比較字符串的大小,函數(shù)strcpy(s1 , s2)的作用是進(jìn)行字符串復(fù)制,所以選擇選項(xiàng) A)。B)和D)都是比較字符串si與s2的地址是否一致而不是比較字符串內(nèi)容是否一 致。39. 有
39、以下程序:struct STUchar namei0;int num; float TotalScore;void f(struct STU *p)struct STU s2="SunDan",20044 ,550,"Penghua",20045 ,537, *q=s;+p; +q; *p=*q ;main()struct STU s3="YangSan",2004i,703,"LiSiGuo",20042,580;f(s) ;printf("%s %d %3.0f/n",,si.
40、num,si.TotalScore);程序運(yùn)行后的輸出結(jié)果是A) SunDan 20044 550 B) Penghua 20045 537C) LiSiGuo 20042 580 D) SunDan 2004i 703(分?jǐn)?shù): i.00 )A.B. VC.D.解析:解析本題考查的是結(jié)構(gòu)體。本程序?qū)⒔Y(jié)構(gòu)體數(shù)組s的首地址傳遞給了結(jié)構(gòu)體指針變量 p,并在函數(shù)f中改變了指針變量p所指向的第2個(gè)結(jié)構(gòu)體中的成員變量,這一改變,也就是改變了主函數(shù)中s1的成員變量,故程序輸出的值為 Penghua 20045 537 。40. 下面程序段的輸出為#include "stdio.h"mai
41、n()printf("%d/n",i2 vv 2);A) 0 B) 47 C) 48 D) 24(分?jǐn)?shù): 1.00 )A.B.C. VD.解析:解析本題考查位運(yùn)算的運(yùn)算原理。VV為左移運(yùn)算符,運(yùn)算符的左邊是移位對(duì)象;右邊是整型表 達(dá)式,代表左移的位數(shù),左移時(shí),右端 ( 低位) 補(bǔ) 0;左端 (高位 )移出的部分舍棄。二、填空題 (總題數(shù): 15,分?jǐn)?shù): 60.00)41. 某二叉樹有 6 個(gè)度為 2 的結(jié)點(diǎn)以及 4 個(gè)度為 1的結(jié)點(diǎn),則該二叉樹中共有 1 個(gè)結(jié)點(diǎn)。(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案: 17)解析: 解析 由二叉樹的定義可知,在二叉樹中,度為 0
42、的結(jié)點(diǎn)數(shù)是度為 2 的結(jié)點(diǎn)數(shù)加 1,故二叉樹中結(jié) 點(diǎn)數(shù)的總和為度為 0 的結(jié)點(diǎn)數(shù)、度為 1 的結(jié)點(diǎn)數(shù)及度為 2的結(jié)點(diǎn)數(shù) 3 者相加,得出結(jié)果為 17個(gè)結(jié)點(diǎn)。42. 設(shè)某循環(huán)隊(duì)列的容量為 60,頭指針 front=10( 指向隊(duì)頭元素的前一位置 ) ,尾指針 rear=29( 指向隊(duì)尾元 素) ,則該循環(huán)隊(duì)列中共有 1 個(gè)元素。(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案: 19)解析:解析當(dāng)front < rear時(shí),循環(huán)隊(duì)列中元素的個(gè)數(shù)為rear-front ,當(dāng)front > rear,循環(huán)隊(duì)列中元素的個(gè)數(shù)為N(N為循環(huán)隊(duì)列容量)-front+rear。此題中front=10
43、 > rear=29,因此該循環(huán)隊(duì)列中共有29-10=19 個(gè)元素。43. 若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試法和 1 測(cè)試法。(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案:黑盒)解析: 解析 按照功能劃分,軟件測(cè)試分為白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè) 試,主要有邏輯覆蓋和基本路徑測(cè)試等;黑盒測(cè)試方法又稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,主要有等價(jià)類劃分 法、邊界值分析法、錯(cuò)誤推測(cè)法等。44. 一個(gè)工人可管理多個(gè)設(shè)備,而一個(gè)設(shè)備只被一個(gè)工人管理,則實(shí)體“工人”與實(shí)體“設(shè)備”之間存在1的關(guān)系。(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案:一對(duì)多或 1:n )解析:
44、 解析 實(shí)體間的聯(lián)系有一對(duì)一、一對(duì)多、多對(duì)多 3 種。本題中一個(gè)工人可以管理多個(gè)設(shè)備,一個(gè)設(shè) 備只被一個(gè)工人管理,所以是一對(duì)多的關(guān)系。45. 數(shù)據(jù)庫設(shè)計(jì)分為 6 個(gè)設(shè)計(jì)階段:需求分析階段、 1、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和 維護(hù)階段。(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案:概念設(shè)計(jì)階段) 解析: 解析 數(shù)據(jù)庫設(shè)計(jì)分為 6個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階 段、實(shí)施階段及數(shù)據(jù)庫運(yùn)行和維護(hù)階段。46. 設(shè)變量已正確定義為整型,則表達(dá)式n=i=12 , +i , i+ 的值為 1 。(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案: 13)解析:解
45、析本題考查的是C語言逗號(hào)表達(dá)式的相關(guān)知識(shí)。程序在計(jì)算逗號(hào)表達(dá)式時(shí),從左到右計(jì)算由逗 號(hào)分隔的各表達(dá)式的值,整個(gè)逗號(hào)表達(dá)式的值等于其中的最后一個(gè)表達(dá)式的值。本題中,首先i 被賦值為12,再自加 1,最后 i+ 的值計(jì)算為 13。47. 以下程序運(yùn)行后的輸出結(jié)果是 。main()int a=3,b=4,c=5,t=99;if(b < a&&a< c)t=a;a=c;c=t;if(a < c&&b< c)t=b;b=a;a=t;printf("%d %d %d/n",a,b,c);(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答
46、案: 4 5 99 )解析:解析本題考查的是條件判斷語句。本題需特別注意的是“;”的問題,不能把“ t=a ; a=c; c=t ; ”誤認(rèn)為是第一個(gè)if的語句,實(shí)際上,只有“ t=a ; ”才是第一個(gè)if的語句。所以判斷第一個(gè)if語句的表達(dá)式不成立后,執(zhí)行的是“ a=c;c=t;”,此時(shí)a=5,c=99。然后判斷第2個(gè)if語句的條件表達(dá)式,表達(dá)式成立,執(zhí)行后面的 3 個(gè)語句,讓 a, b 的值進(jìn)行交換,最后輸出a、b、c 分別為 4、5 和 99。48. 以下程序的輸出結(jié)果是 。#include < string.h >main()printf("%d/n"
47、,strlen("IBM/n012/1/");(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案: 9)解析: 解析 本題考查的是字符串長度。本題中的字符是: 'I' 、'B' 、'M' 、'/n' 、'0' 、'1' 、'2' 、'/1' 、 '/' 和最后一個(gè)字符串結(jié)束標(biāo)記 '/0' ,由于 strlen() 求的是字符串的實(shí)際長度,不包括 '/0' ,所以字符串 長度為 9。49. 以下程序的輸出結(jié)
48、果是 。#include< stdio.h >#include< string.h>char* fun( char *t)char *p=t;return(p+strlen(t)/2);main()char *str="abcdefgh"str=fun(str) ;puts(str) ;(分?jǐn)?shù): 4.00 )填空項(xiàng) 1: (正確答案: efgh )解析: 解析 程序從 main 函數(shù)開始執(zhí)行, 首先執(zhí)行的函數(shù)是 str=fun(str) ;,由程序可知 str="abcdefgh" , 傳遞到 char *t, char*p=t
49、;指向 char 的指針 p 包含的是 t 的首地址 str0 ,由 p+strlen(t)/2 ;可知 t的長度是 8 除以 2 等于 4,因此 p+strlen(t)/2 就是 str4 即 e 字符那個(gè)位置,輸出結(jié)果為 efgh 。50. 以下程序的輸出結(jié)果是 。#include < stdio.h >main()int i ;for(i='a'i < 'f'i+,i+)printf("%c",i-'a'+'A');printf("/n") ;(分?jǐn)?shù): 4.00 )填
50、空項(xiàng) 1: (正確答案: ACE)解析: 解析 在本題中, for 循環(huán)體每執(zhí)行完一次,變量 i 的值自加兩次。 i 的初值為 'a' ,執(zhí)行一次循環(huán) 后變?yōu)?'c' ,之后再變成 'e' ,當(dāng)其變?yōu)?'g' 時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出 3 個(gè)字符。表 達(dá)式“i -'a'+'A' ”即表示輸出i對(duì)應(yīng)的大寫字母,結(jié)果為 ACE51. 以下程序的功能是: 刪去一維數(shù)組中所有相同的數(shù), 使之只剩一個(gè)。 數(shù)組中的數(shù)已按由小到大的順序排 列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。例如,若一維數(shù)組中
51、的數(shù)據(jù)是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2 3 4 5 6 7 8 9 10請(qǐng)?zhí)羁铡?include < stdio.h >#define N 80int fun(int a, int n)int i,j=1;for(i=1 ;i < n;i+)if(aj-1!=ai)aj+=ai;main()int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,i,n=19;printf("The original data:/n");for(i=0;i <n;i+) printf("%3d",ai);n=fun(a,n) ;printf("/nThe data after deleted: /n");for(i=0;i < n;i+)printf("%3d",ai);printf("/n/n");分?jǐn)?shù): 4.00 )解析: 解析 本題程序的流程是:讓i,j 都從 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國工商銀行補(bǔ)償貿(mào)易借款合同(6篇)
- 2024酒店客房領(lǐng)班年終總結(jié)(7篇)
- 聘用合同模板(30篇)
- 2024年學(xué)校開展防災(zāi)減災(zāi)工作總結(jié)(9篇)
- 2024-2025學(xué)年第2課西方國家古代和近代政治制度的演變-勤徑學(xué)升高中歷史選擇性必修1同步練測(cè)(統(tǒng)編版2019)
- 2025年專利申請(qǐng)出售協(xié)議
- 2025年化工市場代理購銷居間協(xié)議書
- 2025年醫(yī)療機(jī)構(gòu)內(nèi)科承包業(yè)務(wù)協(xié)議
- 2025年授權(quán)代理合作合同標(biāo)準(zhǔn)版本
- 2025年電子線圈設(shè)備項(xiàng)目申請(qǐng)報(bào)告模板
- 富血小板血漿(PRP)臨床實(shí)踐與病例分享課件
- 腫瘤性發(fā)熱及護(hù)理
- 光伏工程施工組織設(shè)計(jì)
- DB4101-T 121-2024 類家庭社會(huì)工作服務(wù)規(guī)范
- 五年級(jí)上冊(cè)小數(shù)四則混合運(yùn)算練習(xí)100道及答案
- 人教版(2024新版)八年級(jí)上冊(cè)物理《開啟科學(xué)探索之旅》教學(xué)設(shè)計(jì)
- 年產(chǎn)1萬噸的二氧化碳捕集及資源化利用全流程示范項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)拿地
- 部編版語文四年級(jí)下冊(cè)第六單元大單元作業(yè)設(shè)計(jì)
- 2024-2025學(xué)年全國中學(xué)生天文知識(shí)競賽考試題庫(含答案)
- 2024年新高考全國1卷第16題說題課件
- 【財(cái)務(wù)共享服務(wù)模式探究的文獻(xiàn)綜述4000字】
評(píng)論
0/150
提交評(píng)論