



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)習(xí)題參考答案習(xí)題1ー、判斷題.二進(jìn)制數(shù)的邏輯運(yùn)算是按位進(jìn)行的,位與位之間沒有進(jìn)位和借位的關(guān)系。.在整數(shù)的二進(jìn)制表示方法中,〇的原碼、反碼都有兩種形式。原碼表示法在數(shù)值前面増加了一位符號(hào)位(即最髙位為符號(hào)位):正數(shù)該位為〇,負(fù)數(shù)該位為1(0有兩種表示:+0和一0),其余位表示數(shù)值的大小.反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外。補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。5.有符號(hào)數(shù)有三種表示法:原碼、反碼和補(bǔ)碼。.常用字符的ASCH碼值從小到大的排列規(guī)律是:空格、阿拉伯?dāng)?shù)字、大寫英文字母、小寫英文字母。解:1.F2.T3.T4.T5.T6.T二、單選題1.在計(jì)算機(jī)中,最適合進(jìn)行數(shù)值加減運(yùn)算的數(shù)值編碼是 。A.原碼 B.反碼 C.補(bǔ)碼 D,移碼4.設(shè)在機(jī)器字長4位,X=0111B,丫=1011B,則下列邏輯運(yùn)算中,正確的是。A.XAY=1000 B.XVY=1111 C.X?Y=0011D.Y=10006.用C語言編寫的源程序經(jīng)過編譯后,若沒有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將()〇A,生成可執(zhí)行文件 B,生成目標(biāo)文件6567.下列敘述中不正確的是()?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三、填空題(87.625)io=()2=()8=()16(1001010111001.10111)2=()8=(),6=()io3.輸入三個(gè)數(shù),計(jì)算并輸出三個(gè)數(shù)的和與三個(gè)數(shù)的乘積。程序如下:#include<stdio.h>voidmain()(inta,b,c,s,z;printf(MPleaseinputabc:\nn);s=a+b+c;printf(M%d\nnzs);*4.輸入三角形三條邊的邊長,計(jì)算并輸出三角形的面積。根據(jù)三條邊的邊長,計(jì)算三角形面積的公式如下:其中面依=ys(s-x)(s-y)(s-z)其中程序如下:#include<stdio.h>#include<math.h>voidmain()(doublex,y,z,s,dime;scanf(n%lf%lf%lfH,&xz&yz&z);dime=sqrt(s*(s-x)*(s-y)*(s-z));解:1.1010111.101 127.5 57.A11271.56 12B9.B8 4793.71875scanf("%f%f%F,&a,&b,&c);z=a*b*c;s=(x+y+2)/2; printf("無",dim);四、編程題.仿照例1.1,編程序在屏幕上顯示:★★★★★★★★★★★★★★★★★★★★★★★★★★★★★MerryChristmas!HappyNewYear!★★★★★★★★★★★★★★★★★★★★★★★★★★★★★解:^include<stdio.h>voidmain(){printf("*****************************\n");printf("MerryChristmas!\n");printf(" HappyNewYear!\n");printf("*****************************\n");.仿照例1.2編程,輸入ー個(gè)整數(shù),計(jì)算這個(gè)數(shù)的平方。解:#include<stdio.h>voidmain(){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ù)后,輸出其中較小值。解:#include<stdio.h>floatmin(floatx,floaty){floatm;if(x<y)m=x;else m=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編程,輸入。、b后,輸出ー元一次方程ox+6二〇的解。解:#include<stdio.h>voidmain(){floata,b,x;printf("請(qǐng)輸入a、b:\n");scanfC%f%f",&a,&b);x=-a/b;printf("x二%f\n',x);)*5.仿照例1.2編程,輸入圓柱體的半徑和高,計(jì)算并輸出圓柱體的體積。解:^include<stdio.h>voidmain(){floatr,h,s,v;printf(/zPleaseinputrandh:\n");scanf("%f%f",&r,&h);v=3.14*r*r*h;printf("V=%f\n",v);ー、判斷題.任何變量都必須要定義其類型。.C語言的double類型數(shù)據(jù)在其數(shù)值范圍內(nèi)可以表示任何實(shí)數(shù)。.C語言的任何類型數(shù)據(jù)在計(jì)算機(jī)內(nèi)都是以二進(jìn)制形式存儲(chǔ)的。.isdigit(5)的結(jié)果為〇。.printf函數(shù)中格式符“%c”對(duì)應(yīng)的參數(shù)只能是字符類型。.按格式符“%d”輸出float類型變量時(shí),截?cái)嘈?shù)位取整后輸出。.在C語言程序中,ABC與abc是兩個(gè)相同的變量。.scanf函數(shù)中的格式符“%d”不能用于輸入實(shí)型數(shù)據(jù)。.格式符“%f”不能用于輸入double類型數(shù)據(jù)。.當(dāng)格式符中指定寬度時(shí),輸出的信息完全取決于所指定的寬度。解:⑴T(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T (10)F二、指出下列各項(xiàng)中哪些是C語言中的常量,并指出其類型10,150 007 -0x3d n leOelo7o8‘x' 'xo' 1.52e0.5 sin(3) Oxfl6ヽ009’1.414E+2 2.54 '\\' 'a'+2 OxlOOh012810L解.三、合法的C常量有:整型常量:007 -0x3d Oxfl6 10L實(shí)型常量:leO 1.414E+2字符型常量:'X, '\a' 'W指出下列各項(xiàng)中哪些是C語言中的用戶標(biāo)識(shí)符x_l X_2 High printf P3DSi/je2 —e2 count Int number$23next_sizeof IF sum_12」23# NO1:doublefor解.c的用戶標(biāo)識(shí)符有:x_l X_2Highe2countIntnumber四、next_ IF sum_12單項(xiàng)選擇題1.C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是()。A.原碼 B.反碼 C,補(bǔ)碼D.ASCI!碼.若有定義語句“charc='\72';”則變量c()。A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.定義不合法.C語言中的基本數(shù)據(jù)類型包括()〇A,整型、實(shí)型、邏輯型 B,整型、實(shí)型、字符型C.整型、邏輯型、字符型 D.整型、實(shí)型、邏輯型、字符型.設(shè)cl、c2為字符型變量,執(zhí)行語句“cl=getchar();c2=getchar();n時(shí),從鍵盤輸入A/,cl和c2的值分別為()。A.都是’A' B.cl是'A',c2未輸入C.cl未輸入,c2是‘A' D.cl是'A',c2是‘\n'a、b是整型變量,執(zhí)行語句“scanf("a=%d,b=%d",&a,&b);”,使a和b的值分別為1和2,正確的輸入是()〇A.12B.1,2 C.a=l,b=2D.a=lb=2.設(shè)c為字符型變量值為‘A',a為整型變量值為97,執(zhí)行語句“putchar(c);putchar(a);”后,輸出結(jié)果為()。A.AaB.A97 C.A9 D.aA.已知字母A的ASCII碼值為65,以下語句段的輸出結(jié)果是()。charcl=*A*rc2=*Y*;printf(n%d,clrc2);A.輸出格式非法,輸出錯(cuò)誤信息B.65,90C.A,Y D.65,89.若要使用輸入語句“scanf("%4d%4d%10『,&i,&j,&x):”,為i輸入ー10,為j輸入12,為x輸入345.67,則正確的輸入形式是()。A.-1012345.67/ B.-1012345.67/C.-10001200345.67/ D.-10,12,345.67/.能正確地定義符號(hào)常量的是()?A.#definen=10B.#definen10C.#definen10;D.#DEFINEN10.在C語言中,int、char、short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)().A.由用戶自己定義B,均為2個(gè)字節(jié)C,是任意的D.由機(jī)器字長決定解:⑴D(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D五、填空題charch='$,;floatx=153.4523;語句uprintf(',%c%-8.2f\\n',,ch,x);w的輸出結(jié)果是〇解:$153.45\ninti=123;floatx=-1234.56789;語句“printf("i=%5dx=%フ.3f\n”,i,x);”的輸出結(jié)果是〇解:i=123x=-1234.568charc='a';inta=65;語句“putchar(c+l);putchar(a);”的輸出結(jié)果是〇解:bAinta=98;語句“printf("%d,%c,%o,%x”,a,a+l,a+2,a+3);”的輸出結(jié)果是〇解:98,c,144,65intk;floatf;語句“scanf("%3d%*4d%6ド,&k,&f);”執(zhí)行時(shí)輸入12345678765.43/則k=,f=〇解:k=123 f=8765.4使用pow()函數(shù)時(shí),程序的開頭必須寫一條預(yù)處理命令:〇解:#include<math.h>5.填空題。(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=!23x=-45.6780(3)floatalfa=60,pi=3習(xí)題3一、根據(jù)下列數(shù)學(xué)式,寫出c的算術(shù)表達(dá)式。
c+d
cd~-(a2+b,)xy4 工"j c+d
cd~tanx十萬解:-(a2+b2)Xy4的C表達(dá)式:-(a*a+b*b)*pow(y,4)5/2+10~的「主、4,_|X(sqrt(2)+10*10)/(pow(tan(x),-1)+3.141593)— 的C(sqrt(2)+10*10)/(pow(tan(x),-1)+3.141593)《Isin(x)I"tan-x《Isin(x)I"的C表達(dá)式:sqrt(pow(fabs(sin(x)),3.5))x6—e5的C表達(dá)式:pow(x,6)-exp(5)二 的C表達(dá)式:(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)一,c+da+2b cd二、按照要求,寫出下列C的表達(dá)式。.寫出int類型變量x為“奇數(shù)”的表達(dá)式。解:x%2=l.Int類型變量x、y、z,寫出描述“x或y中有且僅有一個(gè)小于z”的表達(dá)式。解:x<z&&y>=z||x>=z&&y<z.將double類型變量y保留四位小數(shù)的表達(dá)式。解:(int)(y*10000+0.5)/10000.0.為變量s賦值:取變量x的符號(hào),取變量y的絕對(duì)值。解:s=(x>=0?1:-1)*(y>=0?y:-y).條件“-5WxW3”所對(duì)應(yīng)的C邏輯表達(dá)式。解:-5〈=x&&xく=3.a、b是字符變量,已知a的值為大寫字母、b的值為小寫字母,寫出判斷a、b是否為同一字母(不區(qū)分大小寫)的邏輯表達(dá)式解:a+32==b或b-a==32?l;〇.int類型變量a、b均為兩位正整數(shù),寫出判斷a的個(gè)位數(shù)等于b的十位數(shù)、且b的個(gè)位數(shù)等于a的十位數(shù)的邏輯表達(dá)式。解:a%10==b/10&&a/10==b%10.寫出判斷某個(gè)人是否是成年人(年齡大于21),且不是老年人(年齡大于65)的邏輯表達(dá)式。解:y>21&&y<=65.寫出取變量a、b、c中最大值的條件表達(dá)式。解:(a>b?a:b)>c?(a>b?a:b):c.若字符變量ch為小寫字母,則將其轉(zhuǎn)換為對(duì)應(yīng)的大寫字母。解:ch=ch>='aMch<='z'?ch-32:ch三、單項(xiàng)選擇題.設(shè)intx=3,y=4,z=5;,下列表達(dá)式中值為0的是()。A. B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||l).已知x=10,ch='A',y=0;.則表達(dá)式“x>=y&&chぐB'&&!y"的值是(),A.0 B.1 C.“假" D.“真”.判斷char型變量c為數(shù)字字符的正確表達(dá)式為().A.'0'<=c<='9'B.'0'<=c&&c<='9,C.c>='0'||c<='9'D.c>=0&&c<=9.下列運(yùn)算符中,優(yōu)先級(jí)最低的是()?A.?:B.&& C.== D.*=.若有條件表達(dá)式“x?a++:b—”,則以下表達(dá)式中()等價(jià)于表達(dá)式X。A.x==0 B.x!=0 C.x==l D.x!=l.有定義intk=4,a=3,b=2,c=l;,表達(dá)式“k<a?k:c〈b?c:a”的值是()?A.4 B.3 C.2 D.1.執(zhí)行下列程序段后,變量a,b,c的值分別是()。intx=10,y=9,a,b,c;a=(—x==y++)?—x:++y;b=x++;c=y;A.a=9,b=9,c=9 B.a=8,b=8,c=10C.a=9,b=10,c=9 D.a=l,b=l1,c=10.有定義inta=9;,語句“a+=a-=a+a;”執(zhí)行后,變量的值是()?A.18B.9 C.-18 D.-9.設(shè)x和y均為int型變量,則語句“x+=y;y=x-y;x-=y:”的功能是()〇A,把x和y按從小到大排列 B.把x和y按從大到小排列C.無確定結(jié)果 D.交換x和y中的值.有定義doublex=l,y;,表達(dá)式“y=x+3/2”的值是().A.1B.2 C.2.0 D.2.5.設(shè)有定義intx;doubley;,則下列表達(dá)式中結(jié)果為整型的是()〇A.(int)y+xB.(int)x+yC.int(y+x)D.(double)x+y.設(shè)有整型變量x,下列說法中,錯(cuò)誤的是(A.“5.0”不是表達(dá)式 B.“x”是表達(dá)式C.“!x”是表達(dá)式 D.“sqrt(x)”是表達(dá)式解:⑴D(2)B(3)B(4)D(5)B(6)D(7)B(8)C(9)D(10)C(11)A(12)A四、填空題。.設(shè)floatx=2.5,y=4.7;inta=7;,表達(dá)式x+a%3*(int)(x+y)%2/4值為解:2.5.設(shè)intx=2,y=3;,執(zhí)行語句“x*=x+y”后x的值為。解:10.設(shè)intx=17,y=5;,執(zhí)行語句"x%=x-y”后x的值為〇解:5.設(shè)inta=6,b=4,c=2;,表達(dá)式!(a-b)+c-l&&b-c/2的值為〇解:1.設(shè)inta=2,b=4,x,y;,表達(dá)式!(x=a)丨丨(y=b)&&!(2-3.5)的值為〇解:0.判斷變量a、b是否絕對(duì)值相等而符號(hào)相反的邏輯表達(dá)式為0解:a==-b.判斷變量a、b中必有且只有一個(gè)為〇的邏輯表達(dá)式為.解:a*b==0&&a+b!=0.設(shè)intm=2,n=2,a=l,b=2,c=3;執(zhí)行語句d=(m=a==b)&&(n=b>c);后,為0解:m為〇,n為2.設(shè)inta=2;,表達(dá)式“a%2!=〇”的值為?解:〇.設(shè)charc='y';,表達(dá)式“c>='a'&&c<=,z'||c>='A,&&c<=Z”的值為解:1.寫出與代數(shù)式(x+2)e"2對(duì)應(yīng)的C表達(dá)式.解:(x+2)*exp(x+2).設(shè)inta=2;執(zhí)行語句a=3*5,a*4;后a的值為。解:15五、寫出下列程序的輸出結(jié)果。#include<stdio.h>voidmain(){unsignedk,n;scanf(n%uMz&n); 〃輸入數(shù)據(jù)為:69k=n%10*10+n/10;printf(Mn=%dk=%d\nMzn,k);)解:n=69 k=96?include<stdio.h>voidmain()(intx=2zy=3;x*=y+4;printf(n%dz%d\nnzxzy);x/=y=5;printf(M%dz%d\n",xzy);x-=y%2;printf(n%dz%d\nnzxzy);}解:14,32,51,5?include<stdio.h>voidmain()(intazb;a=8;b=7;a=(a--==b++)?a%3:a/3;printf(na=%db=%d\n",a,b);解:a=2b=8六、程序填空題。.以下程序輸入三個(gè)整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,交換后輸出a、b、c的值。例如輸入123(輸出a=2b=3c=Ettinclude<stdio.h>voidmain(){inta,b,c,(D;printf(wEntera,b,c:w);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.以下程序不借助任何變量把a(bǔ)、b中的值進(jìn)行交換。#include<stdio.h>voidmain(){inta,b;printf("Inputa,b:");scanf("%d%d”, ①);a十二 ② ;b=a-③ ;a-= ④ ;printf(wa=%db=%d\n”,a,b);)解:①&a,&b ②b③b@b七、編程題。.輸入3個(gè)字符后,按各字符ASCII碼從小到大的順序輸出這些字符。解:^include<stdio.h>voidmain(){charcl,c2,c3,t,min,mid,max;cl=getchar();c2=getchar();c3=getchar();min=(t=cl<c2?c1:c2)<c3?t:c3;max=(t=cl>c2?c1:c2)>c3?t:c3;mid=c1+c2+c3-minimax;putchar(min);putchar(mid);putchar(max);).輸入兩點(diǎn)坐標(biāo)(xl,y1)>(x2,y2)?計(jì)算并輸出兩點(diǎn)間的距離。解:^include<stdio.h>^include<math.h>voidmain()(doublexl,yl,x2,y2,d;printf(“請(qǐng)輸入兩點(diǎn)坐標(biāo)(xl,yl),(x2,y2)\n");scanf(a(%lf,%lf),(%lf,%lf)w,&xl,&yl,&x2,&y2);d=sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2));printf(“兩點(diǎn)間距離二%f\n",d);).編寫程序,計(jì)算球體積并輸出它的值。要求輸入半徑值,計(jì)算結(jié)果保留三位小數(shù)。解:^include<stdio.h>ttinclude<math.h>#definePI3.1415926voidmain(){doubler,gv;printf(“請(qǐng)輸入半徑值:\n");scanf("%lf",&r);gv=4.0/3*PI*pow(r,3);printf(“半徑為%£的球的體積為:%.3f\n",r,gv);).輸入三角形的底和高,求三角形面積。解:#include<stdio.h>#definePI3.14159voidmain()(doublea,hzs;printf(、、請(qǐng)輸入三角形的底,髙、n〃);scanf(''%lfz%lf”,&a,&h);s=a*h/2;printf(、、三角形面積s);).編寫程序,輸入一個(gè)實(shí)數(shù)后輸出該數(shù)的絕對(duì)值。解:#include<stdio.h>voidmain()(doublex,y;printf(、、請(qǐng)輸入ー個(gè)實(shí)數(shù)、n〃);scanf(ヽ、%If”,&x);y=x>=0?x:-x;printf(''I%g|=%g\n",x,y);).輸入梯形的上底、下底和高,求梯形面積。解:#include<stdio.h>voidmain()doublea,b,h,s;printf('、請(qǐng)輸入梯形的上底,下底,髙"“);scanfz%lfz%lf”,&a,&b,&h);s=(a+b)*h/2;printf(''梯形面積=%£\n〃,s);}.輸入矩形的邊長,求矩形面積。解:#include<stdio.h>voidmain()(doublea,b,s;printf(ヽ、請(qǐng)輸入矩形的長,寬'n〃);scanf(''%lf/吿If",&a,&b);s=a*b;printf('' \n",s);}.已知等差數(shù)列的第一項(xiàng)為a,公差為d,求前n項(xiàng)之和,a、d、n由鍵盤輸入。解:#include<stdio.h>voidmain(){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é)果。解:#include<stdio.h>voidmain()(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的值由鍵盤輸入。解:#include<stdio.h>#include<math.h>#definePI3.14159voidmain()doubler,si,s2;intn;printf(''Inputrn\n");scanf(v%lf%dz\&rz&n);sl=PI*r*r;s2=n/2.0*r*r*sin(2*PI/n);printf(、、圓面積=%f,正內(nèi)接%d邊形面積=省f\n〃,slzs2);}習(xí)題4—V單項(xiàng)選擇題.下列語句將小寫字母轉(zhuǎn)換為大寫字母,其中正確的是()。A, if(ch>='a,&ch<=,z,)ch=ch-32; B. if(ch>='a,&&ch<=,z,)ch=ch-32;C. ch=(ch>='a'&&chv='z')?ch?32:''; D. ch=(ch>'a'&&ch<'z,)?ch-32:ch;.下列各語句中,能夠?qū)⒆兞縰、s中最大值賦給變量t的是()。A. if(u>s)t=u;t=s; B. t=s;if(u>s)t=u;C. if(u>s)t=s;elset=u D. t=u;if(u>s)t=s;.假設(shè)變量x、k都已定義,下列語句片段中,無語法錯(cuò)誤的是(A.switch(x){casex>=90:putchar(1A*);casex<60:putchar(1E1);}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==0 B.s!=0 C.s==l D.s=05.下列語句中,哪ー個(gè)可以輸出26個(gè)大寫英文字母()〇A.for(a=,A,;a<='Z*;printf(“%c",++a));B.for(a='A';a<'Z,;a++)printf(1,%cn,a);C.for(a='A*;a<=Z;printf(M%cn,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ù)次解:⑴B(2)B(3)B(4)A(5)C(6)D二、寫出下列程序的輸出結(jié)果1.#include<stdio.h>voidmain()(charx;intn=0,k=0;while((x=getchar())!=*#*){//運(yùn)行時(shí)輸入:athefthethethere#switch(x){case*t1:k++;break;case*h1:if(k==l)k++;break;case*e*:if(k==2)k++;break;default:k=0;)if(k==3) n++; }printf("吿d\n",n);)解:3*2.#include<stdio.h>voidmain()(intk=0;charc=*A,;switch(c++)case*A1switch(c++)case*A1case1B1case*C1case*D1case*E1default:k—;k+=2;break;k=k%2;break;k=k*10;breakk=k/3;k++;}while(c<*G,);printf("k=3d\n",k);}解:k=8*3.#include<stdio.h>#include<ctype.h>voidmain()chara,b,x;inti;dox=getchar(); //運(yùn)行時(shí)輸入:2abcDwhile(isupper(x)==0);for(a=1A*;a<=x;a++){for(b=*A*;b<*A*+x-a;b++)putchar(1 ;for(i=l;i<=2*(a-*A*)+1;i++)putchar(a);putchar(*\n1);)}注:isupper(x)是判斷x是否大寫字母的函數(shù),如果x是大寫字母函數(shù)值為1否則為〇〇解: ABBBCCCCCDDDDDDD4.#include<stdio.h>voidmain()(inti,n;scanf("%d",&n); 〃輸入2520i=2;while(n>l)if(n%i==0){printf(”吿d\t",i);n/=i;)elsei++;printf("\n");}解:2223357三、填空題.求1?10的乘積,寫作:for(,i=l;i<=10;++i)s*=i;解:S=1.下面程序段執(zhí)行后,x、y的值分別為.y=i;x=5;while(x){x—;y++;)解:x、y分別為0和6*3.輸入若干個(gè)以問號(hào)結(jié)束的字符,同時(shí)輸出這串字符(不包括問號(hào));while(!=1?1)putchar(ch);解:(ch=getchar〇) //注意外面的這對(duì)括號(hào)不能少*4.有以下程序片段:s=1.0;for(k=l;k<=n;k++)s+=1.0/(k*(k+1));printf(M%f\nH,s);填空,使下程序段與上程序段功能完全相同。s=0.0;k=0;do{s+=d;d=1.0/(k*(k+1));}while( );printf(M%f\nHzs);解:d=l k++ k<=n.下列程序輸出6?10000之間的親密數(shù)對(duì),填空將程序補(bǔ)充完整。若a、b是親密數(shù)對(duì),則a的因子和等于b,b的因子和等于a,且a不等于b。#include<stdio.h>voidmain(){inta,b,c,i;for(a=6;a<=10000;a++){b=l;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(M%d%d\n",a,b);}}解:a%i==0 c=l; c==a.計(jì)算2+22+222+2222+…+22+…+2的和。#include<stdio.ロvoidmain(){ints=l,t=l,a,n;scanf(M%d,,&n);for(inti=2;i<=n;i++){t=t*10+l;printf(HSUM=%d\nM,s);}解:a=2; s+=t; s*=a;四、編程題.輸入一個(gè)實(shí)數(shù),輸出它的平方根值,如果輸入數(shù)小于〇,則輸出"Thenumberiserror!”的提示。解:#include<stdio.h>#include<math.h>voidmain(){doublea,x;printf(''Inputdata:\n〃);scanf(ヽ、%If”,&a);if(a>=0){x=sqrt(a);printf(''%g的平方根值為%g\n”,a,x);)elseprintf(''Thenumberiserror!\n");).用if語句編程序,輸入x后按下式計(jì)算y值,并輸出結(jié)果。.x+2*x2+100WxW8y="1x-3*x3-9 x<0或x>8解:#include<stdio.h>voidmain()(doublex,y;printf(''Inputx:\n");scanf(''%lf",&x);if(x>=0&&x<=8)y=x4-2*x*x4-10;elsey=x-3*x*x*x-10;printf(''x=%f,y=%f\n",x,y);).輸入一個(gè)百分制的成績t后,按下式輸出它的等級(jí),要求分別寫成if結(jié)構(gòu)和switch結(jié)構(gòu)。等級(jí)為:9〇?100為"A",8〇?89為"B",7〇?79為“C”,6〇?69為"D",59?〇為“E"。if結(jié)構(gòu)解:#include<stdio.h>voidmain()(doublet;printf(''Inputscore:\nz/);scanf(''%lfz\&t);if(t>=90&&t<=100)putchar('A,);elseif(t>=80&&t<90)putchar('Bz);elseif(t>=70&&t<80)putchar('Cz);elseif(t>=60&&t<70)putchar('D‘);elseif(t>=0&&t<60)putchar('Ez);elseprintf(''error!\nzz);)switch結(jié)構(gòu)解:#include<stdio.h>voidmain()(doublet;printf(''Inputscore:\nzz);scanf(''%lfzz,&t);switch((int)(t/10)){case10:case9:putchar('Az);break;case8:putchar('Bz);break;case7:putchar('C');break;case6:putchar('Dz);break;case5:case4:case3:case2:case1:case0:putchar('Ez);break;
default:printf(''error!\nzz);}}.輸入x、y?計(jì)算f(x,y)的函數(shù)值。f(x,y)定義如下:x2+y2 x>=0y>=0x2-y2 x<0y<0x x>=0y<0x-yx<0y>=0include<stdio.h>voidmain()(doublex,y,f;printf(''Inputxy:\n");scanf(''%lf%lf,zz&x,&y);if(x>=0&&y>=0)f=x*x+y*y;elseif(x<0&&y<0)f=x*x-y*y;elseif(x>=0&&y<0)f=x+y;elseif(x<0&&y>=0)f=x-y;printf(''f(%f,%f)=%f\n〃,x,y,f);).輸入三角形的三條邊長a、b、c,計(jì)算并輸出三角形的面積。要求判斷輸入的三條邊a、b、c三個(gè)數(shù)是否能構(gòu)成三角,如果不能構(gòu)成三角形,則輸出提示信息告訴用戶。根據(jù)三條邊的邊長,計(jì)算三角形面積的公式如下:s= 面積=-yjs(s-x)(s-y)(5-z)解:#include<stdio.h>?include<math.h>voidmain()(doublea,b,c,s,area;printf(''Inputabc:\n");scanf(''%lf%lf%lf/zz&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(''area=%.3f\n”,area);}elseprintf(''線段%f,%f,%f不能構(gòu)成三角形、n”,a,bzc);}.輸入1?7,輸出對(duì)應(yīng)的星期ー^星期天。解:#include<stdio.h>voidmain()ints;printf(''Inputs(l?フ):\n〃);scanf(ヽ、%d”,&s);switch(s){:printf(''星期ー、n");break;:printf(''星期二、n");break;:printf(''星期三');break;:print£(''星期四'n");break;:printf(''星期五'n");break;printf(''星期六'n〃);break;case7:printf(''星期天'n〃);break;default:printf(''Thesiserror!\n/z);}}7.輸入年、月、日,輸岀是該年的第幾天。解:#include<stdio.h>voidmain()(inty,m,d,days;printf(''Input年月日:'n〃);scanf(''%d告d茗d",&y,&m,&d);days=d;switch(m){case12:days+=30;case11:days+=31;case10:days+=30;case9:days+=31;case8:days+=31;case7:days+=30;case6:days+=31;case5:days+=30;case4:days+=31;case3:if(y%4==0&&y%100!=0||y%400==0)days+=29;elsedays+=28;case2:days+=31;}printf(''%d月%d日是%d年的第%d天'n”,m,d,y,days);}.輸入n和相應(yīng)的n個(gè)數(shù),輸出它們中所有奇數(shù)的乘積。解:#include<stdio.h>voidmain()intn,i,t,x;printf(、、請(qǐng)輸入n:\nz,);scanf(ヽ、%d”,&n);printf(、、請(qǐng)輸入%d個(gè)數(shù):'n);fbr(i=l,t=1;i<=n;i++){scanf("%d",&x);if(x%2==l)t*=x;)printf(44%d\n,,,t);}.輸入ー個(gè)正整數(shù),求它們所有數(shù)字之和。解:#include<stdio.h>voidmain(){inta,sum=0;printf(ヽ、請(qǐng)輸入ー個(gè)正整數(shù):\n〃);scanf(''%d〃,&a);a=a>=0?a:-a;while(a!=0){sum+=a%10;a/=10;)printf(4t%d\n,,,sum);).輸入n和相應(yīng)的n個(gè)數(shù),統(tǒng)計(jì)輸入的數(shù)中負(fù)數(shù)、零及正數(shù)的個(gè)數(shù)。解:#include<stdio.h>voidmain()(intn,i,t,s,k;doublex;t=s=k=0;printf(ヽ'請(qǐng)輸入n:\n,z);scanf('ヽ%d〃,&n);printf(、、請(qǐng)輸入%d個(gè)數(shù):'n〃,n);for(i=l;i<=n;i++){scanf(ヽ、%If”,&x);if(x>0)t++;elseif(x<0)s++;elsek++;printf("負(fù)數(shù):%d\t零:%d\t正數(shù):%d\n”,s,k,t);).輸入10個(gè)學(xué)生的成績,輸出最低分?jǐn)?shù)。解:#include<stdio.h>voidmain()(inti;doublescore,min;printf請(qǐng)輸入10個(gè)學(xué)生成績:\n〃);scanf(、、省If",&score);min=score;/Z給min賦初值for(i=l;i<10;i++){scanf Sscore);if(min>score)min=score;)printf(''min=%g\n///min);}或解:#include<stdio.h>voidmain()(inti;doublescore,min;printf(、、請(qǐng)輸入10個(gè)學(xué)生成績:\n");for(i=l;i<=10;i++){scanf(、、%lf〃,sscore);if(i==l)min=score;if(min>score)min=score;}printf(、、min=%g\n〃,min);.青年歌手大獎(jiǎng)賽中,10個(gè)評(píng)委給參賽選手打分。選手得分規(guī)則為去掉ー個(gè)最高分和一個(gè)最低分,然后計(jì)算平均得分。計(jì)算并輸出選手張三的得分。(注:如果最高分或最低分有多個(gè)相同時(shí),去掉其中一個(gè))解:#include<stdio.h>voidmain()inti;doublescore,min,max,sum,aver;printf(ヽ、請(qǐng)輸入10個(gè)評(píng)委給張三的評(píng)分:'n〃);scanf(''%lfz/,Sscore);min=max=surn=score;for(i=l;i<10;i++){scanf(、、%If”,&score);if(min>score)min=score;if(max<score)max=score;sum4-=score;}aver=(sum-max-min)/8;printf("張三得分:%g\n",aver);}或解:?include<stdio.h>voidmain()(inti;doublescore,min,max,sum=0,aver;printf(ヽ、請(qǐng)輸入10個(gè)評(píng)委給張三的評(píng)分:'n〃);for(i=l;i<=10;i++){scanf(''%lf",&score);if(i==l)max=min=score;if(min>score)min=score;if(max<score)max=score;sum+=score;}aver=(sum-max-min)/8;printf('、張三得分:%g'n",aver);}.用循環(huán)語句輸出26個(gè)大寫字母及它們的ASCI!碼值。解:#include<stdio.h>voidmain()(charc;for(c=/Az;c<=zZz;c++)printf(''%c't%d'n",c,c);解:#include<stdio.h>voidmain(){charch=1A*;while(ch<=1Z1){printf("(%c,%d)\n",ch,ch);ch++;)}.輸出所有的“水仙花數(shù)”,水仙花數(shù)是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于其本身,如:153=13+53+3\解:#include<stdio.h>voidmain()(intx,a,b,c;printf("水仙花數(shù):'n");for(x=100;x<1000;x++){a=x/100;b=x%100/10;c=x%10;if(x==a*a*a+b*b*b+c*c*c)printf x);}printf(''\nw);}15.求算式1ー丄+丄一丄+丄一丄+n前40項(xiàng)的和。23456解:#include<stdio.h>voidmain(){inti;doublesum=0,flag=l;for(i=l;i<=40;i++){sum+=flag/i;flag=-l*flag;//或flag=-flag)printf("sum=%g\n”,sum);16.輸出ー張華氏與攝氏溫度對(duì)照表,將華氏溫度從30°?40°F之間的每度轉(zhuǎn)換對(duì)應(yīng)的攝氏溫度輸出。張華氏轉(zhuǎn)化為攝氏溫公式:c=5/9(F-32)解:#include<stdio.h>voidmain()doublef,c;for(f=30;f<=40;f++){c=5.0/9*(f-32);printf f,c);*17.求數(shù)列的和。設(shè)數(shù)列的首項(xiàng)為81,以后各項(xiàng)為前ー項(xiàng)的平方根(如81,9,3,1.732,???),求前20項(xiàng)和。解:?include<stdio.h>?include<math.h>voidmain()(inti;doublesum=0za=81;for(i=l;i<=20;i++){sum+=a;a=sqrt(a);/Z下ー項(xiàng)為前ー項(xiàng)的平方根}printf(''sum=%g\n///sum);}18.輸出ー個(gè)如下的乘法口訣表。1X1=1X2=2 2X2=41X3=3 2X3=63X3=91X9=9 2X9=183X9=27 9X9=81解:?include<stdio.h>voidmain()(inti,j;for(i=l;i<=9;i++){for(j=l;j<=i;j++)printf(''%d*%d=%d\tzSj,i,i*j);printf(、、\n");}}*19.猴子吃桃子。第1天猴子吃掉桃子總數(shù)一半多一個(gè),第2天又將剩余的桃子吃掉一半多一個(gè),以后每天吃掉前一天剩下的一半多一個(gè),到第十天準(zhǔn)備吃的時(shí)候只剩下ー個(gè)桃子。請(qǐng)問第1天開始吃的時(shí)候桃子的總數(shù)?!ㄟf推公式x=2*(x+l)解:?include<stdio.h>voidmain()intn,x;x=l;//第10天的挑子數(shù)for(n=9;n>=l;n——){x=2*(x+l); //計(jì)算第n天的桃子數(shù)printf("第1天吃前挑子總數(shù)=%d\n",x);*2〇.用循環(huán)體編程序,分別輸出如下兩個(gè)圖形,如圖4.15所示。*2〇.左圖解:#include<stdio.h>voidmain(){inti,j;for(i=l;i<=4;i++){for(j=l;j<=8-2*i;j++)putchar(11);for(j=l;j<=2*i-l;j++)printf(n%cレメputchar(1\n1);}}右圖解:#include<stdio.h>voidmain()(inti,j;for(i=l;i<=4;i++) 〃圖上半部分for(j=l;j<=8-2*i;j++)putchar(',);for(j=l;j<=2*i-l;j++)printf(n%cputchar(1\n1);for(i=3;i>=0;i--)//圖下半部分{for(j=l;j<=8-2*i;j++)putchar(**);for(j=l;j<=2*i-l;j++)printf(H%c”,,ハ);putchar(*\n*);}21.輸入正整數(shù)a、b,輸出a、b之間所有素?cái)?shù)之和。解:#include<stdio.h>voidmain()(inti,j,a,b,sum=0;printf(ヽ、請(qǐng)輸入ab(a〈b)\n”);scanf(ヽ、%d吿d”,&a,&b);for(i=a;i<=b;i++){for(j=2;j<=i/2;j++)if(i%j==0)break;//此時(shí)可判定i不是素?cái)?shù)if(j>i/2&&i!=l)sum+=i;/Z滿足此條件表示除1和自身外,其它數(shù)均不能整除i}printf(''%d至%d之間的素?cái)?shù)和=%d\n”,a,b,sum);)或解:#include<stdio.h>voidmain()(inti,j,a,b,sum=0,flag;printf(''請(qǐng)輸入ab(aWb)\n");scanf(''%d%dz,,&a,&b);for(i=a;i<=b;i++){flag=l;//要判別當(dāng)前i是否素?cái)?shù),先將標(biāo)志變量賦值為1for(j=2;j<=i/2;j++)if(i%j==0){flag=O;break;}/Z此時(shí)可判定i不是素?cái)?shù),退出循環(huán)if(flag==l&&i!=l)sum+=i;//滿足此條件表示除1和自身外,其它數(shù)均不能整除i}printf(''%d至吿d之間的素?cái)?shù)和=%d\n",a,b,sum);*22.當(dāng)x為-2,-1.5,-1, 1.5,2時(shí),求函數(shù)f(x)=x2-3.14x-6的解所取的最大值、最小值。解:#include<stdio.h>voidmain(){doublexzyzmaxzmin;max=min=(-2)24.用區(qū)間對(duì)分法求x^+xsinxHカ24.用區(qū)間對(duì)分法求x^+xsinxHカ在區(qū)間[〇,5]內(nèi)的ー個(gè)實(shí)根(設(shè)e制〇")?!菊f明】在[a,b]區(qū)間連續(xù)的函數(shù)f(x),若滿足條件f(a)?f(b)<0,則必有a<&<b使得f(い=0;求f(x)=0在[a,b]內(nèi)ー個(gè)實(shí)根的區(qū)間對(duì)分法基本步驟如下:(1)c=(a+b)/2.(2)若|f(c)|<e或|b-a|<e,則輸出c作為近似解,并終止程序執(zhí)行。(3)如果f(aAf(c)<0,則セ=む否則a=c,再次執(zhí)行第(1)步。解:#include<stdio.h>#include<math.h>//£(-2)作為max、min的初始值for(x=-l,5;x<=2;x+=0.5)(y=x*x-3.14159*x-6;if(y>max)max=y;elseif(y<min)min=y;}printf("max=告f,min=%エ、n”,max,min);)*23.當(dāng)n取值在ー39?40范圍內(nèi)時(shí),判斷表達(dá)式ガ+升専的值是否都是素?cái)?shù)。解:#include<stdio.h>#include<math.h>voidmain(){inti,j,y,count=0;for(i=-39;i<=40;i++){ y=i*i+i+41;for(j=2;j<=sqrt(y);j++)if(y%j==O){printf("^i^%d^,yHd,結(jié)論不成立!\n",i,y);count++;break;})if(count!=0)printf("共有もd個(gè)i值,使結(jié)論不成立!\n",count);elseprintf("結(jié)論成立,都是素?cái)?shù)!\n");)voidmain()floata,b,c;a=0;b=5; //初始化區(qū)間a、b值do{c=(a+b)/2; //計(jì)算a、b區(qū)間的中值if((a*a+a*sin(a)-5)*(c*c+c*sin(c)-5)<0)b=c; //以c代替區(qū)間b值elsea=c; //以c代替區(qū)間a值}while(fabs(c*c+c*sin(c)-5)>=le-5&&fabs(b-a)>=le-5);printf(M%f\nH,c);)習(xí)題5ー、單項(xiàng)選擇題.下列敘述中,正確的敘述項(xiàng)是()?A.定義函數(shù)時(shí),必須要有形參B.函數(shù)中可以沒有return語句,也可以有多條return語句C.函數(shù)f可以用f(f(x))形式調(diào)用,這種調(diào)用形式是遞歸調(diào)用D,函數(shù)必須有返回值.下列敘述中,不正確的敘述項(xiàng)是()〇A,函數(shù)調(diào)用時(shí),形參變量只有在被調(diào)用時(shí)オ被創(chuàng)建(分配存儲(chǔ)單元)錯(cuò)誤!未指定書簽。B,函數(shù)調(diào)用時(shí),實(shí)參可以是常量、變量或表達(dá)式C,定義變量時(shí),省略對(duì)變量的存儲(chǔ)類別定義,則變量是自動(dòng)型變量D.語句return(a,b);則函數(shù)可以返回兩個(gè)值.傳值調(diào)用的特點(diǎn)是()?A.實(shí)參傳給形參變量的數(shù)據(jù)是地址B,在函數(shù)中形參變量值改變后,不改變實(shí)參變量的值C.在函數(shù)中形參變量值改變后,實(shí)參變量的值隨之也改變D.實(shí)參必須是變量.如果在函數(shù)中定義一個(gè)變量,有關(guān)該變量作用域正確的是()?A.只在該函數(shù)中有效 B.在該文件中有效C,在本程序中有效 D.為非法變量5.根據(jù)下面函數(shù)print的定義,選出調(diào)用函數(shù)print(5378)的值是()〇voidprint(longn)(if(n==0)return;else{print(n/10);printf(M%d0,n%10);return;)}A.5 3 7 8 B.8 7 3 5C.3 5 7 8 D.8 7 5 3*6.根據(jù)下面函數(shù)f,選出f(f(3))的值是()〇intf(intx)staticintk=0;x=x+k;kstaticintk=0;x=x+k;k——;returnx;)A.5 B.3解:(1)B (2)D (3)BC.2(4)AD.4
(6)C二、寫出下列程序的輸出結(jié)果*1.#include<stdio.h>二、寫出下列程序的輸出結(jié)果*1.#include<stdio.h>intfl(int,int),fll(int);voidf2(int);voidmain()(inti,j;for(i=0;i<5;i++){ f2((5-i)*3);for(j=0;j<=i;j++)printfド%3d”,f1(i,j));putchar(1\n1);)}intfl(intm,intn)(returnfll(m)/fll(n)/fll(m-n);}intfll(intk)(if(k<=l)return1;returnk*f11(k-1);}voidf2(intn)(for(inti=l;i<=n;i++)putchar(11);)解: 111121133114641*2.#include<stdio.h>intf(intm,intn)(if(m%n==0)returnn;elsereturnf(n,m%n);)voidmain()printf(n%d\n"zf(84printf(n%d\n"zf(840,48));解:24#include<stdio.h>voidfun(inta,intb,intc,intadd,intmult)(add=a+b+c;mult=a*b*c;printf("add=%dmult=%d\nn,add,mult);}voidmain()intx,y;x=y=0;fun(9,12,-4,x,y);printf("add=%d)解:add=17mult=-432add=0mult=0#include<stdio.h>intadd,mult;voidfun(inta,int(add=a+b+c;mult=a*b*c;printf("add=%d)voidmain()(fun(9,12,-4);printf("add=%d}解:add=17mult=-432add=17 mult=-432mult=%d\nn,x,y);b,intc,)mult=%d\nM,add,mult);mult=%d\nM,add,mult);#include<stdio.h>inta;voidmain(){inti;voidfun();for(i=l;i<=4;i++){a++;printf("Inmain:a=%4d",a);fun();))voidfun(){inta=0;a++;printf("Infun:a=%d\n",a);解:In main: a= Un fun:a=lIn main: a= 2In fun:a=lIn main: a= 3In fun:a=lIn main: a= 4In fun:a=l#include<stdio.h>voidmain()(intx=2,i;intf(intx);for(i=0;i<3;i++)printf("%4dn,f(x));}intf(intx)(inty=0;staticz=0;y++;z++;return(x+y+z);)解: 4 5 6三、程序填空題.輸入若干個(gè)正整數(shù),判斷每個(gè)數(shù)從髙位到低位各位數(shù)字是否按值從小到大排列。其中input〇返回輸入的數(shù)據(jù),且保證輸入的數(shù)據(jù)是ー個(gè)正整數(shù)。funl〇函數(shù)是判斷正整數(shù)n是否按數(shù)字從小到大排列。#include<stdio.h>intinput();intfunl(intm);voidmain()(intn;if(funl(n)==1)printf("%d中各位數(shù)字按是從小到大排列、n”,n);)intinput()(intn;printf("請(qǐng)輸入n:\nM);scanf(n%dMr&n);if(n>0);do{printf(”n必須正整數(shù),請(qǐng)重新輸入n:\n");scanf(M%d",&n);}while(n<0);returnn;intfunl(){intk;k=m%10;while(m!=0)if(m/10%10>k)return0;else{ k=m%10;}return1;}解:n=input(); returnn intm m=m/10.輸入一個(gè)末尾數(shù)非〇的正整數(shù),輸出它的逆序數(shù)。其中,input是數(shù)據(jù)輸入函數(shù),reverse是數(shù)據(jù)逆序函數(shù)。#include<stdio.h>longinput();longreverse(longn);voidmain()(intn;n=input();printf("逆序數(shù)是:%d\nM,);)longinput()(longn;printf("請(qǐng)輸入n:\nM);scanf(M%dMr&n);if()returnn;do{printf("n必須正整數(shù),且末尾數(shù)非〇,請(qǐng)重新輸入n:\n”);}while(n<0||n%10==0);returnn;)longreverse(longn)(longk=0;while(n){n/=10;)returnk;}解:reverse(n) n>0&&n%10!=0scanf(“%d",&n) k=k*10+n%10五、編程題1.輸入ー個(gè)x,輸出下面分段函數(shù)f(x)的值。要求將分段函數(shù)的計(jì)算定義成函數(shù)。TOC\o"1-5"\h\z\o"CurrentDocument"1 x>0f(x)=<0 x=0-1 x<0解:#include<stdio.h>intf(doublex)/Z函數(shù)定義(inty=0;if(x>0)y=i;elseif(x==0)y=0;elsey=-i;returny;}voidmain()(doublex;inty;scanf(ヽ、吿If”,&x);y=f(x);/Z函數(shù)調(diào)用printf(Mf(%g)=%d\nM,x,y);).輸入一個(gè)正整數(shù),輸出該數(shù)的各個(gè)數(shù)字之和。要求編寫函數(shù),計(jì)算整數(shù)的各個(gè)數(shù)字之和。解:#include<stdio.h>intsum(inta)(ints=0;while(a!=0){s+=a%10;a=a/10;}returns;}voidmain()(intx;scanf(ヽ、吿d”,&x);printf(M%d\nM,sum(x));).編寫函數(shù),判斷ー個(gè)正整數(shù)a是否為完數(shù),如果是完數(shù),函數(shù)返回值為1;否則為0。(完數(shù):ー個(gè)數(shù)的所有因子之和等于該本身,如6、28都是完數(shù);6=1+2+3;28=1+2+4+7+14〇)解:#include<stdio.h>intwanshu(intn)|inti,a=0;for(i=l;i<=n/2;i++)if(n%i==0)a+=i;if(a==n)return1;elsereturn0;voidmain()intn;scanf(、、%d",&n);if(wanshu(n)==1)printf(n%d是完數(shù)、n",n);elseprintf(n%d不是完數(shù)、n",n);).輸入三個(gè)數(shù),輸出它們的最小值。要求定義ー個(gè)函數(shù),返回兩個(gè)數(shù)的最小值。解:#include<stdio.h>doublemin(doublexzdoubley){if(x<y)returnx;elsereturny;}voidmain(){doublea,b,c,m;printf("Inputabc\nn);scanf(u%lf%lf%lfM,&a,&b,&c);m=min(min(azb)zc);printf('、最小數(shù):%f\nnzm);.在主函數(shù)中輸入字符c和m,調(diào)用函數(shù)prn,連續(xù)將字符c輸出m次。定義函數(shù)pm,完成連續(xù)將某個(gè)字符c輸出m次后換行。解:#include<stdio.h>voidprn(charzint);/Z函數(shù)聲明voidmain(){charc;intm;printf(''Inputcm:'n");scanf(''%c%d,zz&c,&m);prn(czm);}voidprn(charczintm)|inti;for(i=l;i<=m;i++)putchar(c);printf('''n");}.輸入一個(gè)年、月、日輸出它是這年的第幾天。要求定義函數(shù),根據(jù)年月日計(jì)算是第幾天的函數(shù)。解:#include<stdio.h>intdays(intyear,intmonthzintdate){intd=date;switch(month-1){case11:d+=30;case10:d+=31;case9:d+=30;case8:d+=31;case7:d+=31;case6:d+=30;case5:d+=31;case4:d+=30;case3:d+=31;case2:if((year%4==0&&year%100!=0)||(year%400==0))d+=29;elsed+=28;case1:d+=31;}returnd;}voidmain(){intyearrmonth,date;intd;printf('、請(qǐng)輸入年月日:\n,z);scanf("%d%d%d”,&year,&month,&date);d=days(year,month,date);printf("吿d月ぶd日是吿d年的第會(huì)d天!",month,date,year,d);}7.定義ー個(gè)函數(shù)將正整數(shù)n轉(zhuǎn)換成文字形式輸出星期幾(n值。?6分別轉(zhuǎn)換成星期天,星期ー,…,星期六)。解:#include<stdio.h>voidweek(intn){switch(n){case0:printf(、、星期天〃);break;printf('、星期ー〃);break;:printf(,、星期二〃);break;:printf('、星期三〃);break;:printf(、、星期四〃);break;:printf('、星期五〃);break;:printf(、,星期六〃);break;}}voidmain(){intnum;printf(ヽ、請(qǐng)輸入ー個(gè)整數(shù)〇?6:\n〃);scanf("%d",&num);week(num);}.輸入ー個(gè)整數(shù)n,計(jì)算3.20的值。要求定義函數(shù)計(jì)算x1I值。解:#include<stdio.h>doublefact(doublex,intn);voidmain(){doublex,y;intn;printf(''Inputxn:\n〃);scanf(''吿lf%d〃,&x,&n);y=fact(x,n);printf(''%f\n〃,y);doublefact(doublex,intn)(inti;doublet=l;for(i=l;i<=n;i++)t=t*x;returnt;}.輸入平面上pl(xl,x2)、p2(x2,y2)兩點(diǎn)坐標(biāo),計(jì)算兩點(diǎn)間的距離輸出。要求定義ー個(gè)函數(shù)計(jì)算平面上兩點(diǎn)間的距離。解:#include<stdio.h>?include<math.h>doublef(double,double,double,double);voidmain()(doublexl,x2,yl,y2,d;printf(''Input(xl,yl),(x2,y2):\n〃);scanf(''(%lf,%lf),(%lf,%lf)”,&xl,&yl,&x2,&y2);d=f(xl,yl,x2,y2);printf(''%f\n",d);}doublef(doublexl,doubleyl,doublex2,doubley2)(doubled;d=sqrt((xl-x2)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 3409-2024草種質(zhì)資源調(diào)查編目技術(shù)規(guī)程
- 2025至2030年中國全自動(dòng)雙波峰焊機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 電氣安全知識(shí)培訓(xùn)
- 會(huì)議預(yù)約及參會(huì)信息統(tǒng)計(jì)表
- 公共圖書館文獻(xiàn)信息共享服務(wù)協(xié)議
- 教育培訓(xùn)師資庫表格化
- 游樂場(chǎng)項(xiàng)目設(shè)施損害預(yù)防和賠償責(zé)任協(xié)議
- 遼寧省撫順市六校協(xié)作體2024-2025學(xué)年高一下學(xué)期期初檢測(cè)地理試卷(含答案)
- 混凝土澆筑施工合同
- 防水層工程 現(xiàn)場(chǎng)質(zhì)量檢驗(yàn)報(bào)告單
- 第一單元練習(xí)卷(單元測(cè)試)2023-2024學(xué)年統(tǒng)編版語文六年級(jí)下冊(cè)
- 2016年4月自考00040法學(xué)概論試題及答案
- 2024中國碳普惠發(fā)展與實(shí)踐案例研究報(bào)告
- 2024年中國檢驗(yàn)認(rèn)證集團(tuán)招聘筆試參考題庫附帶答案詳解
- 人教版九年級(jí)數(shù)學(xué)下冊(cè)《第二十六章反比例函數(shù)》測(cè)試卷單元測(cè)試卷-帶有參考答案
- 公園售票員管理制度
- 本科:交通管理專業(yè)培養(yǎng)方案(管理學(xué)院)
- 《汽車電子電氣系統(tǒng)構(gòu)造與拆裝》課件 項(xiàng)目三 起動(dòng)系統(tǒng)檢修
- 《安徒生童話》閱讀指導(dǎo)課件
- 沉淀滴定法(應(yīng)用化學(xué)課件)
- 設(shè)計(jì)和開發(fā)控制程序
評(píng)論
0/150
提交評(píng)論