C語言答疑系統(tǒng)所有題目_第1頁
C語言答疑系統(tǒng)所有題目_第2頁
C語言答疑系統(tǒng)所有題目_第3頁
C語言答疑系統(tǒng)所有題目_第4頁
已閱讀5頁,還剩213頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

所有單選題1、C語言中下列敘述正確的是0A:不能使用do-while語句構(gòu)成的循環(huán)B:do-while語句構(gòu)成的循環(huán),必須用break語句才能退出C:do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為非零時(shí)結(jié)束循環(huán)D:do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為零時(shí)結(jié)束循環(huán)答案:D評(píng)析:本題的考查點(diǎn)是do-while語句。選項(xiàng)A是錯(cuò)誤的,C語言支持do-while語句;選項(xiàng)B是錯(cuò)誤的,do-while構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為零時(shí)結(jié)束循環(huán),而不是非零;選項(xiàng)C也是錯(cuò)誤的。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)2、以下選項(xiàng)中屬于C語言的數(shù)據(jù)類型是〇A:復(fù)數(shù)型B:邏輯型C:雙精度型D:集合型答案:C評(píng)析:本題的考查點(diǎn)是C語言的數(shù)據(jù)類型。C語言的數(shù)據(jù)類型分為基本類型,構(gòu)造類型,指針類型,空類型四大類。其中,基本類型分為整型,字符型,實(shí)型三類。實(shí)型又稱浮點(diǎn)型,包括單精度型和雙精度型兩種類型。故本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法3、下列描述中不正確的是〇A:字符型數(shù)組中可以存放字符串B:可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出C:可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出D:不能在賦值語句中通過賦值運(yùn)算符〃ー對(duì)字符型數(shù)組進(jìn)行整體賦值答案:c評(píng)析:本題的考查點(diǎn)是對(duì)數(shù)組的理解。C語言規(guī)定只能逐個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。字符數(shù)組的輸入、輸出可以將整個(gè)字符串一次輸入或輸出。所以,選項(xiàng)C的說法是不正確的。故本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用4、以下程序的輸出結(jié)果是。main(){int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d”,x--,y);)A:10192B:9876C:10990D:101091答案:D評(píng)析:本題的考查點(diǎn)是for循環(huán)語句。for語句的一般格式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句執(zhí)行中只要表達(dá)式2為真,則執(zhí)行for語句中指定的內(nèi)嵌語句。所以,本題在條件為真的情況下,先執(zhí)行printf函數(shù)。x一是先使用后運(yùn)算。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)5、以下程序的輸出結(jié)果是。main(){chara[10]={'1','2','3','4','5','6','7','8','9',〇},*p;inti;i=8;p=a+i;printf(誤s\n",p-3);)A:6B:6789C:'6'D:789答案:B評(píng)析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。指針P指向數(shù)組中第8個(gè)元素,即a[8]='9'。輸出時(shí),輸出字符串,且指針把a(bǔ)[8]作為初始位置往前指3個(gè)元素,也就是共有4個(gè)字符輸出。最后指向a[5]為’6',所以輸出為6789。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)6、能正確表示a和b同時(shí)為正或同時(shí)為負(fù)的邏輯表達(dá)式是。A:(a>=0||b>=0)&&(a<0|b<0)B:(a>=O&&b>=O)&&(aく0&&bく〇)C:(a+b>O)&&(a+bく=0)D:a*b>0答案:D評(píng)析:本題的考查點(diǎn)是對(duì)邏輯表達(dá)式的判斷。邏輯表達(dá)式是指用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來。選項(xiàng)A中,表達(dá)式表示的是a,b為異號(hào);選項(xiàng)B中,表達(dá)式表示的是〇,因?yàn)闆]有滿足條件的值:選項(xiàng)C中,表達(dá)式表示的是0,因?yàn)闆]有滿足條件的值:選項(xiàng)D表示的是a和b為同號(hào)。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句7、以下程序的輸出結(jié)果是。main(){intn=4;while(n-)printf(?,%d ",—n);)A:20B:31C:321D:210答案:A評(píng)析:本題的考查點(diǎn)是while語句的判斷。n一是先使用后運(yùn)算,--n是先運(yùn)算后使用。n=4時(shí),執(zhí)行n一后,n變?yōu)?,執(zhí)行一n后,n變?yōu)?,所以,第一次輸出時(shí),n為2;同上過程,第二次輸出時(shí),n為0。故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)8、以下程序的輸出結(jié)果是〇main(){intk=17;printf("%d,%o,%x\n",k,k,k);)A:17,021,0x11B:17,17,17C:17,0x11,021D:17,21,11答案:D評(píng)析:本題的考查點(diǎn)是不同格式的數(shù)據(jù)輸出。printf函數(shù)對(duì)不同類型的數(shù)據(jù)用不同的格式字符,〃%d”是以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào));"%?!币?進(jìn)制無符號(hào)形式輸出整數(shù)(不包括前導(dǎo)符〇);“%x〃以16進(jìn)制無符號(hào)形式輸出整數(shù)(不包括前導(dǎo)符Ox)。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法9、若有說明:long*p,a;則不能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是。A:*p=&a;scanfp);B:p=(long*)malloc(8);scanf("%ld,p);C:scanf("%ld”,p=&a);D:scanf&a);答案:A評(píng)析:本題的考查點(diǎn)是格式輸入函數(shù)Scanf()的使用。scanf函數(shù)輸入形式為:scanf(格式控制,地址表列);選項(xiàng)B中,p=(long*)malloc(8)是分配8個(gè)字節(jié)的long型存儲(chǔ)單元,所以能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù);選項(xiàng)C中,p=&a,求出變量a的內(nèi)存地址并賦給p;選項(xiàng)口中,能正確給輸入項(xiàng)讀入數(shù)據(jù);故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用10、以下選項(xiàng)中,能定義s為合法的結(jié)構(gòu)體變量的是0A:typedefstructabc{doublea;charb[10];}s;B:struct{doublea;charb[10];}s;C:structABC{doublea;charb[10];)ABCs;D;typedefABC{doublea;charb[10];ABCs;答案:B評(píng)析:本題的考查點(diǎn)是結(jié)構(gòu)體變量的定義。定義ー個(gè)結(jié)構(gòu)體類型的變量,可采用三種方法:(1)先定義結(jié)構(gòu)體類型再定義變量名;(2)在定義類型的同時(shí)定義變量;(3)直接定義結(jié)構(gòu)類型變量,即不出現(xiàn)結(jié)構(gòu)體名;選項(xiàng)B符合第三種定義方法。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/結(jié)構(gòu)體(即〃結(jié)構(gòu)〃)與共用體(即〃聯(lián)合〃)/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法11、請(qǐng)讀程序:ttinclude<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b〉=20)break;if(b%3==1){b+=3;continue;}b-=5;)printf(〃%d\n,a);}上面程序的輸出結(jié)果是〇A:7B:8C:9D:10答案:B評(píng)析:本題的考查點(diǎn)是break語句和continue語句?!?〃是求余運(yùn)算符,執(zhí)行第一次循環(huán)時(shí),條件(b%3==1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當(dāng)b=22時(shí),條件(b>=20)為假,跳出循環(huán),此時(shí)共循環(huán)8次,即a=8。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用SWITCH語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)12、請(qǐng)選出合法的C語言賦值語句0A:a=b=58B:i++;C:a=58,b=58D:k=int(a+b);答案:B評(píng)析:本題的考查點(diǎn)是賦值語句。選項(xiàng)A和C沒有用分號(hào)表示語句結(jié)束,不合法;選項(xiàng)D,函數(shù)名和C語言的關(guān)鍵字重名,不合法。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句13、請(qǐng)選出可用作C語言用戶標(biāo)識(shí)符的ー組標(biāo)識(shí)符〇①void ②a3_b3 ③For④2adefine _123 _abc DOWORD IF case sizeofA:①B:②C:③D:④答案:B評(píng)析:本題的考查點(diǎn)是C語言的標(biāo)識(shí)符。C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。①中的void和define都和C語言的關(guān)鍵字重名,不合法;③中的case和C語言的關(guān)鍵字重名,不合法;④中的2a是數(shù)字打頭而且sizeof和C語言的關(guān)鍵字重名,不合法。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法14、若x和y都是int型變量,x=100、y=200,且有下面的程序片段printf("%d”,(x,y));上面程序片段的輸出結(jié)果是。A:200B:100C:100 200D:輸入格式符不夠,輸出不確定的值答案:A評(píng)析:本題的考查點(diǎn)是逗號(hào)表達(dá)式。在(x,y)中的",”是ー個(gè)特殊的運(yùn)算符,叫做逗號(hào)運(yùn)算符,它的一般形式為:表達(dá)式1,表達(dá)式2,求解過程為:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)表達(dá)式的值是表達(dá)式2的值,(x,y)的值為200,所以輸出結(jié)果為200。故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用15、若x是int型變量,且有下面的程序片段for(x=3;x<6;x++) printf((x%2)?("**%d"):("##%d\n"),x);上面程序片段的輸出結(jié)果是〇①**3 ②##3 ③##3 ④**3##4##4 **4 **4##5 **5**5 ##5A:①B:②C:③D:④答案:D評(píng)析:本題的考查點(diǎn)是條件運(yùn)算符。這種條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,條件運(yùn)算符的執(zhí)行順序?yàn)椋合惹蠼獗磉_(dá)式1,若非〇則求解表達(dá)式2,此時(shí)表達(dá)式2的值就是整個(gè)條件表達(dá)式的值,若表達(dá)式1的值為〇,則求解表達(dá)式3,此時(shí)表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性16、若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是。A:pb=&x;B:pb=x;C:*pb=&x;D:*pb二*x答案:A評(píng)析:本題的考查點(diǎn)是賦值表達(dá)式。選項(xiàng)A是將變量x的地址賦給指針變量pb,使pb指向x,故為正確的賦值表達(dá)式。選項(xiàng)B是將x的值當(dāng)作地址賦給指針pb,pb指向ー個(gè)地址等于x值的內(nèi)存單元;ー選項(xiàng)C是將x的地址賦給指針pb指向的那個(gè)地址等于x值的內(nèi)存單元;選項(xiàng)D是不正確的語句;本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句17、若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元int*p;p=malloc(sizeof(int));則應(yīng)填入〇A:intB:int*C:(*int)D:(int*)答案:D評(píng)析:本題的考查點(diǎn)是強(qiáng)制類型轉(zhuǎn)換。不論P(yáng)是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法使之類型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)〇故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算18、若有以下說明和語句,請(qǐng)選出哪個(gè)是對(duì)c數(shù)組元素的正確引用intc[4][5],(*cp)[5];cp=c;A:cp+1B:*(cp+3)C:*(cp+1)+3D:*(*cp+2)答案:D評(píng)析:本題的考查點(diǎn)是數(shù)組元素的引用。cp=c這個(gè)語句是將數(shù)組C的首地址賦給了指針數(shù)組cp的第一個(gè)數(shù)組元素。選項(xiàng)A,cp+1是指將數(shù)組c的首地址加1,不是對(duì)數(shù)組元素的引用;選項(xiàng)B,*(cp+3)是地址等于數(shù)組c的首地址加3的那個(gè)內(nèi)存單元的內(nèi)容,不是對(duì)數(shù)組元素的引用;選項(xiàng)C,*(cp+l)+3是地址等于數(shù)組c的首地址加1的那個(gè)內(nèi)存單元中存放的值加3,不是對(duì)數(shù)組元素的引用。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)19、若執(zhí)行下面的程序時(shí)從鍵盤上輸入3和4,main(){inta,b,s;scanf("%d%d”,&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);)則輸出是〇A:14B:16C:18D:20答案:B評(píng)析:本題的考查點(diǎn)是給變量賦值。用戶輸入的3和4分別賦給了a和b,在if語句進(jìn)行判斷時(shí),因?yàn)楸磉_(dá)式的值為真,所以b的值將賦給s,s*s=16,最后的打印結(jié)果為16。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句20、設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為〇的表達(dá)式是〇A:B:a<=bC:aII+c&&b~cD:!((aくb)&&!c||1)答案:D評(píng)析:本題的考查點(diǎn)是幾種運(yùn)算符的使用。該題需要弄清楚以下幾點(diǎn):1、幾種運(yùn)算符的使用方法;2、C語言中運(yùn)算符的結(jié)合方向(結(jié)合性);3、C語言中運(yùn)算符的優(yōu)先級(jí)。根據(jù)以上規(guī)則進(jìn)行表達(dá)式拆分,運(yùn)算后即可得出正確答案。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性21、設(shè)a=5、b=6、c=7、d=8、m=2、n=2?執(zhí)行(m=a>b)&&(n=c>d)后n的值為〇A:1B:2C:3D:4答案:B評(píng)析:本題的考查點(diǎn)是邏輯與運(yùn)算。在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),オ執(zhí)行該運(yùn)算符。本題中,(m=a>b)的值為O,求出整個(gè)表達(dá)式的值為〇,不需執(zhí)行(n=c>d),所以n仍為2。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性22、設(shè)ch是char型變量,其值為A,且有下面的表達(dá)式ch=(ch>='A'&&chく='Z')?(ch+32):ch上面表達(dá)式的值是。A:AB:aC:ZD:z答案:B評(píng)析:本題的考查點(diǎn)是條件運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若非〇則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)表達(dá)式的值,若表達(dá)式1的值為0,則求解表達(dá)式3,此時(shí)表達(dá)式3的值就作為整個(gè)表達(dá)式的值。本題中,表達(dá)式1的值為1,所以整個(gè)表達(dá)式的值為表達(dá)式(ch+32)的值,即為a。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性23、設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是〇A:552B:264C:144D:-264答案:D評(píng)析:本題的考查點(diǎn)是賦值表達(dá)式的求解。第一步:a*a=144;(此時(shí)a=12)第二步:a-=144相當(dāng)于a=a-144,a=a-144=-132;(此時(shí)a=T32)第三步:a+=a相當(dāng)于a=a+a,a=a+a=-264;所以該表達(dá)式最后的值應(yīng)當(dāng)為ー264。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C表達(dá)式類型和求值規(guī)則24、設(shè)有如下枚舉類型定義enumlanguage{Basic=3,Assembly=6,Ada=100,COBOL,Fortran};枚舉量Fortran的值為〇A:4B:7C:102D:103答案:C評(píng)析:本題考查的是數(shù)據(jù)類型。這個(gè)枚舉中共有5個(gè)元素,前三個(gè)已有明確的賦值,而COBOL和Fortran沒有明確的賦值,枚舉的語法規(guī)定當(dāng)枚舉元素沒有賦值時(shí),其值為其前一個(gè)元素的值加一,所以COBOL的值為101,故Fortran的值應(yīng)為102。故容案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法25、設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:(其中OWiく10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;A:a[p-a]B:*(&a[i])C:p[i]D:*(*(a+i))答案:D評(píng)析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以〃*(a+i)〃表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)26、設(shè)有以下語句chara=3,b=6,c;c=a'bくく2;則c的二進(jìn)制值是0A:00011011B:00010100C:00011100D:00011000答案:A評(píng)析:本題的考查點(diǎn)是位運(yùn)算。"くく”是C語言中規(guī)定的左移運(yùn)算符,例如,a=aくく2,這個(gè)語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方;"是異或運(yùn)算符,所以,c的二進(jìn)制值應(yīng)為OOOllOllo故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/位運(yùn)算/簡單的位運(yùn)算27、設(shè)有語句inta=3;則執(zhí)行了語句a+=a-=a*a;后,變量a的值是A:3B:0C:9D:-12答案:D評(píng)析:本題的考查點(diǎn)是賦值表達(dá)式的求解。第一步:a*a=9;(此時(shí)a=3)第二步:a-=9相當(dāng)于a=a-9,a=a-9=-6;(此時(shí)a=-6)第三步:a+=a相當(dāng)于a=a+a,a=a+a=T2;所以該表達(dá)式最后的值應(yīng)當(dāng)為72。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C表達(dá)式類型和求值規(guī)則28、下面程序main(){intx=100,a=10,b=20,okl=5,ok2=0;if(a<b)if(b!=15)if(!okl)x=l;elseif(ok2)x=10;x二T;printf(,,%d\n,/,x);)的輸出是〇A:-1B:0C:1D:不確定的值答案:A評(píng)析:本題的考查點(diǎn)是判斷語句的循環(huán)嵌套。第一個(gè)判斷值為真,過渡到下ー個(gè)判斷,第二個(gè)判斷為真,過渡到第三個(gè)判斷 如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為T,所以,無論前期如何變化,最后的x值依然為ー1。故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/循環(huán)的嵌套29、下面程序main()(intx=32;printf("%d\n",x=x?l);}的輸出是。A:100B:160C:120D:64答案:D評(píng)析:本題的考查點(diǎn)是位運(yùn)算。くく是C語言中規(guī)定的左移運(yùn)算符,例如,a=aくく2,這個(gè)語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘于2,左移兩位相當(dāng)于該數(shù)乘以2的2次方。所以,xくく1=32*2=64。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/位運(yùn)算/簡單的位運(yùn)算30、下面程序main()(inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n”,*(p+2));)的輸出是〇A:3B:4C:1D:2答案:A評(píng)析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。*p=a語句是使指針p指向數(shù)組a的第一個(gè)數(shù)組元素,因此?(p+2)即是數(shù)組a的第3個(gè)元素的值,即a[2]。故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)31、下面程序main()intx=10,y=3;printf("%d\n",y=x/y);的輸出是〇A:0B:1C:3D:不確定的值答案:C評(píng)析:本題的考查點(diǎn)是除法運(yùn)算。x/y的結(jié)果約為3.33333,但是由于打印要求為整型,所以自動(dòng)轉(zhuǎn)換為整型(相當(dāng)于截取整數(shù)位),打印結(jié)果為3。故本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法32、下面程序voidprtv(int*x){printf("%d\n”,++*x);}main(){inta=25;prtv(&a);)的輸出是〇A:23B:24C:25D:26答案:D評(píng)析:本題的考查點(diǎn)是指針變量作為函數(shù)參數(shù)。觀察程序,可以發(fā)現(xiàn),函數(shù)prtv()的作用是將地址等于x的內(nèi)存單元中值加1,因?yàn)槲覀冊(cè)谥骱瘮?shù)中是將變量a的地址作為實(shí)參傳遞給了prtv()函數(shù),所以,函數(shù)prtv()將地址等于變量a的地址的那個(gè)內(nèi)存單元中值加一,打印結(jié)果自然就是25+1=26了。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)33、下面的程序main(){intx=3;do{printf("%d\n”,x-=2);}while(!(―x));A:輸出的是1B:輸出的是1和一2C:輸出的是3和0D:是死循環(huán)答案:B評(píng)析:本題的考查點(diǎn)是do-while語句。在第一次循環(huán)時(shí),先計(jì)算表達(dá)式x-=2,所以輸出1,一x為〇,判斷表達(dá)式的值為非零,返回重新執(zhí)行該語句;在第二次循環(huán)時(shí),表達(dá)式x-=2,即ー2,所以輸出ー2,—x為-3,判斷表達(dá)式的值為零,循環(huán)結(jié)束。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)34、下面的程序中錯(cuò)誤(每行程序前面的數(shù)字是行號(hào))。#include<stdio.h>main(){floata[3]={0.0};inti;for(i=0;i<3;i++)scanf('%d",a[i]);for(i=l;i<3;i++)a[0]=a[0]+a[i];printf("%f\n",a[〇]);}A:沒B:第4行C:第6行D:第8行答案:C評(píng)析:本題的考查點(diǎn)是函數(shù)scanf()的格式輸入。根據(jù)函數(shù)scanf()的語法可知,在函數(shù)中的參數(shù)表列部分,應(yīng)當(dāng)是欲賦值變量的內(nèi)存地址,象第六行這樣,將數(shù)組元素直接放在參數(shù)表列中是無法達(dá)到給數(shù)組元素賦值的目的。故本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用35、下面函數(shù)intfunl(char*x){char*y=x;while(*y++);return(y-x-l);}的功能是。A:求字符串的長度B:比較兩個(gè)字符串的大小C:將字符串x復(fù)制到字符串yD:將字符串x連接到字符串y后面答案:A評(píng)析:本題的考查點(diǎn)是while。循環(huán)語句。這個(gè)函數(shù)的功能是求字符串的長度,需要注意的是,在返回長度時(shí)一定記住要減ー,否則計(jì)算出的串長度將會(huì)多一。故本題答案是A。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)36、以下程序的輸出結(jié)果是。#include<stdio.h>main()inti=10,j=10;printf("%d,%d\n”,++i,j--);A:11,10B:9,10C:010,9D:10,9答案:A評(píng)析:本題的考查點(diǎn)是變量的自增、自減運(yùn)算。++i是先對(duì)i進(jìn)行加1運(yùn)算,再使用i的值;j一是先使用j值,再對(duì)j進(jìn)行減1運(yùn)算。所以,程序的打印結(jié)果應(yīng)當(dāng)為“11,10"。故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性37、以下的for循環(huán):for(x=0,y=0;(y!=123)&&(xく4);x++);A:是無限循環(huán)B:循環(huán)次數(shù)不定C:執(zhí)行4次D:執(zhí)行3次答案:C評(píng)析:本題的考查點(diǎn)是for語句循環(huán)條件的判斷。循環(huán)條件是表達(dá)式(y!=123)&&(xく4),因?yàn)閥值始終為〇,所以表達(dá)式左邊一定恒為1,當(dāng)xく4時(shí),循環(huán)可以運(yùn)行,當(dāng)x=4時(shí),循環(huán)終止,所以這個(gè)循環(huán)ー共可以執(zhí)行4次。故本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)38、有以下程序:ttinclude<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[l]=O;printf("%d\n",a.i);)程序的輸出結(jié)果是(注意:ch[0]在低字節(jié),ch[l]在高字節(jié))0A:13B:14C:208D:209答案:A評(píng)析:本題的考查點(diǎn)是共用體類型數(shù)據(jù)的特點(diǎn)。根據(jù)共用體的定義可知:共用體a的成員i和成員ch[2]是共用著同一段內(nèi)存空間,所以,當(dāng)程序給a.ch[〇]賦值后,實(shí)際上,共用體成員i的值也確定了,為13,所以打印輸出的結(jié)果應(yīng)當(dāng)為13。故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/結(jié)構(gòu)體(即〃結(jié)構(gòu)〃)與共用體(即〃聯(lián)合〃)/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法39、有以下程序main(){intc;while((c=getchar())!=\n'){switch(c,2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;})}從第一列開始輸入以下數(shù)據(jù),/代表ー個(gè)回車符。2473/程序的輸出結(jié)果是。A:668977B:668966C:66778777D:6688766答案:A評(píng)析:本題的考查點(diǎn)是switch()語句。getcharO函數(shù)是從鍵盤接受一個(gè)字符輸入;當(dāng)用戶鍵入的字符不是回車符時(shí),會(huì)進(jìn)入一個(gè)多分支選擇語句,根據(jù)表達(dá)式c-'2’的值進(jìn)行分支選擇;putchar。是在屏幕上打印一個(gè)字符,最后的結(jié)果應(yīng)當(dāng)為668977c故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用SWITCH語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)40、執(zhí)行下面程序片段的結(jié)果是〇intx=23;do{printf("%2d”,x--);}while(!x);A:打印出321B:打印出23C:不打印任何內(nèi)容D:陷入死循環(huán)答案:B評(píng)析:本題的考查點(diǎn)是do-while循環(huán)語句的判斷。x一是自減運(yùn)算,先使用x的值,后進(jìn)行自減運(yùn)算,所以打印出來的結(jié)果應(yīng)當(dāng)為23。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)41、執(zhí)行下面的程序段intx=35;charz-A';intB;B=((x&15)&&(zぐa'));后,B的值為〇A:0B:1C:2D:3答案:B評(píng)析:本題的考查點(diǎn)是邏輯與及位與運(yùn)算。從整個(gè)表達(dá)式來看是個(gè)邏輯表達(dá)式,而與運(yùn)算符〃&&〃的右邊的子表達(dá)式中由于z的值為"A”,而A的ASCH碼的值小于a的ASCH碼值,所以這個(gè)子表達(dá)式的值為真,即1;在與運(yùn)算符〃&&〃的左邊的子表達(dá)式是個(gè)基于位運(yùn)算的子表達(dá)式,將x的值與15做位與運(yùn)算,表達(dá)式值不為零,所以兩個(gè)子表達(dá)式的與值應(yīng)當(dāng)為1。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/位運(yùn)算/位運(yùn)算符的含義及使用42、表達(dá)式:10!=9的值是0A:trueB:非零值C:0D:1答案:D評(píng)析:本題的考查點(diǎn)是關(guān)系運(yùn)算符!ニ。在這種運(yùn)算中,表達(dá)式的值只有兩種:1或0,表達(dá)式10!=9的值應(yīng)當(dāng)是1。故本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C表達(dá)式類型和求值規(guī)則43、若有說明:inti,j=7,*p=&i;則與i=j;等價(jià)的語句是〇A:i二?p;B:*p=*&j;C:i=&j;D:i=**p;答案:B評(píng)析:本題的考查點(diǎn)是指針變量的引用。P的地址本身和i的地址ー樣,所以?P代表i中的數(shù)值,而&j是j的地址,*&j就是j中的數(shù)值,所以,*p=*&j和i=j是等價(jià)的。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針與指針變量的概念,指針與地址運(yùn)算符44、以下程序的輸出結(jié)果是〇main(){char*s="12134211”;intv[4]={0,0,0,0},k,i;for(k=0;s[k];k++){switch(s[k]){case'r:i=0;case'2':i=l;case'3':i=2;case'4':i=3;)v[i]++;)for(k=0;k<4;k++)printf("%d",v[k]);)TOC\o"1-5"\h\zA: 4 2 1 1B: 0 0 0 8C: 4 6 7 8D: 8 8 8 8答案:B評(píng)析:本題的考查點(diǎn)是switch語句的應(yīng)用。在每次執(zhí)行switch后面括號(hào)內(nèi)的表達(dá)式s[k]時(shí),要先取當(dāng)前s[k]的值與case后的字符常量進(jìn)行比較,找到與之匹配的分支后,即轉(zhuǎn)去執(zhí)行該分支中的語句。switch語句中,某分支執(zhí)行完畢,若未遇到break語句,則接著執(zhí)行剩余的其它分支,直到遇到break語句。此題中,因?yàn)闆]有break語句,所以總會(huì)執(zhí)行到i=3,即總是v[3]在遞加。故本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用SWITCH語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)45、有如下程序main(){intn=9;while(n>6)(n一;printfn);))該程序的輸出結(jié)果是。A:987B:876C:8765D:9876答案:B評(píng)析:本題考查點(diǎn)是While語句循環(huán)次數(shù)的問題。符合n>6的n只有7,8,9;所以循環(huán)次數(shù)為3。選項(xiàng)C、D可以排除。又因n在輸出之前要執(zhí)行n-,所以輸出結(jié)果只能是876。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)46^設(shè)有說明語句:chara='\72';則變量a0A:包含1個(gè)字符B:包含2個(gè)字符C:包含3個(gè)字符D:說明不合法答案:A評(píng)析:本題考查點(diǎn)是轉(zhuǎn)義字符的應(yīng)用。轉(zhuǎn)義字符常量‘'XX‘可以把‘'‘后面的數(shù)字轉(zhuǎn)換為對(duì)應(yīng)的ASCH字符,''72'表示的是ASCH碼等于72的那個(gè)字符,即為〃H”,所以在字符變量中存儲(chǔ)的只是〃H”這一個(gè)字符。故本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算47、若變量已正確定義并賦值,下面符合C語言的表達(dá)式是0A:a:=b+lB:a=b=c+2C:int18.5%3D:a=a+7=c+b答案:B評(píng)析:選項(xiàng)A和C顯然錯(cuò)誤;對(duì)于表達(dá)式a=a+7=c+b(答案D),是先執(zhí)行賦值表達(dá)式a+7=c+b,再把這個(gè)表達(dá)式的值賦給a,顯然,表達(dá)式a+7=c+b非法,因?yàn)橘x值表達(dá)式的左值不能為常量或表達(dá)式。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句48、若已定義x和y為double類型,則表達(dá)式x=l,y=x+3/2的值是A:1B:2C:2.0D:2.5答案:C評(píng)析:這是ー個(gè)逗號(hào)表達(dá)式,它的值應(yīng)為表達(dá)式y(tǒng)=x+3/2的值,而前ー個(gè)表達(dá)式已給x賦值1,在沒有進(jìn)行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應(yīng)為2.0。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句49、若變量a、i已正確定義,且i已正確賦值,合法的語句是,A:a==lB:++i;C:a=a++=5D:a=int(i);答案:B評(píng)析:選項(xiàng)D顯然是錯(cuò)的,而選項(xiàng)A沒有分號(hào)結(jié)束,不是C語句;a++=5違反了賦值表達(dá)式左值必須為ー個(gè)變量(不能是常量或表達(dá)式)的規(guī)定.本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句50、有如下程序main(){inty=3,x=3,z=l;printf("%d%d\n”,(++x,y++),z+2);)運(yùn)行該程序的輸出結(jié)果是。TOC\o"1-5"\h\zA: 3 4B: 4 2C: 4 3D: 3 3答案:D評(píng)析:逗號(hào)表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用51、有如下程序main(){intx=l,a=0,b=0;switch(x){case0:b++;a++;a++;b++;)printf(a=%d,b=%d\n,a,b);)該程序的輸出結(jié)果是〇A:a=2,b=lB:a=l,b=lC:a=l,b=OD:a=2,b=2答案:A評(píng)析:在這個(gè)switch語句中,因?yàn)閤的值為1,所以執(zhí)行case1:后面的a++,這樣a=lo但又由于其下沒有break語句,所以其后面的語句(a++;b++)也將被執(zhí)行,這樣ー來,a=2,b=1。本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用SWITCH語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)52、有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=l.0/x;elsey=l.0;printf("%f\n",y);)該程序輸出結(jié)果是〇A:0.000000B:0.250000C:0.500000D:1.000000答案:c評(píng)析:本題考查的是1F-ELSE語句的使用。x=2.0,符合第二個(gè)IF語句的條件xく10.0,所以執(zhí)行y=l.0/x語句,即y=L0/2.0=0.500000。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用IF語句實(shí)現(xiàn)選擇結(jié)構(gòu)53、有如下程序main(){inta=2,b=-l,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\rT,c);該程序的輸出結(jié)果是。A:0B:1C:2D:3答案:C評(píng)析:由于條件(a<b)并不滿足,所以if(a<b)后面的語句并沒有被執(zhí)行,c仍然等于2。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用IF語句實(shí)現(xiàn)選擇結(jié)構(gòu)54、有如下程序main(){inti,sum;for(i=l;i<=3;sum+)sum+=i;printf("%d\n",sum);)該程序的執(zhí)行結(jié)果是。A:6B:3C:死循環(huán)D:0答案:C評(píng)析:在循環(huán)過程中,i的值一直沒有被改變,所以這是一個(gè)死循環(huán)。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)55、有如下程序main(){intn=9;while(n>6) {n--;printf('%d",n);}該程序段的輸出結(jié)果是。A:987B:876C:8765D:9876答案:B評(píng)析:符合n>6的n只有7,8,9,所以循環(huán)次數(shù)為3。C,D可以排除。又:n在輸出之前要執(zhí)行n--,所以輸出結(jié)果只能是876。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)56、設(shè)有說明語句:chara='\72';則變量a0A:包含1個(gè)字符B:包含2個(gè)字符C:包含3個(gè)字符D:說明不合法答案:A評(píng)析:轉(zhuǎn)義字符常量‘'XX‘可以把‘'’后面的數(shù)字轉(zhuǎn)換為對(duì)應(yīng)的ASCII字符,’'72‘就是‘H’。本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句57、有如下程序段int*p,a=10,b=l;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為0A:12B:11C:10D:編譯出錯(cuò)答案:B評(píng)析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標(biāo)變量,也就是a;所以a=*p+b等價(jià)于a=a+b,可知a的值最終為11。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針與指針變量的概念,指針與地址運(yùn)算符58、對(duì)于基類型相同的兩個(gè)指針變量之間,不能進(jìn)行的運(yùn)算是。A:<B:—C:+D:-答案:c評(píng)析:指針之間不能進(jìn)行加運(yùn)算。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針與指針變量的概念,指針與地址運(yùn)算符59、有如下程序ttdefineN2#defineMN+1ttdefineNUM2*M+1main(){inti;for(i=l;i<=NUM;i++)printf("%d\n”,i);)該程序中的for循環(huán)執(zhí)行的次數(shù)是0A:5B:6C:7D:8答案:B評(píng)析:在C語言中,宏定義在編譯時(shí)將被直接替換,所以NUM最后會(huì)被替換成2*N+1+1,即2*2+1+1,值為6。因此,for循環(huán)執(zhí)行的次數(shù)為6。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)60、有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(cぐB');執(zhí)行該程序段后,x的值為〇A:trueB:falseC:0D:1答案:D評(píng)析:a&&b的值為true,cぐB’的值也為true,所以(a&&b)&&(cぐB')的值為true。但x是int型變量,所以(a&&b)&&(cぐB')的值最后要從bool型轉(zhuǎn)換為int型賦給X。這樣x的值應(yīng)為1。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算61、有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是〇A:*p+9B:*(p+8)C:*p+=9D:p+8答案:B評(píng)析:P是指針,p+8是地址值,D是錯(cuò)的;*p是p的目標(biāo)變量,即a[0],值為1,所以?p+9的值是10,而?p+=9值是重新給a[〇]賦了值(1+9);所以A和C也是錯(cuò)的。p+8是地址值,指向a[8],那么?(p+8)的值就是a[8]的值,即9。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)62有如下程序main()intn[5]={0,0,0},i,k=2;for(i=0;i<k;i++)n[i]=n[i]+1;printf("%d\n",n[k]);)該程序的輸出結(jié)果是〇A:不確定的值B:2C:1D:0答案:D評(píng)析:由代碼可知,題中的for循環(huán)值執(zhí)行2次(i=0和1),所以只對(duì)a[0]和a[l]重新賦了值,而a[k]即a[2]的值并沒有變,仍為〇。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)63、有如下程序main()(inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;jく=i;j++)s+=a[i][j]];printf("%d\n",s);)該程序的輸出結(jié)果是。A:18B:19C:20D:21答案:A評(píng)析:題中的外循環(huán)只執(zhí)行了2次:第1次:a[l][0]=3,a[l][l]=4,所以s=7;第2次:a[2][0]=5,a[2][l]=6,a[2][2]=0,所以s=7+5+6+0二18〇本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/循環(huán)的嵌套64、有如下定義structperson(charname[9];intage;};structpersonclass[10]=tJohn”,17,"Paul”,19,"Mary",18,"Adam",16,};根據(jù)上述定義,能輸出字母M的語句是〇A:printf("%c\n",class[3].name);B:printf("%c\n",class[3].name[l]);C:printf("%c\n",class[2].name[l]);D:printf("%c\n",class[2].name[0]);答案:D評(píng)析:選項(xiàng)A將輸出A;選項(xiàng)B將輸出d;選項(xiàng)C將輸出a;選項(xiàng)D將輸出M。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用65、以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是〇A:typedefstructaa{intn;floatm;}AA;AAtdl;B:#defineAAstructaaAA{intn;floatm;}tdl;C:struct{intn;floatm;}aa;structaatdl;D:struct{intn;floatm;}tdl;答案:C評(píng)析:在答案C中,aa是ー個(gè)結(jié)構(gòu)體變量,而不是結(jié)構(gòu)體名,所以structaatdl;是非法的。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/結(jié)構(gòu)體(即"結(jié)構(gòu)")與共用體(即"聯(lián)合")/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法66、下列敘述中正確的是〇A:C語言編譯時(shí)不檢查語法B:C語言的子程序有過程和函數(shù)兩種C:C語言的函數(shù)可以嵌套定義D:C語言中,根據(jù)函數(shù)能否被其它源文件調(diào)用,被區(qū)分為內(nèi)部函數(shù)和外部函數(shù)答案:D評(píng)析:選項(xiàng)A的錯(cuò)誤在于編譯過程中是檢查語法的,若發(fā)現(xiàn)源程序有語法錯(cuò)誤,則系統(tǒng)會(huì)提示出錯(cuò)信息;選項(xiàng)B的錯(cuò)誤在于C語言中,子程序的作用是由函數(shù)來完成的,無過程的概念;選項(xiàng)C的錯(cuò)誤在于函數(shù)不可以嵌套定義,但可以嵌套調(diào)用。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/C語言的結(jié)構(gòu)/程序的構(gòu)成,MAIN函數(shù)和其他函數(shù)67、以下列出C語言常量中,錯(cuò)誤的是0A:OxFFB:1.2e0.5C:2LD:,\72,答案:B評(píng)析:C語言中的指數(shù)形式,字母E之前必須有數(shù)字,且E后面指數(shù)必須為整數(shù)。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法68、以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的C語言表達(dá)式是。A:x/y*zB:x*(l/(y*z))C:x/y*l/zD:x/y/z答案:A評(píng)析:按照自左向右的運(yùn)算邏輯,選項(xiàng)A是先做x/y,然后再乘以x,顯然與題意不符。本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法69、若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是〇A:-3B:9C:-12D:6答案:C評(píng)析:C語言中對(duì)賦值運(yùn)算的運(yùn)算順序是自右向左。本題中,計(jì)算a*a之后,a的值依然為3,表達(dá)式a*a的值為9;a-=9,a=3-9=-6;a+=-6,a二一6+-6二-12。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C表達(dá)式類型和求值規(guī)則70、設(shè)x、y、t均為int型變量,則執(zhí)行語句:x=y=3;t=++x||++y;后,y的值為〇A:不定值B:4C:3D:1答案:C評(píng)析:C語言中在做邏輯或運(yùn)算時(shí),自左向右判斷各個(gè)參加或運(yùn)算的表達(dá)式,一旦運(yùn)到某式的值為非零時(shí),表明整個(gè)表達(dá)式定為真,余下的語句則不再進(jìn)行運(yùn)算。本題中,++x的值為真,貝リ++y并沒有進(jìn)行運(yùn)算,所以y值不變。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/復(fù)合語句71、若變量已正確說明為float類型,要通過語句scanf("%f%f%f",&a,&b,&c):給a賦予10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是:0A:102233B:10.0,22.0,33.0C:10.0033.0D:102233答案:B評(píng)析:C語言中,數(shù)據(jù)輸入時(shí),必需嚴(yán)格按照scanf語句中的格式符來進(jìn)行輸入,不需要分隔符,否則作為有效字符讀入。選項(xiàng)中B中的逗號(hào)將被做為有效字符讀入。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用72、若a、b、cl、c2、x、y均是整型變量,正確的switch語句是0switch(a+b);{case1:y=a+b;break;case0:y=a-b;break;)switch(a*a+b*b){case3:case1:y=a+b;break;case3:y=b-a;break;)switcha{casecl:y=a-b;break;casec2:x=a*b;break;default:x=a+b;}switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a-b;break;}A:①B:②C:③D:④答案:D評(píng)析:選項(xiàng)A的錯(cuò)誤在于switch語句后面不該加分號(hào);選項(xiàng)B的錯(cuò)誤在于switch語句要求每ー個(gè)case的常量表達(dá)式的值必須互不相同;選項(xiàng)C的錯(cuò)誤在于變量a應(yīng)該用括號(hào)括起來,case后面應(yīng)該跟上常量表達(dá)式,而不是變量。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用SWITCH語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)73、有以下程序段intk=0;while(k=l)k++;while循環(huán)執(zhí)行的次數(shù)是0A:無限次B;有語法錯(cuò),不能執(zhí)行C:一次也不執(zhí)行D:執(zhí)行1次答案:A評(píng)析:乍ー看,還以為程序要表達(dá)的意思是當(dāng)k等于1的時(shí)候做k++,但是C語言里關(guān)系表達(dá)式的等于應(yīng)該是"==〃。ー個(gè)等于號(hào)表示賦值,即這里面重復(fù)的把1賦給k,自然表達(dá)式k=l的值總為1,while后面的表達(dá)式恒為真,當(dāng)然會(huì)進(jìn)入死循環(huán)。本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)74、以下程序執(zhí)行后sum的值是〇main(){inti,sum;for(i=l;i<6;i++)sum+=i;printf("%d\n",sum);)A:15B:14C:不確定D:0答案:C評(píng)析:變量sum在使用時(shí)未賦初值,所以無法確定sum最終的值。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)75、下面程序的輸出結(jié)果是〇main(){inta[]={l,2,3,4,5,6,7,8,9,0},*p;P=a;printf("%d\n”,*p+9);)A:0B:1C:10D:9答案:C評(píng)析:本題中,P=a,則表明指針p指向數(shù)組a的第一個(gè)元素,即a[0]。指針運(yùn)算符”?〃的優(yōu)先級(jí)高于加法運(yùn)算符〃+”,所以〃*P+9”相當(dāng)于a[0]+9,即10。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)76、設(shè)有以下說明語句structex{intx;floaty;charz;}example;則下面的敘述中不正確的是〇A:struct是結(jié)構(gòu)體類型的關(guān)鍵字B:example是結(jié)構(gòu)體類型名C:x,y,z都是結(jié)構(gòu)體成員名D:structex是結(jié)構(gòu)體類型答案:B評(píng)析:example是結(jié)構(gòu)體變量名。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/結(jié)構(gòu)體(即〃結(jié)構(gòu)”)與共用體(即〃聯(lián)合“)/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法77、以下程序的輸出結(jié)果是〇main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("如、n",k);)A:20B:21C:22D:23答案:B評(píng)析:按照程序的流程走一遍,我們可以得到,P流]=0,p[l]=2,p程]=6;做三次k+=p[i]*2,相當(dāng)于k=5+0*2+2*2+6*2=21。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/循環(huán)的嵌套78、以下程序的輸出結(jié)果是〇#defineSQR(X)X*Xmain(){inta=16,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);)A:16B:2C:9D;1答案:B評(píng)析:本題所考查的是宏定義。C語言在預(yù)編譯時(shí)遇到帶實(shí)參的宏名,則按命令行中指定的字符串從左到右進(jìn)行置換。在做這條題時(shí),我們也不妨將運(yùn)用置換法。得到:a/=k+m*k+m/k+m*k+m=16/7=2。注:a為整形,所以在做除法時(shí),自動(dòng)取整。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/復(fù)合語句79、若定義了以下函數(shù):voidf( )*p=(double*)malloc(10*sizeof(double));P是該函數(shù)的形參,要求通過P把動(dòng)態(tài)分配存儲(chǔ)單元的地址傳回主調(diào)函數(shù),則形參p的正確定義應(yīng)當(dāng)是〇A:double*pB:float**pC:double**pD:float*p答案:C評(píng)析:通過程序中給出的語句,我們可以判斷,*p是ー個(gè)指向double型指針的指針。因此,要通過P把動(dòng)態(tài)分配存儲(chǔ)單元的地址傳回主調(diào)函數(shù),應(yīng)該使用double**po本題答案為c。知識(shí)點(diǎn):知識(shí)點(diǎn)/指針/返回指針值的指針函數(shù)80、假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是4P 4qdatanextA:free(q);p->next=q->next;B:(*p).next=(*q).next;free(q);C:q=(*q).next;(*p).next=q;free(q);D:q=q->next;p->next=q;p=p->next;free(p);答案:B評(píng)析:選項(xiàng)A的錯(cuò)誤在于,已經(jīng)先把q結(jié)點(diǎn)給釋放,無法再進(jìn)行余下語句了;選項(xiàng)C和D的錯(cuò)誤在于因?yàn)橛辛藂=(*q).next做了賦值,貝リfree(q)釋放了原來q后面的ー個(gè)結(jié)點(diǎn)。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/結(jié)構(gòu)體(即“結(jié)構(gòu)”)與共用體(即"聯(lián)合")/用指針和結(jié)構(gòu)體構(gòu)成鏈表81、以下程序的輸出結(jié)果是〇main(){intx=05;charz='a';printf("%d\n",(x&l)&&(zぐz'));}A:0B:1C:2D:3答案:B評(píng)析:關(guān)系表達(dá)式(x&l)&&(zぐz'),(x&l)為真,(zぐz')也為真,兩個(gè)相與,自然也為真,以整型輸出,則輸出1。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/位運(yùn)算/簡單的位運(yùn)算82、設(shè)x,y均為int型變量,且x=10,y=3,則以下數(shù)據(jù)的輸出結(jié)果是printf("%d,%d\n”,x一,一y)〇A:10,3B:9,3C:9,2D:10,2答案:D評(píng)析:本題主要考查C語言的自減運(yùn)算符。C語言的自減運(yùn)算符有前置與后置兩種形式。當(dāng)自減運(yùn)算符前置時(shí),變量先自減ー后再參與表達(dá)式運(yùn)算;而后置時(shí),變量先參與表達(dá)式運(yùn)算后再自身減ー。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用83、X、Y、Z被定義為int型變量,若從鍵盤給X、Y、Z輸入數(shù)據(jù),正確的輸入語句是〇A:INPUTX,Y,Z;B:scanf(,,%d%d%d/,,&X,&Y,&Z);C:scanf("%d%d%d”,X,Y,Z);D:read(級(jí)d%d%d”,&X,&Y,&Z);答案:B評(píng)析:本題考查C語言的格式化輸入語句。C語言中沒有INPUT與read語句,scanf()語句的格式為:scanf("格式字符串”,變量地址1,變量地址2,...);本題答案C中,應(yīng)為變量地址。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用84、以下程序的輸出結(jié)果是〇main(){inta=3;printf("%d\n",(a+=a-=a*a));A:-6B:1C:2D:-12答案:D評(píng)析:本題考查C語言的賦值運(yùn)算符。a+=b就等于a=a+b,a-=b就等于a=b〇本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用85>設(shè)a、b、c、d、m>n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2則邏輯表達(dá)式(m=a>b)&&(n=c〉d)運(yùn)算后,n的值為〇A:0B:1C:2D:3答案:A評(píng)析:本題考查C語言的比較運(yùn)算符與邏輯運(yùn)算符。C語言中比較表達(dá)式的運(yùn)算結(jié)果為0或1。0代表不成立,1表示成立。本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句86、閱讀以下程序main(){intx;scanf(“郷",&x);if(x—<5)printf("%d\n",x);else printf("%d\n",x++);)程序運(yùn)行后,如果從鍵盤上輸入5,則輸出結(jié)果是〇A:3B:4C:5D:6答案:B評(píng)析:本題考查C語言中的自增(++)與自減(一)運(yùn)算符。C語言中〃++"與〃ーー〃運(yùn)算符有前置與后置兩種形式,前置時(shí)變量先自增ー或自減ー后再參與表達(dá)式的運(yùn)算,后置時(shí)變量先參與表達(dá)式的運(yùn)算后再自增ー或自減ー。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/選擇結(jié)構(gòu)程序設(shè)計(jì)/用IF語句實(shí)現(xiàn)選擇結(jié)構(gòu)87、假定w、x、y、z、m均為int型變量,有如下程序段:w=l;x=2;y=3;z=4m=(w<x)?w:x;m=(ni<y)?ni:y;m=(m〈z)?m:z;則該程序段執(zhí)行后,m的值是〇A:4B:3C:2D:1答案:D評(píng)析:本題考查C語言的條件運(yùn)算符。C語言中條件運(yùn)算符的表達(dá)式為:表達(dá)式?數(shù)1:數(shù)2當(dāng)表達(dá)式為非零時(shí)條件運(yùn)算符的表達(dá)式的值為數(shù)1,否則為數(shù)2。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/復(fù)合語句88、t為int類型,進(jìn)入下面的循環(huán)之前,t的值為0,while(t=l)則以下敘述中正確的是A:循環(huán)控制表達(dá)式的值為0B:循環(huán)控制表達(dá)式的值為1C:循環(huán)控制表達(dá)式不合法D:以上說法都不對(duì)答案:B評(píng)析:本題考查C語言的while循環(huán)語句。本題的t=l是ー個(gè)賦值表達(dá)式,其值為變量的值,所以while語句的循環(huán)控制表達(dá)式的值為1。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)89、以下程序的輸出結(jié)果是〇main(){intnum=0;while(num<=2){num++;printfC%d\n,num);})TOC\o"1-5"\h\zA) B) C) D)1 1 12 23A:A)B:B)C:C)D:D)答案:C評(píng)析:本題考查C語言的while循環(huán)語句。C語言中while語句的一般形式如下:while(表達(dá)式)(語句部分;)該語句的執(zhí)行過程是:先計(jì)算表達(dá)式的值,若成立(即值為非零)則重新執(zhí)行語句部分(循環(huán)體),然后再次計(jì)算表達(dá)式的值,并重復(fù)上述過程,直到表達(dá)式的值為"假"(值為零)時(shí),退出循環(huán),并轉(zhuǎn)下ー語句去執(zhí)行。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/WHILE和DOWHILE循環(huán)結(jié)構(gòu)

90、以下各選項(xiàng)企圖說明一種新的類型名,其中正確的是0A:typedefvlint;B:typedefv2=int;C:typedefintv3;D:typedefv4:int答案:C評(píng)析:本題考查C語言的類型定義。C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個(gè)別名。本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法91、設(shè)有以下函數(shù);f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是main(){int{inta=2,i;for(i=0;i<3;i++)}A) B) C)7 79 1011 13A:A)B:B)C:C)D:D)答案:A評(píng)析:printf("%d\n",f(a));D)777本題考查的是C語言的靜態(tài)數(shù)據(jù)類型。靜態(tài)數(shù)據(jù)類型的變量的值在退出了函數(shù)時(shí)依然存放在內(nèi)存中,且只初始化一次。本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)92、以下選項(xiàng)中,非法的字符常量是0A:'\ピB:'\17'C:"\n"D:'\xaa,答案:C評(píng)析:本題考查C語言的字符常量與轉(zhuǎn)義字符。C語言中字符常量是以單引號(hào)括起來的單個(gè)字符,或?yàn)橐?、”與三位ハ進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。本題竺案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法93、若有說明:inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是A:i=*p;B:*p=*&j;C:i=&j;D:i=**p;答案:B評(píng)析:本題考查C語言中指針賦值運(yùn)算。指針是一種特殊的變量,它是用來存放變量地址的變量。指針定義時(shí)可以為其賦初值。只有指針被賦了值后才能對(duì)其使用。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句94、以下定義語句中,錯(cuò)誤的是〇A:inta[]={l,2};B:char*a[3];C:chars[10]="test";D:intn=5,a[n];答案:D評(píng)析:本題考查C語言數(shù)組的定義與初始化。在C語言中數(shù)組的初始化可以對(duì)部分元素,數(shù)組的定義,不能含有變量。本題え案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法95、以下程序的輸出結(jié)果是0main(){inti,a[10];for(i=9;i>=0;i一)a[i]=10-i;printf(,,%d%d%d,/,a[2],a[5],a[8]);)A:258B:741C:852D:369答案:C評(píng)析:本題使循環(huán)語句給數(shù)組元素賦值。C語言中for循環(huán)語句的一般形式為:for(表達(dá)式1;表達(dá)式2i表達(dá)式3){語句部分;)本題答案為C。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)96、以下程序的輸出結(jié)果是。main(){charst[20]="hello\0\t\\”;printf("%d%d\n,strlen(st),sizeof(st));}A:99B:520C:1320D:2020答案:B評(píng)析:本題主要考查C語言的字符串與庫函數(shù)。C語言中字符串是以‘、〇’字符結(jié)束的,且strlenO函數(shù)計(jì)算的是‘、〇’字符前的所有字符的個(gè)數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeofO函數(shù)是計(jì)算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算97、以下程序輸出正確的是〇amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n”,p[2],p[5]);free(p);}A:56B:25C:34D:程序錯(cuò)誤答案:A評(píng)析:本題主要考查的是指針與數(shù)組的操作。可以用malloc()函數(shù)為指針分區(qū)內(nèi)存空間,用free()函數(shù)釋放指針變量所用內(nèi)存空間。本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)98、以下程序的輸出結(jié)果是。structHAR{intx,y;structHAR*p;}h[2];main(){h[O].x=l;h[0].y=2;h[l].x=3;h[l].y=4;h[O].p=&h[l];h[l].p=h;printf(/,%d%d\nzz,(h[O].p)->x,(h[l].p)->y);)A:12B:23C;14D:32答案:D評(píng)析:本題考查的是C語言中結(jié)構(gòu)體與鏈表。本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。C語言中結(jié)構(gòu)體的定義為:struct結(jié)構(gòu)體類型名(成員表列;};本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用99、以下程序的輸出結(jié)果是。niainO{inta,b;for(a=l,b=l;a<=100;a++){if(b>=10)break;if(b%3ニニ1){b+=3;continue;})printf(zz%d\nzz,a);A:101B:6C:5D:4答案:D評(píng)析:本題主要考查考生對(duì)C語言中的循環(huán)語句和程序的執(zhí)行邏輯。本題中for循環(huán)語句共執(zhí)行3次,所以a的值累加3次,結(jié)果為4。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/循環(huán)結(jié)構(gòu)程序設(shè)計(jì)/FOR循環(huán)結(jié)構(gòu)100、以下程序的輸出結(jié)果是。unionmyun{struct{intx,y,z;}u;intk;}a;main(0{a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}A:4B:5C:6D:0答案:D評(píng)析:本題主要考查C語言中構(gòu)造類型,聯(lián)合體與結(jié)構(gòu)體。結(jié)構(gòu)體中的成員使用各自的存儲(chǔ)區(qū),而聯(lián)合體中的成員使用共同的存儲(chǔ)區(qū)。本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用101、以下程序的結(jié)果是〇inta,b;voidfun(){ a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n”,a,b);A:100200B:57C:200100D:75答案:B評(píng)析:本題主要考查的是C語言中的變量作用域。全程變量是可以在子函數(shù)中對(duì)其值作改變,且它也可作為函數(shù)間的值傳遞。但當(dāng)函數(shù)或子函數(shù)中定義了與全程變量名稱相同的局部變量,則全程變量將被屏蔽。所以本題主函數(shù)的局部變量a,b把同名的全程變量屏蔽了。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用102、以下選項(xiàng)中不屬于C語言的類型和是〇A:signedshortintB:unsignedcharC:singedlongD:longshort答案:D評(píng)析:C語言中歸納起來,基本類型數(shù)據(jù)有以下幾種:[singed]char;unsigedchar;[signed]short[int];unsignedshort[int];[signed]long[int];unsighedlong[int];float;double.本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法103、若有說明語言:inta,b,c,*d=&c;則能正確從鍵盤讀入三個(gè)整數(shù)分別賦給變量a、b、c的語句是〇A:scanf(,,%d%d%d,/,&a,&b,d);B:scanf("%d%d%d",&a,&b,&d);C:scanf("%d%d%d”,a,b,d);D:scanf(,,%d%d%d,/,a,b,*d);答案:A評(píng)析:在scanf語句中,要為某ー變量賦值,引用的是該變量的地址,所以在這里要為a,b,c賦值可以寫成兩種形式,除了采用答案B的形式外,還可以寫成scan城"%d%d%d",&a,&b,d)〇本題答案為A。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句104、在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是〇A:a=20000+20000B:a=4000*10C:a=30000+10000D:a=4000L*10L答案:D評(píng)析:除D之外的選項(xiàng)的右邊的表達(dá)式都超過了16位帶符號(hào)整數(shù)的范圍(32767)〇本題答案為D。知識(shí)點(diǎn):知識(shí)點(diǎn)/基本語句/表達(dá)式語句,空語句,復(fù)合語句105、以下敘述正確的是〇A:可以把define和if定義為用戶標(biāo)識(shí)符B:可以把define定義為用戶標(biāo)識(shí)符,但不能把if定義為用戶標(biāo)識(shí)符C:可以把if定義為用戶標(biāo)識(shí)符,但不能把define定義為用戶標(biāo)識(shí)符D:define和if都不能定義為用戶標(biāo)識(shí)符答案:B評(píng)析:if屬于系統(tǒng)定義的32個(gè)標(biāo)準(zhǔn)標(biāo)識(shí)符之一,所以不可以供用戶定義。define不在其中。本題答案為B。知識(shí)點(diǎn):知識(shí)點(diǎn)/數(shù)據(jù)類型及其運(yùn)算/C的數(shù)據(jù)類型及其定義方法106^若定義:inta=511,*b=&a:,貝リprintf("%d\n",*b):的輸出結(jié)果為〇A:無確定值B:a的地址C:512D:511答案:D評(píng)析:本題,首先定義了一個(gè)整型變量a,并將它賦值為511,然后又定義了一個(gè)指針變量,將它賦值為變量a的地址,在

溫馨提示

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