月全國計算機考試二級c語言試題答案解析第11題開始解析_第1頁
月全國計算機考試二級c語言試題答案解析第11題開始解析_第2頁
月全國計算機考試二級c語言試題答案解析第11題開始解析_第3頁
月全國計算機考試二級c語言試題答案解析第11題開始解析_第4頁
月全國計算機考試二級c語言試題答案解析第11題開始解析_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2009年9月全國計算機等級考試二級C語言筆試試題一、選擇題(1)(10)、(21)(40)每題2分,(11)(20)每題1分,共70分)(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是(C)A)循環(huán)隊列 B) 帶鏈隊列 C) 二叉樹 D)帶鏈棧(2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進后出”原則存取數(shù)據(jù)的是(B)A) 循環(huán)隊列 B) 棧 C)隊列 D)二叉樹(3)對于循環(huán)隊列,下列敘述中正確的是(D)A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針(4)算法的空間復(fù)雜度是指(A)A)算法在執(zhí)行過程中所需要的計算機存儲空間B)算

2、法所處理的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的臨時工作單元數(shù)(5)軟件設(shè)計中劃分模塊的一個準則是(B)A) 低內(nèi)聚低耦合B) 高內(nèi)聚低耦合C) 低內(nèi)聚高耦合D) 高內(nèi)聚高耦合(6)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是(A)A) 可封裝D) 自頂向下C) 模塊化D) 逐步求精(7)軟件詳細設(shè)計產(chǎn)生的圖如下: 該圖是(C)A) N-S圖B) PAD圖C) 程序流程圖D) E-R圖(8)數(shù)據(jù)庫管理系統(tǒng)是(B)A)操作系統(tǒng)的一部分B) 在操作系統(tǒng)支持下的系統(tǒng)軟件C) 一種編譯系統(tǒng)D) 一種操作系統(tǒng)(9)在E-R圖中,用來表示實體聯(lián)系的圖形是(C)A) 橢圓圖B) 矩形C)

3、 菱形D) 三角形(10)有三個關(guān)系R,S和T如下: 其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為(D)A) 選擇B) 投影C) 交D) 并(11)以下敘述中正確的是 A)程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試 B)程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu) C)程序設(shè)計的任務(wù)就是確定所用算法 D)以上三種說法都不完整解析:選D。原文見高教版二級教程P2,程序設(shè)計的任務(wù)包括A、B、c及相關(guān)文檔。 (12)以下選項中,能用作用戶標識符的是A)voidB)8_8C)_0_D)unsigned解析:選C。標識符由字母或下劃線開頭,關(guān)鍵字不能用作標識符。 A、D為關(guān)鍵字,B以數(shù)字開頭,所以都是錯誤的。

4、(13)閱讀以下程序 #include <stdio.h> main() int case; float printF; printf(“請輸入2個數(shù):”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %fn”,case,printF); 該程序編譯時產(chǎn)生錯誤,其出錯原因是 A)定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標識符 B)定義語句出錯,printF不能用作用戶自定義標識符 C)定義語句無錯,scanf不能作為輸入函數(shù)使用 D)定義語句無錯,printf不能輸出case的值解析:選A。case是關(guān)鍵字,關(guān)鍵字

5、不能用作標識符。C語言關(guān)鍵字見教材附錄。(注:標識符區(qū)分大小寫,printf是關(guān)鍵字,可用作標識符,當然printF也可以) (14)表達式:(int)(double)9/2)-(9)%2的值是 A)0 B)3 C)4 D)5解析:選B??键c為運算符的優(yōu)先級。 括號>強制類型轉(zhuǎn)換int>乘除>加減 (int)(double)9/2)一(9)%2=(int)(9.0/2)-(9)%2=(int)(4.5)-1=3 (15)若有定義語句:int x=10;,則表達式x-=x+x的值為 A)-20 B)-10 C)0 D)10解析:選B。考點為復(fù)合的賦值運算符。(注意x+x作為一個

6、整體) x=x+xxx-(x+x) xx=10 (16)有以下程序 #include <stdio.h> main() int a=1,b=0; printf(“%d,”,b=a+b); printf(“%dn”,a=2*b); 程序運行后的輸出結(jié)果是 A)0,0 B)1,0 C)3,2 D)1,2解析:選D。考點為賦值表達式的使用,賦值表達式的值和變量的值是一樣的。 printf在輸出賦值表達式的值時,先賦值再輸出。 b=a+b=l+0=1 a=2*b=2 17)設(shè)有定義:int a=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是 A)if(a>b) c=a,a

7、=b,b=c; B)if(a>b) c=a,a=b,b=c; C)if(a>b) c=a;a=b;b=c; D)if(a>b) c=a;a=b;b=c;解析:選C??键c為if句和逗號表達式的使用。逗號運算符也稱為順序求值運算符,依次執(zhí)行逗號表達式中的每個表選式。逗號表達式是一個整體,復(fù)合語句也是一個整體,當a>b時,A、B、D中if后的語句可以作為整體被執(zhí)行,把a、b的值交換。C的等價語句形式為: if(a>b) c=a; a=b;b=c; 不能實現(xiàn)a、b的值交換。 (18)有以下程序 #include <stdio.h> main() int c=0

8、,k; for (k=1;k<3;k+) switch (k) default: c+=k case 2: c+;break; case 4: c+=2;break; printf(“%dn”,c); 程序運行后的輸出結(jié)果是 A)3 B)5 C)7 D)9解析:選A??键c為switch語句的使用。switch語句中case和default的順序可以任意,不影響程序結(jié)果。switch語句在循環(huán)中被執(zhí)行2次。k=l時, c+=k c=0+1=1 無break,繼續(xù)執(zhí)行c+ c=2 有break,終止switch k=2時,c+ c=3 有break,終止switch ,循環(huán)結(jié)束,輸出c。 (

9、19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是 A)if(a>b)&&(b>c) k=1; else k=0; B)if(a>b)|(b>c) k=1; else k=0; C)if(a<=b) k=0; else if(b<=c) k=1; D)if(a>b) k=1; else if(b>c) k=1; else k=0;解析:選A。考點為條件表達式的使用。語句的功能為: a>b且b>c時,k=l a>b且b<=e時,k=0 a<=b時,k=0符合語句功能

10、的只有A。 20)有以下程序 #include <stdio.h> main() char s=“012xy”;int i,n=0; for(i=0;si!=0;i+) if(si>=a&&si<=z) n+; printf(“%dn”,n); 程序運行后的輸出結(jié)果是 A)0 B)2 C)3 D)5解析:選B??键c為字符數(shù)組的使用。C語言用字符數(shù)組存放字符串,用O作為結(jié)束標志。(0是ASCII碼值為0的字符,也即數(shù)值0)程序的功能為統(tǒng)計字符數(shù)組s中小寫字符的個數(shù),n為計數(shù)器。 (21)有以下程序 #include <stdio.h> main

11、() int n=2,k=0; while(k+&&n+>2); printf(“%d %dn”,k,n); 程序運行后的輸出結(jié)果是 A)0 2 B)1 3 C)5 7 D)1 2解析:選D。考點為while語句的使用。該while(k+&&n+>2);的循環(huán)體為空語句,所以程序是輸出退出while循環(huán)后k、n的值。k+為先使用k的值再增1。先使用k的值,k=0,邏輯與結(jié)果為。,第一次執(zhí)行while循環(huán)時條件就不成立,直接退出循環(huán),k的值增1,n的值沒有任何改變。 (22)有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是 A)char a=a; B)char

12、 a=n; C)char a=aa; D)char a=x2d;解析:選C??键c為字符型變量的賦值和基本概念。字符型為單引號括起的一個字符。A為標準的字符型賦值方法,B為把一個轉(zhuǎn)義字符賦值給字符變量,也是正確的。C為單引號括起的兩個字符,不符合字符型定義。D表面看上去是錯誤的,其實是正確的,也是一個轉(zhuǎn)義字符。/x2d表示ASCII碼值為16進制數(shù)2d的字符,即-號。 (23)有以下程序#include <stdio.h>main() char c1,c2; c1=A+8-4; c2=A+8-5; printf(“%c,%dn”,c1,c2);已知字母A的ASCII碼為65,程序運行

13、后的輸出結(jié)果是 A)E,68 B)D,69 C)E,D D)輸出無定值解析:選A??键c為字符型數(shù)據(jù)的使用和基本知識。字符型數(shù)據(jù)在內(nèi)存中存放的是字符的ASCII碼值,可以作為整型數(shù)據(jù)來處理。英文字符和數(shù)字在ASCII碼表中是按順序排列的。 c1=A+8'-4=A+4=E c2=A+8-5=A+3=D (24)有以下程序 #include <stdio.h> void fun(int p) int d=2; p=d+; printf(“%d”,p); main() int a=1; fun(a); printf(“%dn”,a); 程序運行后的輸出結(jié)果是 A)32 B)12 C

14、)21 D)22解析:選C??键c為函數(shù)參數(shù)的傳遞。c語言中函數(shù)參數(shù)的傳遞是值傳遞,是把實參的值傳給形參,是單向傳遞,形參的改變不會影響到實參的值。程序中,把實參a的值傳給形參p,p=1,然后p=d+,再次賦值后p=2.輸出p的值2。返回到主程序中,輸出a的值1。(形參p的改變不會影響到實參a的值,a的值仍為1) (25)以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導(dǎo)致不能實現(xiàn)預(yù)定功能#define MIN -2147483647 int findmax (int x,int n) int i,max; for(i=0;i<n;i+) max=MIN; if

15、(max<xi) max=xi; return max; 造成錯誤的原因是 A)定義語句int i,max;中max未賦初值 B)賦值語句max=MIN;中,不應(yīng)給max賦MIN值 C)語句if(max<xi) max=xi;中判斷條件設(shè)置錯誤 D)賦值語句max=MIN;放錯了位置解析:選D。考點為求最大值的算法。max=MIN不應(yīng)該放在循環(huán)內(nèi),而應(yīng)該放到for循環(huán)的前面。先讓max取最小的整數(shù),這樣第1次循環(huán)時max就可以取得第1個數(shù)組元素的值,然后在循環(huán)中把后面的數(shù)組元素依次和max比較,讓max取大值。 (26)有以下程序 #include <stdio.h>

16、main() int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf(“%d,%d,%d,%dn”,m,n,*p,*q); 程序運行后的輸出結(jié)果是 A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2 解析:選B??键c為指針的基本概念。p、q為指針,初始化時p指向m,q指向n。執(zhí)行r=p; p:q;q:r;后,p和q的值交換,從而p指向n,q指向m。指針的改變不會影響m、n的值,最后*p和*q的值為n、m的值。 (27)若有定義語句:int a410,*p,*q4;且0i<4,則錯誤的賦值是 A)p=a B

17、)qi=ai C)p=ai D)p=&a21解析:選A??键c為指向二維數(shù)組的指針的用法。 p為基類型為int的指針,指向一個整型數(shù)據(jù),也就可咀指向一個數(shù)組元素,所以D正確。 a是二維數(shù)組名,存放二維數(shù)組的首地址,但二維數(shù)組名是一個行指針,其基類型為具有10個元素的一維數(shù)組。所以A錯誤,二者基類型不一致(p+1指向下一個元素,而a+l指向二維數(shù)組的下一行)。如果p定義為int(*p)10,才可以賦值p=a。在C語言中,二維數(shù)組a410可以看做是由4個元素組成的一維數(shù)組,這4個元素為a0、al、a2、a3,而其中每個元素又是由10個元素組成的維數(shù)組。 在這里,ai也是一個數(shù)組名,可以表示一

18、維數(shù)組的首地址,但ai是一個列指針,基類型為int.指向一維數(shù)組的第1個元素。同時,指針數(shù)組q的每個數(shù)組元素qi的基類型也為int,所以p、ai、qi的基類型一致,選項B、C是正確的。 (28)有以下程序 #include <stdio.h> #include<string.h> main() char str 20=“One*World”, “One*Dream!”,*p=str1; printf(“%d,”,strlen(p);printf(“%sn”,p); 程序運行后的輸出結(jié)果是 A)9,One*World B)9,One*Dream C)10,One*Drea

19、m D)10,One*World解析:選C??键c為二維字符數(shù)組的使用和strlen()函數(shù)的使用。初始化p=strl后,p指向第二個字符串“One*Dream!”。strlen()函數(shù)計算字符串的長度時不包括結(jié)束標志,所以strlen(p)=10。 (29)有以下程序 #include <stdio.h> main() int a =2,3,5,4,i; for(i=0;i<4;i+) switch(i%2) case 0:switch(ai%2) case 0:ai+;break; case 1:ai-; break; case 1:ai=0;for(i=0;i<4;

20、i+) printf(“%d”,ai); printf(“n”); A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4解析:選C??键c為switch語句。外部switch語句在循環(huán)中被執(zhí)行4次。i=0時,執(zhí)行case 0 內(nèi)部switch語句也執(zhí)行case 0, ai+ a0=3 i=1時,執(zhí)行case 1,al=0 排除法,只有C正確。i=2時,執(zhí)行case 0 內(nèi)部switch語句執(zhí)行case 1 ai- a2=4i=3時,執(zhí)行case 1,a3=0 最后依次輸出為:3 0 4 0 (30)有以下程序 #include <stdio.h>#inclu

21、de<string.h> main() char a10=”abcd”; printf(“%d,%dn”,strlen(a),sizeof(a);程序運行后的輸出結(jié)果是 A)7,4 B)4,10 C)8,8 D)10,10解析:選B。考點為strlen()函數(shù)和sizeof()運算符的使用。 strlen()函數(shù)計算字符串的長度時,遇到結(jié)束標志為止,且長度不包括結(jié)束標志,所以strlen(a)=4,排除法選B。 sizeof()運算符的操作數(shù)可以是類型名或變量名、數(shù)組名等,當操作數(shù)是數(shù)組名時,其結(jié)果是數(shù)組的總字節(jié)數(shù),所咀sizeof(a)=10。 (31)下面是有關(guān)C語言字符數(shù)組的

22、描述,其中錯誤的是 A)不可以用賦值語句給字符數(shù)組名賦字符串 B)可以用輸入語句把字符串整體輸入給字符數(shù)組 C)字符數(shù)組中的內(nèi)容不一定是字符串 D)字符數(shù)組只能存放字符串解析:選D??键c為字符數(shù)組的使用。字符數(shù)組名是數(shù)組首地址,是常量,不能被重新賦值,所以A正確??梢杂胹canf(“%s”,str)對字符串整體輸入,str可以是字符數(shù)組名或者字符指針,所以B正確。C和D說法對立,必定有一個正確,用排除法A、B選項根本不用看。字符數(shù)組的所有元素可以只存放普通字符,不存放結(jié)束標志。所以D錯誤。 (32)下列函數(shù)的功能是 fun(char * a,char * b) while(*b=*a)!=0)

23、 a+,b+; A)將a所指字符串賦給b所指空間 B)使指針b指向a所指字符串 C)將a所指字符串和b所指字符串進行比較 D)檢查a和b所指字符串中是否有0 解析:選A??键c為指針的概念及while循環(huán)。While循環(huán)條件為:(*b=*a)!='0,執(zhí)行時先把指針a所指向的字符賦給指針b所在內(nèi)存單元,如果該字符不是結(jié)束標志“0”,執(zhí)行循環(huán)體a+;b+;,指針a、b分別指向下一個字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到遇到結(jié)束標志為止。所以正確答案為A。 (33)設(shè)有以下函數(shù) void fun(int n,char * s) 則下面對函數(shù)指

24、針的定義和賦值均是正確的是 A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun; C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;解析:選A??键c為指向函數(shù)的指針的用法。函數(shù)名代表函數(shù)的入口地址。指向函數(shù)的指針應(yīng)該定義為void(*pf)( )。如果定義為void *pf( ),則表示函數(shù)pf返回值為一個基類型為void的指針。綜上,所以正確答案為A。 (34)有以下程序 #include <stdio.h> int f(int n); main() int a=3,s; s=

25、f(a);s=s+f(a);printf(“%dn”,s); int f(int n) static int a=1; n+=a+; return n; 程序運行以后的輸出結(jié)果是 A)7 B)8 C)9 D)10解析:選C考點為靜態(tài)局部變量的使用。 主函數(shù)和f函數(shù)中的a都為局部變量,作用域都在本函數(shù)之內(nèi),互不影響。f函數(shù)中的a為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可保留上次調(diào)用時的值。也就是說,如果多次調(diào)用f函數(shù),a的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,a的定義相當于不存在,直接使用a的值。主函數(shù)中調(diào)用了2次f(a),第一次調(diào)用,s=f(a)=f(3) f函數(shù):n=3 a=

26、l n=n+(a+)=4 a=2 返回n,主函數(shù)s=4。第二次調(diào)用,s=s+f(a)=4+f(3)(a值為主函數(shù)中的a值) f函數(shù)n=3 a=2 n=n+(a+)=5 a=3 返回n,主函數(shù)s=4+f(3)=4+5=9 最后輸出s的值為9。 (35)有以下程序 #include <stdio.h> #define f(x) x*x*x main() int a=3,s,t; s=f(a+1);t=f(a+1); printf(“%d,%dn,s,t); 程序運行后的輸出結(jié)果是 A)10,64 B)10,10 C)64,10 D)64,64解析:選A。考點為帶參數(shù)的宏定義。宏定義中的

27、參數(shù)授有類型,僅為字符序列,不能當作表達式運算。宏展開時,把實參字符串原樣寫在替換文本中。s=f(a+l)=a+l*a+l*a+l=10t=f(a+1)=(a+1)*(a+1)*(a+1)=64 (36)下面結(jié)構(gòu)體的定義語句中,錯誤的是 A)struct ord int x;int y;int z; struct ord a; B)struct ord int x;int y;int z; struct ord a; C)struct ord int x;int y;int z; a; D)struct int x;int y;int z; a;解析:選B??键c為結(jié)構(gòu)體變量的定義。可以先定義結(jié)

28、構(gòu)體類型,再定義結(jié)構(gòu)體變量,如A??梢栽诙x結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如C??梢灾苯佣x結(jié)構(gòu)體變量,沒有類型名,如D。B選項錯誤,定義結(jié)構(gòu)體類型的同時使用此類型。 (37)設(shè)有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個字符串的是 A)char str =”string”;c=str; B)scanf(“%s”,c); C)c=getchar(); D)*c=”string”;解析:選A??键c為字符指針的使用。選項A為正確用法。先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針。(數(shù)組名代表數(shù)組首地址,定義數(shù)組時為其分配確定地址)選項C錯誤。getchar( )函數(shù)輸

29、入個字符給字符型變量,而不是字符指針。選項B和D有類似的錯誤,兩個選項并無語法錯誤,但運行時可能會出現(xiàn)問題。原因:在選項B和D中,字符指針沒有被賦值,是個不確定的值,指向一個不確定的內(nèi)存區(qū)域,這個區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個不確定的區(qū)域重新存放字符串,可能會發(fā)生無法預(yù)知的錯誤。 (38)有以下程序 #include <stdio.h> #include<string.h> struct A int a; char b10; double c; struct A f(struct A t); main() struct A a=1001,”ZhangDa”,109

30、8.0; a=f(a);jprintf(“%d,%s,%6.1fn”,a.a,a.b,a.c); struct A f(struct A t) ( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; ) 程序運行后的輸出結(jié)果是 A)1001,ZhangDa,1098.0 B)1001,ZhangDa,1202.0 C)1001,ChangRong,1098.0 D)1001,ChangRong,1202.0解析:選D。考點為結(jié)構(gòu)體類型在函數(shù)中的應(yīng)用。因為使用結(jié)構(gòu)體變量,程序看似很雜亂。但在使用中,結(jié)構(gòu)體變量和普通變量的作用是一樣的。如果這

31、樣看,程序執(zhí)行流程如下:函數(shù)調(diào)用f(a)將實參a傳給形參t,函數(shù)內(nèi)部對t重新賦值,然后返回t;主函數(shù)a=f(a),把返回值t賦給a,然后輸出a,其實就是t的值。 (39)若有以下程序段 int r=8; printf(“%dn”,r>>1); 輸出結(jié)果是 A)16 B)8 C)4 D)2解析:選C。考點為位運算中右移運算符的使用。 每右移一次,相當于除以2。本題中,r=(8)10=(0000 1000)2 r>>1后,r=( 0000 0100)2 =(4)10 (40)下列關(guān)于C語言文件的敘述中正確的是 A)文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件 B)文件由

32、結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件 C)文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件 D)文件由字符序列組成,其類型只能是文本文件解析:選C。C語言中根據(jù)數(shù)據(jù)的組織形式,分為二進制文件和ASCII碼文本文件。一個C文件是一個字節(jié)序列或者二進制序列,而不是一個記錄(結(jié)構(gòu))序列。 二、填空題(每空2分,共30分)(1)某二叉樹有5個度為2的結(jié)點以及3個度為1的結(jié)點,則該二叉樹中共有 14 個結(jié)點。解析:度為2的結(jié)點有5個,則度為0的結(jié)點(葉子結(jié)點)為5+1=6個,度為1的結(jié)點有3個,總結(jié)點數(shù)位5+6+3=14個。 (2)程序流程圖中的菱形框表示的是 邏輯條件 。(3)軟件開發(fā)過程主要分

33、為需求分析、設(shè)計、編碼與測試四個階段,其中 需求分析階段產(chǎn)生“軟件需求規(guī)格說明書。(4)在數(shù)據(jù)庫技術(shù)中,實體集之間的聯(lián)系可以是一對一或一對多或多對多的,那么“學生”和“可選課程”的聯(lián)系為 多對多 。解析:一個學生可以選多門功課,一門功課可以多個學生選擇。 (5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是 身份證號碼 。解析:關(guān)鍵字的值不能重復(fù),只能是唯一的。 (6)若有定義語句:int a=5;,則表達式:a+的值是 5 。解析:a+先使用a的值再增加1。 (7)若有語句double x=17;int y;,當執(zhí)行y=(int)(x/5)%2;之后y的值為 1

34、 。解析:y=(int)(3. )%2=3%2=1。 (8)以下程序運行后的輸出結(jié)果是 1 0 。#include <stdio.h>main() int x=20; printf(“%d”,0<x<20); printf(“%dn”,0<x&&x<20); 解析:“<”的結(jié)合性為從左到右。計算O<x<20,x=20,O<x為1,然后1<20結(jié)果為1。關(guān)系運算符優(yōu)先級大于邏輯運算符。0<x&&x<20相當于(0<x)&&(x<20),結(jié)果為0。 (9)以下程

35、序運行后的輸出結(jié)果是 5 。#include <stdio.h>main() int a=1,b=7; do b=b/2;a+=b; while (b>1); printf(“%dn”,a);解析:考點為do while語句的用法。程序執(zhí)行流程:a=l b=7執(zhí)行循環(huán)體,b=b/2=3 a=4;b>l條件成立,再執(zhí)行循環(huán)體,b=b/2=1 a=5;此時,b>l條件不成立,輸出a的值5。 (10)有以下程序#include <stdio.h>main() int f,f1,f2,i; f1=0;f2=1; printf(“%d %d”,f1,f2); f

36、or(i=3;i<=5;i+) f=f1+f2; printf(“%d”,f); f1=f2; f2=f; printf(“n”);程序運行后的輸出結(jié)果是 0 1 123 。解析:程序執(zhí)行流程: fl=0 f2=1輸出:0 1For循環(huán)變量中的i只起到控制循環(huán)次數(shù)的作用,循環(huán)3次。i=3 f=f1+f2=0+1=1輸出1; f1=f2=1 f2=f=li=4 f=f1+f2=1+1=2輸出2; f1=f2=1 f2=f=2i=5 f=f1+f2=1+2=3輸出3; f1=f2=2 f2=f=3注意循環(huán)內(nèi)輸出格式控制符沒有空格,所以123連續(xù)輸出。 (11)有以下程序#include <stdio.h>i

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論