C語言課后習(xí)題參考答案_第1頁
C語言課后習(xí)題參考答案_第2頁
C語言課后習(xí)題參考答案_第3頁
C語言課后習(xí)題參考答案_第4頁
C語言課后習(xí)題參考答案_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言課后習(xí)題參考答案語言課后習(xí)題參考答案第第3章章 部分習(xí)題參考答案部分習(xí)題參考答案一、單項(xiàng)選擇題:一、單項(xiàng)選擇題:CACBB CDBBB ADCCB DCCBB二、填空題:二、填空題:a!=b | a20 & x30 | x-1000非非011. x%3=0 & x%7=0 或或 x%21=0三、編程題三、編程題2、#include #include void main() float a,b,c,p,s; printf(請(qǐng)輸入三角形的三邊長(zhǎng)請(qǐng)輸入三角形的三邊長(zhǎng): ); scanf(%f%f%f,&a,&b,&c); if(a+bc & a+

2、cb & b+ca) p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); printf(三角形面積為三角形面積為: %.2fn,s); else printf(輸入的邊長(zhǎng)不能構(gòu)成三角形輸入的邊長(zhǎng)不能構(gòu)成三角形!n);第3章 習(xí)題3、#include void main() int x,y; scanf(%d,&x); if(x-5 & x0 & x-5 & x0 & x8) y=x+1;if(x=8) y=10;if(x=8) y=10;else if(x0) y=x-1;else if(x=0) y=x;else

3、y=x+1;第3章 習(xí)題4、鍵盤輸入一字符,大寫轉(zhuǎn)小寫,小寫轉(zhuǎn)大寫,其他原樣輸出。、鍵盤輸入一字符,大寫轉(zhuǎn)小寫,小寫轉(zhuǎn)大寫,其他原樣輸出。#include void main() char ch; scanf(%c,&ch); if(ch=A & ch=a & ch=A & ch=a & ch=z)printf(%cn,ch-32);elseprintf(%cn,ch);第3章 習(xí)題8.#include void main()int year,flag=1;double money,rate,total;printf(請(qǐng)輸入存款本金和年限請(qǐng)輸入存款本金和

4、年限: );scanf(%lf%d,&money,&year);if(year=1) rate=0.00215;else if(year=2) rate=0.0023;else if(year=3) rate=0.00245;else if(year=5) rate=0.00275;else if(year=8) rate=0.0032;else flag=0;if(flag=1)total=money*(1+rate*12*year);printf(總金額為總金額為: %.2lfn,total);else printf(輸入的期限不正確輸入的期限不正確!n);第3章 習(xí)題#i

5、nclude void main()int year,flag=1;double money,rate,total;printf(請(qǐng)輸入存款本金和年限請(qǐng)輸入存款本金和年限: );scanf(%lf%d,&money,&year);switch(year)case 1: rate=0.00215; break;case 2: rate=0.0023; break;case 3: rate=0.00245; break;case 5: rate=0.00275; break;case 8: rate=0.0032; break;default: printf(輸入的期限不正確輸入的

6、期限不正確!n);flag=0;if(flag=1)total=money*(1+rate*12*year);printf(總金額為總金額為: %.2lfn,total);第第4章章 部分習(xí)題參考答案部分習(xí)題參考答案一、單項(xiàng)選擇題一、單項(xiàng)選擇題 BCDBD BCDBB CCCCC BACDD二、編程題二、編程題2 . 編程輸出編程輸出1200之間所有能被之間所有能被3整除、且個(gè)位數(shù)為整除、且個(gè)位數(shù)為6的整數(shù)。的整數(shù)。方法方法2:#include void main () int i; for(i=6;i=200;i=i+10) if(i%3=0) printf(%5d,i); printf(n

7、);方法方法1:#include void main () int i; for(i=1;i=200;i+) if(i%3=0 & i%10=6) printf(%5d,i); printf(n);3. 編程從鍵盤輸入編程從鍵盤輸入k的值及的值及k個(gè)整數(shù),統(tǒng)計(jì)其中的正數(shù)、零和負(fù)個(gè)整數(shù),統(tǒng)計(jì)其中的正數(shù)、零和負(fù)數(shù)的個(gè)數(shù)。數(shù)的個(gè)數(shù)。#include void main () int x,k,i,p=0,z=0,m=0; printf(請(qǐng)輸入待輸入數(shù)據(jù)的個(gè)數(shù)請(qǐng)輸入待輸入數(shù)據(jù)的個(gè)數(shù): ); scanf(%d,&k); printf(請(qǐng)輸入請(qǐng)輸入%d個(gè)整數(shù)個(gè)整數(shù): ,k); for(i=1

8、;i0) p+; else if(x=0) z+; else m+; printf(正數(shù)、正數(shù)、0、負(fù)數(shù)個(gè)數(shù)分別、負(fù)數(shù)個(gè)數(shù)分別為為:%d,%d,%dn,p,z,m);第4章 習(xí)題6. 編程求編程求e=1+1/1!+1/2!+1/3!+1/n!,直到最后一項(xiàng)小,直到最后一項(xiàng)小于于10-5為止。為止。#include void main ()float sum,n,m,c;sum=1; n=1; m=1; c=1;while(c=1E-5)m=m*n;c=1/m;sum=sum+c;n=n+1;printf(e=%fn,sum);#include void main ()int i=1;doubl

9、e s=1,e=1;while(1/s=1E-5)s=s*i;e=e+1/s;i+;printf(e=%lfn,e);第4章 習(xí)題7. 輸入兩個(gè)正整數(shù)輸入兩個(gè)正整數(shù)m和和n,求其最小公倍數(shù)。,求其最小公倍數(shù)。#include void main ()int m,n,i;printf(請(qǐng)輸入兩個(gè)正整數(shù)請(qǐng)輸入兩個(gè)正整數(shù): );scanf(%d%d,&m,&n);for(i=m;i+)if(i%m=0 & i%n=0)break;printf(%d,%d的最小公倍數(shù)為的最小公倍數(shù)為%dn,m,n,i);#include void main ()int m,n,i;printf

10、(請(qǐng)輸入兩個(gè)正整數(shù)請(qǐng)輸入兩個(gè)正整數(shù): );scanf(%d%d,&m,&n);i=m;while(i%m!=0 | i%n!=0)i+;printf(%d,%d的最小公倍數(shù)為的最小公倍數(shù)為%dn,m,n,i);第4章 習(xí)題8. 輸入若干學(xué)生的成績(jī),輸入負(fù)數(shù)時(shí)表示輸入結(jié)束,求所有學(xué)生輸入若干學(xué)生的成績(jī),輸入負(fù)數(shù)時(shí)表示輸入結(jié)束,求所有學(xué)生的最高分。的最高分。#include void main() int cj,max=0; printf(輸入成績(jī),以負(fù)數(shù)結(jié)束輸入成績(jī),以負(fù)數(shù)結(jié)束: ); scanf (%d,&cj); while(cj=0) if(maxcj) max=c

11、j; scanf (%d,&cj); printf(最高分:最高分:%dn,max);#include void main() int cj,max=0; printf(輸入成績(jī),以負(fù)數(shù)結(jié)束輸入成績(jī),以負(fù)數(shù)結(jié)束: ); while(1) scanf (%d,&cj); if(cj0) break; if(maxcj) max=cj; printf(最高分:最高分:%dn,max);第4章 習(xí)題13. 有有36塊磚,由塊磚,由36人搬:男人一次搬人搬:男人一次搬4塊,女人一次搬塊,女人一次搬3塊,塊,兩個(gè)小孩抬兩個(gè)小孩抬1塊,要求一次剛好全部搬完。問男、女、小孩各多塊,要求一次剛

12、好全部搬完。問男、女、小孩各多少人?少人?#include void main () int x,y,z; /x,y,z分別表示男分別表示男,女女,小孩數(shù)小孩數(shù) for(x=0;x9;x+) for(y=0;y12;y+) z=36-x-y; if(4*x+3*y+z/2=36 & z%2=0) printf(%d %d %dn,x,y,z); 第4章 習(xí)題14. 猴子摘桃問題。猴子摘桃問題。T10=1Tn=(Tn+1+1)*2求求T1=?nyt=1,i=9開始開始i1結(jié)束結(jié)束t=(t+1)*2i=i-1輸出輸出t#include void main ()int i,t;t=1;for

13、(i=9;i=1;i-)t=(t+1)*2;printf(第一天桃子數(shù)量為第一天桃子數(shù)量為: %dn,t);第4章 習(xí)題15. 求數(shù)列求數(shù)列2/1 , 3/2 , 5/3 , 8/5 , 的前的前n項(xiàng)之和。項(xiàng)之和。#include void main()int a,b,t,i,n;double sum=0.0;printf(請(qǐng)輸入請(qǐng)輸入n:);scanf(%d,&n);a=2,b=1;for (i=1;i=n;i+)sum=sum+(double)a/b;t=a; a=a+b; b=t;printf(sum=%fn,sum);第4章 習(xí)題第第5章章 部分習(xí)題參考答案部分習(xí)題參考答案一、

14、單項(xiàng)選擇題一、單項(xiàng)選擇題 BBADC BDBCC DDDDC BAACDl 補(bǔ)補(bǔ)1:輸入:輸入6個(gè)整數(shù)到數(shù)組個(gè)整數(shù)到數(shù)組a中,將其逆序輸出。中,將其逆序輸出。l 補(bǔ)補(bǔ)2:輸入:輸入6個(gè)整數(shù)到數(shù)組個(gè)整數(shù)到數(shù)組a中,將其逆序存儲(chǔ),然后輸出。中,將其逆序存儲(chǔ),然后輸出。補(bǔ)補(bǔ)1:#include void main() int i,a6; for(i=0;i=0;i-) printf(%d ,ai); printf(n);補(bǔ)補(bǔ)2:#include void main() int i,j,a6,t; printf(請(qǐng)輸入請(qǐng)輸入6個(gè)整數(shù)個(gè)整數(shù): ); for(i=0;i6;i+) scanf(%d,&am

15、p;ai); for(i=0,j=5;ij;i+,j-) t=ai ; ai=aj ; aj=t ; printf(逆序后數(shù)據(jù)為逆序后數(shù)據(jù)為: ); for(i=0;i6;i+) printf(%d ,ai); printf(n); 0 1 2 3 4 5 3 7 5 2 6 1a第5章 習(xí)題二、編程題二、編程題1.#include void main()int a10,i,k,sum;float ave;printf(請(qǐng)輸入請(qǐng)輸入10個(gè)整數(shù)個(gè)整數(shù): );for(i=0;i10;i+)scanf(%d,&ai);sum=0,k=0;for(i=0;i0) sum+=ai; k+; av

16、e=(float)sum/k;printf(正數(shù)的個(gè)數(shù)為正數(shù)的個(gè)數(shù)為: %d, 平均值為平均值為: %.2fn,k,ave);第5章 習(xí)題2.方法一:方法一:#include void main()int a100,i,n,score; float sum,ave;i=0,sum=0;while(1)printf(請(qǐng)輸入第請(qǐng)輸入第%d個(gè)學(xué)生成績(jī)個(gè)學(xué)生成績(jī): ,i+1);scanf(%d,&score);if(score0) break;ai=score; sum+=ai;i+;n=i;ave=sum/n;printf(平均分為平均分為: %.2fn,ave);printf(低于平均分的

17、成績(jī)有低于平均分的成績(jī)有: );for(i=0;in;i+)if(aiave) printf(%d ,ai);printf(n);第5章 習(xí)題2.方法二:方法二:#include void main()int a100,i=0,n,score;float sum=0,ave;printf(請(qǐng)輸入學(xué)生成績(jī),以負(fù)數(shù)結(jié)束:請(qǐng)輸入學(xué)生成績(jī),以負(fù)數(shù)結(jié)束:);scanf(%d,&score);while(score=0)ai=score;sum+=ai;i+;scanf(%d,&score);n=i;ave=sum/n;printf(平均分為平均分為: %.2fn,ave);printf(

18、低于平均分的成績(jī)有低于平均分的成績(jī)有: );for(i=0;in;i+)if(aiave) printf(%d ,ai);printf(n);第5章 習(xí)題改:改:從鍵盤輸入一個(gè)從鍵盤輸入一個(gè)33的矩陣,求該矩陣主對(duì)角線的矩陣,求該矩陣主對(duì)角線與副對(duì)角線上的元素之和。與副對(duì)角線上的元素之和。#include void main() int a33, i, j, sum=0 ; printf(請(qǐng)輸入請(qǐng)輸入33矩陣元素矩陣元素:n); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); if(i=j | i+j=2) sum=sum+aij; prin

19、tf(主副對(duì)角線元素和主副對(duì)角線元素和: %dn, sum);第5章 習(xí)題5.#include #define M 3#define N 4void main() int i,j;float aMN,bM,sum;printf(請(qǐng)輸入請(qǐng)輸入%d%d矩陣矩陣:n,M,N);for(i=0;iM;i+)sum=0;for(j=0;jN;j+)scanf(%f,&aij);sum+=aij; bi=sum/N;printf(各行平均值為:各行平均值為:);for(i=0;iM;i+)printf(%7.2f,bi);printf(n);第5章 習(xí)題8.#include #includevoi

20、d main() char a20;int i;printf(請(qǐng)輸入字符串:請(qǐng)輸入字符串:);gets(a);for(i=strlen(a)-1;i=0;i-)printf(%c,ai);printf(n);第5章 習(xí)題9.#include void main() char s180,s240;int i,j;printf(請(qǐng)輸入第請(qǐng)輸入第1個(gè)字符串個(gè)字符串:);gets(s1);printf(請(qǐng)輸入第請(qǐng)輸入第2個(gè)字符串個(gè)字符串:);gets(s2);i=0;while(s1i!=0)i+;j=0;while(s2j!=0) s1i=s2j; i+; j+; s1i=0;printf( 連接后

21、的字符串為連接后的字符串為:%sn,s1);第5章 習(xí)題10.#include void main() char s180,s280;int i;printf(請(qǐng)輸入一個(gè)字符串請(qǐng)輸入一個(gè)字符串:);gets(s2);for(i=0;s2i!=0;i+)s1i=s2i; s1i=0;printf(復(fù)制后的字符串為復(fù)制后的字符串為:%sn,s1);第5章 習(xí)題13./冒泡法升序排序冒泡法升序排序#include #include void main() int n,i,j; char t,s80; printf(請(qǐng)輸入字符串請(qǐng)輸入字符串: ); gets(s); n=strlen(s); for(

22、i=0;in-1;i+) for(j=0;jsj+1) t=sj,sj=sj+1,sj+1=t; printf(排序后字符串排序后字符串: ); puts(s);/選擇法升序排序選擇法升序排序#include #include void main() int n,i,j,m; char t,s80; printf(請(qǐng)輸入字符串請(qǐng)輸入字符串: ); gets(s); n=strlen(s); for(i=0;in-1;i+) m=i; for(j=i+1;jn;j+) if(sjsm) m=j; if(m!=i) t=si,si=sm,sm=t; printf(排序后字符串排序后字符串: );

23、puts(s);第5章 習(xí)題第第6章章 部分習(xí)題參考答案部分習(xí)題參考答案一、單項(xiàng)選擇題一、單項(xiàng)選擇題 CAAAB DCBBB CADAD CDBA A 注:第注:第20小題不做要求小題不做要求二、編程題二、編程題3.#includevoid main() int min(int,int,int); int a,b,c,d,e,m1,m2; printf(請(qǐng)輸入請(qǐng)輸入5個(gè)整數(shù)個(gè)整數(shù): ); scanf(%d%d%d%d%d,&a,&b,&c,&d,&e); m1=min(a,b,c); m2=min(m1,d,e); printf(最小值為最小值為: %d

24、n,m2);int min(int x,int y,int z) int m; if(xy) m=x; else m=y; if(zm) m=z; return m;第6章 習(xí)題4.#include#includevoid main() int prime(int m); int i; for(i=2;i=100;i+) if(prime(i) printf(%5d,i); printf(n);int prime(int m) int k,n; n=(int)sqrt(m); for(k=2;k=n;k+) if(m%k=0) return 0; return 1;第6章 習(xí)題5.#inclu

25、deint fgcd(int m,int n) /最大公約數(shù)函數(shù)最大公約數(shù)函數(shù) int i; i=mm?m:n; for( ; ;i+) if(i%m=0 & i%n=0) return i; void main() int a,b,gy,gb; printf(請(qǐng)輸入兩個(gè)整數(shù)請(qǐng)輸入兩個(gè)整數(shù): ); scanf(%d%d,&a,&b); gy=fgcd(a,b); gb=flcd(a,b); printf(%d,%d的最大公約數(shù)為的最大公約數(shù)為:%dn,a,b,gy); printf(%d,%d的最小公倍數(shù)為的最小公倍數(shù)為:%dn,a,b,gb);第6章 習(xí)題6.#inc

26、ludeint f(int a,int n) int i,t=0; for(i=1;i=n;i+) t=t*10+a; return t;void main() int a,n,i,s=0; printf(請(qǐng)輸入兩個(gè)整數(shù)請(qǐng)輸入兩個(gè)整數(shù)a,n: ); scanf(%d%d,&a,&n); for(i=1;i=n;i+) s=s+f(a,i); printf(結(jié)果為結(jié)果為: %dn,s);第6章 習(xí)題8.#include#define N 6int max(int a) int i,m; m=a0; for(i=1;iN;i+) if(mai) m=ai; return m;voi

27、d main() int i,bN; printf(請(qǐng)輸入請(qǐng)輸入%d個(gè)整數(shù)個(gè)整數(shù): ,N); for(i=0;iN;i+) scanf(%d,&bi); printf(最大數(shù)為最大數(shù)為: %dn,max(b);第6章 習(xí)題9.#includevoid sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; void main() int i,n,a100; /最多最多100個(gè)元素個(gè)元素 printf(請(qǐng)輸入元素個(gè)數(shù)請(qǐng)輸入元素個(gè)數(shù): ); scanf(%d,&n); p

28、rintf(請(qǐng)輸入請(qǐng)輸入%d個(gè)元素個(gè)元素: ,n); for(i=0;in;i+) scanf(%d,&ai); sort(a,n); printf(排序結(jié)果為排序結(jié)果為:); for(i=0;in;i+) printf(%d ,ai); printf(n);第6章 習(xí)題12.#includeint fib(int k) int f; if(k=1) f=0; else if(k=2) f=1; else f=fib(k-1)+fib(k-2); return f;void main() int i,n; printf(請(qǐng)輸入項(xiàng)數(shù)請(qǐng)輸入項(xiàng)數(shù): ); scanf(%d,&n);

29、printf(前前%d項(xiàng)項(xiàng)fibonacci數(shù)列為數(shù)列為:,n); for(i=1;i=n;i+) printf(%d ,fib(i); printf(n);第6章 習(xí)題第第7章章 部分習(xí)題參考答案部分習(xí)題參考答案一、單項(xiàng)選擇題一、單項(xiàng)選擇題 DBCCC ACBAD CACC D DDCDC CBCAC 注:注:1525小題不做要求小題不做要求二、填空題二、填空題 1. 2010 5 2. s=p+3 s=s-2 100 *(s+1) 2 3. 110 4. abcde a 5. malloc( sizeof(int)*11 ) 不做要求不做要求三、編程題(用指針完成)三、編程題(用指針完成)

30、1.#includevoid swap(int *px,int *py) int t; t=*px; *px=*py; *py=t;void main() int a,b,c; printf(請(qǐng)輸入三個(gè)整數(shù)請(qǐng)輸入三個(gè)整數(shù): ); scanf(%d%d%d,&a,&b,&c); if(ab) swap(&a,&b); if(ac) swap(&a,&c); if(bc) swap(&b,&c); printf(三個(gè)數(shù)從大到小為三個(gè)數(shù)從大到小為: %d %d %dn,a,b,c);第7章 習(xí)題2.#includevoid sw

31、ap(int *px,int *py) int t; t=*px; *px=*py; *py=t;void main() int a10,i; int *pmax,*pmin; /兩個(gè)指針分別指向最大,最小數(shù)兩個(gè)指針分別指向最大,最小數(shù) printf(請(qǐng)輸入請(qǐng)輸入10個(gè)整數(shù)個(gè)整數(shù): ); for(i=0;i10;i+) scanf(%d,&ai); pmax=pmin=a; for(i=1;i10;i+) if(*pmaxai) pmin=&ai; swap(pmax,&a9); swap(pmin,&a0); printf(交換后的交換后的10個(gè)數(shù)為個(gè)數(shù)為:

32、); for(i=0;i10;i+) printf(%d ,ai); printf(n); 第7章 習(xí)題3.#includevoid main() char a100,*p=a; int flag=0; printf(請(qǐng)輸入一個(gè)字符串請(qǐng)輸入一個(gè)字符串: ); gets(a); while(*p!=0) if(*p=k) flag=1; break; p+; if(flag=1) printf(已找到已找到!n); else printf(沒找到?jīng)]找到n); 第7章 習(xí)題5.#includevoid scat(char *s1,char *s2) char *p1=s1,*p2=s2; whil

33、e(*p1!=0) p1+; while(*p2!=0) *p1=*p2; p1+; p2+; *p1=0;void main() char a80,b40; printf(請(qǐng)輸入第請(qǐng)輸入第1個(gè)字符串個(gè)字符串: ); gets(a); printf(請(qǐng)輸入第請(qǐng)輸入第2個(gè)字符串個(gè)字符串: ); gets(b); scat(a,b); printf(b連接到連接到a后字符串為后字符串為:%sn,a); 第7章 習(xí)題6.#include#includevoid main() int hw(char *s); char s80; printf(請(qǐng)輸入一個(gè)字符串請(qǐng)輸入一個(gè)字符串: ); gets(s); if(hw(s) printf(該字符串是回文該字符串是回文!n); else pri

溫馨提示

  • 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. 人人文庫(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)論