C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第1頁
C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第2頁
C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第3頁
C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第4頁
C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1

C語言程序設(shè)計(jì)習(xí)題參考答案

習(xí)題1

一、判斷題

1.在計(jì)算機(jī)中,小數(shù)點(diǎn)和正負(fù)號(hào)都有專用部件來保存和表示。2.二進(jìn)制是由0和1兩個(gè)數(shù)字組成的進(jìn)制方式。

3.二進(jìn)制數(shù)的規(guī)律運(yùn)算是按位進(jìn)行的,位與位之間沒有進(jìn)位和借位的關(guān)系。4.在整數(shù)的二進(jìn)制表示方法中,0的原碼、反碼都有兩種形式。5.有符號(hào)數(shù)有三種表示法:原碼、反碼和補(bǔ)碼。

6.常用字符的ASCII碼值從小到大的排列規(guī)律是:空格、阿拉伯?dāng)?shù)字、大寫英文字母、小寫英文字母。

解:1.F2.T3.T4.T5.T6.T二、單項(xiàng)選擇題

1.在計(jì)算機(jī)中,最適合進(jìn)行數(shù)值加減運(yùn)算的數(shù)值編碼是。

A.原碼B.反碼C.補(bǔ)碼D.移碼

2.已知英文小寫字母m的ASCII碼為十進(jìn)制數(shù)109,則英文小寫字母y的ASCII碼為十進(jìn)制數(shù)。

A.112B.120C.121D.1223.關(guān)于ASCII碼,在計(jì)算機(jī)中的表示方法確鑿地描述是。

A.使用8位二進(jìn)制數(shù),最右邊一位為1B.使用8位二進(jìn)制數(shù),最左邊一位為1C.使用8位二進(jìn)制數(shù),最右邊一位為0D.使用8位二進(jìn)制數(shù),最左邊一位為04.設(shè)在機(jī)器字長(zhǎng)4位,X=0111B,Y=1011B,則以下規(guī)律運(yùn)算中,正確的是___________。

A.X∧Y=1000B.X∨Y=1111C.X⊕Y=0011D.=1000Y5.以下表達(dá)中正確的是()。

A.高級(jí)語言就是機(jī)器語言

B.匯編語言程序、高級(jí)語言程序都是計(jì)算機(jī)程序,但只有機(jī)器語言程序才是計(jì)算

機(jī)可以直接識(shí)別并執(zhí)行的程序

C.C語言由于具有匯編語言的一些特性,所以是匯編語言的一種

D.C源程序經(jīng)過編譯、連接,若正確,執(zhí)行后就能得到正確的運(yùn)行結(jié)果6.用C語言編寫的源程序經(jīng)過編譯后,若沒有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將()。

A.生成可執(zhí)行文件B.生成目標(biāo)文件C.輸出運(yùn)行結(jié)果D.自動(dòng)保存源文件7.以下表達(dá)中不正確的是()。

A.main函數(shù)在C程序中必需有且只有一個(gè)

B.C程序的執(zhí)行從main函數(shù)開始,所以main函數(shù)必需放在程序最前面C.函數(shù)可以帶參數(shù),也可以不帶參數(shù)。

D.每個(gè)函數(shù)執(zhí)行時(shí),按函數(shù)體中語句的先后次序,依次執(zhí)行每條語句

解:1.C2.C3.D4.B5.B6.B7.B三、填空題

1.(87.625)10=()2=()8=(162.(1001010111001.10111)2=()8=(16=(103.輸入三個(gè)數(shù),計(jì)算并輸出三個(gè)數(shù)的和與三個(gè)數(shù)的乘積。程序如下:

#includestdio.hvoidmain(){

inta,b,c,s,z;

printf(Pleaseinputabc:\n);

s=a+b+c;printf(%d\n,s);}*4.輸入三角形三條邊的邊長(zhǎng),計(jì)算并輸出三角形的面積。根據(jù)三條邊的邊長(zhǎng),計(jì)算三角形面積的公式如下:

xyz

面積其中s2

程序如下:

#includestdio.h#includemath.hvoidmain(){

doublex,y,z,s,dime;scanf(%lf%lf%lf,x,y,z);

dime=sqrt(s*(s-x)*(s-y)*(s-z));}解:1.1010111.101127.557.A

2.11271.5612B9.B84793.71875

3.scanf(%f%f%f,a,b,c);z=a*b*c;printf(%f,z);4.s=(x+y+2)/2;printf(%f,dim);四、編程題

1.仿循例1.1,編程序在屏幕上顯示:

*****************************MerryChristmas!HappyNewYear!

*****************************解:#includestdio.hvoidmain()

{printf(*****************************\n);printf(MerryChristmas!\n);

printf(HappyNewYear!\n);

printf(*****************************\n);}

2.仿循例1.2編程,輸入一個(gè)整數(shù),計(jì)算這個(gè)數(shù)的平方。解:#includestdio.hvoidmain(){inta,z;

printf(請(qǐng)輸入一個(gè)整數(shù):\n);scanf(%d,a);

z=a*a;

printf(%d*%d=%d\n,a,a,z);

}

*3.仿循例1.3編程,輸入兩個(gè)數(shù)后,輸出其中較小值。解:#includestdio.h

floatmin(floatx,floaty){floatm;if(xy)m=x;elsem=y;

returnm;}

voidmain()

{floata,b,c,mindata;

printf(請(qǐng)輸入二個(gè)數(shù):\n);scanf(%f%f,a,b);

mindata=min(a,b);printf(較小數(shù):%f\n,mindata);}

*4.仿循例1.2編程,輸入a、b后,輸出一元一次方程ax+b=0的解。解:#includestdio.hvoidmain()

{floata,b,x;

printf(請(qǐng)輸入a、b:\n);scanf(%f%f,a,b);x=-a/b;printf(x=%f\n,x);}

*5.仿循例1.2編程,輸入圓柱體的半徑和高,計(jì)算并輸出圓柱體的體積。解:#includestdio.hvoidmain()

{floatr,h,s,v;

printf(Pleaseinputrandh:\n);scanf(%f%f,r,h);v=3.14*r*r*h;

printf(V=%f\n,v);

}

習(xí)題2

一、判斷題

1.任何變量都必需要定義其類型。

2.C語言的double類型數(shù)據(jù)在其數(shù)值范圍內(nèi)可以表示任何實(shí)數(shù)。3.C語言的任何類型數(shù)據(jù)在計(jì)算機(jī)內(nèi)都是以二進(jìn)制形式存儲(chǔ)的。4.isdigit(5)的結(jié)果為0。

5.printf函數(shù)中格式符“%c〞對(duì)應(yīng)的參數(shù)只能是字符類型。

6.按格式符“%d〞輸出float類型變量時(shí),截?cái)嘈?shù)位取整后輸出。7.在C語言程序中,ABC與abc是兩個(gè)一致的變量。8.scanf函數(shù)中的格式符“%d〞不能用于輸入實(shí)型數(shù)據(jù)。9.格式符“%f〞不能用于輸入double類型數(shù)據(jù)。

10.當(dāng)格式符中指定寬度時(shí),輸出的信息完全取決于所指定的寬度。解:(1)T(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T(10)F二、指出以下各項(xiàng)中哪些是C語言中的常量,并指出其類型

10,150007–0x3dπ1e0e1o7o8xxo1.52e0.5sin(3)0xf16\a\0091.414E+22.54\\a+20x100h012810L解:合法的C常量有:

整型常量:007–0x3d0xf1610L實(shí)型常量:1e01.414E+2

字符型常量:x\a\\三、指出以下各項(xiàng)中哪些是C語言中的用戶標(biāo)識(shí)符

x_1X_2Highprintfβ3DSi/je2-e2countIntnumber$23next_sizeofIFsum_12_123#NO1:doublefor

解:C的用戶標(biāo)識(shí)符有:x_1X_2Highe2countIntnumber

next_IFsum_12四、單項(xiàng)選擇題

1.C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是()。A.原碼B.反碼C.補(bǔ)碼D.ASCII碼2.若有定義語句“charc='\72';〞則變量c()。

A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.定義不合法3.C語言中的基本數(shù)據(jù)類型包括()。A.整型、實(shí)型、規(guī)律型B.整型、實(shí)型、字符型C.整型、規(guī)律型、字符型D.整型、實(shí)型、規(guī)律型、字符型4.設(shè)c1、c2為字符型變量,執(zhí)行語句“c1=getchar();c2=getchar();〞時(shí),從鍵盤輸入A↙,c1和c2的值分別為()。

A.都是‘A’B.c1是‘A’,c2未輸入

C.c1未輸入,c2是‘A’D.c1是‘A’,c2是‘\n’5.a(chǎn)、b是整型變量,執(zhí)行語句“scanf(a=%d,b=%d,a,b);〞,使a和b的值分別為1和2,正確的輸入是()。

A.12B.1,2C.a(chǎn)=1,b=2D.a(chǎn)=1b=26.設(shè)c為字符型變量值為‘A’,a為整型變量值為97,執(zhí)行語句“putchar(c);putchar(a);〞后,輸出結(jié)果為()。

A.AaB.A97C.A9D.a(chǎn)A

7.已知字母A的ASCII碼值為65,以下語句段的輸出結(jié)果是()。

charc1='A',c2='Y';printf(%d,%d\n,c1,c2);A.輸出格式非法,輸出錯(cuò)誤信息B.65,90C.A,YD.65,89

8.若要使用輸入語句“scanf(%4d%4d%10f,i,j,x);〞,為i輸入-10,為j輸入12,為x輸入345.67,則正確的輸入形式是()。

A.–1012345.67↙B.–1012345.67↙C.–10001202345.67↙D.–10,12,345.67↙9.能正確地定義符號(hào)常量的是()。

A.#definen=10B.#definen10C.#definen10;D.#DEFINEN1010.在C語言中,int、char、short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)()。A.由用戶自己定義B.均為2個(gè)字節(jié)C.是任意的D.由機(jī)器字長(zhǎng)決定

解:(1)D(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D五、填空題

1.charch='$';floatx=153.4523;語句“printf(%c%–8.2f\\n,ch,x);〞的輸出結(jié)果是。解:$153.45\n

2.inti=123;floatx=–1234.56789;語句“printf(i=%5dx=%7.3f\n,i,x);〞的輸出結(jié)果是。解:i=123x=-1234.568

3.charc='a';inta=65;語句“putchar(c+1);putchar(a);〞的輸出結(jié)果是。解:bA

4.inta=98;

語句“printf(“%d,%c,%o,%x〞,a,a+1,a+2,a+3);〞的輸出結(jié)果是。解:98,c,144,65

5.intk;floatf;

語句“scanf(“%3d%*4d%6f〞,k,f);〞執(zhí)行時(shí)輸入12345678765.43↙則k=,f=。解:k=123f=8765.4

6.使用pow()函數(shù)時(shí),程序的開頭必需寫一條預(yù)處理命令:解:#includemath.h5.填空題。

(1)inti=123,j=45;

函數(shù)printf(%d,%d\n,i,j);的輸出結(jié)果是。解:123,45

(2)inti=123;floatx=-45.678;

語句printf(i=%5dx=%7.4f\n,i,x);的輸出結(jié)果是。解:i=123x=-45.6780(3)floatalfa=60,pi=3

習(xí)題3

一、根據(jù)以下數(shù)學(xué)式,寫出C的算術(shù)表達(dá)式。

1

abcd

cd

a2b

cd

(a2b3)y4

210tan1x

4

2

sin(x)|3.5x6e5

解:-(a+b)y的C表達(dá)式:-(a*a+b*b)*pow(y,4)

22

2102

的C表達(dá)式:(sqrt(2)+10*10)/(pow(tan(x),-1)+3.141593)1

tanx

|sin(x)|

6

5

3.5

的C表達(dá)式:sqrt(pow(fabs(sin(x)),3.5))

xe的C表達(dá)式:pow(x,6)-exp(5)

1

abcd2的C表達(dá)式:(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)

cd

a2b

cd

二、依照要求,寫出以下C的表達(dá)式。

1.寫出int類型變量x為“奇數(shù)〞的表達(dá)式。解:x%2==1

2.Int類型變量x、y、z,寫出描述“x或y中有且僅有一個(gè)小于z〞的表達(dá)式。解:xzy=z||x=zyz

3.將double類型變量y保存四位小數(shù)的表達(dá)式。解:(int)(y*10000+0.5)/10000.0

4.為變量s賦值:取變量x的符號(hào),取變量y的絕對(duì)值。解:s=(x=0?1:-1)*(y=0?y:-y)

5.條件“-5≤x≤3〞所對(duì)應(yīng)的C規(guī)律表達(dá)式。解:-5=xx=3

6.a(chǎn)、b是字符變量,已知a的值為大寫字母、b的值為小寫字母,寫出判斷a、b是否為同一字母(不區(qū)分大小寫)的規(guī)律表達(dá)式解:a+32==b或b-a==32?1:0

7.int類型變量a、b均為兩位正整數(shù),寫出判斷a的個(gè)位數(shù)等于b的十位數(shù)、且b的個(gè)位數(shù)等于a的十位數(shù)的規(guī)律表達(dá)式。解:a%10==b/10a/10==b%10

8.寫出判斷某個(gè)人是否是成年人(年齡大于21),且不是老年人(年齡大于65)的規(guī)律表達(dá)式。

解:y21y=65

9.寫出取變量a、b、c中最大值的條件表達(dá)式。解:(ab?a:b)c?(ab?a:b):c

10.若字符變量ch為小寫字母,則將其轉(zhuǎn)換為對(duì)應(yīng)的大寫字母。

解:ch=ch='a'ch='z'?ch-32:ch三、單項(xiàng)選擇題

1.設(shè)intx=3,y=4,z=5;,以下表達(dá)式中值為0的是()。

A.'x''y'B.x=yC.x||y+zy–zD.!((xy)!z||1)2.已知x=10,ch='A',y=0;,則表達(dá)式“x=ych'B'!y〞的值是()。A.0B.1C.“假〞D.“真〞3.判斷char型變量c為數(shù)字字符的正確表達(dá)式為()。

A.'0'=c='9'B.'0'=cc='9'C.c='0'||c='9'D.c=0c=94.以下運(yùn)算符中,優(yōu)先級(jí)最低的是()。A.?:B.C.==D.*=5.若有條件表達(dá)式“x?a++:b--〞,則以下表達(dá)式中()等價(jià)于表達(dá)式x。A.x==0B.x!=0C.x==1D.x!=16.有定義intk=4,a=3,b=2,c=1;,表達(dá)式“ka?k:cb?c:a〞的值是()。A.4B.3C.2D.17.執(zhí)行以下程序段后,變量a,b,c的值分別是()。intx=10,y=9,a,b,c;

a=(--x==y++)?--x:++y;b=x++;c=y;A.a(chǎn)=9,b=9,c=9B.a(chǎn)=8,b=8,c=10C.a(chǎn)=9,b=10,c=9D.a(chǎn)=1,b=11,c=108.有定義inta=9;,語句“a+=a–=a+a;〞執(zhí)行后,變量的值是()。A.18B.9C.–18D.–99.設(shè)x和y均為int型變量,則語句“x+=y;y=x–y;x–=y;〞的功能是()。A.把x和y按從小到大排列B.把x和y按從大到小排列C.無確定結(jié)果D.交換x和y中的值10.有定義doublex=1,y;,表達(dá)式“y=x+3/2〞的值是()。

A.1B.2C.2.0D.2.511.設(shè)有定義intx;doubley;,則以下表達(dá)式中結(jié)果為整型的是()。

A.(int)y+xB.(int)x+yC.int(y+x)D.(double)x+y12.設(shè)有整型變量x,以下說法中,錯(cuò)誤的是()。

A.“5.0〞不是表達(dá)式B.“x〞是表達(dá)式C.“!x〞是表達(dá)式D.“sqrt(x)〞是表達(dá)式

解:(1)D(2)B(3)B(4)D(5)B(6)D(7)B(8)C(9)D(10)C(11)A(12)A四、填空題。

1.設(shè)floatx=2.5,y=4.7;inta=7;,表達(dá)式x+a%3*(int)(x+y)%2/4值為。解:2.5

2.設(shè)intx=2,y=3;,執(zhí)行語句“x*=x+y〞后x的值為解:10

3.設(shè)intx=17,y=5;,執(zhí)行語句“x%=x–y〞后x的值為解:5

4.設(shè)inta=6,b=4,c=2;,表達(dá)式!(a-b)+c-1b-c/2的值為。解:1

5.設(shè)inta=2,b=4,x,y;,表達(dá)式!(x=a)||(y=b)!(2-3.5)的值為解:0

6.判斷變量a、b是否絕對(duì)值相等而符號(hào)相反的規(guī)律表達(dá)式為解:a==-b

7.判斷變量a、b中必有且只有一個(gè)為0的規(guī)律表達(dá)式為。解:a*b==0a+b!=0

8.設(shè)intm=2,n=2,a=1,b=2,c=3;執(zhí)行語句d=(m=a==b)(n=bc);后,m和n的值分別為。

解:m為0,n為29.設(shè)inta=2;,表達(dá)式“a%2!=0〞的值為。解:0

10.設(shè)charc='y';,表達(dá)式“c='a'c='z'||c='A'c='Z'〞的值為解:1

x+2

11.寫出與代數(shù)式(x+2)e對(duì)應(yīng)的C表達(dá)式。解:(x+2)*exp(x+2)

12.設(shè)inta=2;執(zhí)行語句a=3*5,a*4;后a的值為解:15五、寫出以下程序的輸出結(jié)果。

1.

#includestdio.hvoidmain(){

unsignedk,n;

scanf(%u,n);//輸入數(shù)據(jù)為:69k=n%10*10+n/10;

printf(n=%dk=%d\n,n,k);}

解:n=69k=962.

#includestdio.hvoidmain(){

intx=2,y=3;x*=y+4;

printf(%d,%d\n,x,y);x/=y=5;

printf(%d,%d\n,x,y);x-=y%2;

printf(%d,%d\n,x,y);}解:14,3

2,51,5

3.

#includestdio.hvoidmain(){

inta,b;a=8;b=7;

a=(a--==b++)?a%3:a/3;printf(a=%db=%d\n,a,b);}

解:a=2b=8六、程序填空題。

1.以下程序輸入三個(gè)整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,交換后輸出a、b、c的值。例如輸入123,輸出a=2b=3c=1。#includestdio.hvoidmain()

{inta,b,c,①;

printf(“Entera,b,c:〞);scanf(“%d%d%d〞,②);③;a=b;b=c;④;

printf(“a=%db=%dc=%d\n〞,a,b,c);}

解:①t②a,b,c③t=a④c=t

2.以下程序不借助任何變量把a(bǔ)、b中的值進(jìn)行交換。#includestdio.hvoidmain(){inta,b;

printf(“Inputa,b:〞);scanf(“%d%d〞,①);

a+=②;b=a-③;a-=④;printf(“a=%db=%d\n〞,a,b);}

解:①a,b②b③b④b七、編程題。

1.輸入3個(gè)字符后,按各字符ASCII碼從小到大的順序輸出這些字符。解:#includestdio.hvoidmain()

{charc1,c2,c3,t,min,mid,max;

c1=getchar();c2=getchar();c3=getchar();min=(t=c1c2?c1:c2)c3?t:c3;

max=(t=c1c2?c1:c2)c3?t:c3;mid=c1+c2+c3-min-max;putchar(min);putchar(mid);putchar(max);

}

2.輸入兩點(diǎn)坐標(biāo)(x1,y1)、(x2,y2),計(jì)算并輸出兩點(diǎn)間的距離。解:#includestdio.h

#includemath.hvoidmain(){

doublex1,y1,x2,y2,d;

printf(“請(qǐng)輸入兩點(diǎn)坐標(biāo)(x1,y1),(x2,y2)\n〞);scanf(“(%lf,%lf),(%lf,%lf)〞,x1,y1,x2,y2);d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));printf(“兩點(diǎn)間距離=%f\n〞,d);}

3.編寫程序,計(jì)算球體積并輸出它的值。要求輸入半徑值,計(jì)算結(jié)果保存三位小數(shù)。解:#includestdio.h#includemath.h#definePI3.1415926voidmain(){doubler,gv;

printf(“請(qǐng)輸入半徑值:\n〞);scanf(“%lf〞,r);gv=4.0/3*PI*pow(r,3);

printf(“半徑為%f的球的體積為:%.3f\n〞,r,gv);

}

4.輸入三角形的底和高,求三角形面積。

解:#includestdio.h#definePI3.14159voidmain(){

doublea,h,s;

printf(“請(qǐng)輸入三角形的底,高\(yùn)n〞);scanf(“%lf,%lf〞,a,h);s=a*h/2;

printf(“三角形面積=%f\n〞,s);

}

5.編寫程序,輸入一個(gè)實(shí)數(shù)后輸出該數(shù)的絕對(duì)值。

解:#includestdio.hvoidmain(){

doublex,y;

printf(“請(qǐng)輸入一個(gè)實(shí)數(shù)\n〞);scanf(“%lf〞,x);y=x=0?x:-x;

printf(“|%g|=%g\n〞,x,y);}

6.輸入梯形的上底、下底和高,求梯形面積。

解:#includestdio.hvoidmain(){

doublea,b,h,s;

printf(“請(qǐng)輸入梯形的上底,下底,高\(yùn)n〞);scanf(“%lf,%lf,%lf〞,a,b,h);s=(a+b)*h/2;

printf(“梯形面積=%f\n〞,s);}

7.輸入矩形的邊長(zhǎng),求矩形面積。

解:#includestdio.hvoidmain(){

doublea,b,s;

printf(“請(qǐng)輸入矩形的長(zhǎng),寬\n〞);scanf(“%lf,%lf〞,a,b);s=a*b;

printf(“矩形面積=%f\n〞,s);}

8.已知等差數(shù)列的第一項(xiàng)為a,公差為d,求前n項(xiàng)之和,a、d、n由鍵盤輸入。

解:#includestdio.hvoidmain(){

inta,d,n,sum;

printf(“請(qǐng)輸入等差數(shù)列的首項(xiàng)公差項(xiàng)數(shù)\n〞);scanf(“%d%d%d〞,a,d,n);sum=a*n+n*(n-1)*d/2;

printf(“sum=%d\n〞,sum);}

9.編寫程序,將d天h小時(shí)m分鐘換算成分鐘,輸入d、h、m,輸出換算結(jié)果。

解:#includestdio.hvoidmain(){

intd,h,m,t;

printf(“請(qǐng)輸入天小時(shí)分鐘\n〞);scanf(“%d%d%d〞,d,h,m);t=d*24*60+h*60+m;

printf(“%d天%d小時(shí)%d分鐘=%d分鐘\n〞,d,h,m,t);}

10.編寫程序,求出給定半徑r的圓以及內(nèi)接正n邊形的面積,輸出計(jì)算結(jié)果。r和n的值由鍵盤輸入。

解:#includestdio.h#includemath.h#definePI3.14159voidmain(){

doubler,s1,s2;intn;

printf(“Inputrn\n〞);scanf(“%lf%d〞,r,n);s1=PI*r*r;

s2=n/2.0*r*r*sin(2*PI/n);

printf(“圓面積=%f,正內(nèi)接%d邊形面積=%f\n〞,s1,s2);}

習(xí)題4

一、單項(xiàng)選擇題

1.以下語句將小寫字母轉(zhuǎn)換為大寫字母,其中正確的是()。

A.if(ch='a'ch='z')ch=ch-32;B.if(ch='a'ch='z')ch=ch-32;C.ch=(ch='a'ch='z')?ch-32:'';D.ch=(ch'a'ch'z')?ch-32:ch;

2.以下各語句中,能夠?qū)⒆兞縰、s中最大值賦給變量t的是()。

A.if(us)t=u;t=s;B.t=s;if(us)t=u;C.if(us)t=s;elset=uD.t=u;if(us)t=s;

3.假設(shè)變量x、k都已定義,以下語句片段中,無語法錯(cuò)誤的是()。

A.switch(x){

casex=90:putchar('A');casex60:putchar('E');}

B.switch(x){

case1+2:k='A';defualt:k='E';case2*4:k='B';}

C.switch(x){

case2+x:k=x-2;case3*x:k=x+3;default:k=0;}

D.switch(x){

case3.5:k=0.5*x;case7.8:k=8*x;default:k=0;}

*4.與語句while(!s)中的條件等價(jià)的是()。

A.s==0B.s!=0C.s==1

D.s=0

5.以下語句中,哪一個(gè)可以輸出26個(gè)大寫英文字母()。

A.for(a='A';a='Z';printf(%c,++a));B.for(a='A';a'Z';a++)printf(%c,a);C.for(a='A';a='Z';printf(%c,a++));D.for(a='A';a'Z';printf(%c,++a));

6.判斷下面的while循環(huán)體的執(zhí)行次數(shù)()。

i=0;k=10;

while(i=8)i=k––;

A.8次B.10次C.2次D.無數(shù)次

解:(1)B(2)B(3)B(4)A(5)C(6)D二、寫出以下程序的輸出結(jié)果1.#includestdio.h

voidmain(){

charx;

intn=0,k=0;

while((x=getchar())!='#'){//運(yùn)行時(shí)輸入:athefthethe

there#

switch(x){

case't':k++;break;

case'h':if(k==1)k++;break;case'e':if(k==2)k++;break;default:k=0;}

if(k==3)n++;}printf(%d\n,n);}解:3

*2.

#includestdio.h

voidmain(){

intk=0;charc='A';

do{

switch(c++){

case'A':k++;break;case'B':k--;

case'C':k+=2;break;case'D':k=k%2;break;case'E':k=k*10;break;default:k=k/3;

}k++;

}while(c'G');

printf(k=%d\n,k);}

解:k=8

*3.

#includestdio.h#includectype.hvoidmain(){

chara,b,x;inti;do

x=getchar();//運(yùn)行時(shí)輸入:2abcDwhile(isupper(x)==0);

for(a='A';a=x;a++){for(b='A';b'A'+x-a;b++)putchar('');for(i=1;i=2*(a-'A')+1;i++)putchar(a);

putchar('\n');}}

注:isupper(x)是判斷x是否大寫字母的函數(shù),假使x是大寫字母函數(shù)值為1

否則為0。

解:ABBBCCCCC

DDDDDDD4.

#includestdio.hvoidmain(){

inti,n;

scanf(%d,n);//輸入2520i=2;

while(n1)if(n%i==0){

printf(%d\t,i);n/=i;}

elsei++;printf(\n);}

解:2223357

三、填空題

1.求1~10的乘積,寫作:

for(,i=1;i=10;++i)s*=i;

解:s=1

2.下面程序段執(zhí)行后,x、y的值分別為

y=1;x=5;

while(x){x--;y++;}

解:x、y分別為0和6

*3.輸入若干個(gè)以問號(hào)終止的字符,同時(shí)輸出這串字符(不包括問號(hào));

while(!='?')putchar(ch);

解:(ch=getchar())//注意外面的這對(duì)括號(hào)不能少

*4.有以下程序片段:

s=1.0;

for(k=1;k=n;k++)s+=1.0/(k*(k+1));printf(%f\n,s);填空,使下程序段與上程序段功能完全一致。

s=0.0;

;k=0;do

{s+=d;

;d=1.0/(k*(k+1));}

while();printf(%f\n,s);

解:d=1k++k=n

5.以下程序輸出6~10000之間的親近數(shù)對(duì),填空將程序補(bǔ)充完整。若a、b是親近數(shù)對(duì),則a的因子和等于b,b的因子和等于a,且a不等于b。

#includestdio.hvoidmain()

{inta,b,c,i;

for(a=6;a=10000;a++){b=1;

for(i=2;i=a/2;i++)

if()b+=i;

for(i=2;i=b/2;i++)if(b%i==0)c+=i;

if(a!=b)

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

解:a%i==0c=1;c==a

6.計(jì)算2+22+222+2222++22++2的和。

nn

voidmain()

{ints=1,t=1,a,n;scanf(%dn);

for(inti=2;i=n;i++){t=t*10+1;}

printf(SUM=%d\n,s);}

解:a=2;s+=t;s*=a;

四、編程題

1.輸入一個(gè)實(shí)數(shù),輸出它的平方根值,假使輸入數(shù)小于0,則輸出“Thenumberiserror!〞的提醒。

解:#includestdio.h

#includemath.hvoidmain(){

doublea,x;

printf(“Inputdata:\n〞);scanf(“%lf〞,a);if(a=0){

x=sqrt(a);

printf(“%g的平方根值為%g\n〞,a,x);}

else

printf(“Thenumberiserror!\n〞);}

2.用if語句編程序,輸入x后按下式計(jì)算y值,并輸出結(jié)果。

2

x+2*x+100≤x≤8

y=x-3*x3-9x<0或x>8解:#includestdio.h

voidmain(){

doublex,y;

printf(“Inputx:\n〞);scanf(“%lf〞,x);if(x=0x=8)y=x+2*x*x+10;else

y=x-3*x*x*x-10;

printf(“x=%f,y=%f\n〞,x,y);}

3.輸入一個(gè)百分制的成績(jī)t后,按下式輸出它的等級(jí),要求分別寫成if結(jié)構(gòu)和switch結(jié)構(gòu)。等級(jí)為:90~100為“A〞,80~89為“B〞,70~79為“C〞,60~69為“D〞,59~0為“E〞。

if結(jié)構(gòu)

解:#includestdio.h

voidmain(){

doublet;

printf(“Inputscore:\n〞);scanf(“%lf〞,t);if(t=90t=100)putchar(A);

elseif(t=80t90)putchar(B);

elseif(t=70t80)putchar(C);

elseif(t=60t70)putchar(D);elseif(t=0t60)putchar(E);

else

printf(“error!\n〞);

}

switch結(jié)構(gòu)

解:#includestdio.h

voidmain(){

doublet;

printf(“Inputscore:\n〞);scanf(“%lf〞,t);

switch((int)(t/10)){case10:

case9:putchar(A);break;case8:putchar(B);break;

case7:putchar(C);break;case6:putchar(D);break;case5:case4:

}}

case3:case2:case1:

case0:putchar(E);break;default:printf(“error!\n〞);

4.輸入x、y,計(jì)算f(x,y)的函數(shù)值。f(x,y)定義如下:

xyx2y2

f(x,y)

xyxy

22

x0x0x0x0

y0y0y0y0

解:#includestdio.hvoidmain(){

doublex,y,f;

printf(“Inputxy:\n〞);scanf(“%lf%lf〞,x,y);if(x=0y=0)f=x*x+y*y;

elseif(x0y0)f=x*x-y*y;

elseif(x=0y0)f=x+y;

elseif(x0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論