![C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第1頁](http://file4.renrendoc.com/view/fdef0064921ef4442d9ecb1525ec87d5/fdef0064921ef4442d9ecb1525ec87d51.gif)
![C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第2頁](http://file4.renrendoc.com/view/fdef0064921ef4442d9ecb1525ec87d5/fdef0064921ef4442d9ecb1525ec87d52.gif)
![C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第3頁](http://file4.renrendoc.com/view/fdef0064921ef4442d9ecb1525ec87d5/fdef0064921ef4442d9ecb1525ec87d53.gif)
![C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第4頁](http://file4.renrendoc.com/view/fdef0064921ef4442d9ecb1525ec87d5/fdef0064921ef4442d9ecb1525ec87d54.gif)
![C語言程序設(shè)計(jì)(其次版)習(xí)題參考答案1_第5頁](http://file4.renrendoc.com/view/fdef0064921ef4442d9ecb1525ec87d5/fdef0064921ef4442d9ecb1525ec87d55.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦產(chǎn)品供貨協(xié)議合同
- 有車輛的離婚協(xié)議書
- 北京商品房認(rèn)購(gòu)協(xié)議書
- 農(nóng)業(yè)種植技術(shù)指導(dǎo)書
- 純技術(shù)入股合作的協(xié)議書
- 湖南離婚協(xié)議書年
- 三農(nóng)村土地整治與開發(fā)方案
- 托管班合作協(xié)議書
- 股權(quán)融資合同書
- 標(biāo)準(zhǔn)汽車租賃合同協(xié)議
- 第五講鑄牢中華民族共同體意識(shí)-2024年形勢(shì)與政策
- 2024年貴州公務(wù)員考試申論試題(B卷)
- 抑郁癥課件教學(xué)課件
- 關(guān)于消防安全評(píng)估設(shè)備操作說明詳解
- 2025年高考作文專練(25道真題+審題立意+范文)- 2025年高考語文作文備考總復(fù)習(xí)
- 二十屆三中全會(huì)精神應(yīng)知應(yīng)會(huì)知識(shí)測(cè)試30題(附答案)
- 《烏有先生歷險(xiǎn)記》原文及翻譯
- 人員測(cè)評(píng)方案
- 簡(jiǎn)易呼吸器的使用和心肺復(fù)蘇-3
- 第一課 追求向上向善的道德(課時(shí)1)(課件)
評(píng)論
0/150
提交評(píng)論