二級(jí)C語言筆試-27_第1頁
二級(jí)C語言筆試-27_第2頁
二級(jí)C語言筆試-27_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余13頁可下載查看

下載本文檔

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

文檔簡介

1、二級(jí) C 語言筆試 -27( 總分: 100.00 ,做題時(shí)間: 90 分鐘 )一、選擇題 (總題數(shù): 40,分?jǐn)?shù): 70.00)1. 以下選項(xiàng)中合法的標(biāo)識(shí)符是(分?jǐn)?shù): 2.00 )A. 1_1B. 1-1C. _11VD. 1_解析:解析C語言中的用戶標(biāo)識(shí)符可以由字母、數(shù)字和下畫線組成,且第一個(gè)字符不能是數(shù)字。選項(xiàng)A、D第一個(gè)字母不符合語法要求,選項(xiàng)B中“-”是非法字符。2. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >main()int a=5, b=1, t;t=(a << 2)|b); printf("%d/n", t)

2、;(分?jǐn)?shù): 2.00 )A. 21 VB. 11C. 6D. 1解析: 解析 將 5變換為二進(jìn)制數(shù)為 101,左移 2位后為 10100;將 1 轉(zhuǎn)換為二進(jìn)制數(shù)為 00001;將 10100 與 00001 進(jìn)行按位或運(yùn)算后為 10101 ,再將其轉(zhuǎn)換為十進(jìn)制數(shù)為 21 。3. 以下是 if 語句的基本形式:if( 表達(dá)式 ) 語句其中“表達(dá)式”(分?jǐn)?shù): 2.00 )A. 必須是邏輯表達(dá)式B. 必須是關(guān)系表達(dá)式C. 必須是邏輯表達(dá)式或關(guān)系表達(dá)式D. 可以是任意合法的表達(dá)式 V解析: 解析 C 語言中, if 語句中的控制表達(dá)式可以是任意合法的表達(dá)式。如果表達(dá)式的取值為0,則表示不滿足條件;如果

3、表達(dá)式的取值為非 0,則表示滿足條件。4. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >viod f(int *p, int *q);main()int m=1, n=2, *r=&m;f(r, &n); printf("%d, %d", m, n);void f(int *p, int *q) P=p+1; *q=*q+1;(分?jǐn)?shù): 2.00 )A. 1 , 3 VB. 2 , 3C. 1 , 4D. 1 , 2解析: 解析 在 f 函數(shù)中, p=p+1 ;的操作改變的是 p 的指向;而 *q=*q+1 ;的操作,將 q

4、所指向存儲(chǔ)單元 n中的值加1,即m的值不變,仍為1,而n的值變?yōu)?。5. 以下選項(xiàng)中,能用作數(shù)據(jù)常量的是(分?jǐn)?shù): 2.00 )A. o115B. 0118C.D. 115L V 解析:解析對(duì)于選項(xiàng)A, “0”不符合語法要求;對(duì)于選項(xiàng)B,以0開頭代表八進(jìn)制整型常量,但其后面的數(shù)字中又出現(xiàn)了非八進(jìn)制數(shù)字8,出錯(cuò);對(duì)于選項(xiàng) C,用指數(shù)形式表示實(shí)型常量,e后面的指數(shù)部分必須為整型數(shù),出錯(cuò);對(duì)于選項(xiàng)D,整數(shù)后面加字母L是長整型常量的表示形式。6. 設(shè)有定義: char s81; int i=10; ,以下不能將一行 (不超過 80個(gè)字符 )帶有空格的字符串正確讀入的 語句或語句組是(分?jǐn)?shù): 2.00 )

5、A. gets(s);B. while(si+=getchar()!='/n'); si='/0'C. scanf("%s", s);VD. d0 scanf("%C", &si); while(si+!='/n'); s='/0'解析:解析在scanf中,采用“ %s格式符將整個(gè)字符串一次輸入,直到遇到空格或制表符為止。對(duì)于 選項(xiàng)C,不能正確讀入帶有空格的字符串。7. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >main()int a=1, b=2

6、, C=3, d=0;if(a=1 && b+= =2) if(b!=2 | c-!=3) printf("%d, %d, %d/n", a, b, C);else printf('%d, %d, %d/n", a, b, C); else printf("%d, %d, %d/n", a, b, C);分?jǐn)?shù):2.00 )A.1 ,2,3B.1 ,3,2C.1 ,3,3 VD.3,2,1解析:解析第一條if語句的條件判斷成立,并且執(zhí)行b+操作后,b的值為3;第二條if語句判斷,條件 b!=2 的值為真,不再進(jìn)行 c-!=

7、3 的判斷,因此, c 未被改變,仍然為 3。8. 支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是(分?jǐn)?shù): 2.00 )A. 棧 VB. 樹C. 隊(duì)列D. 二叉樹解析: 解析 棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表。在主程序調(diào)用子程序時(shí) 要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程 序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn)。9. 程序段: int x=12; double y=3.141593; printf("%d%8.6f", x, y);的輸出結(jié)果是(分?jǐn)?shù): 2.00 )A. 123.141593VB. 12 3.1

8、41593C. 12,3.141593D. 123.141593解析:解析printf函數(shù)的兩個(gè)格式控制符之間沒有空格和逗號(hào),故選項(xiàng)B、C不正確;輸出格式控制符m.nf表示指定輸出的實(shí)型數(shù)據(jù)的寬度為m(包含小數(shù)點(diǎn))并保留n位小數(shù)。當(dāng)輸出數(shù)據(jù)的小數(shù)位大于n時(shí),最后一位按照四舍五入進(jìn)行截?。蝗糨敵鰯?shù)據(jù)的小數(shù)位小于n時(shí),在小數(shù)的最右邊補(bǔ)0;若給出的總寬度 m小于n加上整數(shù)位數(shù)和小數(shù)點(diǎn),則自動(dòng)突破m的限制;反之,數(shù)字右對(duì)齊,左邊補(bǔ)空格。本題中3.141593數(shù)值長度為 8,小數(shù)位數(shù)為 6,因此左端沒有空格。10. 將 E-R 圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為(分?jǐn)?shù): 2.00 )A. 屬性B

9、. 鍵C. 關(guān)系 VD. 域解析:解析數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換成指定RDBMSS的關(guān)系模式。從 E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中的屬性也可以轉(zhuǎn)換成關(guān)系的屬性。實(shí)體集也可以轉(zhuǎn)換成關(guān)系。11. 若函數(shù)中有定義語句: int k; ,則(分?jǐn)?shù): 1.00 )A. 系統(tǒng)將自動(dòng)給 k 賦初值 0B. 這時(shí) k 中值無定義 VC. 系統(tǒng)將自動(dòng)給 k 賦初值 -1D. 這時(shí) k 中無任何值解析: 解析 函數(shù)中定義的變量,如果不專門聲明,屬于自動(dòng)變量。自動(dòng)變量不會(huì)自動(dòng)賦初值,此時(shí),變 量中無確定值,稱變量值“無意義”。12. 下列敘述中錯(cuò)誤的是(分?jǐn)?shù)

10、: 1.00 )A. 軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤VB. 對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C. 程序調(diào)試通常也稱為 DebugD. 軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性解析: 解析 軟件測試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性。軟件調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改 正錯(cuò)誤。軟件測試和調(diào)試不是同一個(gè)概念。13. 若有定義語句: double x,y, *px, *py; ,執(zhí)行了 px=&x, py=&y; 之后,正確的輸入語句是 (分?jǐn)?shù): 1.00 )A. scanf("%f%f", x, y);B. scanf("%

11、f%f, &x, &y);C. scanf("%lf%le", px, py);VD. scanf("%lf%lf", x, y);解析: 解析 scanf 函數(shù)的格式為: scanf( 控制格式, 地址表列 ) 。其中,控制格式和地址表列之間用“ ,” 分開,地址表列應(yīng)為變量的地址。在選項(xiàng)A、D中,地址表列表示錯(cuò)誤;選項(xiàng) B中控制格式與地址表列之間缺少逗號(hào)。14. 下列敘述中正確的是(分?jǐn)?shù): 1.00 )A. 棧是“先進(jìn)先出”的線性表B. 隊(duì)列是“先進(jìn)先出”的線性表C. 循環(huán)隊(duì)列是非線性結(jié)構(gòu)D. 有序性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采

12、用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)V解析: 解析 棧是“先進(jìn)后出”的線性表;隊(duì)列是“先進(jìn)先出”的線性表;循環(huán)隊(duì)列是隊(duì)列的一種順序存 儲(chǔ)結(jié)構(gòu),因此是線性結(jié)構(gòu);有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。15. 耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是(分?jǐn)?shù): 1.00 )A. 提高耦合性、降低內(nèi)聚性有利于提高模塊的獨(dú)立性B. 降低耦合性、提高內(nèi)聚性有利于提高模塊的獨(dú)立性VC. 耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D. 內(nèi)聚性是指模塊間互相連接的緊密程度解析:解析 耦合性是模塊間互相連接的緊密程度的度量,內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的 緊密程度的度量。較優(yōu)秀

13、的軟件設(shè)計(jì)應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi) 的內(nèi)聚性,這樣有利于提高模塊的獨(dú)立性。16. 若文本文件 filea.txt 中原有內(nèi)容為: hello ,則運(yùn)行以下程序后,文件 filea.txt 中的內(nèi)容為 #include < stdio.h >main()EILE *f;f=fopen("filea.txt", "w");fprintf(f, "abc");fclose(f);(分?jǐn)?shù):1.00)A. helloabcB. abcloC. abcVD. abchello解析:解析"w

14、"表示建立一個(gè)供寫入的文件。如果文件不存在,則系統(tǒng)將用在fopen調(diào)用中指定的文件名建立一個(gè)新文件;如果指定的文件已存在,則將從文件的起始位置開始寫入,文件中原有的內(nèi)容將全部 消失。17. 以下程序運(yùn)行后的輸岀結(jié)果是#include < stdio.h >void fun(int *a, int *b)int *c;c=a; a=b; b=c;main()int x=3, y-5, *p=&x, *q=&y;fun(p, q); printf("%d, %d,", *p, *q);fun(&x, &y); printf(

15、"%d, %d/n", *p, *q);(分?jǐn)?shù):1.00 )A. 3 , 5, 5, 3B. 3 , 5, 3, 5 VC. 5 , 3, 3, 5D. 5 , 3, 5, 3解析:解析fun函數(shù)功能是改變指針變量a和b的指向,并不能改變a和b所指向存儲(chǔ)空間的值。因此,第一個(gè)printf 語句的輸出結(jié)果為“ 3, 5”。第二個(gè) printf語句的輸出結(jié)果仍為"3, 5”。18. 有兩個(gè)關(guān)系R、S如下:由關(guān)系R通過運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為(分?jǐn)?shù):1.00 )A.B. VC.D.解析:解析專門的關(guān)系運(yùn)算有3種:投影、選擇和連接。選擇運(yùn)算是從關(guān)系中找岀滿足給定條

16、件的那些 元組,其中的條件是以邏輯表達(dá)式給岀的,值為真的元組將被選取,這種運(yùn)算是從水平方向抽取元組的。投影運(yùn)算是從關(guān)系模式中挑選若干屬性組成新的關(guān)系,這是從列的角度進(jìn)行的運(yùn)算,相當(dāng)于對(duì)關(guān)系進(jìn)行垂 直分解。連接運(yùn)算是二目運(yùn)算,需要兩個(gè)關(guān)系作為操作對(duì)象。19. 若有以下定義,則對(duì) x數(shù)組元素的正確應(yīng)用是int x10, *pt=x;(分?jǐn)?shù):1.00 )A. * &x10B. *(x+3)VC. *(pt+10)D. pt+3解析:解析選項(xiàng)A C的數(shù)組下標(biāo)越界;選項(xiàng)D表示地址;選項(xiàng) B是對(duì)數(shù)組元素x3的引用。20. 某二叉樹有 5 個(gè)度為 2 的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是(分?jǐn)?shù): 1.

17、00 )A. 10B. 8C. 6 VD. 4解析:解析對(duì)于任何一棵二叉樹 T,如果其終端結(jié)點(diǎn)(葉子)數(shù)為m,度為2的結(jié)點(diǎn)數(shù)為則ni=m+1 所以該二叉樹的葉子結(jié)點(diǎn)數(shù)等于5+1=6。21. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >int fun(int x, int y)if(x=y) return(x);else return(x+y)/2);main()int a=4, b=5, c=6;printf("%d/n", fun(2*a, fun(b, c);(分?jǐn)?shù): 2.00 )A. 3B. 6 VC. 8D. 12解析: 解析 將

18、a、 b、 c 的值代入 fun(2*4, fun(f(5, 6) 中, f(5, 6)調(diào)用,返回值為 5; f(8,5)調(diào)用,返回值為 6。22. 設(shè)有定義: int x=2; ,以下表達(dá)式中,值不為 6的是(分?jǐn)?shù): 2.00 )A. x*=x+1B. x+, 2*xC. x*=(1+x)D. 2*x, x+=2V解析:解析選項(xiàng)A、C均為x=xX(x+1)=2 X3=6;對(duì)于選項(xiàng)B,先執(zhí)行x+后, x的值為3,最后一個(gè)表達(dá)式2X3=6的值是整個(gè)表達(dá)式的值;對(duì)于選項(xiàng)D, 2Xx=2X2,表達(dá)式的值為4,但x的值仍為2,表達(dá)式x+=2應(yīng)為x=2+2,值為4。23. 已知字母 a 的 ASCII

19、碼值為 97,則以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >void fun(char *s)while(*s)if(*s%2=0) printf("%C", $s);s+;main() char a="good"fun(分?jǐn)?shù): 2.00 )A. ; printf("/n")V解析:解析fun函數(shù)的功能是輸出字符串中ASCII碼為偶數(shù)的字符。g的ASCII碼為103, o的ASCII碼為111 , d的ASCII碼為100,輸出字符do24. 設(shè)有宏定義:#include lsDIV(k, n)(k%

20、n=1) ? 1:0)且變量m已正確定義并賦值,則宏調(diào)用:lsDIV(m,5) && IsDIV(m, 7) 為真時(shí)所要表達(dá)的是(分?jǐn)?shù): 2.00 )A. 判斷m是否能被5或者7整除B. 判斷m是否能被5和7整除C. 判斷m被5或者7整除是否余1D. 判斷m被5和7整除是否余1 V解析:解析IsDIV(m, 5) 宏展開(m%5=1) ? 1:0),其含義是m%5=1該表達(dá)式的值為1,否則該表達(dá) 式的值為0; IsDIV(m, 7)宏展開(m%7=1) ? 1:0),其含義是m%7=,1該表達(dá)式的值為1,否則該表達(dá)式 的值為0。IsDIV(m, 5) && Is

21、DIV(m, 7) 為真時(shí),表示判斷 m被5和7整除是否都余1。25. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >int f(int x, int y)return(y-x)*x);main()int a=3, b=4, c=5, d;d=f(f(a, b), f(a, c);printf("%d/n", d);(分?jǐn)?shù): 2.00 )A. 10B. 9 VC. 8D. 7解析:解析d=f(f(a, b),f(a, c);中,將 a、b、c 的值分別代入 f(a, b)和 f(a, c),d=f(f(3,4),f(3, 5);。 f(3,

22、4) 調(diào)用,返回 3; f(3, 5) 調(diào)用,返回 6;再進(jìn)行 f(3, 6) 調(diào)用,返回 9。26. 已知字母A的ASCII碼值為65。以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >main()char *s="ABC"do printf("%d", *s%10); s+;while(*s);(分?jǐn)?shù):2.00 )A. 5670B. 656667C. 567 VD. ABC解析:解析每進(jìn)行一次循環(huán),將輸出 s指向字母的ASCII碼值除以10的余數(shù)。字符A的ASCII碼值是 65,第一次輸出65%10的余數(shù)5,執(zhí)行S+后,指

23、針指向字母B;第二次輸出66%10的余數(shù)6,執(zhí)行S+ 后, 指針指向字母c;第三次輸出67%10的余數(shù)7,執(zhí)行S+后,指針指向串結(jié)束標(biāo)志“ /0”。此時(shí),*s等于0, 退出循環(huán)。因此,輸出結(jié)果為 567。27. 設(shè)變量已正確定義,以下不能統(tǒng)計(jì)岀一行中輸入字符個(gè)數(shù)(不包含回車符)的程序段是(分?jǐn)?shù):2.00 )A. n=0; while( ch=getchar()!='/n') n+;B. n=0; while( getchar()! ='/n') n+;C. for( n=0; getehar()!='/n' n+);D. n=0; for( ch

24、=getchar(); ch!='/n' n+);V解析:解析選項(xiàng)D中ch=getchar()的操作,在for語句中所處的位置決定了此操作僅做一次,即只能 從鍵盤上接收一個(gè)字符。如果該字符是回車符,則只循環(huán)一次就退岀;如果輸入一個(gè)非回車字符,則程序 進(jìn)入無限循環(huán)。28. 設(shè)函數(shù)中有整型變量 n,為保證其在未賦值的情況下初值為0,應(yīng)選擇的存儲(chǔ)類別是(分?jǐn)?shù):2.00 )A. autoB. registerC. staticVD. auto 或 register解析:解析在C語言中,對(duì)于靜態(tài)局部變量static ,編譯時(shí)會(huì)自動(dòng)給數(shù)值型變量賦初值0或者給字符變量賦初值“ /0 ”。29

25、. 以下選項(xiàng)中正確的語句組是(分?jǐn)?shù):2.00 )A. char s; s="BOOK!"B. char *s; s="BOOK!"C. char s10; s="BOOK!"D. char *s; s="BOOK!"V解析:解析數(shù)組名代表數(shù)組的首地址,是一個(gè)地址常量,不能對(duì)其賦值,所以選項(xiàng)A、C錯(cuò)誤;只有在初始化時(shí)才可以用花括號(hào),所以選項(xiàng)B錯(cuò)誤使得 a1的值為12, a2的值為34, c1的值為字符a, c2的值為字符b。則正確的輸入格式是(選項(xiàng)中的代表空格,v。9代表回車)30. 有以下程序,若想通過鍵盤輸入,b

26、,程序輸出結(jié)果是:12, a, 34, #include v stdio.h >main()int a1, a2; char c1, c2;scanf("%d %c%d%c", &a1, &c1, &a2, &c2);printf("%d, %c, %d, %c', a1, c1, a2, c2);(分?jǐn)?shù):2.00 )A. VB.C.D.解析:解析對(duì)于格式控制“ d%c%d”c當(dāng)輸入數(shù)值型數(shù)據(jù)時(shí),數(shù)據(jù)之間用空格、回車或制表符隔開, 間隔符個(gè)數(shù)不限。當(dāng)進(jìn)行數(shù)值型和字符型混合數(shù)據(jù)輸入時(shí),數(shù)據(jù)之間不能用空格隔開,因?yàn)榭崭駮?huì)被

27、當(dāng)作 一個(gè)字符讀入。31. 以下程序運(yùn)行后的輸岀結(jié)果是#include < stdio.h >struct ordint x, y; dt2=1,2, 3, 4;main()struct ord *P=dt;printf("%d,", +p-> x); printf("%d/n", +p-> y);(分?jǐn)?shù):2.00 )A. 1 , 2B. 2 , 3 VC. 3 , 4D. 4 , 1解析:解析指針變量p指向dt0 , p- >x即為dt0.x,初值為1,因?yàn)椤? >"的優(yōu)先級(jí)大于“ +",所以先計(jì)

28、算p- >x的值加1等于2,并輸岀;再計(jì)算p- >y的值加1等于3,并輸岀。因此,輸岀結(jié)果為2, 3。32. 以下程序中的變量已正確定義,程序段的輸岀結(jié)果是for(i=0; i < 4; i+, i+)for(k=1; k < 3; k+); printf("*");(分?jǐn)?shù):2.00 )*B *C *D.* V解析:解析由于二重for循環(huán)的循環(huán)體是空語句,因此,printf函數(shù)不屬于循環(huán)體,printf("*") 語句只執(zhí)行一次。33. 軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是(分?jǐn)?shù):2.

29、00 )A. 編譯軟件B. 操作系統(tǒng)C. 教務(wù)管理系統(tǒng)VD. 匯編程序解析: 解析 軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件 (或工具軟件 ) 。應(yīng)用軟件是為實(shí)現(xiàn)某 一特定領(lǐng)域的應(yīng)用而開發(fā)的軟件;系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶 提供各種服務(wù)的軟件;支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之間,協(xié)助用戶開發(fā)軟件的工具性軟件。編譯 程序、操作系統(tǒng)和匯編程序都屬于系統(tǒng)軟件;教務(wù)管理系統(tǒng)屬于應(yīng)用軟件。34. 數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是(分?jǐn)?shù): 2.00 )A. 數(shù)據(jù)庫設(shè)計(jì) VB. 數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)C. 數(shù)據(jù)庫維護(hù)D. 數(shù)據(jù)庫管理員培訓(xùn)解析: 解析 數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個(gè)

30、核心問題就是設(shè)計(jì)一個(gè)能滿足用戶需求、性能良好的數(shù)據(jù)庫,這就 是數(shù)據(jù)庫設(shè)計(jì)。35. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >main()char *a="abcd", "ef", "gh", "ijk" int i;for(i=0; i < 4; i+) printf("%c", *ai);(分?jǐn)?shù): 2.00 )A. aegiVB. dfhkC. abcdD. abcdefghijk解析: 解析 a 是一個(gè)長度為 4 的指針數(shù)組,它的每一個(gè)元素分別指向一

31、個(gè)字符串。該程序的功能是分別 打印 4 個(gè)字符串的首字母。36. 以下程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果 ?#include < stdio.h >main()int x;Scanf("%d", &x);if(x < =3); elseif(x!=10) printf("%d/n", x);(分?jǐn)?shù): 2.00 )A. 不等于 10 的整數(shù)B. 大于 3 且不等于 10 的整數(shù) VC. 大于 3 或等于 10 的整數(shù)D. 小于 3 的整數(shù)解析: 解析 如果 x < =3,則執(zhí)行空語句;否則,再判斷 x!=10 。因

32、此,只有當(dāng) x 大于 3 且不等于 10時(shí), 才有輸出結(jié)果。37. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >#define PT 3.5;#define S(x) PT*x*x;main()int a=1, b=2; printf("%4.1f/n", S(a+b);(分?jǐn)?shù): 2.00 )A. 14.0B. 31.5C. 7.5D. 程序有錯(cuò),無輸出結(jié)果V解析: 解析 本題考查宏定義的用法,進(jìn)行宏定義時(shí)語句不能用分號(hào)結(jié)束,否則會(huì)出現(xiàn)錯(cuò)誤38. 以下程序運(yùn)行后的輸出結(jié)果是#include < stdio.h >int b=2;

33、int fun(int *k)b=*k+b; return(b);main()int a10=1, 2, 3, 4, 5, 6, 7, 8, i;for(i=2; i <4; i+)b=fun(&ai)+b; printf("%d", b);printf("/n");分?jǐn)?shù): 2.00 )A.10 12B. 8 10C. 10 28 VD. 10 16解析:解析第一次for循環(huán),循環(huán)參數(shù)i=2 , fun(&a2)調(diào)用,fun函數(shù)中b=3+2,即全局變量b被改 為5。返回main函數(shù),b=5+5,全局變量b的值為10,并輸出;第二次f

34、or循環(huán),循環(huán)參數(shù)i=3 , fun(&a3) 調(diào)用,fun函數(shù)中b=4+10,即全局變量b被改為14。返回main函數(shù),b=14+14,全局變量b的值為28,并 輸出。39. 下列排序方法中,最壞情況下比較次數(shù)最少的是(分?jǐn)?shù): 2.00 )A. 冒泡排序B. 簡單選擇排序C. 直接插入排序D. 堆排序 V解析: 解析 冒泡排序、簡單選擇排序和直接插入排序在最壞情況下的比較次數(shù)都是n(n-1)/2 ;堆排序在最壞情況下比較次數(shù)最少,是nlog 2n。40. 以下函數(shù)按每行 8 個(gè)輸出數(shù)組中的數(shù)據(jù),下畫線處應(yīng)填入的語句是void fun(int *w, int n)int i; for(

35、i=0; i < n; i+)printf("%d", wi);printf("/n");(分?jǐn)?shù): 2.00 )A.if(i/8=0) print("/n");B. if(i/8=0) continue;C. if(i%8=0) print('7n");VD. if(i%8=0) continue;解析:解析在C語言中,continue用來結(jié)束本次循環(huán),繼續(xù)下次循環(huán),因此選項(xiàng)B、D不正確;在選項(xiàng)A中,條件判斷i/8=0是指當(dāng)循環(huán)次數(shù)i的值小于8時(shí),打印換行,即前 8個(gè)數(shù),每輸出一個(gè)數(shù)換一行, 因此,選項(xiàng)A不正確

36、;在選項(xiàng)c中,條件判斷i%8=0是指當(dāng)循環(huán)次數(shù)i除以8的余數(shù)等于0時(shí)打印換行, 即每輸出 8 個(gè)數(shù)打印換行。二、填空題 (總題數(shù): 15,分?jǐn)?shù): 30.00)41. 假設(shè)一個(gè)長度為50的數(shù)組(數(shù)組元素的下標(biāo)從0 49)作為棧的存儲(chǔ)空間,棧底指針 bottom指向棧底元 素,棧頂指針 top 指向棧頂元素,如果 bottom=49 , top=30( 數(shù)組下標(biāo) ) ,則棧中具有 1 個(gè)元素。(分?jǐn)?shù): 2.00 )填空項(xiàng) 1: (正確答案: 20)解析: 解析 一般地,棧底指針指向??臻g的棧中的元素個(gè)數(shù)等于“棧底指針 -棧頂指針+1”,即 49-30+1=20。42. 軟件測試可分為白盒測試和黑盒

37、測試?;韭窂綔y試屬于 1 測試。(分?jǐn)?shù): 2.00 )填空項(xiàng) 1: (正確答案:白盒)解析: 解析 黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計(jì)測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處 理過程。常用的黑箱測試技術(shù)有等價(jià)類劃分、邊界分析、錯(cuò)誤猜測及因果圖等。白盒測試的基本原則是: 保證所測模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測 模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。白盒測試的 主要方法有邏輯覆蓋和基本路徑測試等。43. 符合結(jié)構(gòu)化原則的 3 種基本控制結(jié)構(gòu)是選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和 1 。(分?jǐn)?shù): 2.00 )填

38、空項(xiàng) 1: (正確答案:順序結(jié)構(gòu))解析: 解析 結(jié)構(gòu)化程序設(shè)計(jì)的 3 種基本邏輯結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是一種簡 單的程序設(shè)計(jì)結(jié)構(gòu),它是最基本、最常用的程序設(shè)計(jì)結(jié)構(gòu);選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),包括簡單分支和多 分支選擇結(jié)構(gòu);循環(huán)結(jié)構(gòu)也叫重復(fù)結(jié)構(gòu),它根據(jù)給定的條件,判斷是否需要重復(fù)執(zhí)行某一相同的程序段。44. 數(shù)據(jù)庫系統(tǒng)的核心是 1 。(分?jǐn)?shù): 2.00 )填空項(xiàng) 1: (正確答案:數(shù)據(jù)庫管理系統(tǒng))解析: 解析 數(shù)據(jù)庫管理系統(tǒng)可以對(duì)數(shù)據(jù)庫的建立、使用和維護(hù)進(jìn)行管理,是數(shù)據(jù)庫系統(tǒng)的核心45. 在 E-R 圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實(shí)體聯(lián)系的是1 框。(分?jǐn)?shù):

39、2.00 )填空項(xiàng) 1: (正確答案:菱形)解析:解析在E-R圖中,用矩形表示實(shí)體,框內(nèi)標(biāo)明實(shí)體名;用橢圓框表示實(shí)體的屬性,框內(nèi)標(biāo)明屬性 名;用菱形框表示實(shí)體間的聯(lián)系,框內(nèi)表明聯(lián)系名。46. 表達(dá)式(int)(double)(5/2)+2.5)的值是 1。(分?jǐn)?shù): 2.00 )填空項(xiàng) 1: (正確答案:4)解析: 解析 計(jì)算 5/2=2,其結(jié)果先轉(zhuǎn)換為 double 類型,即 2.000000 ,然后加上 2.5 為 4.5000000,再 轉(zhuǎn)換為 int 型,所以結(jié)果為 4。47. 若變量x、y已定義為int類型且x的值為99, y的值為9,請(qǐng)將輸出語句printf( 1, x/y);補(bǔ)充完

40、整, 使其輸出的計(jì)算結(jié)果形式為: x/y=11 。(分?jǐn)?shù): 2.00 )填空項(xiàng) 1: (正確答案: "x/y=%d/ )解析: 解析 printf 語句中,除了格式轉(zhuǎn)換說明外,字符串中的其他字符 (包括空格 )將按原樣輸出48. 以下程序運(yùn)行輸入65V回車后,能否輸出結(jié)果、結(jié)束運(yùn)行(請(qǐng)回答能或不能)。#include < stdio.h >main()char c1, c2;scanf("%c", &c1);while(c1 <65 | c1 >90) scanf("%c", &c1);c2=c1+32;

41、printf("&c, &c/n", c1, c2);(分?jǐn)?shù): 2.00 )填空項(xiàng) 1: (正確答案:不能)解析: 解析 c1 和 c2 被定義為字符類型,當(dāng)輸入 65 時(shí)是以字符形式讀入,只能讀到字符 6, 6 的 ASCII碼值是 54,滿足 while(c1 <65 | c2 >90),所以執(zhí)行 scanf("%c", &c1) ,即不能輸出結(jié)果。49. 以下程序運(yùn)行后的輸出結(jié)果是 。#include < stdio.h >main()int k=1, s=0;doif(k%2)!=0) contin

42、ue;s+=k; k+;while(k > 10);printf("s=%d/n", s);(分?jǐn)?shù): 2.00 )填空項(xiàng) 1:正確答案: s=0 )解析:解析進(jìn)行if判斷時(shí),k的值為1不能夠被2整除,執(zhí)行continue退出本次循環(huán),不對(duì) s進(jìn)行任 何操作,直接進(jìn)行循環(huán)條件判斷,此時(shí)k的值為1,不滿足循環(huán)條件,退出 while循環(huán),輸出s的值為0。50. 下列程序運(yùn)行時(shí),若輸入 1abcedf2df v回車,則輸出結(jié)果為 。#include v stdio.h >main()char a=0, ch;while(ch=getchar()!='/n'

43、;)if(a%2!=0 && (ch> ='a' && chv ='z') ch=ch-'a'+'A'a+; putchar(ch);printf("/n");(分?jǐn)?shù): 2.00 )填空項(xiàng) 1: (正確答案:1AbCeDf2dF)解析: 解析 while 循環(huán)的功能是對(duì)輸入的第偶數(shù)個(gè)且為小寫字母的字符進(jìn)行處理,將小寫字母轉(zhuǎn)化為大 寫,因此答案為 1AbCeDf2dF。51. 以下程序運(yùn)行后的輸出結(jié)果是 #include v stdio.h >void fun(int

44、*a)a0=a1;main()int a10=10, 9, 8, 7, 6, 5, 4, 3, 2, 1, i;for(i=2; i > =0; i-) fun(&ai);for(i=0; i v10; i+) printf("%d", ai);printf("/n");分?jǐn)?shù): 2.00 )解析: 解析 函數(shù)的功能是將輸入的指針?biāo)赶虻暮笠粋€(gè)變量賦給指針指向的變量。第一個(gè)for 循環(huán), i為2滿足條件,將 a3 賦值給 a2 ,數(shù)組變?yōu)?10, 9, 7, 7, 6, 5, 4, 3, 2, 1,同理第二次循環(huán)數(shù)組變?yōu)?0, 7, 7, 7, 6, 5, 4, 3, 2, 1,第三次為 7, 7, 7, 7, 6, 5, 4, 3, 2,152. 請(qǐng)將以下程序中的函數(shù)聲明語句補(bǔ)充完整。#include v

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論