




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
目錄TOC\o"1-3"\h\z\uHYPERLINK第1-3章C語言基礎(chǔ)知識習(xí)題 PAGEREF\h2HYPERLINK1選擇題 PAGEREF\h2HYPERLINK2填空題 PAGEREF\h7HYPERLINK3答案及部分解析 PAGEREF\h9HYPERLINK第4章選擇結(jié)構(gòu)習(xí)題 PAGEREF\h11HYPERLINK1選擇題 PAGEREF\h11HYPERLINK2填空題 PAGEREF\h17HYPERLINK3答案及部分解析 PAGEREF\h23HYPERLINK第5章循環(huán)結(jié)構(gòu)習(xí)題 PAGEREF\h26HYPERLINK1選擇題 PAGEREF\h26HYPERLINK2填空題: PAGEREF\h32HYPERLINK3答案及部分解題分析 PAGEREF\h39HYPERLINK第6章數(shù)組習(xí)題 PAGEREF\h41HYPERLINK1.單項(xiàng)選擇題 PAGEREF\h41HYPERLINK2.填空題 PAGEREF\h44HYPERLINK3.判斷題 PAGEREF\h45HYPERLINK4.程序填空題 PAGEREF\h45HYPERLINK5.閱讀程序,分析程序的功能。 PAGEREF\h49HYPERLINK第7章函數(shù)習(xí)題 PAGEREF\h55HYPERLINK1.單項(xiàng)選擇題 PAGEREF\h55HYPERLINK2.填空題 PAGEREF\h56HYPERLINK3.判斷題 PAGEREF\h57HYPERLINK4.程序填空題 PAGEREF\h58HYPERLINK5.寫出下列程序運(yùn)行結(jié)果 PAGEREF\h59HYPERLINK第8章指針習(xí)題 PAGEREF\h67HYPERLINK1選擇題 PAGEREF\h67HYPERLINK2填空題 PAGEREF\h69第1-3章C語言基礎(chǔ)知識習(xí)題1選擇題1.以下不是C語言的特點(diǎn)的是()。A、語言簡潔緊湊B、能夠編制出功能復(fù)雜的程序C、C語言可以直接對硬件操作D、C語言移植性好2.下列字符序列中,不可用作C語言標(biāo)識符的是()。A.a(chǎn)bc123B.no.1C._123_D._ok3.正確的C語言標(biāo)識符是()。A._buy_2B.2_buyC.?_buyD.buy?4.請選出可用作C語言用戶標(biāo)識符的一組標(biāo)識符()。A.voidB.a(chǎn)3_b3C.ForD.2adefine_123-abcDOWORDIFCasesizeof5.下列符號中,不屬于轉(zhuǎn)義字符的是()。A.\\B.\0xAAC.\tD.\06.不屬于C語言關(guān)鍵字的是()。A.intB.breakC.whileD.character7.是C語言提供的合法關(guān)鍵字的是()。A.FloatB.signedC.integerD.Char8.以下不能定義為用戶標(biāo)示符的是()。A.scanfB.VoidC._3com_D.int9.一個C程序是由()。一個主程序和若干子程序組成一個或多個函數(shù)組成若干過程組成若干子程序組成10.C語言程序的基本單位是()。A.程序行B.語句C.函數(shù)D.字符11.下列說法中,錯誤的是()。A.每個語句必須獨(dú)占一行,語句的最后可以是一個分號,也可以是一個回車換行符號B.每個函數(shù)都有一個函數(shù)頭和一個函數(shù)體,主函數(shù)也不例外C.主函數(shù)只能調(diào)用用戶函數(shù)或系統(tǒng)函數(shù),用戶函數(shù)可以相互調(diào)用D.程序是由若干個函數(shù)組成的,但是必須有、而且只能有一個主函數(shù)12.以下說法中正確的是()。A.C語言程序總是從第一個定義的函數(shù)開始執(zhí)行B.在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義C.C語言程序總是從main()函數(shù)開始執(zhí)行D.C語言程序中的main()函數(shù)必須放在程序的開始部分13.C編譯程序是()。A.C程序的機(jī)器語言版本B.一組機(jī)器語言指令C.將C源程序編譯成目標(biāo)程序D.由制造廠家提供的一套應(yīng)用軟件14.以下選項(xiàng)中,合法的用戶標(biāo)識符是()。A.longB._2abcC.3dmaxD.A.dat15.以下選項(xiàng)中,合法的實(shí)型常數(shù)是()。A.5E2.0B.E-3C.2E0D.1.3E16.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量’\101’是()。A.字符AB.字符aC.字符cD.非法的常量17.以下選項(xiàng)中,合法轉(zhuǎn)義字符的選項(xiàng)是()。A.’\\’B.’\018’C.’xab’D.’\abc’18.以下選項(xiàng)中,正確的字符常量是()。A.”F”B.’\\’’C.’W’D.’’19.以下選項(xiàng)中可作為C語言合法整數(shù)的是A.10110BB.0386C.0XffaD.x2a220.下列變量定義中合法的是A.short_a=1-.le-1;B.doubleb=1+5e2.5;C.longdo=0xfdaL;D.float2_and=1-e-3;21.與數(shù)學(xué)式子對應(yīng)的C語言表達(dá)式是()。A.9*x^n/(2*x-1)B.9*x**n/(2*x-1)C.9*pow(x,n)*(1/(2*x-1))D.9*pow(n,x)/(2*x-1)22.若有代數(shù)式,則不正確的C語言表達(dá)式是()。A.a(chǎn)/c/d*b*3B.3*a*b/c/dC.3*a*b/c*dD.a(chǎn)*b/d/c*323.已知各變量的類型說明如下:intm=8,n,a,b;unsignedlongw=10;doublex=3.14,y=0.12;則以下符合C語言語法的表達(dá)式是()。A.a(chǎn)+=a-=(b=2)*(a=8)B.n=n*3=18C.x%3D.y=float(m)24.以下符合C語言語法的賦值表達(dá)式是()。A.a(chǎn)=9+b+c=d+9B.a(chǎn)=(9+b,c=d+9)C.a(chǎn)=9+b,b++,c+9D.a(chǎn)=9+b++=c+925.已知字母A的ASCII碼為十進(jìn)制數(shù)65,且S為字符型,則執(zhí)行語句S=’A’+’6’-’3’;后,S中的值為()。A.’D’B.68C.不確定的值D.’C’26.在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()。A./B.++C.*=D.%27.若有說明語句:chars=’\72’;則變量s()。A.包含一個字符B.包含兩個字符C.包含三個字符D.說明不合法,s的值不確定28.若有定義:intm=7;floatx=2.5,y=4.7;則表達(dá)式x+m%3*(int)(x+y)%2/4的值是()。A.2.500000B.2.750000C.3.500000D.0.00000029.在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是()。A.補(bǔ)碼B.反碼C.原碼D.ASCII碼30.設(shè)變量x為float類型,m為int類型,則以下能實(shí)現(xiàn)將x中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是()。A.x=(x*100+0.5)/100.0B.m=x*100+0.5,x=m/100.0C.x=x*100+0.5/100.0D.x=(x/100+0.5)*100.031.表達(dá)式13/3*sqrt(16.0)/8的數(shù)據(jù)類型是()。A.intB.floatC.doubleD.不確定32.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是()。A.(m=n=6,m+n,m+1)B.(m=n=6,m+n,n+1)C.(m=6,m+1,n=6,m+n)D.(m=6,m+1,n=m,n+1)33.假設(shè)所有變量均為整型,則表達(dá)式(x=2,y=5,y++,x+y)的值是()。A.7B.8C.6D.234.已知s是字符型變量,下面不正確的賦值語句是()。A.s=’\012’;B.s=’u+v’;C.s=’1’+’2’;D.s=1+2;35.已知s是字符型變量,下面正確的賦值語句是()。A.s=’abc’;B.s=’\08’;C.s=’\xde’;D.s=”\”;36.若有以下定義,則正確的賦值語句是()。intx,y;floatz;A.x=1,y=2,B.x=y=100C.x++;D.x=int(z);37.設(shè)x、y均為float型變量,則不正確的賦值語句是()。A.++x;B.x*=y-2;C.y=(x%3)/10;D.x=y=0;38.下列語句中符合C語言的賦值語句是()。A.a(chǎn)=7+b+c=a+7;B.a(chǎn)=7+b++=a+7;C.a(chǎn)=7+b,b++,a+7D.a(chǎn)=7+b,c=a+7;39.putchar函數(shù)可以向終端輸出一個()。A.整型變量表達(dá)式值。B.字符串C.實(shí)型變量值。D.字符或字符型變量值。40.以下程序段的輸出結(jié)果是()。inta=12345;printf(”%2d\n”,a);A.12B.34C.12345D.提示出錯、無結(jié)果41.若x和y均定義為int型,z定義為double型,以下不合法的scanf()函數(shù)調(diào)用語句為()。A.scanf(”%d%lx,%le”,&x,&y,&z);B.scanf(”%2d*%d%lf”,&x,&y,&z);C.scanf(”%x%*d%o”,&x,&y);D。scanf(”%x%o%6.2f”,&x,&y,&z);42.有如下程序段:intx1,x2;chary1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是()。(注:└┘代表空格)A.10A└┘20BB.10└┘A20BC.10└┘A└┘20└┘BD.10A20└┘B43.若變量已正確說明為float類型,要通過語句scanf(”%f%f%f”,&a,&b,&c);給a賦予10.0,b賦予22.0,c賦予33.0,不正確的輸入形式為()。A.10<回車>B.10.0,22.0,33.0<回車>22<回車>33C.10.0<回車>D.1022<回車>22.033.0<回車>33<回車>44.有如下程序,若要求x1、x2、y1、y2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是()。(注:└┘代表空格)intx1,x2;chary1,y2;scanf(”%d%d”,&x1,&x2);scanf(”%c%c”,&y1,&y2);A.1020ABB.10└┘20└┘ABCC.10└┘20D.10└┘20ABAB45.已有定義inta=-2;和輸出語句:printf(”%8lx”,a);以下正確的敘述是()。A.整型變量的輸出格式符只有%d一種B.%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)C.%x是格式符D.%8lx不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度46.有如下程序段,對應(yīng)正確的數(shù)據(jù)輸入是()。floatx,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”,x,y);A.2.04<回車>B.2.04,5.67<回車>5.67<回車>C.A=2.04,B=5.67<回車>D.<回車>47.有如下程序段,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)是()。(注:└┘代表空格)floatx,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A.123B.x=1,y=2,z=3C.1,2,3D.x=1└┘y=2└┘z=348.以下說法正確的是()。A.輸入項(xiàng)可以為一個實(shí)型常量,如scanf(”%f”,3.5);B.只有格式控制,沒有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf(”a=%d,b=5d”);C.當(dāng)輸入一個實(shí)型數(shù)據(jù)時,格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf(”%4.2f”,&f);D.當(dāng)輸入數(shù)據(jù)時,必須指明變量的地址,如scanf(”%f”,&f);49.根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為:()。(注:└┘代表空格)已有定義:floatx,y;數(shù)據(jù)的輸入方式:1.23<回車>4.5<回車>A.scan(”%f,%f”,&x,&y);B.scanf(”%f%f”,&x,&y);C.scanf(”%3.2f└┘%2.1f”,&x,&y);D.scanf(”%3.2f%2.1f”,&x,&y);50.根據(jù)下面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該為()。#include”stdio.h”main(){chars1,s2,s3;輸入語句;printf(”%c%c%c”,s1,s2,s3);}輸入形式:A└┘B└┘C<回車>(注:└┘代表空格)輸出形式:A└┘BA.scanf(”%c%c%c”,&s1,&s2,&s3);B.scanf(”%c└┘%└┘c%c”,&s1,&s2,&s3);C.scanf(”%c,%c,%c”,&s1,&s2,&s3);D.scanf(”%c%c”,&s1,&s2,&s3);51.以下程序的執(zhí)行結(jié)果是:()。#include”stdio.h”main(){intx=2,y=3;printf(”x=%%d,y=%%d\n”,x,y);}A.x=%2,y=%3B.x=%%d,y=%%dC.x=2,y=3D.x=%d,y=%d52.以下程序的輸出結(jié)果是()。(注:└┘代表空格)#include”stdio.h”main(){printf(”\nstring1=%15s*”,”programming”);printf(”\nstring2=%-5s*”,”boy”);printf(”string3=%2s*”,”girl”);}A.string1=programming└┘└┘└┘└┘*B.string1=└┘└┘└┘└┘programming*string2=boy*string2=boy└┘└┘*string3=gi*string3=gi*C.string1=programming└┘└┘└┘└┘*D.string1=└┘└┘└┘└┘programming*string2=└┘└┘boy*string3=girl*string2=boy└┘└┘*string3=girl*53.根據(jù)題目中已給出的數(shù)據(jù)的輸入和輸出形式,程序中輸入輸出語句的正確內(nèi)容是()。#include”stdio.h”main(){inta;floatb;輸入語句輸出語句}輸入形式:1└┘2.3<回車>(注:└┘代表空格)輸出形式:a+b=3.300A.scanf(”%d%f”,&a,&b);B.scanf(”%d%3.1f”,&a,&b);printf(”\na+b=%5.3f”,a+b);printf(”\na+b=%f”,a+b);C.scanf(”%d,%f”,&a,&b);D.scanf(”%d%f”,&a,&b);printf(”\na+b=%5.3f”,a+b)printf(”\na+b=%f”,a+b);54.閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:12,34,正確的輸出結(jié)果為()。#include”stdio.h”main(){inta,b;scanf(”%d%d”,&a,&b);printf(”a+b=%d\n”,a+b);}A.a(chǎn)+b=46B.有語法錯誤C.a(chǎn)+b=12D.不確定值55.若有定義:intx,y;chars1,s2,s3;并有以下輸出數(shù)據(jù):(注:└┘代表空格)1└┘2<回車>U└┘V└┘W<回車>則能給x賦給整數(shù)1,給y賦給整數(shù)2,給s1賦給字符U,給s2賦給字符V,給s3賦給字符W的正確程序段是()。A.scanf(”x=%dy=%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();B.scanf(”%d%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();C.scanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);D.scanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);2填空題1.C語言的符號集包括________、________、________。2.結(jié)構(gòu)化設(shè)計(jì)中的三種基本結(jié)構(gòu)是________、_______、________。3.C語言源程序文件的后綴是________,經(jīng)過編譯后生成文件的后綴是________,經(jīng)過鏈接后生成文件的后綴是________。4.C語言的關(guān)鍵字都用________{大寫或小寫}。5.一個函數(shù)由兩部分組成,它們是_______、_______。6.函數(shù)體一般包括_______、_______。7.C語言是通過_______來進(jìn)行輸入和輸出的。8.以下程序的執(zhí)行結(jié)果________。#include”stdio.h”main(){shorti=-1,j=1;printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\n”,i,i,i,i);printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\n”,j,j,j,j);}9.以下程序的執(zhí)行結(jié)果是________。#include”stdio.h”main(){chars=’b’;printf(”dec:%d,oct:%o,hex:%x,ASCII:%c\n”,s,s,s,s);}10.以下程序的執(zhí)行結(jié)果是________。(注:└┘代表空格)#include”stdio.h”main(){floatpi=3.1415927;printf(”%f,%.4f,%4.3f,%10.3f”,pi,pi,pi,pi);printf(”\n%e,%.4e,%4.3e,%10.3e”,pi,pi,pi,pi);}11.以下程序的執(zhí)行結(jié)果是:________。#include”stdio.h”main(){charc=’c’+5;printf(”c=%c\n”,c);}12.以下程序輸入1└┘2└┘3后的執(zhí)行結(jié)果是________。(注:└┘代表空格)#include”stdio.h”main(){inti,j;chark;scanf(”%d%c%d”,&i,&k,&j);printf(”i=%d,k=%c,j=%d\n”,i,k,j);}0后的執(zhí)行結(jié)果是________;若輸入為:98└┘76└┘543210后的執(zhí)行結(jié)果是________;若輸入為:987654└┘3210后的執(zhí)行結(jié)果為:________。(注:└┘代表空格)#include”stdio.h”main(){intx1,x2;chary1,y2;scanf(”%2d%3d%3c%c”,&x1,&x2,&y1,&y2);printf(”x1=%d,x2=%d,y1=%c,y2=%c\n”,x,y);}14.若x和y均為int型變量,則以下語句的功能是________。x+=y;y=x-y;x-=y;15.有一輸入函數(shù)scanf(”%d”,k);則不能使float類型變量k得到正確數(shù)值的原因是:________。16.有如下程序段,輸入數(shù)據(jù):12345ffl678后,u的值是【1】,v的值是【2】。intu;floatv;scanf(“%3d%f”,&u,&v);3答案及部分解析選擇題答案1.B2.B3.A 4.B 5.B 6.D7.B8.D9.B 10.C 11.A 12.C13.C14.B15.C 16.A 17.A 18.C19.C20.A21.C 22.C 23.A 24.B25.A26.D27.A 28.A 29.D 30.B31.C32.C33.B 34.B 35.C 36.C37.C38.D39.D 40.C 41.D 42.A43.B44.D45.D 46.A 47.B 48.D49.B50.A51.D 52.D 53.A 54.D55.D14.解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。而且不能與C語言規(guī)定的關(guān)鍵字同名。關(guān)鍵字如:auto,break,case,char,const,continue,default,do,double,else,entry,extern,for,float,goto,if,int,int,long,register,return,short,signed,sizeof,static,struct,unsigned,while,switch,typedef,void,volatile,unior。這些關(guān)鍵字先不必硬背下來,隨著后續(xù)的學(xué)習(xí),你將發(fā)現(xiàn)它們都是一些數(shù)據(jù)的類型、語句等,自然會隨著學(xué)習(xí)的深入,而記下來。15.解析:用指數(shù)形式表示一個實(shí)型常數(shù)時,E或e之前必須有數(shù)字,且E后面指數(shù)必須為整數(shù)。16.解析:’\101’為轉(zhuǎn)義字符,相對應(yīng)一個ASCII碼字符。(101)8=(65)10=A.17.解析:轉(zhuǎn)義字符的特征是以“\”開頭,其后跟一些字符,如\n,\t,\’,\\,\},\”,\b,\f等代表一些特殊的含義,而\后如跟數(shù)字,可以為八進(jìn)制或者十六進(jìn)制,將其轉(zhuǎn)換為對應(yīng)的ASCII碼值,就可以得出對應(yīng)的字符?!癨”后跟八進(jìn)制的寫法:\0nn,或者\(yùn)nn,表示“\0”或者“\”后只能跟1或3位0——7之間的數(shù)字;“\”后跟十六進(jìn)制的寫法:\xnn,或者\(yùn)nn,表示“\x”或者“\”后只能跟1或2位0——9及a——f(A——F)之間的字符。選項(xiàng)B的錯誤在于8不是八進(jìn)制;而選項(xiàng)C的錯誤在于沒有“\”;選項(xiàng)D的錯誤在于超長(多了一位)。21.解析:B的錯誤在于賦值語句的左側(cè)只能為一個簡單變量,如:n=3*(n=18);C的錯誤在于%運(yùn)算符只能適用于整型數(shù)據(jù),D的錯誤在于作類型轉(zhuǎn)換時,應(yīng)將類型加上括號,即為:y=(float)m31.解析:逗號表達(dá)式的最終結(jié)果為最右端的表達(dá)式(即x+y)的值,其運(yùn)算順序是從左自右的。第三個表達(dá)式y(tǒng)++,其隱含有兩步操作:先取y的原值,再執(zhí)行y=y+1運(yùn)算;而本題中,雖然沒有將y賦給某個變量(取其原值),但還是一定會執(zhí)行加運(yùn)算的。因而,經(jīng)過第三個表達(dá)式,y已經(jīng)自加為6,故x+y的值為8,相對應(yīng)得表達(dá)式最終結(jié)果為8。若本題改為:(x=2,y=5,z=y++,x+z),則其結(jié)果應(yīng)為7。填空題答案1.答案:英文字母、數(shù)字、一些有特定含義的標(biāo)點(diǎn)符號2.答案:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)3.答案:C,OBJ,EXE4.答案:小寫5.答案:函數(shù)說明部分和函數(shù)體6.答案:變量定義部分和執(zhí)行部分7.答案:輸入和輸出函數(shù)8.答案:dec:-1,oct:177777,hex:ffff,unsigned:65535dec:1,oct:1,hex:1,unsigned:19.答案:dec:98,oct:142,hex:62,ASCII:b10.答案:3.141593,3.1416,3.142,└┘└┘└┘└┘└┘3.1423.141593e+00,3.1416e+00,3.142e+00,└┘└┘3.142e+00(注:由于c編譯系統(tǒng)不同,我們上機(jī)使用的機(jī)器,其第二個printf語句實(shí)際結(jié)果為:3.14159e+00,3.142e+00,3.14e+00,└┘└┘3.14e+00,即:小數(shù)點(diǎn)后取5位。)11.答案:c=h12.答案:i=1,k=└┘,j=213.答案:第一種情況的執(zhí)行結(jié)果:x1=98,x2=765,y1=4,y2=1第二種情況的執(zhí)行結(jié)果:x1=98,x2=76,y1=└┘,y2=3第三種情況的執(zhí)行結(jié)果:x1=98,x2=765,y1=4,y2=214.答案:交換x和y的值15.答案:(1)格式符應(yīng)為:%f;(2)變量前邊未加取地址符&,即應(yīng)為scanf(”%f”,&k);16.答案:【1】123【2】45.000000第4章選擇結(jié)構(gòu)習(xí)題1選擇題1.已有定義:intx=3,y=4,z=5;則表達(dá)式!(x+y)+z-1&&y+z/2的值是()。A.6B.0C.2D.12.設(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.43.設(shè)x、y和z都是int類型變量,且x=3,y=4,z=5,則下面的表達(dá)式中,值為0的表達(dá)式為()。A.’x’&&’y’B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||1)4.為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是與()組成配對關(guān)系。A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if5.邏輯運(yùn)算符兩側(cè)運(yùn)算對象的數(shù)據(jù)類型()。A.只能是0或1B.只能是0或非0正數(shù)C.只能是整型或字符型數(shù)據(jù)D.可以是任何類型的數(shù)據(jù)6.以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是()。A.關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符B.邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符C.賦值運(yùn)算符<邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符D.算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符7.下列運(yùn)算符中優(yōu)先級最高的是()。A.<B.&&C.+D.!=8.選擇出合法的if語句(設(shè)intx,a,b,c;)()。A.if(a=b)c++;B.if(a=<b)c++;C.if(a<>b)c++;D.if(a=>b)c++;9.能正確表示“當(dāng)x的取值在[-58,-40]和[40,58]范圍內(nèi)為真,否則為假”的表達(dá)式是()。A.(x>=-58)&&(x<=-40)&&(x>=40)&&(x<=58)B.(x>=-58)||(x<=-40)||(x>=40)||(x<=58)C.(x>=-58)&&(x<=-40)||(x>=40)&&(x<=58)D.(x>=-58)||(x<=-40)&&(x>=40)||(x<=58)10.判斷char型變量s是否為小寫字母的正確表達(dá)式是()。A.’a’<=s<=’z’B.(s>=’a’)&(s<=’z’)C.(s>=’a’)&&(s<=’z’)D.(’a’<=s)and(’z’>=s)11.若希望當(dāng)x的值為奇數(shù)時,表達(dá)式的值為“真”,x的值為偶數(shù)時,表達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是()。A.x%2==1B.!(x%2==0)C.!(x%2)D.x%212.已知x=45,y=’a’,z=0;則表達(dá)式(x>=z&&y<’z’||!y)的值是()。A.0B.語法錯C.1D.“假”13.指出下列程序段所表示的邏輯關(guān)系是()。if(a<b){if(c==d)x=10;}elsex=-10;A.B.C.D.14.有一函數(shù):,以下程序段中不能根據(jù)x值正確計(jì)算出y值的是()。A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;B.y=0;if(x>0)y=1;elseif(x<0)y=-1;C.y=0;if(x>=0)if(x>0)y=1;elsey=-1;D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;15.執(zhí)行以下語句后,y的值為()。intx,y,z;x=y=z=0;++x||++y&&++z;A.0B.1C.2D.不確定值16.已知inta=1,b=2,c=3;以下語句執(zhí)行后a,b,c的值是()。if(a>b)c=a;a=b;b=c;A.a(chǎn)=1,b=2,c=3B.a(chǎn)=2,b=3,c=3C.a(chǎn)=2,b=3,c=1D.a(chǎn)=2,b=3,c=217.請閱讀以下程序:該程序()。#include”stdio.h”main(){intx=-10,y=5,z=0;if(x=y+z)printf(”***\n”);elseprintf(”$$$\n”);}A.有語法錯不能通過編譯B.可以通過編譯但不能通過連接C.輸出***D.輸出$$$18.以下程序的運(yùn)行結(jié)果是()。#include”stdio.h”main(){inta=1;if(a++>1)printf(”%d\n”,a);elseprintf(”%d\n”,a--);}A.0B.1C.2D.319.當(dāng)a=1,b=2,c=4,d=3時,執(zhí)行完下面一段程序后x的值是()。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=4;elsex=5;A.1B.2C.3D.420.執(zhí)行以下程序段后,變量x,y,z的值分別為()。inta=1,b=0,x,y,z;x=(--a==b++)?--a:++b;y=a++;z=b;A.x=0,y=0,z=0B.x=-1,y=-1,z=1C.x=0,y=1,z=0D.x=-1,y=2,z=121.若a、b、c、d、w均為int類型變量,則執(zhí)行下面語句后的w值是()。a=1;b=2;c=3;d=4;w=(a<b)?a:b;w=(w<c)?w:c;w=(w<d)?w:d;A.1B.2C.3D.422.以下程序的輸出結(jié)果是()。#include”stdio.h”main(){inta=5,b=4,c=6,d;printf(”%d\n”,d=a>b?a>c?a:c:b);}A.5B.4C.6D.不確定23.若a、b、c1、c2、x、y均為整型變量,正確的switch語句是()。A.switch(a+b);B.switcha{case1:y=a+b;break;{casec1:y=a-b;break;case0:y=a-b;casec2:x=a*d;break;break;default:x=a+b;}}C.switch(a*a+b*b)D.switch(a-b){case3:{default:y=a*b;break;case1:y=a+b;break;case3:x=a+b;break;case3:y=b-a;break;case10:case11:y=a-b;break;}}24.執(zhí)行下列程序,輸入為3的數(shù)出結(jié)果是()。#include”stdio.h”main(){intk;scanf(”%d”,&k);switch(k){case1:printf(”%d\n”,k++);case2:printf(”%d\n”,k++);case3:printf(”%d\n”,k++);case4:printf(”%d\n”,k++);break;default:printf(”Full!\n”);}}A.3B.4C.3D.45425.假定等級和分?jǐn)?shù)有以下對應(yīng)關(guān)系:等級:A分?jǐn)?shù):85——100等級:B分?jǐn)?shù):60——84等級:C分?jǐn)?shù):60以下對于等級grade輸出相應(yīng)的分?jǐn)?shù)區(qū)間,能夠完成該功能的程序段是()。A.switch(grade){case’A’:printf(”85——100\n”);case’B’:printf(”60——84\n”);case’C’:printf(”<60\n”);default:printf(”gradeiserror!\n”);}B.switch(grade){case’A’:printf(”85——100\n”);break;case’B’:printf(”60——84\n”);case’C’:printf(”<60\n”);default:printf(”gradeiserror!\n”);}C.switch(grade){case’A’:printf(”85——100\n”);break;case’B’:printf(”60——84\n”);break;case’C’:printf(”<60\n”);default:printf(”gradeiserror!\n”);}D.switch(grade){case’C’:printf(”<60\n”);break;case’B’:printf(”60——84\n”);break;default:printf(”gradeiserror!\n”);break;case’A’:printf(”85——100\n”);}26.有如下程序,寫出該執(zhí)行結(jié)果()。#include”stdio.h”main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(”%f\n”,y);}A.0.000000B.0.250000C.0.500000D.1.00000027.以下程序的運(yùn)行結(jié)果是()。#include”stdio.h”main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf(”%d\n”,c);}A.0B.1C.2D.328.運(yùn)行以下程序后,如從鍵盤上輸入china#,則輸出為()。#include”stdio.h”main(){intv1=0,v2=0;charch;while((ch=getchar())!=’#’)switch(ch){case’a’:case’h’:default:v1++;case’o’:v2++;}printf(”%d,%d\n”,v1,v2);}A.2,0B.5,0C.5,5D.2,529.有以下程序,若輸入為字符s,則程序運(yùn)行結(jié)果為()。#include”stdio.h”main(){charch;ch=getchar();switch(ch){case’a’:printf(”a=%c\n”,ch);default:printf(”end!\n”);case’b’:printf(”b=%c\n”,ch);case’c’:printf(”c=%c\n”,ch);}}A.end!B.end!C.有語法錯誤D.a(chǎn)=sb=send!c=s30.有以下程序,程序運(yùn)行后的輸出結(jié)果是()。#include”stdio.h”main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(”%d\n”,m);}A.1B.2C.3D.42填空題1.若從鍵盤輸入58,則輸出結(jié)果是________。#include”stdio.h”main(){inta;scanf(”%d”,&a);if(a>50)printf(”%d”,a);if(a>40)printf(”%d”,a);if(a>30)printf(”%d”,a);}2.設(shè)intx=9,y=8;表達(dá)式x==y+1的結(jié)果是________。3.定義intx,y;執(zhí)行y=(x=1,++x,x+2);后,y的值是________。4.定義intx=10,y,z;執(zhí)行y=z=x;x=y==z;后,x的結(jié)果是________。5.設(shè)inta=1,b=2,c,d,e;執(zhí)行c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(a/(--a));請問a,b,c,d,e的結(jié)果是:________。6.設(shè)inta=2,b=3,c,d,e,f;執(zhí)行c=(a++>=--b);d=(a==++b);e=(a--!=b);f=(++a>b--);請問a,b,c,d,e,f的結(jié)果是:________。7.以下程序的運(yùn)行結(jié)果是________。#include”stdio.h”main(){inta,b,c,s,w,t;s=w=t=0;a=-1;b=3;c=3;if(c>0)s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}elseif(c>0)w=a-b;elset=c;printf(”%d%d%d”,s,w,t);}8.以下程序的運(yùn)行結(jié)果是________。#include”stdio.h”main(){inta,b,c,d,e;a=c=1;b=20;d=100;if(!a)d=d++;elseif(!b)if(d)d=--d;elsed=d--;printf(”%d\n\n”,d);}9.以下程序的運(yùn)行結(jié)果是________。#include”stdio.h”main(){inta,b=250,c;if((c=b)<0)a=4;elseif(b=0)a=5;elsea=6;printf(”\t%d\t%d\n”,a,c);if(c=(b==0))a=5;printf(”\t%d\t%d\n”,a,c);if(a=c=b)a=4;printf(”\t%d\t%d\n”,a,c);}10.下面程序根據(jù)以下函數(shù)關(guān)系,對輸入的每個x值,計(jì)算出y值。請?jiān)凇尽績?nèi)填空。xy2<x<=10x(x+2)-1<x<=21/xx<=-1x-1#include”stdio.h”main(){intx,y;scanf(”%d”,&x);if(【1】)y=x*(x+2);elseif(【2】)y=1/x;elseif(x<=-1)y=x-1;else【3】;if(y!=-1)printf(”%d”,y);elseprintf(”error”);}11.以下程序的功能是計(jì)算一元二次方程ax2+bx+c=0的根。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”stdio.h”#include”math.h”main(){floata,b,c,t,disc,w,term1,term2;printf(”entera,b,c:”);scanf(%f%f%f”,&a,&b,&c);if(【1】)if(【2】)printf(”noanswerduetoinputerror\n”);elseprintf(”thesinglerootis%f\n”,-c/b);else{disc=b*b-4*a*c;w=2*a;term1=-b/w;t=abs(disc);term2=sqrt(t)/w;if(【3】)printf(”complexroot\nrealpart=%fimagpart=%f\n”,term1,term2);elseprintf(”realroots\nroot1=%froot2=%f\n”,term1+term2,term1-term2);}}12.以下程序根據(jù)輸入的三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類型。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”math.h”#include”stdio.h”main(){floata,b,c,s,area;printf(”pleaseinputthreeedgesofatriangle:”);scanf(”%f%f%f”,&a,&b,&c);if(【1】){s=(a+b+c)/2;area=sqrt(s*(s-A*(s-B*(s-c));printf(”\ntheareaofthetriangleis:%f”,area);if((a==b)&&(b==c))printf(”等邊三角形”);elseif(【2】)printf(”等腰三角形”):elseif(【3】)printf(”直角三角形”):elseprintf(”一般三角形”):}elseprintf(”不能組成三角形”);}13.以下程序的功能是判斷輸入的年份是否是閏年。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”stdio.h”main(){intyear,flag;printf(”pleaseinputtheyeartojudewhetheritisaleapyear:”);scanf(”%d”,&year);if(year%400==0)flag=1;elseif(【1】)flag=1;else【2】;if(flag)printf(”%disaleapyear\n”,year);elseprintf(”%disnotaleapyear!\n”,year);}14.以下程序是對用戶輸入的字母進(jìn)行大小寫轉(zhuǎn)換。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”stdio.h”main(){charch;printf(”pleaseinputaletter:”);scanf(”%c”,&ch);if(【1】)ch=ch+32;elseif(ch>=’a’&&ch<=’z’)【2】;printf(”theconvertedletteris:%c\n”,ch);}15.以下程序是對從鍵盤輸入的任何三個整數(shù),求出其中的最小值。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”stdio.h”main(){inta,b,c,min;printf(”pleaseinputthreenumbers:”);scanf(”%d%d%d”,&a,&b,&c);if(【1】)min=b;elsemin=a;if(min>c)【2】;printf(”min=%d\n”,min);}16.以下程序?qū)崿F(xiàn)這樣的功能:商店賣西瓜,10斤以上的每斤0.15元,8斤以上的每斤0.3元,6斤以上的每斤0.4元,4斤以上的每斤0.6元,4斤以下的每斤0.8元,從鍵盤輸入西瓜的重量和顧客所付錢數(shù),則輸出應(yīng)付款和應(yīng)找錢數(shù)。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”stdio.h”main(){floatweight,money,rate;printf(”thepaidmoneyoftheclientis:”);scanf(”%f”,&money);printf(”theweightofthewatermelonis:”);scanf(”%f”,&weight);if(【1】)rate=0.15;elseif(weight>8)rate=0.3;elseif(weight>6)【2】;elseif(weight>4)rate=0.6;【3】rate=0.8;printf(”theaccountpayableofthewatermelonis%f\n”,weight*rate);printf(”thechangeforclientis%f\n”,money-weight*rate);}17.以下程序段的運(yùn)行結(jié)果是________。#include”stdio.h”main(){charch1=’a’,ch2=’A’;switch(ch1){case’a’:switch(ch2){case’A’:printf(”good!\n”);break;case’B’:printf(”bad!\n”);break;}case’b’:printf(”joke\n”);}}18.根據(jù)以下函數(shù)關(guān)系,對輸入的每個x值,計(jì)算出相應(yīng)的y值。請?jiān)凇尽績?nèi)填入正確內(nèi)容。xyx<000<=x<10x10<=x<201020<=x<40-0.5x+20#include”stdio.h”main(){intx,rate;floaty;printf(”pleaseinputthevalueofx:”);scanf(”%d”,&x);if(【1】)rate=-1;elserate=【2】;switch(rate){case–1:y=0;break;case0:y=x;break;case1:y=10;break;case2:case3:y=-0.5*x+20;break;default:y=-2;}if(【3】)printf(”y=%f\n”,y);elseprintf(”thevalueofxisinvalid!\n”);}19.以下程序?qū)崿F(xiàn)的功能是:從鍵盤輸入某年某月,輸出該年份該月的天數(shù)。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”stdio.h”main(){intyear,month,days,leap;printf(”pleaseinputbothyearandmonth:”);scanf(”%4d/%2d”,&year,&month);switch(【1】){case1:case3:case5;case7:case8:case10:case12:days=31;【2】case4:case6:case9:case11:days=30;break;case2:if(year%400==0)leap=1;elseif(year%4==0&&year%100!=0)leap=1;else【3】;if(leap)days=29;elsedays=28;}printf(”%d年%d月的天數(shù)為%d\n”,year,month,days);}20.以下程序完成兩個數(shù)的四則運(yùn)算。請?jiān)凇尽績?nèi)填入正確內(nèi)容。#include”stdio.h”main(){floatx,y;charoperator;printf(”pleaseinputtheexpression:”);scanf(”%f%c%f”,&x,&operator,&y);switch(【1】){case’+’:printf(”%g%c%g=%g\n”,x,operator,y,x+y);【2】;case’-’:printf(”%g%c%g=%g\n”,x,operator,y,x-y);break;case’*’:printf(”%g%c%g=%g\n”,x,operator,y,x*y);break;case’/’:if(y==0.0)printf(”除零錯誤!\n”);elseprintf(”%g%c%g=%g\n”,x,operator,y,x/y);break;【3】:printf(”表達(dá)式存在錯誤!\n”);}}21.以下程序運(yùn)行后的輸出結(jié)果是_____________。#include”stdio.h”main(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(”%d,%d\n”,x,y);}22.執(zhí)行以下語句后,x、y和z的值分別為_____________。intx,y,z;x=y=z=0;++x||++y&&++z;3答案及部分解析選擇題答案1.D2.B3.D4.C5.D6.C7.C8.A9.C10.C11.C12.C13.B14.C15.A16.B17.C18.C19.B20.B21.A22.C23.D24.C25.D26.C27.C28.C29.A30.A2.解析:當(dāng)條件1:m=a>b的值為假時,便已經(jīng)確定整個表達(dá)式的值為假,所以不必再繼續(xù)判斷第二個表達(dá)式的邏輯值。由于沒有執(zhí)行第二個表達(dá)式n=c>d,所以n的值仍為2。17.解析:if的條件表達(dá)式x=y+z為賦值語句,x=5為非零值,即為if(1)printf(”***\n”);23.解析:A.的錯誤在于switch(a+b);其后有一個“;”,B的錯誤在于switcha的條件表達(dá)式a沒有括號,應(yīng)該為switch(a),C的錯誤在于有兩個case具有相同的入口值。28.解析:當(dāng)輸入c時,switch語句執(zhí)行情況為:switch(ch)switch(ch){case’a’:case’h’:default:v1++;case’0’:v2++;}從此處向下執(zhí)行因?yàn)闆]有break語句當(dāng)繼續(xù)輸入h時,switch語句的執(zhí)行情況為:switch(ch)switch(ch){case’a’:case’h’:default:v1++;case’0’:v2++;}從此處向下執(zhí)行因?yàn)闆]有break語句重復(fù)上述過程,輸入5個有效字符,則v1和v2執(zhí)行5次自加操作,所以:v1=5,v2=5填空題答案1.答案:585858解析:雖然三個if語句按照嵌套方式書寫,但是程序仍然是依順序運(yùn)行的,會分別對每一個if的條件表達(dá)式進(jìn)行判斷,若其條件表達(dá)式為真,就執(zhí)行其后的語句,否則,不執(zhí)行。2.答案:1解析:注意該表達(dá)式是關(guān)系表達(dá)式的雙等號,所以其結(jié)果只能為1或0。3.答案:44.答案:15.答案:在TurboC編譯系統(tǒng)下,結(jié)果為a=2,b=3,c=2,d=3,e=-1;若在VisualC++下,結(jié)果為a=2,b=3,c=2,d=3,e=-0。解析:①在TurboC編譯系統(tǒng)下,解題過程如下:第一個賦值語句“c=(-a++)+(++b);”可分解為如下的幾個語句:此時a=2,b=3,c=2。第二個賦值語句“d=(b--)+(++a)-a;”可分解為如下的幾個語句:此時a=3,b=2,c=2,d=3。第三個賦值語句“e=(a/(++b))-(a/(--a));”中由于自加、自減運(yùn)算符的優(yōu)先級高于其它運(yùn)算符,故先運(yùn)算++和--,令a=2,b=3,然后該等式中a的值都取2參與運(yùn)算,故該等式等價與:“e=2/3-2/2;”,因此e的值等于0。此時a=2,b=3,c=2,d=3,e=0②在VisualC++編譯系統(tǒng)下,解題過程如下:前兩條賦值語句“c=(-a++)+(++b);”、“d=(b--)+(++a)-a;”的運(yùn)算過程和在TurboC編譯系統(tǒng)一樣,第三個賦值語句“e=(a/(++b))-(a/(--a));”可按步驟分解為如下的幾個語句因此,其結(jié)果為a=2,b=3,c=2,d=3,e=-06.答案:a=3,b=2,c=1,d=1,e=0,f=0解析:第一個賦值語句c=(a++>=--b);可以分解為如下的語句:第二個賦值語句d=(a==++b);可以分解為如下的語句:第三個賦值語句e=(a--!=b);可以分解為如下的語句:第四個賦值語句f=(++a>b--);可以分解為如下的語句:由以上各步,可以得到:a=3,b=2,c=1,d=1,e=0,f=07.答案:200解析:參看如下的注釋語句。if(c>0)s=a+b;/*c=3>0為真,所以執(zhí)行s=a+b語句;即:s=2*/if(a<=0)/*由于a=-1,故a<=0為真,所以執(zhí)行其后的大括號內(nèi)的語句*/{if(b>0)/*由于b=3,故b>0為真,可以繼續(xù)下面的語句*/if(c<=0)w=a-b;/*由于c=3,c<=0為假,其后w=a-b不會執(zhí)行*/}elseif(c>0)w=a-b;/*這一對if-else因a<=0為真,所以沒有機(jī)會執(zhí)行到*/elset=c;8.答案:1009.答案:62501010.答案:【1】x>2&&x<=10【2】x>-1&&x<=2【3】y=-111.答案:【1】a==0【2】b==0【3】disc<012.答案:【1】(a+b>c)&&(b+c>a)&&(a+c>b)【2】(a==b)||(b==c)||(a==c)【3】(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)13.答案:【1】(year%4==0)&&(year%100!=0)【2】flag=014.答案:【1】ch>=’A’&&ch<=’Z’【2】ch=ch-3215.答案:【1】a>b【2】min=c;16.答案:【1】weight>10【2】rate=0.4【3】else17.答案:good!joke18.答案:【1】x<0【2】x/10【3】y!=-219.答案:【1】month【2】break;【3】leap=0;20.答案:【1】operator【2】break【3】default21.答案:20,022.答案:1,0,0第5章循環(huán)結(jié)構(gòu)習(xí)題1選擇題1.以下程序的輸出結(jié)果是()。main(){intn=4;while(n--)printf(〞%d〞,--n);}A.20B.31C.321D.2102.以下程序的輸出結(jié)果是()。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}A.10192B.9876C.10990D.1010913.當(dāng)執(zhí)行以下程序段時。x=-1;do{x=x*x;}while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無數(shù)多次D.系統(tǒng)將提示有語法錯誤4.執(zhí)行以下程序后輸出的結(jié)果是()。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}A.-1B.1C.8D.05.下面程序的輸出結(jié)果是()。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,a);}A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=16.若i,j已定義為int類型,則以下程序段中內(nèi)循環(huán)的總的執(zhí)行次數(shù)是()。for(i=5;i;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.307.請讀程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}上面程序的輸出結(jié)果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=28.若有以下程序段,w和k都是整型變量w=k;LB:if(w==0)gotoLE;w--;printf(〞*〞);gotoLB;LE:則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)print(〞*〞);B.w=k;while(w--!=0)printf(〞*〞);w++;C.w=k;do{w--;printf(〞*〞);}while(w!=0);D.for(w=k;w;--w)printf(〞*〞);9.下面程序的輸出是()。main(){char;intk,v1=0,v2=0,v3=0,v4=0;for(k=0;s[k];k++)switch(s[k]){default:v4++;case1:v1++;case2:v2++;csse3:v3++;}printf(〞v1=%d,v2=%d,v3=%d,v4=%d\n〞,v1,v2,v3,v4);}A.v1=4,v2=2,v3=1,v4=1B.v1=4,v2=9,v3=3,v4=1C.v1=5,v2=8,v3=6,v4=1D.v1=8,v2=8,v3=8,v4=810.有以下程序#include〞stdio.h〞intabc(intu,intv);main(){intc,a=24,b=16;c=abc(a,b);printf(〞%d\n〞,c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;}returnu;}輸出結(jié)果是()。A.6B.7C.8D.911.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的程序段是()。A.inti=100;while(1){i=i%100+1;if(i>100)break;}B.for(;;);C.intk=1000;do{++k;}while(k>=10000);D.ints=36;while(s);--s;12.若輸入B,以下程序的運(yùn)行結(jié)果為()。main(){chargrade;scanf("%c",&grade);switch(grade){case'A':printf(">=85.");case'B':case'C':printf(">=60.");case'D':printf("<60.");default:printf("error.");}}A.>=85.B.>=60.C.>=60.<60.error.D.error.13.列程序運(yùn)行的情況是()。main(){inti=1,sum=0;while(i<10)sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A.i=10,sum=9B.i=9,sum=9C.i=2,sum=1D.運(yùn)行出現(xiàn)錯誤14.有以下語句:i=1;for(;i<=100;i++)sum+=i;與以上語句序列不等價的有()。A.for(i=1;;i++){sum+=i;if(i==100)break;}B.for(i=1;i<=100;){sum+=i;i++;}C.i=1;for(;i<=100;)sum+=i;D.i=1;for(;;){sum+=i;if(i==100)break;i++;}15.下面程序的運(yùn)行結(jié)果為()。main(){intn;for(n=1;n<=10;n++){if(n%3==0)continue;printf("%d",n);}}B.369C.1216.下面程序的運(yùn)行結(jié)果是()。main(){intx,y,z;x=0;y=z=-1;x+=-zy;printf("x=%d\n",x);}A.x=4B.x=0C.x=2D.x=317.標(biāo)有/**/的語句的執(zhí)行次數(shù)是()。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/**/}A.20B.19C.10D.918.在C語言中,if語句后的一對圓括號中,用以決定分支的流程的表達(dá)式。A.只能用邏輯表達(dá)式B.只能用關(guān)系表達(dá)式C.只能用邏輯表達(dá)式或關(guān)系表達(dá)式D.可用任意表達(dá)式19.在以下給出的表達(dá)式中,與do-while(E)語句中的(E)不等價的表達(dá)式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)20.假定所有變量均已正確定義,下列程序段運(yùn)行后x的值為()。k1=1;k2=2;k3=3;x=15;if(!k1)x--;elseif(k2)if(k3)x=4;elsex=3;A.14B.4C.15D.321.執(zhí)行下面語句的輸出為()。inti=-1;if(i<=0)printf(“****\n”);elseprintf(“%%%%\n”);A.****B.%%%%C.%%%%cD.有錯,執(zhí)行不正確22.下列程序的輸出是()。#include<stdio.h>main(){inti;charc;for(i=0;i<=5;i++){c=getchar();putchar(c);}}程序執(zhí)行時從第一列開始輸入以下數(shù)據(jù),<CR>代表換行符。u<CR>w<CR>xsta<CR>A.uwxstaB.uC.uD.uwwwxxsxsta23.下列程序的輸出為()。#include"stdio.h"main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j-0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}A.x=4B.x=8C.x=6D.x=1224.下列程序的輸出為()。#include<stdio.h>main(){inti,j,k=0,m=0;for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf("k=%d,m=%d\n",k,m);}A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=525.在C語言中,為了結(jié)束while語句構(gòu)成的循環(huán),while后一對圓括號中表達(dá)式的值應(yīng)該為()。A.0B.1C.trueD.非026.在C語言中,為了結(jié)束由do-while語句構(gòu)成的循環(huán),while后一對圓括號中表達(dá)式的值應(yīng)為()。A.0B.1C.trueD.非027.下列程序的輸出為()。#include<stdio.h>main(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;continue;case'E':k=k*10;break;default:k=k/3;}k++;}while(c<'G');printf("%d\n",k);}A.k=3B.k=4C.k=2D.k=028.C語言的if語句嵌套時,if與else的配對關(guān)系是()。A.每個else總是與它上面的最近的if配對B.每個else總是與最外的if配對C.每個else與if的配對是任意的D.每個else總是與它上面的if配對29.下列程序的輸出為()。#include<stdio.h>main(){inti=0,j=0,a=6;if((++i>0)||(++j>0))a++;printf("i=%d,j=%d,a=%d\n",i,j,a);}A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7D.i=0,j=1,a=730.下列程序段的輸出結(jié)果為()。main(){intx=3;do{printf("%3d",x-=2);}while(!(--x));}A.1B.30C.1-2D.死循環(huán)2填空題:1.當(dāng)輸入19,2,21時下列程序運(yùn)行的結(jié)果是_________。main(){inta,b,c,max;printf("pleasescanthreenumbera,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("maxis:%d",max);}2.若輸入字母C,程序輸出結(jié)果為【1】;若輸入字符*,程序?qū)ⅰ?】。#include<stdio.h>main(){charc1,c2;c1=getchar();while(c1<97||c1>122)c1=getchar();c2=c1-32;printf("%c,%c\n",c1,c2);}3.以下程序運(yùn)行的結(jié)果為________。main(){inta,b,c,x,y,z;a=10;b=2;c=!(a%b);x=!(a/b);y=(a<b)&&(b>=0);z=(a<b)||(b>=0);printf("%d,%d,%d,%d\n",c,x,y,z);}4.若輸入4,程序運(yùn)行結(jié)果為【1】,若輸入-4,運(yùn)行結(jié)果為【2】,若輸入10,運(yùn)行結(jié)果為【3】.main(){intx,y;scanf("%d",&x);if(x<1){y=x;printf("x=%d,y=x=%d\n",x,y);}elseif(x<10){y=2*x-1;printf("x=%d,y=2*x-1=%d\n",x,y);}else{y=3*x-11;printf("x=%d,y=3*x-11=%d\n",x,y);}}5.以下程序運(yùn)行的結(jié)果________。main(){inti=1,sum=0;loop:if(i<=10){sum+=i;i++;gotoloop;}printf("sum=%d\n",sum);}6.以下程序運(yùn)行的結(jié)果________。main(){intx=2,y,z;x*=3+1;printf("%d,",x++);x+=y=z=5;printf("%d,",x);x=y==z;printf("%d\n",x);}7.以下程序運(yùn)行的結(jié)果________。#include<stdio.h>#include<math.h>main(){inti,k,m,n=0;for(m=1;m<=10;m+=2){if(n%10==0)printf("\n");k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k){printf("%2d",m);n++;}}}8.如果輸入‘1’,‘2’,‘3’,‘4’,程序運(yùn)行輸出的是________。#include<stdio.h>main(){charc;inti,k;k=0;for(i=0;i<4;i++){while(1){c=getchar();if(c>='0'&&c<='9')break;}k=k*10+c-'0';}printf("k=%d\n",k);}9.運(yùn)行以下程序后,如果從鍵盤上輸入china#<回車>,則輸出結(jié)果為________。#include<stdio.h>main(){intv1=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'0':v2++;}printf("%d,%d\n",v1,v2);}10.程序運(yùn)行結(jié)果是_________。#include<stdio.h>main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d\t",i++);break;}printf("%d\t",i++);}}11.以下程序運(yùn)行的結(jié)果是_________。#include<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);}12.以下程序運(yùn)行的結(jié)果是________。main(){inti=1;while(i<10)if(++i%3!=1)continue;elseprintf("%d",i);}13.程序運(yùn)行的結(jié)果是________。main(){intn=0;while(n++<=1)printf("%d\t",n);printf("%d\n",n);}14.此程序運(yùn)行時,輸入qwert?程序的運(yùn)行結(jié)果是_________。#include<stdio.h>main(){charc;while((c=getchar()
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技產(chǎn)品電子商務(wù)營銷實(shí)踐案例
- 文化創(chuàng)意產(chǎn)業(yè)與城鄉(xiāng)融合發(fā)展考核試卷
- 前臺工作中客戶投訴處理流程計(jì)劃
- 勘察項(xiàng)目數(shù)據(jù)分析與決策支持考核試卷
- 設(shè)計(jì)創(chuàng)新項(xiàng)目的實(shí)施方案計(jì)劃
- 精細(xì)化管理在醫(yī)院中的實(shí)施效果計(jì)劃
- 仁果類果樹種植病蟲害生物防治考核試卷
- 圖書數(shù)字化計(jì)劃
- 放射性廢物治理中的生物技術(shù)應(yīng)用考核試卷
- 會計(jì)行業(yè)熱點(diǎn)話題的研究計(jì)劃
- 建設(shè)工程施工專業(yè)分包合同(GF-2003-0213)
- 耳鼻喉科各項(xiàng)規(guī)章制度
- 玻璃分化板制作工藝
- 虹吸現(xiàn)象講解
- 設(shè)備采購計(jì)劃書
- 長興縣合溪水庫清淤工程(一期)環(huán)境影響報告
- 粒籽源永久性植入治療放射防護(hù)要求
- 新聞選題申報單
- 醫(yī)學(xué)倫理審查申請表
- 《計(jì)算機(jī)安全基礎(chǔ)》課件
- 養(yǎng)老院行業(yè)現(xiàn)狀分析-2023年中國養(yǎng)老院行業(yè)市場發(fā)展前景研究報告-智研咨詢
評論
0/150
提交評論