大學(xué)計算機應(yīng)用基礎(chǔ)C語言同步訓(xùn)練練習(xí)題分章節(jié)_第1頁
大學(xué)計算機應(yīng)用基礎(chǔ)C語言同步訓(xùn)練練習(xí)題分章節(jié)_第2頁
大學(xué)計算機應(yīng)用基礎(chǔ)C語言同步訓(xùn)練練習(xí)題分章節(jié)_第3頁
大學(xué)計算機應(yīng)用基礎(chǔ)C語言同步訓(xùn)練練習(xí)題分章節(jié)_第4頁
大學(xué)計算機應(yīng)用基礎(chǔ)C語言同步訓(xùn)練練習(xí)題分章節(jié)_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大學(xué)計算機應(yīng)用課程

C語言學(xué)習(xí)-同步練習(xí)訓(xùn)練題

第1章概論

一、單選題:

1.以下敘述中正確的是

(C)o

A)C語言程序中可以有重名的函數(shù)

B)C語言程序中要求每行只能寫

一條語句C)注釋可以出現(xiàn)在C語

言程序中的任何位置

D)最小的C語言程序中可以沒有

main()函數(shù)2.以下敘述正確的是

(C)。

A)在C程序中,main函數(shù)必須位于程序的最前面

B)C程序的每行中只能寫一條語句

C)C語言本身沒有輸入輸出語句

D)在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注

釋中的拼寫錯誤3.以下敘述中不正確的是(D)。

A)一個C源程序可由一個或多

個函數(shù)組成B)一個C源程序必

須包含一個main函數(shù)

C)C程序的基本組成單位是函數(shù)

D)在C程序中,注釋說明只能位于一條語句的后面

4.C語言程序的基本單位是

(C)0A)程序行B)

語句C)函數(shù)D)字符

5.以下敘述中正確的是(A)。

A)C程序中注釋部分可以出現(xiàn)在程序中任

何合適的地方B)花括號〃{"和"}"只能作為

函數(shù)體的定界符

。構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D分號是c語句之間的分隔符,不是

語句的一部分6.以下敘述中正確的是

(C)。

A)C語言比其他語言高級

B)C語言可以不用編譯就能被計算機識別執(zhí)行

C)C語言以接近英國國家的自然語言和數(shù)學(xué)語言為語言的表達形式

D)C語言出現(xiàn)最晚,具有其他語言的一切優(yōu)點

7.C語言程序的上機步驟中不包括(D)。

A)編輯B)編譯C)連接D)編程

8.算法具有五個特性,以下不屬于算法特

性的是(B)0A)有窮性B)簡潔性

C)可行性D)確定性9.以下說法

錯誤的是(C)。A)一

個算法應(yīng)包含有限個步驟

B)在計算機上實現(xiàn)的算法是用來處理數(shù)據(jù)

對象的

C)算法中指定的操作不能通過己經(jīng)實現(xiàn)的基本運算

執(zhí)行有限次后實現(xiàn)D)算法的目的是為了求解

二、填空題

1一個C語言程序必須有一個—函數(shù)。

2一個C語言程序必定從函數(shù)開始執(zhí)行。

3函數(shù)體由符號—開始,用符號_結(jié)束。

4.C語言源程序文件的后綴是,經(jīng)過編譯后,生成文件的后綴

是經(jīng)過連接生成文件的后綴是o5.算法的特征是、

、有窮性、個輸出和一個輸入。

參考答案:

2

選擇題:1-5:CCDCA6-9:CDBC

填空題:1.主(或main())2.主(或main())

3.{,}4.c,obj,exe5.確定性,可行性,有窮性,有零個或多個輸入0~n,有一

個或多個輸出

第3章數(shù)據(jù)類型與表達式

一、單選題:

1.C語言中的標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,

且第一個字符(OoA)必須為字母B)必須為下劃線

C)必須為字母或下劃線D)可以是字母、數(shù)字和下劃線中的任一字符

2.以下選項中合法的用戶標(biāo)識符是

(B)oA)longB)_2Test

C)3DmaxD)A.dat3.下列

可作為C語言用戶標(biāo)識符的一組是

(B)o

A)void,var,wordB)aa,_123,B5C)if,-abc,

defineD)5x,BOT,sizeof4.以下(C)組中的標(biāo)識符都

是合法的用戶標(biāo)識符。

A)3ab,A_10,stB)class,X1,gradeC)printf,INT,chartD)b3,a,

unsigned

5.C語言中的基本數(shù)據(jù)類型包括(B)o

A)整型、實型、邏輯型B)整型、實型、字符型C)

3

整型、字符型、邏輯型D)字符型、實型、邏輯型

6.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是

(A)oA)字符型B)共用型

C)結(jié)構(gòu)型D)數(shù)組型7.以下選

項中不屬于C語言的類型說明符的是

(D)o

A)signedshortintB)unsignedlongint

C)unsignedintD)longshort8.以下選項中

可以作為C語言中合法整數(shù)的是(C)。

A)10110BB)0386C)OxffaD)x2a2

9.以下選項中,都是正確的八進制數(shù)或十六進制數(shù)的是(Oo

A)022,018,0x2aB)02a,017,0x2aC)022,0x18,0x2aD)02a,0x2a,

123

io.以下選項中,均是合法整型常量的選項是(A)。

A)123,Oxffff,0123B)0xabc,018,

0x123C)01a,123,012,OxefD)0x22b,3e5,

01611.在16位C編譯系統(tǒng)上,若定義longa;則能給變量a賦值40000

的正確語句是(D)oA)a=20000+20000;B)a=4000*10;

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

2已知大寫字母A的ASCH碼值為65,小寫字母a的ASCH碼值為97,則用八進制表

示的字符常量是(A)oA)字符AB)字符aC)字符eD)非法

的常量

以下選項中,非法的字符常量

4

是(C)oA)''t'B)'\117'

C)“\n"D)'\xaa'14.在C語言

中,退格符是(D)o

A)\nB)\tC)\fD)\b

$以下選項中合法的字符常量

是(B)。A)"B"B)'\010'

068D)D

6字符型數(shù)據(jù)在機器中是用ASCH碼表示的,字符''5〃和''3〃在機器中表示為(C)o

A)1010001101110011B)01000101和01100111C)00110101和00H00110)01100101

和01100011

I下列數(shù)據(jù)中,(C)是不合法的C語

言實型數(shù)據(jù)。A)0.123B)123e3

C)1.23e4.5D)123.0

s合法的常量是(C)o

A)2e3.5B)-e-3C)-.5e-3D)'\xfg'

19.C語言中運算對象必須是整型運算

符的是(A)oA)%=B)+C)>

D)*

5

。若變量己正確定義并賦值,以下符合c語言語法的表

達式是(D)oA)a:=b+1B)a=b+2=c+3C)int

20.3%5D)a=b=c+1

2以下非法的賦值語句是(C)o

A)n=(i=2,++i);B)j++;C)++(i+l);

D)x=j>0;

2設(shè)x、y均為整型變量,且x=10,y=3,則以下語句的

輸出結(jié)果是(D)oprintf(z/%d,%d\n,/,x—,—y);

A)10,3B)9,3C)9,2D)10,2

3若已定義x和y為double類型,則表達式x=l,

y=x+3/2的值是(C)。A)1B)2C)2.0D)2.5

2若變量a是int類型,并執(zhí)行了語句:a='A,+1.6;則正確的敘述是(D)。

A)a的值是字符CB)a的值是浮點型C)不允許字符型和浮點型相加

D)a的值是字符'A'的ASCII值加上1

3以下不正確的敘述是(D)o

A)在C程序中,逗號運算符的優(yōu)先級最低。B)在C程序中,APH和

aph是兩個不同的變量。C)若a和b類型相同,在執(zhí)行賦值表達式a=b

后b中的值將放入a中,而b中的值不變。D)當(dāng)從鍵盤輸入數(shù)據(jù)時,

對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值。

26.若有定義:inta=7;floatx=2.5,y=4.7;則表達式

x+a%3*(int)(x+y)%2/4的值是(A)。A)2.5B)2.75C)3.5D)0.0

2設(shè)變量a是int型,b是float型,c是double型,則表達式a+b*c-4值的數(shù)據(jù)類型為

(C)o

A)intB)floatC)doubleD)不確定

8設(shè)變量x為float類型,y為int類型,則以下能實現(xiàn)將x中的數(shù)值保留小數(shù)點后兩

位、第三位進行四舍五入運算的表達式是(D)o

A)x=x*100+0.5/100.0B)x=(x/100+0.5)*100.0C)x=(x*

100+0.5)/100.0D)y=x*100+0.5,x=y/100.0

9以下選項中,與1<="+完全等價的表

6

達式是(A)oA)k=n,n=n+l

B)n=n+l,k=nC)k=++nD)k+=n+l

0在C語言中,int,char和short三種類型數(shù)據(jù)在內(nèi)存中所

占用的字節(jié)數(shù)(D)。A)由用戶自己定義B)均為兩個字節(jié)C)

是任意的

D)由所用機器的機器字長決定

J變量x,y,z均為double型且已正確賦值,不能正確表示數(shù)學(xué)式子x+y+z的C語言表達

式是(A).

A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z

a

3算術(shù)式為C表達式,不正確的是(C)。

描述—

b-c

A)a/b/cB)a/(b*c)C)a/b*c

D)(a/b)/c33.不能進行

++和一運算的數(shù)據(jù)類型為(D)oA)

指針B)整型C)長整型D)常量

34.設(shè)以下變量均為int類型,表達式的值不為5的是(C)o

A)x=y=4,x+y,x+1B)x=y=4,x+y,y+1C)x=y=4,x+1,x+yD)y=4,

y+1,x=y,x+135.若a,b,c和d都是int型變量,則計算表達式

a=(b=l,c=2,d=3)后,a的值為(C)。A)1B)2C)3D)6

36.以下敘述正確的是(D)o

A)在C程序中,每行中只能寫一條語句。

B)若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數(shù)。

0在C粉中,無論是整雌是實數(shù)都能被準(zhǔn)確無謝

D)在C程序中,流是只能用于整數(shù)運算的運算符。

7

二、填空題

1.定義inta=5,b=4;則執(zhí)行表達式b=++a*b—后,變量b的值為24。

2.C語言標(biāo)識符由字母、數(shù)字和下劃線組成,且必須以字母和下劃線開頭。不能

把關(guān)鍵字作為用戶標(biāo)識符。

3.假定x和y為double型,則表達式x=2,y=x+3/2的值是3.0。

4.數(shù)據(jù)'5'是一個字符類型的常量。

5.數(shù)據(jù)40在內(nèi)存中占_______________________匕個字節(jié),數(shù)據(jù)40L在內(nèi)存中占.

個字節(jié)。

6.表達式2+6/(int)3.5的值是4。

7.如果有inta=5,則表達式a+=a-=4的值是2。

8.整數(shù)T在內(nèi)存的二進制碼存儲形式為81111111111的二。

9.數(shù)據(jù)'A'在內(nèi)存的存儲形式為01000001。

10.數(shù)學(xué)表達〃-梟式的C語言表達式是2*x-

(x+y)/(3*y+l)。參考答案:

選擇題:01-05:CBBCB06-10:ADCCAU-15:DACDB16-20:CCCAD21-

25:CDCDD26-30:ACDAD31-35:ACDCC36-40:D

填空題:1.242.字母,下劃線,字母,下劃線,關(guān)鍵

字3.3.04.字符5.246.47.2

8.11111111111111119.0100000110.2*x-(x+y)/(3*y+l)

第4章順序

一、單選題:

1己知intk,m=l;執(zhí)行語句k=-m++;后k的值是(A)。(提示:負號與自加運算符

同級,結(jié)合方向從右向左)A)-lB)0C)1D)2

2若變量a,b已正確定義,且a,b均已正確賦值,下列選項中合法的語句是(B)

A)a=bB)++a;C)a+=b++=l;D)a=int(b);(提示:a=b只是表達式非語句;

b++是個表達式)3.若有定義intx=4;則執(zhí)行語句x+=x*=x+1;后,

x的值為(C)。

8

A)5B)20040D)無答案

4.若有定義和

語句:ints,

P;

s=p=5;p=s++,++p,p+2,p++;則執(zhí)行語句后

p的值是(C)A)9B)8C)7D)6

5.若有定義:inta,b;則表達式a=4,b=3,a+b+2,a++,

a+b+2的值為(C)。A)12B)llC)10D)無答案

6.若有定義:floata=3.0,b=4.0,c=5.0;則表達式

l/2*(a+b+c)的值為(C)。A)6.0B)6C)0.0D)無答案

7以下程序段的輸出結(jié)果是(C)。(提示:a當(dāng)約束過嚴時,約束失效。

按自由格式輸出。)inta=1234;

printf(,/%2d\n//,a);

A)12B)3401234D)提示出錯,無結(jié)果

8下列程序段的輸出結(jié)果

是(C)ointa=1234;

floatb=123.456;

double

c=12345.54321;

printf(級2d,%3.2f,%4.1T,a,b,c);

A)無輸出B)12,123.46,12345.5C)1234,123.46,12345.5D)1234,123.45,1234.5

9設(shè)x,y均為整型變量,且x=8,y=5,則以下語句的

輸出結(jié)果是(D)oprintf("%d,%d\n”,x一,

++y);

A)8,5B)7,5C)7,6D)8,6

9

0以下程序的輸出結(jié)果是

(A)ovoidmain()

{inta=20,b=10;printf

(〃%d,%%d\n〃,a+b,a-

b);}

A)30,%dB)30,10C)30,%10D)以上答案均不正確

i下列程序的運行結(jié)果

是(A)ovoidmain()

{float

x=2.5;

inty;y=

(int)x;

printf(,,x=%f,y=%d〃,x,y);}

A)x=2.500000,y=2B)x=2.5,y=2C)x=2,y=2D)x=2.500000,y=2.000000

2己知intk=10,m=3,n;則下列語句的輸

出結(jié)果是(B)oprintf(〃%d\n〃,n=

(k%m,k/m));

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

2以下程序的輸出結(jié)果

是(A)。voidmain()

{charc='z';

printf(〃%c〃,c-

25);}

A)aB)zC)z-25D)y

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

是(C)ovoidmain()

{double

d=3.2;int

x=l.2,y;

y=(x+3.8)/5

io

.0;

printf(//%d\n,/,d*y);}

A)3B)3.2C)0D)3.07

15.printfC%d,%d,%d\n”,010,0x10,10);輸

出結(jié)果是(C)。A)10,10,10B)16,8,10

08,16,10D)無答案

16.下面程序的輸出結(jié)果是(C)。(提示:輸

出時無定界符)voidmain()

{intk=17:

printf(z/%d,%o,%x\n”,k,

k,k);)

A)17,17,17B)17,021,0x11C)17,21,11D)17,0x11,021

17.若有以下程序

段:intm=32767,

n=032767;

printf("%d,%o\n”,m,n);執(zhí)行后的輸出結(jié)果是

(A)oA)32767,32767

B)32767,032767C)32767,77777

D)32767,077777

18.若有以下程序

段:int

m=0xabc,

n=0xabc;

m-=n;printf("%x\n",m);執(zhí)行后的結(jié)果是(C)。

A)0X0B)0x0C)0D)Oxabc

o下列程序執(zhí)行后的輸出結(jié)果

是(C)。voidmain()

{charx=0xFFFF;

printf(級d\n”,x

—);}

ii

A)-32767B)FFFEC)-lD)=-32768

2printf("a\bre\'hi\'y\\\bou\n");的輸

出結(jié)果是(C)。A)a\bre\'hi\'y\\\bou

B)a\bre\'hi\'y\bouC)re'hi'you

D)abre'hi'y\bou

2有定義語句:intx,y;若要通過scanf("%d,%d",&x,&y);語句使變量x得到數(shù)值11,

變量y得到數(shù)值12,下面四組輸入形式中錯誤的是(A)o

人)11<空格〉12〈回車>B)ll,(空格>12〈回車》C)ll,12〈回車〉

D)11,〈回車》

12〈回車〉

23.有以下程

序段:int

m=0,n=0;

charc='a';

scanf&m,

&c,&n);

printf("%d,%c,%d\n”,m,c,n);

若從鍵盤上輸入:10A10〈回車》,則輸出

結(jié)果是(A)。A)10,A,10B)16,a,10

C)10,a,0D)10,A,0

a若變量已正確說明為int類型,要通過語句scanf("%d%d%d”,&a,&b,&c);給a賦值

l,b賦值2,c賦值3,不正確的輸入形式是(B)o

A)1〈空格>2〈空格>3〈回車>B)1,2,3(回車》C)1〈回車》D)1〈空格》2〈回

車》

2〈空格>3〈回車》3〈回車》

sa,b.c被定義為int型變量,若從鍵盤給a,b,c輸入數(shù)據(jù),正確的輸入語句是(D)

A)inputa,b,c;B)read(,,%d%d%d,z,&a,&b,&c);C)scanf("%d%d%d”,a,b,c);

D)scanf("%d%d%d",&a,&b,&c);26.已知a,b,c為int型變量,若從鍵盤輸入:1,2,3<回

車》,使a的值為1,b的值為2,c的值為3,以下選項中正確的

輸入語句是(B)o

12

A)scanf(〃%2d,%2d,%2d〃,a,b,c);B)scanf(〃%d,%d,%d〃,&a,&b,&c);

C)scanf(〃%d%d%d〃,&a,&b,&c);

D)scanfC,i=%dj=%d,k=%d,/,&

a,&b,&c);27.執(zhí)行下程序時輸入:123<空格>456〈空

格>789〈回車〉,輸出結(jié)果是(D)ovoidmain()

{chars;

intc,

i;

scanf(〃%c〃,&c);scanf&i);

scanf("%c〃,&s);printf("%c,%d,%c\n〃,

c,i,s);}A)123,456,789

B)1,456,789

01,23,456,789D)

1,23,4

二、填空題

1.有以下程

序:void

main()

{intm,n,p;scanf(,/m=%dn=%dp=%d/,,&m,&n,

&p);printf(,z%d%d%d\n/z,m,n,p);}

若想從鍵盤上輸入數(shù)據(jù),使變量口中的值為123,n中的值為456,p中的值為789,則正

確的輸入是,

13

m=123n=456p=789_o

2.以下程序段的輸出結(jié)果是

28ovoid

main()

{inta=2,b=3,

c=4;a*=16

+(b++)-(++c);

printf(〃%d〃,a);}

3.以下程序段的輸出結(jié)果是5

14

intx=17,y=26;

printf(〃%d〃,y/=

(x%=6));

4以下程序的輸出結(jié)果是—

8,10ovoidmain()

{inti=010,j=10;printf

C%d,%d\n,z,i,j);)

s下列程序的輸出結(jié)果為一

12ovoidmain()

{intx=3,y=5;

printf(〃%d〃,x=(x--)*(--y));}

6.以下程序段的輸出結(jié)果是1234。

inta=1234;

printf(〃%2d\n〃,

a);

7.若有以下程序:

voidmain()

{chara;

a='H'-'A'+O;

printf(〃%c,%d\n〃,a,a);}

執(zhí)行后的輸出結(jié)果是7,55o

8.以下程序段的輸出結(jié)果是

261ovoid

main()

{inta=177;printf

(〃%o\n〃,a);)

9.以下程序的輸出結(jié)果是

voidmain()

{unsignedshorta=65536;int

15

b;printf(z/%d\n,z,b=a);}

解釋:無符號短整型占2個字節(jié),最大值65535,二進制全lo65536多1,進位成1

0000000000000000,存到2字

節(jié)整型為0000000000000000

參考答案:

選擇題:01-05:ABCCC06-10:CCCDA

U-15:ABACC16-20:CACDC21-

25:CAABD26-30:BD

填空題:1.m=123n=456p=7892.283.54.8,10

5.126.12347.7,558.2619.0

第5章選擇

一、選擇題

1已知a=10,b=20,則表達式!a<b的值是(C)。

A)真B)假C)1D)0

2數(shù)學(xué)關(guān)系式xWyWz可用C語言表達式(C)表示。

A)x<=y<=zB)x<=yANDy<=zC)x<=y&&y<=zD)(x<=y)&(y<=z)

3若有定義和語句:inta=10,b=5,x;charc='A';x=a&&b&.&c<'a';則x值是

(D)o

A)真B)假C)OD)1

4設(shè)intx=l,y=2,則表達式(一x||y++)

的值是(B)oA)0B)1C)2

D)-l

16

5設(shè)x,y,t均為int型變量,則執(zhí)行語句

x=y=3;t=++x||++y;后y的值為(C)。A)不一定B)4

03D)1

6設(shè)x,y,t均為int型變量,則執(zhí)行語句x=y=l;t=-x&&

++y;后y的值為(D)。A)不一定B)0C)2D)1

7設(shè)a、b、c均為int型變量,則執(zhí)行下面程序段后,a值為(C),b值

為(C),c值為(C)。a=b=c=l;++b&&++c||++a;

A)0B)2C)1D)錯誤

A)0B)1C)2D)錯誤

A)0B)1C)2D)錯誤

8有定義語句:inta=l,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x

的值不等于3的是(C)。A)if(c<a)x=l;B)if(a<3)x=3;

elseif(b<a)x=2;elseif(a<2)

x=2;elsex=3;elsex=l;

C)if(a<3)x=3;D)if(a<b)x=b;

if(a<2)x=2;if(b<c)x=c;

if(a<l)x=l;if(c<a)x=a;

9以下程序運行后的輸出結(jié)果

是(C)ovoidmain()

{inta=l,

b=2,m=0,n=0,k;

k=(n=b>a)||

(m=a<b);

printf(z/%d,%d\n”,k

,m):)

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

10.有以下程

序:void

main()

{inti=l,j=l,k=2;

17

if((j++1Ik++)&&i++)

printf(z/%d,%d,%d\n〃,i,

j,k);}執(zhí)行后輸出結(jié)果是(C)0

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

i以下程序的輸出結(jié)果

是(C)ovoidmain()

{inta=-l,b=l,k;

if((++a<0)&&!(b--<=0))printf

(〃%d%d\n〃,a,b);elseprintf

(〃%d%d\n〃,b,a);}

A)-11B)01C)10D)00

2如果從鍵盤上輸入3,則以下程序的輸出

結(jié)果是(B)ovoidmain()

{intx;scanf

&x);

if(x--<3)printf

-x);elseprintf

(〃%d〃,x++);}

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

3以下程序的輸出結(jié)果

是(C)。voidmain()

{inta=2,b=-l,

c=2;if(a<b)

if(b<0)c=0;

18

elsec++;

printf(〃%d\n〃,

c);}

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

i在執(zhí)行下程序時,為了使輸出的結(jié)果為:t=4,則給a和b輸入的值

應(yīng)滿足的條件是(OoA)a>bB)a<b<0C)0<a<bD)0>a>b

voidmain()

{ints>t,a,b;

scanf("%d,斷T,&a,

&b);s=l;t=l;

if(a>0)s

=s+l;if

(a>b)

t=s+l;

elseif(a==b)

t=5;else

t=2*s;

printf("t=%d\n”,t);}

$以下程序的輸出結(jié)果

是(C)ovoidmain()

{floatx=2.0,

y;if(x<0.0)

y=0.0;

elseif(x<10.0)

y=l.0/x;else

y=l.0;

printf("%f\n",y);}

A)0.000000B)0.250000C)0.500000D)1.000000

6當(dāng)a=l,b=3,c=5,d=4時,執(zhí)行下面一段程序后,x的值為(B)o(提示:重點

搞清if-else配對的情況)if(a<b)

19

if(c<d)

x=l;else

if(a<c)

if(b<d)

x=2;else

x=3;

elsex=4;

elsex=5;

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

T若有定義:floatw;inta,b;則合法的

switch語句是(D)oA)switch(w)

B)switch(a)

{caseLO:printf(〃*\n〃);{case1printf(〃*\n〃);

case2.0:printf(〃**\n〃);}case2

printf(〃*\n〃);}C)switch(b);

D)switch(a+b)

{case1:printf(〃*\n〃);{case

Lprintf(〃\n〃);

default:printf(〃\n〃);case

2:printf(〃**\n〃);case

1+2:printf(〃**\n〃);}default:

printf(〃\n〃);}

困若有定義:floatw;inta,b;則合法的switch

20

語句是(B)oA)switch(w)B)switch(a+b)

{case1.0:printf(〃*\n〃);{case1:printf(〃*\n〃);

case2.0:printf(〃狂\n〃);}case2:

printf(〃**\n〃);}C)switch(w+1.76)

D)switch(a);

{case1:printf(〃*\n〃);{case

l:printf(W);

default:printf(〃\n〃);case

2:printf(〃**\n〃);

21

casel+2:printf(〃***\rT);}default:printf(〃\n〃);}

9以下程序運行后的輸出結(jié)果

是(D)。voidmain()

{inta=15,

m=0;

switch

(a%3)

{case0:

m++;case

1:m++;

default:m++;

}

printf("d\n〃,

m);)

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

20.以下程序運行后的輸出結(jié)

果是(B)ovoidmain()

{int

a=10,m=0;

switch(a

/3)

{default:m++;

case0:m++;

break;case1:

m++;}

printf(〃%d\n〃,

m);}A)1B)2

C)3D)0

2以下程序運行后的輸出結(jié)果

是(D)。voidmain()

22

{inta=10,b=21,

m=0;switch

(a%3)

{case0:

m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:

m++;break;

case2:m++;}

printf(〃%d\n〃,m);}

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

2設(shè)口、n、x均為int型變量,則執(zhí)行下面程序段后,x值為(C),m

值為(C),n值為(C)。m=6;n=5;x=--m==n++?--m:++n;

A)7B)6C)4D)5

A)5B)6C)4D)7

A)7B)5C)6D)4

2假定w,x,y,z,m均為int型變量,如有

以下程序段:w=4;x=3;y=2;z

=1;

m=(w<x)?w:x;m=(m<y)?m:y;m=

(m<z)?m:z;則該程序段運行后,m的

值是(D)o

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

二、填空題

1.設(shè)inta=5,b=6,表達式(++a==b—)?++a:―b的值是7

23

2.設(shè)y是int型,請寫出y為奇數(shù)的關(guān)系表達式(y%2)==l或(y%2)!=0。

3.以下程序的輸出結(jié)果是L0

24

voidmain()

{inta=4,b=5,c=0,d;

d=!a&&!b||c;printf(〃%d,%d\n〃,

b,d);}

4.以下程序運行后的輸出結(jié)果是—

20

voidmain()

{intx=10,y=20,

t=0;if(x==y)

t=x;x=y;y=t;

printf(〃%d,%d\n〃,x,

y);}5.下列程序段的

輸出結(jié)果是passwarn

intn='c';

switch(n++)

{default:printf

("error");break;case

‘a(chǎn)"

case'A':

case'b':

case'B':printf

("good");break;case'c':

case'C':printf

(pass);cased:

case<D,:printf("warn");

)

6以下程序運行后的輸出結(jié)果是—

_3ovoid

main()

{intp=30;

25

printf(〃%d\n〃,(p/3>0?p/10:p

%3));}

7.以下程序輸出的結(jié)果是一0.

_ovoidmain()

{inta=5,b=4c=3,d;

d=(a>b>c);

printf("%d〃,d);)

a以下程序運行后的結(jié)果是一

_yesovoid

main()

{inta=l,b=3,c=5;

if(c=a+b)

printf(〃yes\n〃);

elseprintf(〃no\n〃);

)

9.若有以下

程序:void

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

printf(〃%d%d%d”,a,b,c

);)

執(zhí)行后的輸出結(jié)果為_503o

10.以下程序的功能是將學(xué)生的百分制成績轉(zhuǎn)換成等級制

(100^90-'A'),請?zhí)羁?。voidmain()

{floatscore;/*score用來存放學(xué)生的百分制成績*/

26

chargrade;/*grade用來存放學(xué)生的等

級制成績*/inttemp;

scanf(〃%f〃,

&s);t=s/10;

if(t<6)t=5;

switch(t)

{case10:

case9:g='A';

break;case8:

g=;break;

case7:g=;

break;case6:

g='D';break;

case5:g=、E';

)

printf(zz%.Ifto%c\n〃,score,grade);}

11.下面程序的功能:模擬簡單計算器計算表達式alopa2的值,其中al,a2為數(shù)

值,。P為運算符號+、-、*、/,請補充完整。

voidmain()

{floatal,a2;

charop;

scanf(〃%f%c%f〃,&al,

&op,&a2);switch(op)

{ca,+':printf(,,al+a2=%f\n/,,al+a2);break;

se

case':printf(,zal-a2=%f\nz,,

al-a2);break;case,*':printf

(〃al*a2=%f\n〃,al*a2);break;case

':if(a2==0)printf(〃除數(shù)為零!

/n〃);

27

elseprintf("al/a2=%f\n",

al/a2);break;default:printf("不認識的

運算符號\n〃);

})

參考答案:

選擇題:01-05:CCDBC06-10:D(CCC)CCC11-15:CBCCC

16-20:BDCDB21-25:D(CCC)CD填空題:1.72.(y%2)==l或

(y%2)!=03,5,0

4.20,05.passwarn6.37.08.yes

9.50310.s/10,t=5

11.char,枇J

第6章循環(huán)

一、選擇題:

1.C語言中用于結(jié)構(gòu)化程序設(shè)計的三種基

本結(jié)構(gòu)是(A)。A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、

循環(huán)結(jié)構(gòu)

B)ifswitch>break

C)for>while,do-whileD)if>for>

continue2.有以下程序段:

intk=0;

while(k=l)

k++;

while循環(huán)執(zhí)行的次數(shù)是(A)o

A)無限次B)有語法錯誤,不能執(zhí)行

28

C)一次也不執(zhí)行D)執(zhí)行1次

3.x為int類型,進入下面的循環(huán)之前,x的值為0.

while(x=2){…}則以下敘述中正確

的是(B)。A)循環(huán)控制表達式的值為

0B)循環(huán)控制表達式的值為1

C)循環(huán)控制表達式的值為2D)循環(huán)控制表達式不合法

4以下程序段的輸出結(jié)果

是(B)ointn=10;

while(n>7){n-;printf(線d\n”,n);)

A)B)901D)9

100

9898

8787

76

5執(zhí)行語句:for(i=l;i++<4;);后,變量i

的值是(C)oA)3B)4C)5D)不定

6有如下程序段,其中s,a,b,c均已經(jīng)定義為整型變量,且a,c

均己經(jīng)賦值(c大于0):for(b=l;b<=c;b++)s=s+l;

則與上述程序段功能等價的賦值語

句是(C)。A)s=a+b;B)s=a+c;

C)s=s+c;D)s=b+c;7.以下程序

執(zhí)行后sum的值是(D)o

voidmain()

{inti,sum;

for(i=l;i<5;i++)

sum+=i;

printf(級d\n”,

sum);}

29

A)15B)10C)5D)不確定

8以下程序段的輸出結(jié)果

是(D)ointi,j,m=0;

for(i=l;i<=15;

i+=4)m++;

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

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

9以下程序的輸出結(jié)果是(D).(提示:從最內(nèi)層if開始進

行分析,逐層排除)voidmain()

{intx,i;

for(i=l;i<=100;i++)

{x=i;

if(++x%2==

0)

if(++x%3=

=0)

if(++x%7==0)

printf(z,%d”,x);

)

printf("\n");}

A)3981B)4284C)2668D)2870

0當(dāng)執(zhí)行以下程序段時,

(A)ox=~l;

do{x=x*x;}while(!x);

A循環(huán)體執(zhí)行一次B)循環(huán)體執(zhí)行兩次C)循環(huán)體執(zhí)行無限次

D)系統(tǒng)將提示有語法錯誤11.有如下程序:(提示:先判斷出循環(huán)幾次時,

結(jié)果才能得2。然后再以此為依據(jù),求出n的值)

30

voidmain()

{int

s=0,a=l,n;

scanf("/d",

&n);

do{s+=l;a=a-2;}while(a!=n);

printf("%d\n',s);}

若要使程序輸出為2,則該程序從鍵盤輸入

的值是(B)。A)-lB)-3C)-5D)0

12.以下程序段的輸出結(jié)

果是(C)intx=3;

do{printf("%3d”,x-=2);}while

(!(—x));A)1B)30C)1

-2D)死循環(huán)

13.以下敘述正確的是(D)。

A)do-while語句構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替

Bdo…while語句構(gòu)成的循環(huán)只能用break語句退出

。用do…while語句構(gòu)成的循環(huán),在while后的表達式為非零時結(jié)束循環(huán)

D用do-while語句構(gòu)成的循環(huán),在while后的表達式為零時結(jié)束循環(huán)

14.有如下程

序:void

main()

{intk=4,

n=0;for

(;n<k;)

{n++;

if(n%3!=0)

continue;k—;

)

31

printf("%d,%d\n",k,

n);)程序運行后的輸出

結(jié)果是(C)o

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

15.在下列選項中沒有構(gòu)成死循環(huán)的程

序段是(A)oA)inti=100;

B)for(;;)

while(1)

{i=i%100+l;

if(i>=100)break;

)

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

do{++k;while(s);

}while(k>=1000);s--;

16.以下程序中,while循環(huán)的循環(huán)次數(shù)是(D)o(提示:遇continue時,立即結(jié)束

本次循環(huán),執(zhí)行下次循環(huán)。)voidmain()

{int

i=0;

do

(if

(i<l)contin

ue;if(i==

5)break;i++;

}while(i<10);

}

A)1B)10C)6D)死循環(huán)

32

17.以下程序的輸出結(jié)

果是(D)ovoidmain

()

{inta,b;

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

{if(b>=10)

break;

if(b%3==l)

{b+=3;continue;}

}

printf("%d\n",a);}

A)101B)603D)4

18.以下程序段的輸出結(jié)果

是(B)。intk,j,s;

for(k=2;k<6;k++,k++)

{s=l;

for(j=k;j<6;j++)s+=j;}

A)15B)10C)24D)6

19.以下程序段的輸出結(jié)果

是(D)ointk,j,s;

s=l;

for(k=l;k<5;k++,k

++)

for(j=k;j<5;j++)

s+=j;

A)17B)7C)10D)18

20.以下程序的輸出結(jié)果是(B)o

#

include<stdio

33

.h>voidmain

()

{inti=0,

a=0;

while

(i<20)

{for(;;)

{if(i%10==0)

break;elsei-

}

i+=ll;a+

=i;

}printf

("為d'n",a);}

A)21B)32C)33D)11

二、填空題:

1.如果從鍵盤上輸入2006,則以下程序運行后的輸出結(jié)

果為6002o

voidmain()

{intnl,n2;

scanf&

n2);

while(n2!=0)

{nl=n2%10;

printf('%d",

nl);

n2=n2/10;

}}

2.有如卜程序:

34

voidmain()

{intn=8;

while(n>5){n--;printf(n);}}

該程序段的輸出結(jié)果是.765。

3,若輸入字符串a(chǎn)bcde〈回車》,則以下while循環(huán)

體執(zhí)行_生次。while((ch=getchar())!='e')

printf(〃*〃);4.以下程序運行后

的輸出結(jié)果是8。

voidmain()

{inti=10,

j=0;do{

j=j+l;i—;

}while(i>2);

printf("%d\n",

j);}

s以下程序的輸出結(jié)果是10

_ovoidmain()

{ints,i;for(s=0,

i=l;i<5;i++,s+=i);

printf(〃%d\n〃,s);}

6下面程序的功能是:計算1到10之間奇數(shù)之和及偶數(shù)之和,請?zhí)羁铡?/p>

#include<stdio.h>

voidmain()(提示:由輸出可知,a存放偶數(shù)和,c存放偶奇之和。因用i控制循環(huán),

當(dāng)i取10時,并未超界,而其后的奇數(shù)(11)已超界,故需從c中減去11)

{inta,b,

c,i;a=c=0;

for(i=0;i<=10;i+=2)

{a+=i;b=i+l

_______________;c+=b;}

35

printf(〃偶數(shù)之和

=%d\n〃,a);printf(〃奇數(shù)

之和=%d\n〃,c-11);}

7,下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?/p>

#

include<stdio

.h>voidmain

()

{

inti,j;

for(i=0;i<10;i++)

{j=i*10+6;

if(j%3!=0)

continue;printf(〃%d〃,

j);}}

&要使以下程序段輸出10個整數(shù),請?zhí)?/p>

空。for(i=0;i<20;)

printfC%d\n,z,i+=2);9.以下程序運行

后的輸出結(jié)果是.17。

voidmain()

{intx=15;

while(x>10&&

x<50)

{x++;

if(x/3){x++;bre

ak;}else

continue;}

36

printf("%d\n",x);}

10.以下程序執(zhí)行后的輸出結(jié)果是—

16ovoid

main()

{inti=0,s=0;

do{if(i%2){i++;

continue;}i++;

s+=i;

}while(i<7);

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

11.執(zhí)行以下程序后,輸出#號的個數(shù)是一

—6o

#include<stdio.h>

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論