2023年二級(jí)C語(yǔ)言程序設(shè)計(jì)練習(xí)題_第1頁(yè)
2023年二級(jí)C語(yǔ)言程序設(shè)計(jì)練習(xí)題_第2頁(yè)
2023年二級(jí)C語(yǔ)言程序設(shè)計(jì)練習(xí)題_第3頁(yè)
2023年二級(jí)C語(yǔ)言程序設(shè)計(jì)練習(xí)題_第4頁(yè)
2023年二級(jí)C語(yǔ)言程序設(shè)計(jì)練習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩135頁(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)介

二級(jí)C語(yǔ)言程序設(shè)計(jì)練習(xí)題gj.txt45想洗澡嗎?不要到外面等待下雨;想成功嗎?不要空

等機(jī)遇的到來(lái)。摘下的一瓣花能美麗多久?一時(shí)的放縱又能快樂(lè)多久?有志者要為一生的

目的孜孜以求。少年自有少年狂,藐昆侖,笑呂梁;磨劍數(shù)年,今將試鋒芒。自命不凡不可

取,妄自菲薄更不宜。重要說(shuō)明:本習(xí)題所有題目均假設(shè)上機(jī)環(huán)境為T(mén)C2.0,而2023年版最

新大綱規(guī)定等級(jí)考試上機(jī)用VC6.0,這重要對(duì)筆試的影響在于int類型所占用的字節(jié),本來(lái)

TC2.0中int類型為2個(gè)字節(jié),而最新VC6.0中int類型占用4個(gè)字節(jié),所以以下所有題目

涉及int數(shù)據(jù)類型占用字節(jié)數(shù)的地方請(qǐng)大家把題目和參考答案按新大綱做相應(yīng)調(diào)整即可,川

到int類型數(shù)據(jù)但不涉及int占字節(jié)數(shù)的所有地方不必調(diào)整。(其實(shí)需要調(diào)整的地方很少的,

請(qǐng)大家自己辨認(rèn))

C語(yǔ)言程序設(shè)計(jì)習(xí)題

(全國(guó)計(jì)算機(jī)等級(jí)考試)

第一章程序設(shè)計(jì)基本概念

[1.1]在TURBOC環(huán)境中用RUN命令運(yùn)營(yíng)一個(gè)C程序時(shí),所運(yùn)營(yíng)的程序的后綴是______。

[1.2]C語(yǔ)言源程序文獻(xiàn)的后綴是,通過(guò)編譯后,生成文獻(xiàn)的后綴是,通過(guò)

連接后,生成文獻(xiàn)的后綴是。

[1.3]結(jié)構(gòu)化程序由—、—、—三種基本結(jié)構(gòu)組成。

第二章C程序設(shè)計(jì)的初步知識(shí)

一、選擇題

[2.1]以下選項(xiàng)中對(duì)的的整型常量是

A)12B)-2001,0001))456

[2.2]以下選項(xiàng)中對(duì)的的實(shí)型常量是

A)0B)3.1415C)0.329*102D).871

[2.3]以下選項(xiàng)中不對(duì)的的實(shí)型常量是

A)2.607E-1B)0.8103e2C)-77.77D)456e-2

[2.4]以下選項(xiàng)中不合法的用戶標(biāo)記符是

A)abc.cB)fileOMainD)PRINTF

[2.5]以下選項(xiàng)中不合法的用戶標(biāo)記符是

A)_123B)printfC)A$D)Dim

[2.6]C語(yǔ)言中運(yùn)算對(duì)象必需是整型的運(yùn)算符是

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

[2.7]可在C程序中用作用戶標(biāo)記符的一組標(biāo)記符是

A)voidB)as_b3C)ForD)2c

define_123_abcDO

WORDIfcaseSIG

[2,8]若變量已對(duì)的定義并賦值,符合C語(yǔ)言語(yǔ)法的表達(dá)式是

A)a=a+7;B)a=7+b+c,a++C)int(12.3%4)D)a=a+7=c+b

[2.9]以下敘述中對(duì)的的是

A)a是實(shí)型變量,C允許進(jìn)行以下賦值a=10,因此可以這樣說(shuō):實(shí)型變量允許賦值整型

值。

B)在賦值表達(dá)式中,賦值號(hào)左邊既可以是變量也可以是任意表達(dá)式。

0執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲(chǔ)單元中的原有值都將被改變,a的值已由原

值改變?yōu)閎的值,b的值由原值變?yōu)?。

D)已有a=3,b=5。當(dāng)執(zhí)行了表達(dá)式a二b,b二a之后,已使a中的值為5,b中的值為3。

[2.10]以下敘述中對(duì)的的是

在C程序中無(wú)論整數(shù)還是實(shí)數(shù),只要在允許的范圍內(nèi)都能準(zhǔn)確無(wú)誤的表達(dá)。

C程序由主函數(shù)組成。

C程序由函數(shù)組成。

C程序由函數(shù)和過(guò)程組成。

[2.11]TURBOC中int類型變量所占字節(jié)數(shù)是

A)1B)203D)4

[2.12]不合法的八進(jìn)制數(shù)是

A)0B)0280077D)01

[2.13]不合法的十六進(jìn)制數(shù)是

A)oxffB)OXabcC)0xllD)0xl9

二、填空題

[2.14]若k為int整型變量且賦值11。請(qǐng)寫(xiě)出運(yùn)算k++后表達(dá)式的值A(chǔ))—和變最的值

B)

[2.15]若x為double型變量,請(qǐng)寫(xiě)出運(yùn)算x=3.2,++x后表達(dá)式的值A(chǔ))____和變量的值

B)°

[2.16]函數(shù)體由符號(hào)—開(kāi)始,用符號(hào)結(jié)束。函數(shù)體的前面是部分,其后是

_______部分。

[2.17]C語(yǔ)言中的標(biāo)記符可分為、、和預(yù)定義標(biāo)記符三類。

[2.18]在C語(yǔ)言程序中,用關(guān)鍵字定義基本整型變量,用關(guān)鍵字定義單

精度實(shí)型變量,用關(guān)鍵字______定義雙精度實(shí)型變量。

[2.19]把a(bǔ)l.a2定義成單精度實(shí)型變量,并賦初值1的定義語(yǔ)句是。

[2.20]C程序中定義的變量,代表內(nèi)存中的一個(gè)o

[2.21]表達(dá)式3.5+1/2的計(jì)算結(jié)果是________。

[2.22]對(duì)以下數(shù)學(xué)式,寫(xiě)出三個(gè)等價(jià)的C語(yǔ)言表達(dá)式、、o

aib

[2.23]表達(dá)式s=10應(yīng)當(dāng)讀做“

[2.24]計(jì)算機(jī)中內(nèi)存儲(chǔ)器的最小存儲(chǔ)單位稱_,其中能容納的數(shù)是_________,

[2.25]通常一個(gè)字節(jié)包含______個(gè)二進(jìn)制位。在一個(gè)字節(jié)中能存放的最大(十進(jìn)制)整數(shù)是

它的二進(jìn)制數(shù)的形式是;最?。ㄊM(jìn)制)整數(shù)是,它的二進(jìn)制數(shù)的

形式是o

[2.26]當(dāng)計(jì)算機(jī)用兩個(gè)字節(jié)存放一個(gè)整數(shù)時(shí),其中能存放的最大(十進(jìn)制)整數(shù)是、

最?。ㄊM(jìn)制)整數(shù)是_____它的二進(jìn)制數(shù)的形式是O

[2.27]在C語(yǔ)言中整數(shù)可用_____進(jìn)制數(shù)、_____進(jìn)制數(shù)和進(jìn)制數(shù)三種數(shù)制表達(dá),

三、上機(jī)改錯(cuò)題(讀者最佳在TURBOC環(huán)境下上機(jī)試一試,以便熟悉犯錯(cuò)信息)。

[2.28]請(qǐng)指出以下C程序的錯(cuò)誤所在

#includestdio.h;

main();/*mainfunction*/

floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/

r=5.0;

s=3.14159*r*r;

printf("%f\nw,s)

[2.29]請(qǐng)指出以下C程序的錯(cuò)誤所在

#includestdio.h

main/*mainfunction*/

{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/

a=2.0;b=3.0;c=4.0

v=a*b*c;

printf(M%f\nw,v)

)

第三章順序結(jié)構(gòu)

選擇題

[3.1]若a、b、c、d、都是int類型變量且初值為0,以下選項(xiàng)中不對(duì)的的賦值語(yǔ)句是

A)a=b=c=d=100:B)d++;C)c+b;D)d=(c=22)-(b++);

[3.2]以下選項(xiàng)中不是C語(yǔ)句的是

A){inti;i++;printf(<<%d\n>>,i);}B);

0a=5,c=10D){;}

[3.3]以下合法的C語(yǔ)言賦值語(yǔ)句是

A)a=b=58B)k=int(a+b);C)a=58,b=58

[3.4]以下程序的輸出結(jié)果是

A)0B)1C)3D)不擬定的值

main()

{intx=10,y=3;

printf(a%d\nw,y=x/y);}

[3.5]若變量已對(duì)的說(shuō)明為ini類型,要給a、b、c輸入數(shù)據(jù),以下對(duì)的的輸入語(yǔ)句是

A)read(a,b,c);B)scanf("%d%d%d”,a,b,c);

C)scanf(“%D%D%D”,&a,%b,%c);D)scanf(“%d%d%d",&a,&b,&c);

[3.6]若變量已對(duì)的說(shuō)明為float類型,要通過(guò)以下賦值語(yǔ)句給a賦予10、b賦予22.c賦予

33,以下不對(duì)的的輸入形式是

A)10B)10.0,22.0,33.0C)10.01))1022

2222.033.033

33

scanf(a%f%f%fw,&a,&b,&c);

[3.7]若變量己對(duì)的定義,要將a和b中的數(shù)進(jìn)行互換,下而不對(duì)的的語(yǔ)句組是

A)a=a+b,b=a-b,a=a-b;B)t=a,a=b,b=t;

C)a=t;t=b;b=a;D)t=b;b=a;a=t;

[3.8]若變量已對(duì)的定義,以下程序段的輸出結(jié)果是

A)輸出格式說(shuō)明與輸出項(xiàng)不區(qū)配,輸出無(wú)定值B)5.17

05.168D)5.169

X=5.16894;

Printf("%f\n,T,(int)(:x*1000+0.5)/(float)1000);

[3.9]若有以下程序段,c3中的值是

A)0B)l/2C)0.51))1

intcl=l,c2=2,c3;

c3=cl/c2;

[3.10]若有以下程序段,其輸出結(jié)果是

A)3,0,-10B)0,0,50-10,3,-10D)3,0,3

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

c=(a-=a-5),(a=b,b+3);

printf(u%d,%d,%d\nw,a,b,c);

[3.11]當(dāng)運(yùn)營(yíng)以下程序時(shí),在鍵盤(pán)上從第一列開(kāi)始輸入<CR>(此處<CR>代表Enter),則程

序的輸出結(jié)果是

A)a=98,b=765,c=4321B)a=10,b=432,c=8765

0a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0

main()

{inta;floatb,c;

scanf(w%2d%3f%4fw,&a,&b,&c);

printf("\na=%d,b=%f,c=%f\n,>,a,b,c);

)

[3,12]以下程序的輸出結(jié)果是

A)a$2,b=%5B)a=2,b=5

C)a=%%d,b=%%dD)a^d,b二%d

main()

{inta=2,b=5;

printf(ua=%%d,b=%%d\n”,a,b);}

[3.13]若int類型占兩個(gè)字節(jié),則以下程序段的輸出是

A)-l,-lB)-1,32767C)-1,32768D)-1,65535

inta=-l;

printf("%d,%u\r.w,a,a);

[3,14]以下程序段的輸出是

A)*496*B)*496*0*000496*D)輸出格式符不合法

intx=496;

Printf(M*%06d*\nw,x);

[3.15]以下程序段的輸出是

A)|3.1415|B)|3.0|C)|3|D)|3.|

floata=3.1415;

Printf("|%6.0f|\n",a);

[3,16]以下程序段的輸出是

A)|2345.678001B)112345.67801

C)112345.678001D)112345.6781

printf(a|%10.5f|\n",12345.678);

[3.17]以下程序段的輸出是

A)*0000057.66*B)*57.66*

0*0000057.67*D)*57.67*

floata=57.666;

pirntf(a%010.2f\nw,£);

3.18若從終端輸入以下數(shù)據(jù),要給變量c賦以283.19,則對(duì)的的輸入語(yǔ)句是

A)scanf(a%f",c);B)scanf(u%8.4f”,&c);

B)scafn(M%6.2f”,&c);D)scanf(u%8W,&c);

283.1900<CR>

[3.19]若變量已對(duì)的說(shuō)明,規(guī)定用以下語(yǔ)句給a賦予3.12.給b賦予9.0,則對(duì)的的輸入形

式是(口代表空格)

A)3.12UU9.0<CR>B)a=UU3.12b=UUU9<CR>

C)a=3.12,b=9<CR>D)a=3.12HH,b=9HHHH<CR>

scanf(aa=%f,b=%f",&w,&b);

[3.20]以下程序的輸出結(jié)果是

A)98B)89C)66D)以上三個(gè)都不對(duì)

#include"math.hw

mainO

{doublea=-3.0,b=2;

printf(u%3.Of%3.Of\nM,pow(b,fabs(a)),pow(fabs(a),b));

}

填空題

[3.21]若有以下定義,請(qǐng)寫(xiě)出以下程序段中輸出語(yǔ)句執(zhí)行后的輸出結(jié)果。

(1)(2)(3)

inti=-200,j=2500;

printf(u(1)%d刎”,i,j);

printf(a(2)i=%d,j=%d\nM,i,j);

printf(u(3)i=%d\nj=%d\nw,i,j);

[3.22]變量i、j、k已定義為int類型并有初值0,用以下語(yǔ)句進(jìn)行輸入時(shí)

scanf(a%d",&D;scc.nf(u%dw,&j);scanf(a%d”,&k);

當(dāng)執(zhí)行第一個(gè)輸入語(yǔ)句,從鍵盤(pán)輸入:

12.3<CR><CR>表達(dá)Enter鍵

則變量i、j、k的值分別是、、o

[3,23]復(fù)合語(yǔ)句在語(yǔ)法上被認(rèn)為是??照Z(yǔ)句的形式是o

[3.24]C語(yǔ)句的最后用結(jié)束。

[3,25]以下程序段,規(guī)定通過(guò)scanf語(yǔ)句給變量賦值,然后輸出變量的值。寫(xiě)出運(yùn)營(yíng)時(shí)給k

輸入100,給a輸入25.81,給x輸入1.89234時(shí)的三種也許的輸入形式、、。

intk;floata;doublex;

scanf(%d%f%lfw,&k,&a,&x);

pirntf(ak=%d,a=%f,x=^f\nn,k,a,x);

[3,26]以下程序段的輸出結(jié)果是°

intx=0177;

printf(ux=%3d,x=%6d,x=%6o,x=%6x,x二%6u\n",x,x,x,x,x);

[3.27]以下程序段的輸出結(jié)果是o

intx=0177;

printf("x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n>,,x,x,x,x,x);

[3,28]以下程序段的輸出結(jié)果是_____。

doublea=5.13.789215;

printf(aa=%8.6f,a=%8.2f,a=%14.8f,a=%14.81f\nw,a,a,a,a);

編程題和改錯(cuò)題

[3,29]以下程序多處有錯(cuò)。要按下面指定的形式輸入數(shù)據(jù)和輸出數(shù)據(jù)時(shí),請(qǐng)對(duì)該程序做相應(yīng)

的修改。

main

{doublea,b,c,s,v;

printf(inputa,b,c:\n);

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

s=a*b;/*計(jì)算長(zhǎng)方形面積*/

v=a*b*c;/*計(jì)算長(zhǎng)方體體積*/

printf(<4%d%d%dM,a,b,c);

printf("s=%f\n",s,"v=%d\nM,v);

)

當(dāng)程序執(zhí)行時(shí),屏幕的顯示和規(guī)定輸入形式如下:

inputa,b,c:2.02.03.0此處的2.02.03.0是用戶輸入的數(shù)據(jù)

a=2.000000,b=2.000000,c=3.000000此處是規(guī)定的輸出形式

s=4.000000,v=12.000000

[3.30]編寫(xiě)程序,把560分鐘換算成用小時(shí)和分鐘表達(dá),然后進(jìn)行輸出。

[3.31]編寫(xiě)程序,輸入兩個(gè)整數(shù):1500和350,求出它們的商數(shù)和余數(shù)并進(jìn)行輸出。

[3.32]編寫(xiě)程序,讀入三個(gè)雙精度數(shù),求它們的平均值并保存此平均值小數(shù)后一位數(shù),對(duì)

小數(shù)點(diǎn)后笫二位數(shù)進(jìn)行四舍五入,最后輸出結(jié)果。

[3.33]編寫(xiě)程序,讀入三個(gè)整數(shù)給a、b、c,然后互換它們中的數(shù),把a(bǔ)中本來(lái)的值給b,把

b中本來(lái)的值給c,把c中本來(lái)的值給a。

第四章選擇結(jié)構(gòu)

一、選擇題

[4.1]下列運(yùn)算符中優(yōu)先級(jí)最高的運(yùn)算符是

A)!B)%C)-=D)&&

[4.2]下列運(yùn)算符中優(yōu)先級(jí)最低的運(yùn)算符是

A)||B)!=C)<=D)+

[4.3]為表達(dá)關(guān)系x>=y>《,應(yīng)使用的C語(yǔ)言表達(dá)式是

A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)

C)(x>=y>=z)D)(x>=y)&(y>=z)

[4.4]設(shè)a、b和c都是int型變量,且a=3,b=4,c=5;則以下的表達(dá)式中,值為0的

表達(dá)式是

A)a&&bB)a<=bC)a||b+c&&b-cD)!((a<b)&&!c||1)

[4.5]以下程序的輸出結(jié)果是:

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

main()

{inta=2,b=-l,c=2:

if(a<b)

if(b<0)c=0;

elsec+=l;

printf(w%d\nM,c);

)

[4.6]以下程序的輸出結(jié)果是:

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

main()

{intw=4,x=3,y=2,z=l;

printf(w%d\nw,(w<x?w:z<y?z:x));

)

[4,7]若執(zhí)行以下程序時(shí)從鍵盤(pán)上輸入3和4,則輸出結(jié)果是

A)14B)16018D)20

main()

{inta,b,s;

scanf(“%d%d”,&a,&b);

s=a;

if(a<b)s=b;

s*二s;

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

[4.8]下面的程序片段所表達(dá)的數(shù)學(xué)函數(shù)關(guān)系是

A)-l(x<0)

A)y=0(x=0)

1(x>0)

B)1(x<0)

B)y=-1(x=0)

0(x>0)

C)C(x<0)

C)y=-l(x=O)

1(x>0)

D)-l(x<0)

D)y=1(x=0)

0(x>0)

y=-l;

if(x!=0)

{if(x>0)y=l;}

elsey=0;

[4,9]運(yùn)營(yíng)以下程序后,輸出

A)####

C)####&&&&D)有語(yǔ)法錯(cuò)誤不能通過(guò)編譯

main()

{intk=-3;

if(k<=0)printf("****\n”);

elseprintf(;

)

[4.10]若a和b均是正整數(shù)型變量,以下對(duì)的的switch語(yǔ)句是

A)switch(pow(a,2)+pow(b,2))(注:調(diào)用求基的數(shù)學(xué)函數(shù))

{case1:case3:y=a+b;break;

case0:case5:y=a-b:

)

B)switch(a*a+b*b);

case3:

case1:y=a+b;break;

case0:y=b-a;break;

)

C)switcha

{default:x=a+b;

case10:y=a-b;break;

case11:y=a*d;break;

)

D)switch(a+b)

{easel0:x=a+b;break;

easel1:y=a-b;break;

)

二、填空題

[4.11]C語(yǔ)言中用_____表達(dá)邏輯值“真”,用表達(dá)邏輯值“假工

[4.12]C語(yǔ)言中的關(guān)系運(yùn)算符按優(yōu)先級(jí)別是

[4.13]C語(yǔ)言中的邏輯運(yùn)算符按優(yōu)先級(jí)別是、、.

[4.14]C語(yǔ)言中的關(guān)系運(yùn)算符和邏輯運(yùn)算符的優(yōu)先級(jí)別是—、、、_、。

[4.15]C語(yǔ)言中邏輯運(yùn)算符______的優(yōu)先級(jí)高于算術(shù)運(yùn)算符。

[4,16]將下列數(shù)學(xué)式改寫(xiě)成C語(yǔ)言的關(guān)系表達(dá)式或邏輯表達(dá)式A)和

B)__________

A)a=b或a<cB)|x|>4

[4.17]請(qǐng)寫(xiě)出以下程序的輸出結(jié)果

mainO

{inta=100;

if(a>100)printff<<%d\n>>,a>100);

elseprintf(<<%d\nw,a<=100);

)

[4.18]請(qǐng)寫(xiě)出與以下表達(dá)式等價(jià)的表達(dá)式A)B).

A)[(x>0)B)!O

[4.19]當(dāng)a=l,b=2,c=3時(shí),以下if語(yǔ)句執(zhí)行后,a、匕、c中的值分別為_(kāi)__、、—.

if(a>c)

b=a;a=c;c=b;

[4.20]若變量巳對(duì)的定義,以下語(yǔ)句段的輸出結(jié)果是

x=0,y=2,z=3;

switch(x)

{case0:switch(y=2)

{case1:printf("*");break;

case2:printf(;break;

}

case1:switch(2)

case1:printf("$");

case2:printf(a*f,);break;

default:printf("#");

}

)

三、編程題

[4.21]請(qǐng)將以下語(yǔ)句改寫(xiě)成switch語(yǔ)句。

if(a<30)m=l;

elseif(a<40)m=2;

elseif(a<50)m=3;

elseif(a<60)m=4;

elsem=5;

[4.22]編寫(xiě)程序,輸入一位學(xué)生的生日(年:yO、月:mO、日:dO);并輸入當(dāng)前的日期(年:

yl.月:ml.日:dl);輸出該生的實(shí)足年齡。

[4.23]編寫(xiě)程序,輸入一個(gè)整數(shù),打印出它是奇數(shù)還是偶數(shù)。

[4.24]編寫(xiě)程序,輸入£、b、c三個(gè)數(shù),打印出最大者.

[4.25]有一函數(shù):

x(-5<x<0)

y=x-1(x=0)

x+1(0<x<10)

編寫(xiě)一程序,規(guī)定輸入x的值,輸出y的值。

分別用(1)不嵌套的if語(yǔ)句(2)嵌套的if語(yǔ)句(3)if-else語(yǔ)句(4)switch語(yǔ)句

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

一.選擇題

[5.1]以下程序段的輸出結(jié)果是

A)9B)1C)11D)10

intk,j,s;

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

{s=l;

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

}

printf(,s);

[5.2]以下程序段的輸出結(jié)果是

A)12B)15020D)25

inti,j,m=0;

for(I=l;K=5;I+=4)

for(j=3;j<=19;j+=4)m++;

printf(,m);

[5.3]以下程序段的輸出結(jié)果是

A)10B)9C)10D)9

9898

8787

76

intn=10;

while(n>7)

{n—;

printf(“與d\n",n);

)

[5.4]以下程序段的輸出結(jié)果是

A)1B)30C)1-2D)死循環(huán)

intx=3;

do

{printf(4<%3dn,x-=2);}

while(!(-x));

[5.5]以下程序的輸出結(jié)果是

A)15B)14C)不擬定D)0

main()

{inti,sum;

for(i=l;i<6;i++)stm+=sum;

printfCM%d\nv,sum);

)

[5.6]以下程序的輸出結(jié)果是

A)741B)852C)9631))875421

main()

{inty=10;

for(;y>O;y-)

if(y%3==0)

{printf("%d",一y);continue)

)

[5.7]若x是int型變量,以下程序段的輸出結(jié)果是

A)**3B)##3C)##3D)**3##4

##4**4**4##5**5

**5

for(x=3;x<6;x++)

printf((x%2)?():(“##%d\n"),x);

[5.8]以下程序的輸出結(jié)果是

A)*#*#*#$B)#*#*#*$

C)*#*#$

mainO

{inti;

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

{if(i%2)printf("*");

elsecontinue;

printf("#");

}

printf("$\n");

)

[5.9]以下敘述對(duì)的的是

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

B)do-while語(yǔ)句構(gòu)成的循環(huán)只能用break語(yǔ)句退出

C)用do-while語(yǔ)句構(gòu)成循環(huán)時(shí),只有在while后的表達(dá)式為非零時(shí)結(jié)束循環(huán)

D)用dorhile語(yǔ)句構(gòu)成循環(huán)時(shí),只有在while后的表達(dá)式為零時(shí)結(jié)束循環(huán)

[5,10]以下程序的輸出結(jié)果是

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

main()

{intx,i;

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

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf(“%d”,x):

)

printf("\n”);

)

二.填空題

[5.11]當(dāng)執(zhí)行以下程序段后,i的值是_、j的值是_、k的值是

inta,b,c,d,i,j,k;

a=10;b=c=d=5;i=j=k=0;

for(;a>b;++b)i++;

while(a>++c)j++;

dok++;while(a>d++);

[5,12]以下程序段的輸出結(jié)果是—.

intk,n,m;

n=10;m=l;k=l;

while(k<=n)m*=2;

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

[5,13]以下程序段的輸出結(jié)果是一.

mainO

{intx=2;

while(x-);

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

)

[5.14]以下程序段的輸出結(jié)果是—.

inti=0,sum=l;

do{sum+=i++;}while(i<5);

printf(a%d\nw,sum);

[5.15]有以下程序段:

s=l.0;

for(k=l;k<=n;k++)s=s+l.0/(k*(k+D):

printfCM%f\nv,s);

請(qǐng)?zhí)羁眨瓜旅娴某绦蚨蔚墓δ芡耆c之等同。

s=0.0;

k=0;

do

{s=s+d;

d=1.0/(k*(k+l)):

)

while();

printf("/f\n",s);

[5,16]以下程序的功能是:從鍵盤(pán)上輸入若干學(xué)生的成績(jī),記錄并輸出最高成績(jī)和最低成

績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入。

main()

{floatx,amax,amin;

scanf(“%f”,&x);

amax=x;amin=x;

while()

{if(x>amc.x)amax=x;

if()amin=x;

scanf(“舟f”,&x);

)

printf(u\namax=%f\namin=%f\nv,amax,amin);

)

三.編程題

[5.17]編寫(xiě)程序,求1-34-5-7+--99+101的值。

[5.18]編寫(xiě)程序,求e的值。e?l+l/l1+1/2!+1/3!+..-l/n!

用循環(huán),計(jì)算前50項(xiàng)。

(2)用循環(huán),規(guī)定直至最后一項(xiàng)的值小于10-4

[5.19]編寫(xiě)程序,輸入從公元102023至2023年所有閏年的年號(hào)。每輸出3個(gè)年號(hào)換一行。

判斷公元年是否為閏年的條件是:

(1)公元年數(shù)如能被4整除,而不能被100整除,則是閏年;

(2)公元年數(shù)能被400整除也是閏年。

[5.20]編寫(xiě)程序,打印以下圖:

*

***

*****

*******

*******

***

*

第六章字符型數(shù)據(jù)

一、選擇題

[6.1]C語(yǔ)言中的簡(jiǎn)樸類型有

A)整型,實(shí)型,邏輯型B)整型,實(shí)型,字符型

C)整型,字符型,邏輯型I))整型,實(shí)型,邏輯型,字符型

[6.2]C語(yǔ)言中,字符型(char)數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是

A)反碼B)補(bǔ)碼C)EBCDIC碼D)ASCII碼

[6.3]設(shè)有語(yǔ)句chara='\72'則變量A

A)包含1個(gè)字符B)包含2個(gè)字符C)包含3個(gè)字符D)說(shuō)明不合法

[6.4]C語(yǔ)言中不合法的字符常量是

A)'\OXFF'B)'65'C)'&'D)'\28'

[6.5]C語(yǔ)言中不合法的字符串常量是

A)"121"B)‘Y二'C)"\n\n〃D)"ABCD\X6d〃

[6.6]判斷char型變量C是否為大寫(xiě)字母的最簡(jiǎn)樸且對(duì)的的表達(dá)式是

A)'A'<=C=2B)(C>='A')&(C<='Z')

C)('A'<=C)AND('Z'>=C)D)?='A')&&(C〈='Z')

[6.7]以下程序的輸出結(jié)果是

A)因輸出格式不合法,無(wú)對(duì)的輸出B)65,90

C)A,YD)65,89

main()

{charcl=,a*,c2=,y1;

printf("%d,%d\n*,cl,c2);

)

[6.8]以下程序的輸出結(jié)果是

A)AB)aC)ZD)z

main()

{charx='a'

x=(x>='A'Mx<=Z,)?(x+32):x;

printf(*%c\n*,x);

}

[6.9]以下程序的輸出結(jié)果是

A)67,CB)B,CC)C,DD)不擬定的值

mainO

charchi,ch2;

chl='A'+'5'-'3';

ch2=a'+'5'3';

printf(飛d,%c\n*,ch2);

}

[6.10]對(duì)以卜.程序,從第一列開(kāi)始輸入數(shù)據(jù):2473?R>,<CR>代表ENTER,程序的輸出結(jié)果是

A)668977B)668966066778777D)6688766

#include“stdio.h"

main()

{intc;

while((c=getchar())!='\n')

{switch(c-'2')

{case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

defaultputchar(c+2);break;

}

}prinf("\n");

)

[6.11]若變量已對(duì)的說(shuō)明,規(guī)定用以下語(yǔ)句給C1賦予字符即給C2賦予字符#,給a賦予2.0,

給b賦予4.0,則對(duì)的的輸入形式是

A)2.0%4.0#<CR>B)2.0%4.0#<CR>

C)2%4#<CR〉D)2%4<CR>

,,,,

scanf(%f%c%f%c,&a,&cl,&b,&c2);

二、填空題

[6.12]EOF的十進(jìn)制值是.

[6.13]C語(yǔ)言中,字符占內(nèi)存一個(gè)字節(jié).

[6,14]調(diào)用C語(yǔ)言對(duì)字符解決的庫(kù)函數(shù)時(shí),在#include命令行中應(yīng)包含的文獻(xiàn)是

[6,15]若輸入字符A,在以下WHILE語(yǔ)句執(zhí)行后ch的值是

while(ch=getchar()=,A*);

[6.16]若要通過(guò)以下語(yǔ)句給a,b,c,d分別輸入字符A,B,C,I),給w,x,y,z

分別輸入1(),20,30,4(),對(duì)的的輸入形式是請(qǐng)用<CR>代表ENTER鍵.

scanf(w%d%c%d%c^d%c%d%c,&w,&a,&x,&b,&y,&c,&z,&d);

[6.17]若有以下說(shuō)明和輸入語(yǔ)句,規(guī)定給cl,定輸入字符A,B,給al,a2輸入7.29和10L298,

從鍵盤(pán)對(duì)的輸入數(shù)據(jù)的形式是

charcl,c2;floatal,a2;

scanf&al,&a2);scanf&cl,&c2);

[6.18]若有以下說(shuō)明和輸入語(yǔ)句,規(guī)定給cl,c2輸入字符A,B,給al,a2輸入7.29和

101.298,

從鍵盤(pán)對(duì)的輸入數(shù)據(jù)的形式是

charcl,c2;floatal,a2;

scanf&cl,&al,&c2,&a2);

[6.19]若有以下說(shuō)明和輸入語(yǔ)句,規(guī)定給cl,c2,c3輸入字符A,B,C,從鍵盤(pán)對(duì)的輸入數(shù)據(jù)的

形式.

charcl,c2,c3;

scanf("%4c”,&cl);scanf(*%4c*?&c2);scanf(*%4c*,&c3);

三、填空題

[6.20]請(qǐng)編寫(xiě)程序,輸入一行字符(用回車(chē)結(jié)束),輸出每個(gè)字符以及與之相應(yīng)的ASCII

代碼值,每行輸出三對(duì).

[6.21]清編寫(xiě)程序,輸入一行數(shù)字字符(用EOF結(jié)束),每個(gè)數(shù)字字符的前后都有空格.

請(qǐng)編程,把這一行中的數(shù)字轉(zhuǎn)換成一個(gè)整數(shù).例如:若輸入:

2483<CR>

則輸出整數(shù):2483.

[6.22]請(qǐng)編寫(xiě)程序記錄輸入的行數(shù),輸入用EOF結(jié)束.

[6.23]請(qǐng)編寫(xiě)程序記錄輸入的一行中小寫(xiě)字母的個(gè)數(shù).

[6.24]請(qǐng)編寫(xiě)輸入以下圖案的程序,圖案的行數(shù)由輸入的值擬定.

A

BBB

CCCCC

DDDDDDI)

EEEEEEEEE

第七章函數(shù)

一、選擇題

[7.1]以下說(shuō)法中對(duì)的的是

A)C語(yǔ)言程序總是從第?個(gè)定義的函數(shù)開(kāi)始執(zhí)行

B)在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義

C)C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行

D)C語(yǔ)言程序中的main函數(shù)必須放在程序的開(kāi)始部分

[7.2]以下函數(shù)的類型是

A)與參數(shù)x的類型相同B)void類型C)int類型D)無(wú)法擬定

fff(floatx)

{printf("刎\n",x*x);)

[7,3]以下函數(shù)調(diào)用語(yǔ)句中,具有的實(shí)參個(gè)數(shù)是

A)1B)204D)5

func((expl,exp2),(cxp3,exp4,exp5));

[7.4]以下程序的輸出結(jié)果是

A)11B)20021D)31

func(inta,intb)

{intc

c=a+b;

returnc;

)

main()

{intx=6,y=7,z=8,r;

r=func((x-,y++,x+y),z-);

printf("%d\n",r);

)

[7.5]以下程序的輸出結(jié)果是

A)-lB)0C)I1))2

main()

inti=2,p;

p=f(i,i+1);

printfT%dw,p);

)

intf(inta,intb)

{intc;

c=a;

if(a>b)c=l;

elseif(a==b)c=0;

elsec=-l;

return(c);

)

[7.6]以下程序的輸出結(jié)果是

A)0B)1C)6D)無(wú)定值

fun(inta,intb,intc)

{c=a*b;}

mainO

intc;

fun(2,3,c);

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

)

[7.7]以下程序的輸出結(jié)果是

A)5.500000B)3.000000C)4.000000D)8.25

doublef(intn)

{inti;doubles;

s=l.0;

for(i=l;i<=r.;i++)s+=1.0/i;

returns;

)

mainO

{inti,m=3;floata=0.0;

for(i=0;i<m;i++)a+=f(i);

printf(,,%f\n,/,a)L;

二、填空題

[7.8]以下程序的輸出結(jié)果是.

unsignedfun6(unsignednum)

{unsignedk=l;

do

{k=*=num%10;num/=10;}

while(num);

returnk;

)

main()

{unsignedn=26;

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

)

[7.9]以下程序的輸出結(jié)果是________.

doublesub(doublex,doubley,doublez)

{y-=1.0;

z=z+x;

returnz;

)

mainO

doublea=2.5,b=9.0;

printfsub(b-a,a,a));

)

[7.10]以下程序的輸出結(jié)果是.

funl(inta,intb)

{intc;

a+=a;b+=b;

c=fun2(a,b);

returnc*c;

)

fun2(inta,intb)

int

c=a*b%3;

returnc;

)

main()

{intx=ll,y=19;

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

)

[7,11]下面pi函數(shù)的功能是,根據(jù)以下公式返回滿足精度規(guī)定的的值.請(qǐng)?zhí)羁?

...pi/2=l+l/3+l/3*2/51l/3*2/5*3/7+l/3*2/5*3/7*4/9+...

doublepi(doubleeps)

{doubles=0.0,t=l.0;

intn;

for(;t>eps;n++)

{s+=t;

t=n*t/(2*n+l);

)

return(2.0*);

}

[7,12]以下函數(shù)用以求x的y次方.請(qǐng)?zhí)羁?

doublefun(doublex,inty)

{inti;doublez=l;

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

z=;

returnz;

)n

[7.13]以下程序的功能是計(jì)算5=SK!.請(qǐng)?zhí)羁?

longf(intn)K=1

{inti;longs;

s=;

for(i=l;i<=n;i++)s=;

returns;

)

niain()

{longs;ir.tk,n;

scanf&r.);

s=;

for(k=0;k<=r.;k++)s=s+;

printf(飛ld\「",s);

)

三、程序調(diào)試和編程題

[7.14]以下fun函數(shù)用以判斷n是否是素?cái)?shù),fun函數(shù)中有邏輯錯(cuò),請(qǐng)調(diào)試改正.

fun(intn)

{intk,yes;

for(k=2;k<=r./2;k++)

if(n%k==0)yes=0;

elseyes=l;

returnyes;

)

[7.15]編寫(xiě)函數(shù)intmymod(inta,intb)用以求a被b除之后的余數(shù).

[7.16]編寫(xiě)程序求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+l/n

[7.17]編寫(xiě)函數(shù),根據(jù)整型形參m的值,計(jì)算如下公式的值.

t=l-l/2*2-l/3*3-...

例如,若m=5,則應(yīng)輸出0.536389.

[7.18]編寫(xiě)函數(shù)用以求表達(dá)式x*x-5*x+4,x作為參數(shù)傳送給函數(shù),調(diào)用此函數(shù)求:

y1=2*2-5*2+4

y2=(x+15)*(x+15)-5*(x+15)+4

y3=sinx*sinx-5*sir.x+4

第八章指針

一、選擇題

[8.1]若有定義:intx,*pb;則在以下對(duì)的的賦值表達(dá)式是

A)pb=&xB)pb=xC)*pb=&xD)*pb=*x

[8.2]以下程序的輸出結(jié)果是

A)因變量無(wú)定義輸出不定值B)0C)-1D)1

^include"stdio.h"

main()

{printf("%d\n",NULL);)

[8.3]以下程序的輸出結(jié)果是

A)5,2,3B)-5,-12,-7C)-5,-12,-7D)5,-2,-7

voidsub(intx,inty,int*z)

{*z=y-x;}

mainO

{inta,b,c;

sub(1(),5,&a);sub(7,a,&b);sub(a,b,&c);

printf(“為d,%c,%d\n,z,a,b,c);

)

[8.4]以下程序的輸出結(jié)果是

A)4B)6C)8[))1()

main()

{intk=2,m=4,r.=6;

int*pk=&k,*p;

*(p=&n)=*pk*(*pm);

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

)

[8.5]已知指針P的指向如圖8.5所示,則表達(dá)式*P++的值是

A)20B)30C)21D)31

a[0]a[l]a[2]a[3]a[4]

I

20

30

4()

50

p

圖&5

[8.6]已知指針P的指向如圖8.5所示,則表達(dá)式*++P的值是

A)20B)30C)21D)31

[8.7]已知指針P的指向如圖8.5所示,則表達(dá)式++*P的值

A)20B)30C)21D)31

[8.8]以下程序的輸出結(jié)果是

A)23B)24C)25D)26

voidprtv(int*x)

{printf(飛d\n",++*x);}

mainO

{inta=25;

prtv(&a);

}

[8.9]以下程序的輸出結(jié)果是

A)運(yùn)營(yíng)犯錯(cuò)B)100C)a的地址D)b的地址

main()

{int**k,*a,b=10C;

j=&b;k=&a;

printf("%d\n〃,**k);

)

[8.10]以下程序的輸出結(jié)果是

A)4,3B)2,3C)3,4I))3,2

voidfun(float*a,float*b)

{floatw;

*a=*a+*a;

w=*a;

*a=*b;

*b=w;

}

main()

{floatx=2.0,7=3.0;

foaat*px=&x,*p7=&y;

fun(px,py);

printfC%2.Of,%2.Of\nw,x,y);

)

[8.11]以下程序的輸出結(jié)果是

A)9.000000B)1.500000

C)8.000000D)10.500000

voidsub(floatx,float*y,float*z)

{*y=*y-l.0;

*z=*z+x;

)

main()

{floata=2.5,b=9.0,*pa,*pb;

pa=&a;pb=&b;

sub(b-a,pa,pa);

,,

printf(:%f\n>a);

溫馨提示

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