C語(yǔ)言習(xí)題題庫(kù)_第1頁(yè)
C語(yǔ)言習(xí)題題庫(kù)_第2頁(yè)
C語(yǔ)言習(xí)題題庫(kù)_第3頁(yè)
C語(yǔ)言習(xí)題題庫(kù)_第4頁(yè)
C語(yǔ)言習(xí)題題庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩86頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言習(xí)題集

習(xí)題一

一.填空題

1.C程序是由()構(gòu)成的,一個(gè)C程序中至少包含()。

因此,()是C程序的基本單位。

2.C程序注釋是由()和()所界定的文字信息組成的。

3.函數(shù)體一般包括()和()。

二.判斷題

1.一個(gè)C程序的執(zhí)行總是從該程序的main函數(shù)開(kāi)始,在main函數(shù)最后結(jié)

束?!尽?/p>

2.main函數(shù)必須寫(xiě)在一個(gè)C程序的最前面。【】

3.一個(gè)C程序可以包含若干的函數(shù)。【】

4.C程序的注釋部分可以出現(xiàn)在程序的任何位置,它對(duì)程序的編譯和運(yùn)行

不起任何作用。但是可以增加程序的可讀性。【】

5.C程序的注釋只能是一行。[]

6.C程序的注釋不能是中文文字信息?!尽?/p>

8.可以使用TurboC來(lái)編譯和連接一個(gè)C程序?!尽?/p>

9.可以使用TurboC來(lái)運(yùn)行一個(gè)C程序?!尽?/p>

10.可以使用TurboC來(lái)實(shí)時(shí)調(diào)試(即動(dòng)態(tài)調(diào)試)一個(gè)C程序?!尽?/p>

三.簡(jiǎn)答題

1.寫(xiě)出一個(gè)C程序的基本結(jié)構(gòu)。

2.簡(jiǎn)要敘述使用TurboC2.0編譯和運(yùn)行一個(gè)程序的步驟。

四.編程題

1.提高題:參照課本例1.1,試編寫(xiě)一個(gè)C程序,輸出如下信息。(提示:

使用鍵盤(pán)上的一些符號(hào))。

2.提高題:試編寫(xiě)一個(gè)C程序,輸出如下信息。

試試看,可以輸出其他組合圖案嗎?

習(xí)題二

選擇題

1、合法的字符常量是。

A)''t'B)''A"C)‘a(chǎn)'D)"32'

2、合法的字符常量是。

A)''084'B)''84'C)'ab'D)'\x43'

3、是C語(yǔ)言提供的合法的數(shù)據(jù)類型關(guān)鍵字。

A)FloatB)signedC)integerD)Char

4、在以下各組標(biāo)識(shí)符中,合法的標(biāo)識(shí)符是。

(1)A)B01B)table_lC)0_tD)k%

(2)A)Fast_B)voidC)pblD)<book>

(3)A)xy_B)longdoubleC)*pD)CHAR

(4)A)sjB)IntC)_xyD)w_y23

5、屬于合法的C語(yǔ)言長(zhǎng)整型常量的是。

A)5876273B)OLC)2E10D)(long)5876273

6、下面選項(xiàng)中,不是合法整型常量的是。

A)160B)-OxcdgC)-01D)-0x48a

7、判斷intx=Oxaffbc;x的結(jié)果是。

A)賦值非法B)溢出C)為affbD)為ffbc

8、下面選項(xiàng)中,均是合法浮點(diǎn)數(shù)的是。

A)+le+lB)-.60C)123eD)-e3

A)5e-9.4B)12e-4C)1.2e-.4D).8e-4

A)03e2B)-8e5C)+2e-lD)5.e-0

9、在C語(yǔ)言中,要求參加運(yùn)算的數(shù)必須時(shí)整數(shù)的運(yùn)算符是。

A)/B)*C)%D)=

10、在C語(yǔ)言中,字符型數(shù)據(jù)在內(nèi)存中以形式存放。

A)原碼B)BCD碼C)反碼D)ASCII碼

11、下列語(yǔ)句中,符合語(yǔ)法的賦值語(yǔ)句是。

A)a=7+b+c=a+7;B)a=7+b++=a+7;

C)a=(7+b,b++,a+7);D)a=7+b,c=a+7:

12、是非法的C語(yǔ)言轉(zhuǎn)義字符。

A)''b'B)l\0xfC)''037'D)'\"

13、對(duì)于語(yǔ)句:4(3.0,4.0,5.0),(2.0,1.0,0.0);的判斷中,是正確的。

A)語(yǔ)法錯(cuò)誤B)f為5.0C)f為0.0D)f為2.0

14、與代數(shù)式(x*y)/(u*v)不等價(jià)的C語(yǔ)言表達(dá)式是。

A)x*y/u*vB)x*y/u/vC)x*y/(u*v)D)x/(u*v)*y

15、在C語(yǔ)言中,數(shù)字029是一個(gè)。

A)八進(jìn)制數(shù)B)十六進(jìn)制數(shù)C)十進(jìn)制數(shù)D)非法數(shù)

16、C語(yǔ)言中整數(shù)一8在內(nèi)存中的存儲(chǔ)形式為。

A)1111111111111000B)100000000001000

C)000000000001000D)1111111111110111

17、對(duì)于charcx='\039’;語(yǔ)句,正確的是。

A)不合法B)ex的ASCII值是33

C)cx的值為四個(gè)字符D)cx的值為三個(gè)字符

18、若intk=7,x=12;則能使值為3的表達(dá)式是。

A)x%=(k%=5)B)x%=(k-k%5)

C)x%=k-k%5D)(x%=k)-(k%=5)

19、為了計(jì)算s=10!(即10的階乘),則s變量應(yīng)定義為。

A)intB)unsignedC)longD)以上三種類型均可

20、以下所列的C語(yǔ)言常量中,錯(cuò)誤的是。

A)OxFFB)1.2e0.5C)2LD)''72'

21、假定x和y為double型,則表達(dá)式x=2,y=x+3/2的值是。

A)3.500000B)3C)2.000000D)3.000000

22、設(shè)變量n為float型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小

數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是。

A)n=(n*100+0.5)/100.0B)m=n*l00+0.5,n=m/l00.0

C)n=n*100+0.5/100.0D)n=(n/l00+0.5)*100.0

23、以下合法的賦值語(yǔ)句是。

A)x=y=100B)d------C)x+yD)c=int(a+b)

24、下選項(xiàng)中不屬于C語(yǔ)言的類型是。

A)signedshortintB)unsignedlongint

B)unsignedintD)longshort

25、設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是。

A)(x=y=6,x+y,x+l)B)(x=y=6,x+y,y+l)

C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)

26、在16位C編譯系統(tǒng)匕若定義longa;,則能給a賦40000的正確語(yǔ)句

是。

A)a=20000+20000:B)a=4000*10:

C)30000+10000;D)a=4000L*10L;

二.填空題

1.在C語(yǔ)言中(以16位PC機(jī)為例),一個(gè)char數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)

為,其數(shù)值范圍為;?個(gè)int數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)

為—,其數(shù)值范圍為—;一個(gè)long數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)為一,

其數(shù)值范圍為;一個(gè)float數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)

為,其數(shù)值范圍為。

2.C語(yǔ)言的標(biāo)識(shí)符只能由大小寫(xiě)字母,數(shù)字和下劃線三種字符組成,而且第

一個(gè)字符必須為O

3.字符常量使用一對(duì)界定單個(gè)字符,而字符串常量使用一對(duì)來(lái)

界定若干個(gè)字符的序列。

4.在C語(yǔ)言中,不同運(yùn)算符之間運(yùn)算次序存在的區(qū)別,同一運(yùn)算符之

間運(yùn)算次序存在_______的規(guī)則。

5.設(shè)x,i,j,k都是int型變量,表達(dá)式x=(i=4,j=16,k=32)計(jì)算后,x的值為一。

6.設(shè)x=2.5,a=7,y=4.7,則x+a%3*(int)(x+y)%2/4為。

7.設(shè)a=2,b=3,x=3.5,y=2.5〃lJ(float)(a+b)/2+(int)x%(int)y為。

8.數(shù)學(xué)式子的C語(yǔ)言表達(dá)式為o

9.數(shù)學(xué)式子的C語(yǔ)言表達(dá)式為。

10.已知:chara='a',b='b',c='c',i;則表達(dá)式i=a+b+c的值為。

11.已知血a=12,n=5;則:表達(dá)式運(yùn)算后a的值各為。

a+=a

a-=2

a*=2+3

a/=a+a

n%=(n%=2)

a+=a-=a*=a

12.設(shè)inta;floatf;doublei;則表達(dá)式10+'a,+i*f值的數(shù)據(jù)類型是。

13.若a為int型變量,則表達(dá)式(a=4*5,a*2),a+6的值為。

14.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,a++,b++,a+b)的值為。

15.已知a,b,c是?個(gè)十進(jìn)制數(shù)的百位,十位,個(gè)位,則該數(shù)的表達(dá)式是。

16.定義:doublex=3.5,y=3.2;則表達(dá)式(int)x*0.5的值是,表達(dá)式

y+=x++的值是o

17.定義:intm=5,n=3;則表達(dá)式m/=n+4的值是,表達(dá)式

m=(m=l,n=2,n-m)的值是,表達(dá)式m+=m=(m=l)*(n=2)的值是■>

18.表達(dá)式5%(-3)的值是,表達(dá)式-5%(-3)的值是。

19.若a是int變量,則執(zhí)行表達(dá)式a=25/3%3后,a的值是。

20.數(shù)學(xué)式子的C語(yǔ)言表達(dá)式為:。

三.判斷題

1.在C程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型?!尽?/p>

2.一個(gè)變量在內(nèi)存中占據(jù)一定的存儲(chǔ)單元?!尽?/p>

3.一個(gè)實(shí)型變量的值肯定是精確的?!尽?/p>

4.對(duì)幾個(gè)變量在定義時(shí)賦初值可以寫(xiě)成:inta=b=c=3;1]

5.自增運(yùn)算符(++)或自減運(yùn)算符(-)只能用于變量,不能用于常量或表達(dá)式。

(]

6.在C程序的表達(dá)式中,為了明確表達(dá)式的運(yùn)算次序,常使用括號(hào)“()

[1

7.%運(yùn)算符要求運(yùn)算數(shù)必須是整數(shù)?!尽?/p>

8.若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整型

數(shù)?!尽?/p>

9.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低?!尽?/p>

10.C語(yǔ)言不允許混合類型數(shù)據(jù)間進(jìn)行運(yùn)算。【】

四.簡(jiǎn)答題

1.為什么C語(yǔ)言的字符型可以進(jìn)行數(shù)值運(yùn)算?

2.簡(jiǎn)述、和“a”的區(qū)別。

3.程序:intm=12;m=15;為什么整型變量m的值在運(yùn)算后不是當(dāng)初的12,

而是15?

4.將下面各數(shù)用八進(jìn)制和十六進(jìn)制數(shù)表示:

十進(jìn)制32—1—327682002-1280

八進(jìn)制

十六進(jìn)制

6.華氏溫度F與攝氏溫度c的轉(zhuǎn)換公式為:c=(F-32)*5/9,則floatc,F;

c=5/9*(F-32)是其對(duì)應(yīng)的C語(yǔ)言表達(dá)式嗎?如果不是,為什么?

五.程序閱讀題

1.寫(xiě)出以下程序運(yùn)行的結(jié)果。

main()

{

charcl=,a\c2=,b\c3=,c\c4=,\101',c5='116’;

printf("a%cb%c\tc%c\tabc\n,,,cI,c2,c3);

printf(t€\t\b%c%c”,c4,c5);

}

2.寫(xiě)出以下程序運(yùn)行的結(jié)果。

main()

{

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printffl%d,%d,%d,%d,,,i,j,m,n);

)

六.編程題

1.假設(shè)m是一個(gè)三位數(shù),則寫(xiě)出將m的個(gè)位,十位,百位反序而成的三位

數(shù)(例如:123反序?yàn)?21)的C語(yǔ)言表達(dá)式。

2.已知intx=10,y=12;寫(xiě)出將x和y的值互相交換的表達(dá)式。

習(xí)題三

一.選擇題

LC語(yǔ)言的程序一行寫(xiě)不下時(shí),可以。

A)用逗號(hào)換行B)用分號(hào)換行

C)在任意一空格處換行D)用回車符換行

2.putchar()函數(shù)可以向終端輸出一個(gè)。

A)整型變量表達(dá)式值B)實(shí)型變量值

C)字符串D)字符或字符型變量值

3.執(zhí)行下列程序片段時(shí)輸出結(jié)果是。

unsignedinta=65535;

printf("%d”,a);

A)65535B)-1C)-32767D)1

4.執(zhí)行下列程序片段時(shí)輸出結(jié)果是。

floatx=-1023.012

printfC\n%8.3f,,,,x);

printf(“%10.3f',x);

A)1023.012,-1023.012B)-1023.012,-1023.012

C)1023.012,-1023.012D)-1023.012,-1023.012

5.已有如下定義和輸入語(yǔ)句,若要求al,a2,cl,c2的值分別為10,20,A和B,

當(dāng)從第一列開(kāi)始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是。

intal,a2;charcl,c2;

scanf(tt%d%c%c,,,&al,&a2,&c1,&c2);

A)10A20BZB)10A20B/

C)10A20BZC)10A20B/

6.對(duì)于下述語(yǔ)句,若將10賦給變量kl和k3,將20賦給變量k2和k4,則

應(yīng)按方式輸入數(shù)據(jù)。

intkl,k2,k3,k4;

scanf("%d%d”,&kl,&k2);

scanfC4%d,%d,,,&k3,&k4);

A)1020/B)1020/C)10,20/

D)1020/1020/1020Z10,20/10,20/

7.執(zhí)行下列程序片段時(shí)輸出結(jié)果是。

intx=13,y=5;

printf("%d”,x%=(y/=2));

A)3B)2C)1D)0

8.下列程序的輸出結(jié)果是。

main()

{intx=023;

}

A)17B)18C)23D)24

9.已有如下定義和輸入語(yǔ)句,若要求al,a2,cl,c2的值分別為10,20,A和B,當(dāng)

從第一列開(kāi)始輸入數(shù)據(jù)時(shí),正確的輸入方式是。

intal,a2;charcl,c2;

scanfft%d%d,,,&al,&a2);

scanfC%c%c,,,&cl,&c2);

A)1020ABZB)1020/

AB/

C)1020ABZD)1020AB/

10.執(zhí)行下列程序片段時(shí)輸出結(jié)果是。

intx=5,y;

y=2+(x+=x-H-,x+8,-H-x);

printfT%d”,y);

A)13B)14C)15D)16

1L若定義x為double型變量,則能正確輸入x值的語(yǔ)句是。

A)scanf("%f',x);B)scanf("%F',&x);

C)scanff'%l「,&x);D)scanf("%5.1F',&x);

12.若運(yùn)行時(shí)輸入:12345678/,則下列程序運(yùn)行結(jié)果為。

main()

{inta,b;

scanfC4%2d%2d%3dM,&a,&b);

printf("%d\n”,a+b);

)

A)46B)579C)5690D)出錯(cuò)

13.已知i,j,k為int型變量,若從鍵盤(pán)輸入:1,2,3〈回車,,使I的值為1,j

的值為2,k的值為3,以下選項(xiàng)中正確的輸入語(yǔ)句是。

A)scanfC'%2d%2d%2d”,&i,&j,&k);

B)scanf(4t%d_%d_%d,,,&i,&j,&k);

C)scanfT%d,%d,%d”,&i,&j,&k);

D)scanf(tti=%d,j=%d,k=%d,,,&i,&j,&k);

14.若intx,y;doublez;以下不合法的scanf函數(shù)調(diào)用語(yǔ)句是。

A)scanf(4U%d%lx,%le,,,&x,&y,&z);

B)scanf(tt%2d*%d%lf,,&x,&y,&z);

C)scanf(tt%x%*d%o,,,&x,&y);

D)scanf{tt%x%o%6.2f\&x,&y,&z);

15.有輸入語(yǔ)句:scanfiTa=%d,b=%d,c=%d”,&a,&b,&c);為使變量a的值為1,

b的值為3,c的值為2,則正確的數(shù)據(jù)輸入方式是。

A)132/B)1,3,2/

C)a=lb=3c=2/D)a=l,b=3,c=2/

二.填空題

I.一個(gè)c程序由若干個(gè)文件組成,而一個(gè)這樣的文件可以由若干個(gè)

和以及組成。

2.C語(yǔ)句可以分為,一,—,和—等5種類型。

3.C控制語(yǔ)句有種。

4.一個(gè)表達(dá)式要構(gòu)成一個(gè)C語(yǔ)句,必須。

5.復(fù)合語(yǔ)句是用一對(duì)界定的語(yǔ)句塊。

6.printf函數(shù)和scanf函數(shù)的格式說(shuō)明都使用字符開(kāi)始。

7.scanf處理輸入數(shù)據(jù)時(shí),遇到下列情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束:(1),

(2),(3)=

8.已有inti,j;floatx;為將-10賦給i,12賦給j,410.34賦給x;則對(duì)應(yīng)以下

scanf函數(shù)調(diào)用語(yǔ)句的數(shù)據(jù)輸入形式是。

9.C語(yǔ)言本身不提供輸入輸出語(yǔ)句,其輸入輸出操作是由來(lái)實(shí)現(xiàn)的。

10.一般地,調(diào)用標(biāo)準(zhǔn)字符或格式輸入輸出庫(kù)函數(shù)時(shí),文件開(kāi)頭應(yīng)有以下預(yù)

編譯命令:?

三.程序閱讀題

1.用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,cl='A,,c2=,a\問(wèn)

在鍵盤(pán)上如何輸入?

main()

{inta,b;

floatx,y;

charcl,c2;

scanf(t€a=%db=%d,,,&a,&b);

scanf("%f%e”,&x,&y);

scanff%c%c,,,&cl,&c2);

}

2.寫(xiě)出以下程序的輸出結(jié)果。

main()

{inty=3,x=3,z=l;

printf(u%d%d\n”,(++x,y++),z+2);

}

3.寫(xiě)出以下程序的輸出結(jié)果。

main()

{inta=12345;

floatb=-198.345,c=6.5;

printf(ua=%4d,b=%-10.2e,c=%6.2f\n,,,a,b,c);

}

4.寫(xiě)出以下程序的輸出結(jié)果。

main()

{intx=-2345;

floaty=-12.3;

printfT%6D,%06.2F”,x,y);

}

5.寫(xiě)出以下程序的輸出結(jié)果。

main()

{inta=252;

printf(“a=%oa=%#o\n,\a,a);

printf(<<a=%xa=%#x\n,,,a,a);

}

6.寫(xiě)出以下程序的輸出結(jié)果。

main()

{intx=12;doublea=3.1415926;

printfCt%6d##,%-6d##\n,\x,x);

printf(“%14.101f##\n",a);

)

四.程序填空題

1.下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)?1)空使程序完整。

main()

{inta=9,b=2;

floatx=[1],y=l.l,z;

z=a/2+b*x/y+1/2;

printfC<%5.2f\n,,,z);

}

五.編程題

1.已知a,b均是整型變量,寫(xiě)出將a,b兩個(gè)變量中的值互換的程序來(lái)。

2.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'。想得到

以下的輸出格式和結(jié)果,請(qǐng)寫(xiě)出程序(包括定義變量類型和設(shè)計(jì)輸出)。

a=3b=4c=5

x=l.200000,y=2.400000,z=-3.600000

x+y=3.60y+z=-1.20z+x=?2.40

u=51274n=128765

cl='a'or97(ASCII)

c2Tb'or98(ASCII)

3.設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長(zhǎng),圓面積,圓球表面積,圓球體積,

圓柱體積。用scanf輸入數(shù)據(jù),輸出計(jì)算結(jié)果;輸出時(shí)要求有文字說(shuō)明,取

小數(shù)點(diǎn)后2位數(shù)字,請(qǐng)編寫(xiě)程序。

4.編程序:用getchar函數(shù)讀入兩個(gè)字符給cl,c2,然后分別用putchar和printf

函數(shù)輸出這兩個(gè)字符。并思考以下問(wèn)題:(1)變量cl,c2應(yīng)定義為字符型或整

型?或兩者皆可?(2)要求輸出C1和C2值的ASCII碼,應(yīng)如何處理?用

putchar函數(shù)還是printf函數(shù)?(3)整型變量與字符型變量是否在任何情況

下都可以互相替代?如:

charcl,c2與intcl,c2

是否無(wú)條件地等價(jià)?

習(xí)題四

一.選擇題

1.邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型。

A)只能是0或1B)只能是0或非0正數(shù)

C)只能是整型或字符型數(shù)據(jù)D)可以是任何類型的數(shù)據(jù)

2.下列表達(dá)式中,不滿足“當(dāng)x的值為偶數(shù)時(shí)值為真,為奇數(shù)時(shí)值為假”的

要求。

A)x%2==0B)!x%2!=0C)(x/2*2-x)=0D)!(x%2)

3.以下程序片段。

intx=2,y=3;

prints);

A)什么都不輸出B)輸出為:***x=2

C)輸出為:###y=2D)輸出為:###y=3

4.能正確表示“當(dāng)x的取值在[1,10]和[200,210]范圍內(nèi)為真,否則為假”的表達(dá)

式是。

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B)(x>=l)||(x<=10)11(x>=200)||(x<=210)

C)(x>=l)&&(x<=10)||(x>=200)&&(x<=210)

D)(x>=l)||(x<=10)&&(x>=200)||(x<=210)

5.C語(yǔ)言對(duì)嵌套if語(yǔ)句的規(guī)定是:else總是與。

A)其之前最近的if配對(duì)B)第一個(gè)if配對(duì)

C)縮進(jìn)位置相同的if配對(duì)D)其之前最近的且尚未配對(duì)的if配對(duì)

6.設(shè):inta=l,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值為。

A)1B)2C)3D)4

7.下面是錯(cuò)誤的if語(yǔ)句(設(shè)intx,a,b;)

A)if(a=b)x++;B)if(a=<b)x++;

C)if(a-b)x++;D)if(x)x++;

8.以下程序片段。

main()

{intx=0,y=0,z=0;

if(x=y+z)

else

printf("###");

}

A)有語(yǔ)法錯(cuò)誤,不能通過(guò)編譯B)輸出:***

C)可以編譯,但不能通過(guò)連接,所以不能運(yùn)行D)輸出:###

9.對(duì)下述程序,是正確的判斷。

main()

{intx,y;

scanf("%d,%d",&x,&y);

if(x>y)

x=y;y=x;

else

x-H-;y++;

printfT%d,%d”,x,y);

}

A)有語(yǔ)法錯(cuò)誤,不能通過(guò)編譯B)若輸入3和4,則輸出4和5

C)若輸入4和3,則輸出3和4D)若輸入4和3,則輸出4和5

10.若w=l,x=2,y=3,z=4,則條件表達(dá)式w<x?w:y<z?y:z的值是。

A)4B)3C)2D)1

11.下述表達(dá)式中,一可以正確表示xSO或xNl的關(guān)系。

A)(x>=l)11(x<=0)B)x>=l|x<=0

C)x>=l&&x<=0D)(x>=1)&&(x<=0)

12.下述程序的輸出結(jié)果是。

main()

{inta=0,b=0,c=0;

if(++a>011++b>0)

++c;

printf("%d,%d,%d”,a,b,c);

)

A)0,0,0B)1,1,1C)1,0,1D)0,1,1

13.下述程序的輸出結(jié)果是。

main()

{intx=-l,y=4,k;

k=x-H-<=0&&!(y—<=0);

printf(“%d,%d,%d'',k,x,y);

A)0,0,3B)0,1,2C)1,0,3D)1,1,2

14.以下程序輸出結(jié)果是。

main()

{intx=l,y=O,a=O,b=O;

switch(x){

case1:switch(y){

case0:a-H-;break;

case1:b-H-;break;

)

case2:a++;b-H-;break;

case3:a-H-;b-H-;

}

printfC'a=%d,b=%d,\a,b);

}

A)a=l,b=OB)a=2,b=lC)a=l,b=lD)a=2,b=2

15.下述程序的輸出結(jié)果是。

main()

{inta,b,c;

intx=5,y=10;

a=(-y=x++)?-y:++x;

b=y++;c=x;

printf(4t%d,%d,%d,,,a,b,c);

)

A)6,9,7B)6,9,6C)7,9,6D)7,9,7

16.當(dāng)a=l,b=3,c=5,d=4時(shí),執(zhí)行完下面一段程序后x的值是。

if(a<b)

if(c<d)x=l;

else

if(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

A)1B)2C)3D)4

17.在下面的條件語(yǔ)句中(其中S1和S2表示C語(yǔ)言語(yǔ)句),只有一個(gè)在功

能上與其他三個(gè)語(yǔ)句不等價(jià)。

A)if(a)SI;elseS2;B)if(a==0)S2;elseSI;

C)if(a!=O)SI;elseS2;D)if(a==O)SI;elseS2;

18.若inti=0;執(zhí)行下列程序后,變量i的正確結(jié)果是。

switch(i){

case9:i+=l;

case10:i+=l;

case11:i+=l;

default:i+=l;

?

A)10B)11C)12D)13

19.若有說(shuō)明語(yǔ)句inti=5,j=4,k=6;floatf;則執(zhí)行f=(ivj&&i〈k)?i:(jvk)?j:k;語(yǔ)句

后,f的值為o

A)4.0B)5.0C)6.0D)7.0

20.若有定義:inta=3,b=2,c=l;并有表達(dá)式:①a%b,②a>b>c,③b&&c+l,④

c+=l,則表達(dá)式值相等的是O

A)①和②B)②和③C)①和③D)③和④

二.填空題

1.C語(yǔ)言提供6種關(guān)系運(yùn)算符,按優(yōu)先級(jí)高低它們分別

是,,,,,等。

2.C語(yǔ)言提供三種邏輯運(yùn)算符,按優(yōu)先級(jí)高低它們分別

是f,O

3.設(shè)a=3,b=4,c=5,寫(xiě)出下面各邏輯表達(dá)式的值。

表達(dá)式表達(dá)式運(yùn)算后的值

a+b>c&&b=c

!(a>b)&&!c||1

!(a+b)+c-1&&b+c/2

4.寫(xiě)出數(shù)學(xué)式子的C語(yǔ)言表達(dá)式。

5.將條件“y能被4整除但不能被100整除,或y能被400整除”寫(xiě)成邏輯表

達(dá)式。

6.設(shè)x,y,z均為int型變量;寫(xiě)出描述“x,y和z中有兩個(gè)為負(fù)數(shù)”的C語(yǔ)言表

達(dá)式:O

7.已知IA=7.5,B=2,C=3.6,表達(dá)式A>B&&C>A||A<B&&!C>B的值

是o

8.有intx=3,y=4z=5;則表達(dá)式(x&&y)=(xUz)的值為。

9.若有x=l,y=2,z=3,則表達(dá)式(x〈y?x:y)=zH的值是。

10.執(zhí)行以下程序段后,a=—,b=—,c=—o

intx=10,y=9;

inta,b,c;

a=(x--=y++)?x—:y++;

b=x++;

c=y;

三.判斷題

Lif語(yǔ)句中的表達(dá)式不限于邏輯表達(dá)式,可以是任意的數(shù)值類型?!尽?/p>

2.switch語(yǔ)句可以用if語(yǔ)句完全代替°【)

3.switch語(yǔ)句的case表達(dá)式必須是常量表達(dá)式。【】

4.if語(yǔ)句,switch語(yǔ)句可以嵌套,而且嵌套的層數(shù)沒(méi)有限制。【】

5.條件表達(dá)式可以取代if語(yǔ)句,或者用if語(yǔ)句取代條件表達(dá)式?!尽?/p>

6.switch語(yǔ)句的各個(gè)case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。[)

7.多個(gè)case可以執(zhí)行相同的程序段。【】

8.內(nèi)層break語(yǔ)句可以終止嵌套的switch,使最外層的switch結(jié)束。[]

9.switch語(yǔ)句的case分支可以使用{}復(fù)合語(yǔ)句,多個(gè)語(yǔ)句序列?!尽?/p>

lO.switch語(yǔ)句的表達(dá)式與case表達(dá)式的類型必須一致。【】

四.簡(jiǎn)答題

1.C語(yǔ)言中如何表示“真”和“假”?系統(tǒng)如何判斷一個(gè)量的“真”和“假”?

2.請(qǐng)將以下語(yǔ)句改成switch語(yǔ)句。

if((s>0)&&(s<=10))

if((s>=3)&&(s<=6))x=2;

elseif((s>l)&&(s>8))x=3;

elsex=l;

elsex=0;

五.程序閱讀題

1.若運(yùn)行時(shí)輸入100/,寫(xiě)出以下程序的運(yùn)行結(jié)果。

main()

{inta;

scanf("%d”,&a);

printf("%s”,(a%2!=0)?“No":“Yes”);

}

2.寫(xiě)出以下程序的運(yùn)行結(jié)果。

main()

{inta=2,b=7,c=5;

switch(a>0){

case1:switch(b<0){

case1:printR"@”);break;

case2:printfC!");break;

)

case0:switch(c=5){

case1:pritnfp*");break;

case2:printfT#");break;

default:printf("#");break;

default:printf("&'');

}

printff'W");

?

六.程序判斷題

1.下面程序?qū)⑤斎氲拇髮?xiě)字母改寫(xiě)成小寫(xiě)字母輸出,其他字符不變;請(qǐng)判斷

下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過(guò)來(lái)。

main()

{charc;

c=getchar();

c=(c>='A'||c〈=Z)?c-32:c+32;

printf(u%c,,,c);

)

2.下面程序輸入兩個(gè)運(yùn)算數(shù)x,y和一個(gè)運(yùn)算符號(hào)op,然后輸出該運(yùn)算結(jié)果的

值,例如輸入3+5/得到結(jié)果8;請(qǐng)判斷F面程序的正誤,如果錯(cuò)誤請(qǐng)改正

過(guò)來(lái)。

main()

{

floatx,y,r;

charop;

switch(op){

case:r=x+y;

case'?':r=x+y;

case:r=x+y;

case:r=x+y;

}

printf("%f',r);

}

七.程序填空題

1.根據(jù)以下函數(shù)關(guān)系,對(duì)輸入的每個(gè)x值,計(jì)算出相應(yīng)的y值,請(qǐng)?zhí)?3)空使

程序完整。

main()

intx,c,m;

floaty;

scaufT%d”,&x);

if([I])c=-l;

elsec=[2];

switch(c){

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(uy=%f;y);

else

printff'error!”);

}

2.以下程序輸出x,y,z三個(gè)數(shù)中的最小值,請(qǐng)?zhí)?2)空使程序完整。

main()

{intx=4,y=5,z=8;

intu,v;

u=x<y?[1];

v=u<z?[2];

printfCt%d,\v);

)

八.編程題

1.有三個(gè)整數(shù)a,b,c,由鍵盤(pán)輸入,輸出其中最大的數(shù)。

2.編程輸入整數(shù)a和b,若大于100,則輸出百位以上的數(shù)字,否則輸出

兩數(shù)之和。

4.給出一百分制成績(jī),要求輸出成績(jī)等級(jí),ATBTC〈D:E,090分以上為,A"

80—89分為'B170—79分為,C',60—69分為'D',60分以下為,

5.提高題:給一個(gè)不多于5位的正整數(shù),要求:①求出它是幾位數(shù);②分別

打印出每一位數(shù)字;③按逆序打印出各位數(shù)字,例如原數(shù)是321,應(yīng)輸出123。

習(xí)題五

一.選擇題

1.下面程序段

intk=2;

while(k=0){printf(“%d”,k);k??;}

則下面描述中正確的是o

A)while循環(huán)執(zhí)行10次B)循環(huán)是無(wú)限循環(huán)

C)循環(huán)題語(yǔ)句一次也不執(zhí)行D)循環(huán)體語(yǔ)句執(zhí)行一次

2.下述程序段中,與其他程序段的作用不同。

A)k=l;B)k=l;

while(1){Repeat:

s+=k;s+=k;

k=k+l;if(++k<=100)

if(k>100)break;gotoRepeat

}printfT\n%d”,s);

printf("\n%d”,s);

C)intk,s=O;D)k=l;

for(k=l;k<=100;s+=-H-k);do

printf(44\n%d,,,s);s+=k;

while(++k<=100);

printfC4\n%d,,,s);

3.以下程序段的循環(huán)次數(shù)是

fbr(i=2;i==0;)printf("%d'',i??);

A)無(wú)限次B)0次C)1次D)2次

4.下面程序的輸出結(jié)果是

main()

{charc='A';

intk=0;

do{

switch(c++){

case'A':k++;break;

case'B':k-;

case'C':k+=2;break;

case'D':k%=2;continue;

case'E':k*=10;break;

default:k/=3;

}

k-H-;

}while(cv'G');

printf("k=%d”,k);

A)k=3B)k=4C)k=2D)k=0

5.下面程序的輸出結(jié)果是。

main()

{intx=9;

for(;x>0;x-){

if(x%3==0){

printf("%d”,??x);

continue;

}

A)741B)852C)963D)875421

6.以下不是死循環(huán)的程序段是。

A)inti=100;B)for(;;);

while(1){

i=i%1004-1;

if(i>100)break;

}

C)intk=0;D)ints=36;

do{++k;}while(k>=0);while(s);—s;

7.下述程序段的運(yùn)行結(jié)果是

inta=l,b=2,c=3,t;

while(a<b<c){t=a;a=b;b=t;c—;}

printf("%d,%d,%d”,a,b,c);

A)1,2,0B)2,1,0C)1,2,1D)2,1,1

8.下面程序的功能是從鍵盤(pán)輸入一組字符,從中統(tǒng)計(jì)大寫(xiě)字母和小寫(xiě)字母的

個(gè)數(shù),選擇填空。

main()

{intm=0,n=0;

charc;

while(([])!

(

if(c>='A'&&cv='Z')m++;

if(c>=,a,&&cv='z')n++;

}

}

A)c=getchar()B)getchar()C)c=getchar()D)scanf("%c”,&c)

9.下述語(yǔ)句執(zhí)行后,變量k的值是。

intk=l;

while(k-H-<10);

A)10B)11C)9D)無(wú)限循環(huán),值不定

10.下面程序的輸出結(jié)果是。

main()

{intk=0,m=0,i,j;

for(i=0;i<2;i-H-){

for(j=0;j<3;j++)

k++;

k-=j;

}

m=i+j;

printf("k=%d,m=%d”,k,m);

}

A)k=0,m=3B)k=0,m=5C)k=l,m=3D)k=1,m=5

11.下面for循環(huán)語(yǔ)句。

inti,k;

for(i=0,k=-l;k=l;i++,k++)

printfT***");

A)判斷循環(huán)結(jié)束的條件非法B)是無(wú)限循環(huán)

C)只循環(huán)一次D)一次也不循環(huán)

12.語(yǔ)句while(!E);括號(hào)中的表達(dá)式!E等價(jià)于。

A)E==0B)E!=lC)E!=0D)E=1

13.以下是死循環(huán)的程序段是o

A)for(i=l;;){

if(i-H-%2=0)continue;

if(i-H-%3=0)break;

}

B)i=32767;

do{if(i<0)break;}while(++i);

C)fbr(i=l;;)if(++I<10)continue;

D)i=l;while(i—);

14.執(zhí)行語(yǔ)句fbr(i=l;i++<4;);后變量i的值是o

A)3B)4C)5D)不定

15.以下程序段。

x=-l;

do

{x=x*x;}

while(!x);

A)是死循環(huán)B)循環(huán)執(zhí)行2次C)循環(huán)執(zhí)行1次D)有語(yǔ)法錯(cuò)誤

16.下面程序的功能是在輸入的一批正數(shù)中求最大者,輸入0結(jié)束循環(huán),選

擇填空。

main()

{inta,max=O;

scanR“%d",&a);

while([)){

if(max<a)max=a;

scanf("%d”,&a);

}

printf("%d”,max);

}

A)a=0B)aC)!a==lD)!a

17.以下不是死循環(huán)的語(yǔ)句是。

A)for(y=9,x=1;x>-H-y;x=i++)i=x;

B)for(;;x++=i);

C)while(1){x++;}

D)fbr(i=10;;i-)sum+=i;

18.下面程序段的運(yùn)行結(jié)果是。

x=y=O;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

A)20,7B)6,12C)20,8D)8,20

19.以下for循環(huán)的執(zhí)行次數(shù)是o

for(x=0,y=0;(y=123)&&(x<4);x++);

A)無(wú)限循環(huán)B)循環(huán)次數(shù)不定C)4次D)3次

20.若運(yùn)行以下程序時(shí),輸入2473/,則程序的運(yùn)行結(jié)果是。

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;

)

printf("\n”);

A)668977B)668966C)66778777D)6688766

二.填空題

l.C語(yǔ)言三個(gè)循環(huán)語(yǔ)句分別是一語(yǔ)句,—語(yǔ)句和—語(yǔ)句。

2.至少執(zhí)行一次循環(huán)體的循環(huán)語(yǔ)句是。

3.循環(huán)功能最強(qiáng)的循環(huán)語(yǔ)句是。

5.程序段

for(a=l,i=-l;-l<i<l;i++)

{a++;printf(tt%2d,,,a);};

printfT%2d”,i);

的運(yùn)行結(jié)果是O

三.判斷題

1.在while循環(huán)中允許使用嵌套循環(huán),但只能是嵌套while循環(huán)?!尽?/p>

2.在實(shí)際編程中,do-while循環(huán)完全可以用fbr循環(huán)替換?!尽?/p>

3.continue語(yǔ)句只能用于三個(gè)循環(huán)語(yǔ)句中?!尽?/p>

4.在不得已的情況下(例如提高程序運(yùn)行效率),才使用goto語(yǔ)句?!尽?/p>

5.語(yǔ)句標(biāo)號(hào)與C語(yǔ)言標(biāo)識(shí)符的語(yǔ)法規(guī)定是完全一樣的?!尽?/p>

6.for循環(huán)的三個(gè)表達(dá)式可以任意省略,while,do-while也是如此?!尽?/p>

7.do?while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)?!尽?/p>

8.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格?!尽?/p>

9.do-while循環(huán)中,根據(jù)情況可以省略while。1]

lO.do-while循環(huán)的while后的分號(hào)可以省略。[]

四.程序閱讀題

1.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{intx,i;

for(i=l;i<=100;i-H-){

x=i;

if(-H-x%2=0)

if(++x%3==0)

if(++x%7==0)

printfC4%d”,x);

}

}

2.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{inti,b,k=O;

fbr(i=l;i<=5;i++){

b=i%2;

while(b—=0)k++;

}

printf(64%d,%d,,,k,b);

)

3.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{inta,b;

for(a=l,b=l;a<=100;a++){

if(b>=20)break;

if(b%3==l){b+=3;continue;}

b-=5;

}

printf(44%d\n,,,a);

)

4.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{intk=l,n=263;

do{k*=n%10;n/=10;}while(n);

printf(<<%d\n,,,k);

)

5.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{inti=5;

do{

switch(i%2){

case4:i—;break;

case6:i—;continue;

}

i-;i-;

printf("%d”,i);

}while(i>0);

)

6.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{intij;

for(i=0;i<3;i++,i++){

for0=4;j>=O;j-){

if((j+i)%2){

j";

printf("%d,"j);

continue;

}

--i;

j-;

printfC%d,”,j);

7.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{inta=10,y=0;

do{

a+=2;y+=a;

if(y>50)break;

}while(a=14);

printfC4a=%dy=%d\n,,,a,y);

}

8.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{intij,k=19;

while(i=k-l){

k-=3;

if(k%5==0){i++;continue;}

elseif(k<5)break;

i++;

)

printf(ui=%d,k=%d\n,\i,k);

)

9.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{inty=2,a=l;

while(y—!=-l)

do{

a*=y;

a-H-;

}while(y—);

printf("%d,%d\n”,a,y);

}

10.寫(xiě)出下面程序運(yùn)行的結(jié)果。

main()

{inti,k=0;

for(i=l;;i++){

k++;

while(k<i*i){

k++;

if(k%3==0)gotoloop;

}

}

loop:

printf(t4%d,%d\n,,,i,k);

}

六.程序填空題

1.下述程序用“碾轉(zhuǎn)相除法”計(jì)算兩個(gè)整數(shù)m和n的最大公約數(shù)。該方法的基

本思想是計(jì)算m和n相除的余數(shù),如果余數(shù)為0則結(jié)束,此時(shí)的被除數(shù)就

是最大公約數(shù)。否則,將除數(shù)作為新的被除數(shù),余數(shù)作為新的除數(shù),繼續(xù)計(jì)

算m和n相除的余數(shù),判斷是否為0,等等,請(qǐng)?zhí)?3)空使程序完整。

main()

{intm,n,w;

scanf("%d,%d",&m,&n);

while(n){

w=【1】;

m=[2];

n=[3];

}

printf("%d”,m);

)

2.下面程序的功能是輸出1至100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù),

請(qǐng)?zhí)?3)空使程序完整。

main()

{intn,k=l,s=0,m;

for(n=l;n<=100;n++){

k=l;s=0;

while([2]){

k*=m%10;

s+=m%10;

if(k>s)printf("%dd”,n);

)

)

3.下面程序段的功能是計(jì)算1000!的末尾有多少個(gè)零,請(qǐng)?zhí)?1)空使程序完

整。

main()

{

inti,k;

for(k=0,i=5;i<=1000;i+=5)

{m=i;

while([1]){k++;m=m/5;}

)

4.下面程序接受鍵盤(pán)上的輸入,直到按/鍵

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論