C語言習題答案_第1頁
C語言習題答案_第2頁
C語言習題答案_第3頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、c語言習題答案實驗一(1) 編程求3+29的值,實習v環(huán)境。inluevoi min() nta,b,sum;a=37;b=29;sm=a+b;printf(sm,sum);(2) 從鍵盤輸入三個整數(shù),求出最大數(shù)并輸出。#inclvoid mai() inta,c,y; imax(int x,int ); printf(int a,b,and c:); scn(%,d,%d,a,&b,&c); y=max(a,b); y=ax(,c); pritf(nmax=%dn,);int ax(int x,inty)nt z;if(xy)z=;elsez=;return(z);(3) 通過上機實踐,運行

2、下列程序并分析輸出結(jié)果。a程序代碼#incudevod main() r cha; printf(%c對應的asi碼是:%dn,c,ch); 程序輸出結(jié)果:a對應的asc|碼是:97 b 程序代碼icldevid man()it a=168;lot b2.456;flt x=3.57,y; pritf(a=%5n,a); printf(a=%-5d,a);prf(=.2f,b);printf(b=%en,b);=(it)(x*10+0.)/100.0; ntf(x=f,=%n,y);程序輸出結(jié)果:a168=168b=2.46b1.3450e+02x=f,=556700c程序代碼#inldeoi

3、d an()i a=16;pritf(十進制數(shù)%對應的八進制數(shù)是on,a,a);prntf(十進制數(shù)%d對應的十六進制數(shù)是%xn,a,);程序輸出結(jié)果:十進制數(shù)68對應的八進制數(shù)是5十進制數(shù)168對應的十六進制數(shù)是8實驗二2.順序結(jié)構(gòu)2.1.1已知=15,=.3,c=.9,計算b2 4ac的結(jié)果并輸出。#inclstio.hvi n()float a,b,,s; a=1.5;b=5.;=29;s=b*-4a*c;rintf(s的值是%n,s);22輸入某學生的三個科目的期末考試成績,計算出該學生的成績總分和平均分。#ilu void man() nt mth,enlis,c_prora; fl

4、ot s ,avrage; rntf(iputat,nlish,c_pogrm:); snf(%d,d,d,mat,&egis,&c_ogram); sumath+enlish+_pora; avage=sm/3; print(sum.0f,arage=%.f,su,avre);21.3輸入圓的半徑,計算圓的面積,設圓周率為.1416#incldinmain()o r,;pntf(請輸入半徑:);anf(f,&);s3.116r*r;itf(圓的面積為%6,);.1.4輸入一個兩位數(shù),將其個位數(shù)和十位數(shù)互換后變成一個新的數(shù),輸出這個數(shù)。inld so.hin man(void)t n,a,;p

5、rintf(input:);scnf(%d,&n);b10;a=10;n=b*1+a;rint(%n,n);turn 0;2.1.5輸入兩個數(shù)a和b,將兩數(shù)的值互換后輸出新值。incldtdi.vid main() intx,y,t; anf(%d,&x,&y);t=x;=y;y; pint(x=d,y=%dn,x,); .2簡單分支結(jié)構(gòu)2輸入兩個整數(shù),求出其中的較小值輸出。 #includetdiohit mn() in a,b,min; rintf(請輸入 a,b:n); canf(d,%d,&b);if(ab)i=a;elemin=b;printf(最小值是 %n,mn);etur 0;

6、2.2輸入的值并計算分段函數(shù)y的值。 x2+x =#include it main(void)duble ,y;scan(l,&x);f(xi main() n ,b;prnf(請輸入兩個整數(shù):n); scanf(%d,%d,&,&b); f(a=) rintf(等于b); else r(不等于); ur 0;2.2.4 輸入一個整數(shù),若為負數(shù),求出它的平方;若為正數(shù),求出它的立方,并輸出結(jié)果。ndvoid main()print(請輸入一個整數(shù):);dobl x,;scanf(%lf,x);(0)y=xx;els*x*x;prntf(y=f(f)=%fn,x,y);2.2.5 輸入三個整數(shù),

7、用if-ele結(jié)構(gòu)求出其中的最大值。提示:首先求出兩個數(shù)的較大值放在一個變量里,然后用這個變量和第三個數(shù)再進行一次比較。 inluden main() i ,,,ax; pitf(請輸入三個數(shù)); cn(d,%,%d,&a,&,&c); i(ab) mx=a; else ax; (cax) max=c; ele ax=; print(最大值為%,max); return 0; .簡單循環(huán)結(jié)構(gòu)2.3.1 計算1+7+31。 #include vid mn() nt i,um; sum=0;for(i=;=;i=+) m=smi;print(sum=dn,sum); 2.3.2 循環(huán)輸入某學生八個

8、科目期末考試成績,計算出該學生成績總分和平均分。 #includeit man(voi) in i,; float um,vege;s=0; fr(i1;i;i+) sanf(%d,&a); suum+; prnt(成績總分為n,um); prt(平均分為%fn,um/); reur0;2.3.3 輸入n的值,計算n! iludint man(oid) int n,i,; a=1; pnt(請輸入n的值:dn); snf(%d,n); for(i=1;i=;i+) aa; printf(積=%dn,a); rtun0 ;2.3.4 顯示1平方,輸出結(jié)果如下圖所示:1*1=1*4*=94*416

9、5*256=367*7=4988=69=81*10=10 #ncludeintmain(oi)nt i,a;for(i=1;i void ain()int ,n;float iem,la,m; sum=; flag=;rintf(npn:);scan(%d,&n);(i=1;i=;+) item=la*(*-1)(3*i-2);um=um+item; a=-lag; printf(n,um); 實驗三3.1.1輸入一個整數(shù),判定是否為5的倍數(shù)。#inludent main(oid)nt x;print(x= );saf(d,&);f(x5)prntf(能整除5);elsprintf(不能整除5

10、);retur ;3.1.輸入x,計算并輸入下列分段函數(shù)對應的值。 - xy= x2+2 x1#includestdo.hnmain(oid)flot x,;pintf();canf(%f,&x);if(x1) =x2;eley=x*x+2;rin(對應值為%.2fn,);retun 0 ;.13某商場給顧客購物的折扣率如下:購物金額30元 不打折300=購物金額500元 9折50元i main(oi)nt x,y;rint(x=);caf(d,x);if(x=300&500)y=0.9*;intf(打9折,付款%d,y);else=0.7*x;printf(打7折,付款%dn,y);rtur

11、n 0;.1.4求解一元二次方程ax2bx+c=0的實數(shù)解。#incldetdio#ncludein ain(oid)int a,b,d,1,x2;printf(= ,b ,c);san(%d,%d,d,&a,b,c);d=b*b4a*c;f(d) oub srt(ouled); x=(-b+qrt(d))(*); x=(-b-qrt(d))/(2a); printf(x1=%dn,x%dn,x1,x2); els if(d) x=(-b+srt(d))/(2); pif(x1=2=n,x1); else prtf(沒有實數(shù)解);reun 0;3.5從鍵盤輸入0個字符,將所有的英文字母轉(zhuǎn)換為大

12、寫后輸出。#incldestdio.hi man(voi)car i,h;printf(請輸入 );or(=;ia&c=z)ch=ch-32;ptchr(ch);etun 0;.1.6從鍵盤輸入1個字符,統(tǒng)計其中英文字母、空格、數(shù)字字符和其他字符的個數(shù)。#incluintmain(o)cha ch,i;it eter,spae,igiter,other;ltepace=digiterothr=0;for(i=;i=a&c=a&ch&ch=9)digter+;elsoter+;printf(etter=%,pace%,iiter=%,other=dn,ettr,space,digit,her);

13、reun 0;3.2.1輸入一個四位整數(shù)的年份,判斷是否為閏年。#icldestdi.hit man(oid)i x,a,b,c;rntf(輸入年份:);scanf(,&x);x%4;b=x%10;cx%00;i(a=0& b!=0)|(c=0)pritf(閏年);elsprnf(不是閏年);u 0;3假設自動售貨機出售4種商品,薯片、爆米花、巧克力和可樂,售價分別是每份3.0元、.元、40元和3元。在屏幕上顯示以下菜單,用戶可以連續(xù)查詢商品的價格,當查詢次數(shù)超過五次時,退出查詢;不到五次時,用戶可以選擇退出。當用戶輸入編號4,顯示對應商品的價格;輸入,退出查詢;輸入其他編號,顯示價格為0。i

14、cludent main(vid)chrprice;it i;int(請輸入商品的名稱:n);for(=1;i)printf(過胖);else if(yz-)print(過瘦);eprnf(標準);return0;.2.4編寫一個程序,計算購買某物品的總金額,該物品的單價為5元公斤,購買5公斤以上打九折,購買10公斤以上打八折,購買20公斤以上打7折,購買0公斤以上打6折,購買100公斤以上打5折。(用多分支if語句求解)#nue=5 & x0)y=.9*5*;eleif(x=1&x=20 x50 & x100)y05*5*x;elsey*;prin(付款%.fn,);rturn0;.5編寫一

15、個程序,輸出給定的某年某月的天數(shù)。cludeit in(oid)int ear,onth,days,eap;printf(年,月:);sc(d,%d,&year,&monh);switch(month)s 1: case 3:cse5: ase7:ase 8: cae 10: ae 12:ys=31;reak;case 4: ase 6: case9: case 1:ds=;rk;ase 2:f(yea4=0 & year%100!0 | yea%400=0) lep; else leap=0; if (la) days=29; se days=28; pitf(%年d月的天數(shù)為%天n,yea

16、r,onth,as); 實驗四4.輸入一批正整數(shù)(以零或負數(shù)為結(jié)束標志)求其中的奇數(shù)和。inclsio.hicludein min(void)n data,sum;um0;i(輸入一批正整數(shù)(以零或負數(shù)為結(jié)束標志): );sa(%d,data);while(ata)f(ata%2=1)sms+ata;can(%,&data);pintf(奇數(shù)和是%dn,sum);reun 0;2輸入兩個整數(shù)a和,求aaa+(n個a)之和。例如輸入和3,輸出246(2+22222)提示:可采用遞推的方法計算當前項itemi*10+a# man(voi)ina,n,im,i,sum;i=

17、1;su0;it=0;rintf(請輸入兩個整數(shù)和n: );scan(d,%,&a,&n);hile(i=n)ite=tem10+a;sum=sum+item;=i+;tf(結(jié)果為%dn,sm);retrn ;.1.3編寫程序:計算2/13/2+5/3+5的 近似值。要求計算前n項之和,保留2位小數(shù)(該序列從第二項起,每一項的分子是前一項分子與分母的和,分母是前一項的分子)#icludesdio.hit main(oid)flatn,um,b,m;prn(請輸入n的值:);cnf(f,&);sum=;i=1;a=2;b1;ite=0;hil(i)sum=m+/b;item=a;a=a+b;bi

18、tem;ii+;rinf(結(jié)果為%2fn,sum);rturn 0;4.1.4編寫一個程序,找出被,3,5整除時余數(shù)均為1的最小的10個自然數(shù)。#includeint ain(vi)int x,i;i=0;x=1;hil(i10)if(%2=1 &x%=1 & x%5=1)prinf(%n,x); i+; +;retn 0;41.5輸入一個正整數(shù),求它的位數(shù)以及各位數(shù)字之和,例如12的位數(shù)是3,各位數(shù)字之和是.incunt mi(void)nt i,a;=1;or(i1;i=9;i+)a=(a+1)*2;print(一共摘了dn個桃子,a);rern 0;4.2.1求以內(nèi)的全部素數(shù),每行輸出1

19、0個。素數(shù)就是只能被1和它本身整除,1不是素數(shù),是素數(shù)。#inldent main(voi)int i,m=0,n;fo(n=2;n=9;+)r(i=2;i=n)rnf(4,n);m+;f(m%0=0)prinf(n);return ;42.有一個四位數(shù),千位上的數(shù)字和百位上的數(shù)字都被擦掉了,已知十位上的數(shù)字是1,個位上的數(shù)字是2,又知道這個數(shù)如果減去7就能被整除,減去8就能被8整除,減去9就能被整除。編寫一個程序求這個四位數(shù)。提示:利用窮舉法來解決該問題。#iclde void mn() it x,m,n;o(x=1000;=9999;+)=x%10;nx/10%1;(=2 & n=1 &

20、(x-7)%7= & (x)%8=0 &(9)%9=0)print(n,x); .23取元、元和5元的紙幣共10張,現(xiàn)在要支付5元。編寫程序輸出所有的付法。針對每一種付法,輸出各種面額的紙幣數(shù)量。要求將1元、元和元設置在最合理的取值范圍內(nèi)。#ncld sdio.hint main()int m, ,;for(m=0; m=1; m)for (n=0;n=10; )fr(k=0;kint mn(vid)n i,j,k;or(i=1;20;+)k=;r(j=;j=i/2;j+)if(i%j=0)k=kj; if(k=i)print(%d=1,i);fo(=2;j=2;+)(%j=0)ri(+%d,

21、j);prinf(n); return 0;4.5請編寫程序顯示下列輸出: 0 1120 13 1 2 2 0 1 2 0 10 mai(od)n i,;fo(i0;i=4;i+)or(j=0;j=i;j+)print(% ,);pritf(n);for(0;i=;i+)for(j=0;4-;j+)prntf(% ,j);printf();rtrn 0;4.2.6編寫程序打出下列圖案。 * * * * * * * * * * * * * * #inclevod mai(),j;for(;=;i+)for(j=1;j=8-(2i-);j+)pf();fr(j=1;j=*i-

22、1;j+)rint(* );prntf(n); or(i2;i=;i+)o(;j2-1;j+)printf( );for(j=1;j=8(2*i-1);j+)pinf(* );itf(n);實驗五51輸入兩個整形變量 b的值,輸出+b,a-b,a/b,(oat)a/,ab的結(jié)果,要求算式的結(jié)果連同算式一起輸出,每個算式占一行。#iude stdiohvoid main()int ,b;anf(d%d,&,b);prinf(%d+%dn,,b,ab);prnt(d-%d=%dn,a,b,a-b);printf(%d*%ddn,a,b,a*);prit(d/%=dn,a,a/b);rnf(floa

23、t)%/%=%f,a,b,(oat)/b);pintf(%d%d=%dn,a,b,a%b);5.求前驅(qū)字符和后繼字符。輸入一個英文字符,找出它的前驅(qū)字符和后繼字符,并按字符的ascii碼值從大到小的順序輸出這三個字符及其對應的asc碼值。#inludent mai(void)cr ch,beore,aft;ch=getcr();before=h-1;afte=c+1;if(bfre|(beforez))befre=befoe+26;pri(c %cc %d%dn,before,after,ch,bef,ate,c);else if(aerz| (aerz &after))fterfer-26;

24、rint( %c %d %d %dn,h,before,aftr,h,befo,er); elseprntf(%c %c%c %d %d %n,atr,ch,efoe,fe,ch,before);5.輸入某個點a的平面坐標(x,y),判斷(輸出)a點是在圓內(nèi)、圓外還是在圓周上,其中圓心坐標為(2,2),半徑為1#includesht in(vi)fat x,y;scanf(f%f,,&y);i(x-2)*(x-2)+(y2)(y-2)=1)pintf(點在圓上);lse i((x2)(x-)(y-)(-2)1)prit(點a在圓內(nèi));ele prit(點a在圓外);return 0;5.求愛因

25、斯坦數(shù)學題。有一條長階,若每步跨兩階,則最后剩余一階;若每步跨三階,則最后剩兩階,若每步跨五階,則最后剩四階;若每步跨六階,則最后剩五階;若每步跨七階,最后正好一階不剩。求長階的階梯數(shù)目。#inclueintain(oi)int i;fr(i=1;i=200;i+)f(%2=1)&(i%3=)&(i%=4)&(i%=5)&i70)printf(%d階,);retun 0;5輸入一個正整數(shù),判斷其中的各位數(shù)字是否奇偶數(shù)交替出現(xiàn),是輸出“yes”否則輸出“nt”include tdo. it ain(voi)n m,n;pint(請輸入一個正整數(shù):n);snf(%d,&m); n=m%;m=/10

26、; (%2m% !1)rif(n); print();lseprint(yes); pintf(n);retur ;5輸入一個三位數(shù),判斷是否是一個水仙花數(shù)。水仙花數(shù)是指三位數(shù)的各位數(shù)字立方和等于這個三位數(shù)本身。例如:13=*1*155*+3*3*。includen mn(o)int,i,j,;intf(請輸入一個三位數(shù): n);ca(d,);=/100;=(i100)10;=n-i*0-j*10;i(i*iij*j*j*k*k=n)rint(%d是一個水仙花數(shù),);esritf(d不是水仙花數(shù),n);實驗六611輸入一個正整數(shù)n(1=10),再輸入n個整數(shù),輸出偶數(shù)位置上數(shù)值的平均值(保留兩

27、位小數(shù))icldstiot a(vd)i a0,n,cout; foas,av;prnt(eer n: ); scaf(d,&n);pritf(etr d nterges:,n);or(=0;n;+)scanf(d,&ai); sum=0; count=; for(i;in;)if((i+1)%2=0) sum=sumai;cont+;vsum/cun;prnf(av=%.2fn,avg); prntf(n);6.2輸入一個正整數(shù)n(1nn min(vod)inti,n,min,index;int 0;print(enten: );scanf(%d,&n);pintf(nter d nerge

28、rs: ,);f(i0;iai) min=ai;inexi; printf(in=%d,ne=%dn,min,id);6.3輸入一個正整數(shù)n(1n=0),再輸入個整數(shù),將最小值與第一個數(shù)交換,最大值與最后一個數(shù)交換,然后輸出交換后的n個數(shù)。#clden min(void)it i,n,,mx,ine ,nexx,t,h;t 10;prt(ente: );scnf(,&);pnf(ente %diterers:,n);fo(=0;in;i+)cf(%,&a); min=a; ma=a0;ndex=0;ndxx=;for(i=;i;i+)f(inai)mi;indei; t=a0; a0=andx

29、; aide=t;(maxi) ma=ai;idex=; hn1;-1=ainde;anex=;(i=;i1;i+)ptf(d,ai);reun 0;6.14輸入一個正整數(shù)n(1n=0),再輸入n個數(shù),逆序重新存放并輸入這些數(shù)。ncludeint mai(void) t n,i,j,t; a0;pinf(eer: );scaf(%d,&n);intf(er dintrgers: ,n);for(i=;in;i+)scn(%d,&ai);j=n-1;fo(i=0;in/2;i+) t=;aj; j=;j-; fr(i=0;i;i+)prntf(d ,ai); 15在鍵盤上輸入n個整數(shù),將他們按照

30、從大到小的次序排序后輸出。要求采用冒泡排序法。#incud t.hintmn(void)int 10,i,n,,h;ntf(te n: ); sn(%,n); pinf(ene %dintergers:,n);fr(i;n;i+) scanf(d,&i);o(;jn-1;j+) f (0;n-j-1;+)f(aiai+1)=ai; a=ai+1;a+1h;fr(i=0;in;+) prt( ,ai); 61.已有一個已按遞增排序的數(shù)組,輸入一個整數(shù)x,要求按原來排序的規(guī)律將他插入數(shù)組中。#clue vidmain()in a10,i,n,,h,x,t;pntf(請輸入整數(shù)的個數(shù):);scf(%

31、d,&n);printf(請輸入個正整數(shù):n,n);fr(i;i;+)ca(%d,&i);for(j=0;jn-1;+)for(0;iai+)h=i;ai=i;ai+1=h; prinf(請輸入要插入的整數(shù)x:);scanf(%d,&x);for(i0;i)t=i;bea; o(=n-;i=t;i-)ai+1ai;atx;o(i=;n+1;i+)printf(%d ,ai); .2.1輸入一個以回車結(jié)束的字符串(少于8個字符),統(tǒng)計其中的大寫字母的個數(shù)#includint an(void)intj,n;cha str80,ch;prinf(請輸入字符串,以回車結(jié)束:n);ets(tr);fr(j=0;srj!=0;j+)if (strj= &srj=z)n+;rintf(nt=dn,n); 6.2.輸入一個字符,再輸入一個以回車結(jié)束的字符串(少于8個字符),在字符串中查找該字符。如果找到,則輸出該字符在字符串中所對應的最大下標(下標從0開始)否則輸出“ntoud”#includesdio.hintmain(void)i

溫馨提示

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

評論

0/150

提交評論