《C程序設(shè)計》課后習(xí)題答案(譚浩強(qiáng))代碼.docx_第1頁
《C程序設(shè)計》課后習(xí)題答案(譚浩強(qiáng))代碼.docx_第2頁
《C程序設(shè)計》課后習(xí)題答案(譚浩強(qiáng))代碼.docx_第3頁
《C程序設(shè)計》課后習(xí)題答案(譚浩強(qiáng))代碼.docx_第4頁
《C程序設(shè)計》課后習(xí)題答案(譚浩強(qiáng))代碼.docx_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

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

文檔簡介

/*/* this is a program made by tornado */* if you have any comments or suggestion */* you can contact with him by Email: */* thank you for your review of this program. */*/ c程序設(shè)計-譚浩強(qiáng)書后面習(xí)題答案/15請參照本章例題,編寫一個C程序,輸出以下信息:/*/Very Goodj!/*/解:/#include/*void main()printf( * n);printf(n);printf( Very Good! n);printf(n);printf( *n);*/1.6編寫一個程序,輸入a b c三個值,輸出其中最大者。/解:/*void main()int a,b,c,max;printf(請輸入三個數(shù)a,b,c:n);scanf(%d,%d,%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(最大數(shù)為:%dn,max);*/3.6寫出以下程序的運(yùn)行結(jié)果:/*#includevoid main()char A=A; char c1=a,c2=b,c3=c,c4=101,c5=116;printf(a%c b%ctc%ctabcn,c1,c2,c3);printf(tb%c %cn,c4,c5);printf(%dn,A); /a=97 A=65/解:程序的運(yùn)行結(jié)果為:/aabb cc abc/A N*/*3.7將China譯成密碼.密碼規(guī)律:用原來的字母后面第4個字母代替原來的字母,例如,字母A后面第4個字母是E,用E代替A.因此,China應(yīng)譯為Glmre.請編一程序,用賦初值的議程使c1,c2,c3,c4,c5分別變成G,1,m,r,e,并輸出.*/*#includevoid main()char c1=C,c2=h,c3=i,c4=n,c5=a;printf(未加密前是%c%c%c%c%cn,c1,c2,c3,c4,c5);c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(密碼是%c%c%c%c%cn,c1,c2,c3,c4,c5);*/3.10寫出下面程序的運(yùn)行結(jié)果: /特別重要對于理解+和-字符的運(yùn)算順序/*#includevoid main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);*/解:結(jié)果: 9,11,9,10/*4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b.想得到以下的輸出格式和結(jié)果,請寫出程序要求輸出的結(jié)果如下:a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1=a or 97(ASCII)c2=B or 98(ASCII)解:*/*#includevoid main()int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1=a;c2=b;printf(n);printf(a=%2d b=%2d c=%2dn,a,b,c);printf(x=%8.6f,y=%8.6f,z=%9.6fn,x,y,z);printf(x+y=%5.2f y=z=%5.2f z+x=%5.2fn,x+y,y+z,z+x);printf(u=%6ld n=%9ldn,u,n);printf(c1=%c or %d(ASCII)n,c1,c1);printf(c2=%c or %d(ASCII)n,c2,c2);*/4.6用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,/問在鍵盤上如何輸入?/*#include void main()int a,b;float x,y;char c1,c2;scanf(a=%d b=%d,&a,&b);printf(a=%d b=%d,a,b);scanf( x=%f y=%e,&x,&y);printf( x=%f y=%e,x,y);/scanf( c1=%c c2=%c,&c1,&c2);printf( c1=%c c2=%c,c1,c2);*/*說明:在邊疆使用一個或多個scnaf函數(shù)時,第一個輸入行末尾輸入的回車被第二個scanf函數(shù)吸收,因此在第二三個scanf函數(shù)的雙引號后設(shè)一個空格以抵消上行入的回車.如果沒有這個空格,按上面輸入數(shù)據(jù)會出錯,讀者目前對此只留有一初步概念即可,以后再進(jìn)一步深入理解.*/*4.7用下面的scanf函數(shù)輸入數(shù)據(jù)使a=10,b=20,c1=A,c2=a,x=1.5,y=-3.75,z=57.8,請問在鍵盤上如何輸入數(shù)據(jù)?scanf(%5d%5d%c%c%f%f%*f %f,&a,&b,&c1,&c2,&y,&z);解:*/*#include /三個浮點數(shù)之間不能留空格啊void main()int a,b;float x,y,z;char c1,c2;scanf(%5d%5d%c%c%f%f%*f,%f,&a,&b,&c1,&c2,&x,&y,&z);printf(%5d%5d%c%c%f%f%f,a,b,c1,c2,x,y,z);*/5.4有三個整數(shù)a,b,c,由鍵盤輸入,輸出其中最大的數(shù)./*#includevoid main()int a,b,c;printf(請輸入三個數(shù):);scanf(%d,%d,%d,&a,&b,&c);if(ab)if(bc) printf(max=%dn,c); else printf(max=%dn,b);else if(ac)printf(max=%dn,c);elseprintf(max=%dn,a);*/方法2:使用條件表達(dá)式./*#includevoid main()int a,b,c,temp,max;printf( 請輸入 A,B,C: );scanf(%d,%d,%d,&a,&b,&c);printf(A=%d,B=%d,C=%dn,a,b,c);temp=(ab)?a:b;max=(tempc)? temp:c; printf( A,B,C中最大數(shù)是%dn,max);*/5.7給一個不多于5位的正整數(shù),要求:1.求它是幾位數(shù)2.分別打印出每一位數(shù)字3.按逆序打印出各位數(shù)字.例如原數(shù)為321,應(yīng)輸出123./*#includevoid main()long int num;int indiv,ten,hundred,thousand,tenthousand,place;printf(請輸入一個整數(shù)(0-99999):);scanf(%ld,&num);if(num9999)place=5;else if(num999)place=4;else if(num99)place=3;else if(num9)place=2;else place=1;printf(place=%dn,place);printf(每位數(shù)字為:);tenthousand=num/10000;thousand=(num-tenthousand*10000)/1000;hundred=(num-tenthousand*10000-thousand*1000)/100;ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10;indiv=num-tenthousand*10000-thousand*1000-hundred*100-ten*10; switch(place) case 5:printf(%d,%d,%d,%d,%d,tenthousand,thousand,hundred,ten,indiv); printf(n反序數(shù)字為:);printf(%d%d%d%d%dn,indiv,ten,hundred,thousand,tenthousand);break;case 4:printf(%d,%d,%d,%d,thousand,hundred,ten,indiv);printf(n反序數(shù)字為:);printf(%d%d%d%dn,indiv,ten,hundred,thousand);break;case 3:printf(%d,%d,%dn,hundred,ten,indiv);printf(n反序數(shù)字為:);printf(%d%d%dn,indiv,ten,hundred);case 2:printf(%d,%dn,ten,indiv);printf(n反序數(shù)字為:);printf(%d%dn,indiv,ten);case 1:printf(%dn,indiv);printf(n反序數(shù)字為:);printf(%dn,indiv); */*#includevoid main()long i;float bonus,bon1,bon2,bon4,bon6,bon10;/初始化變量bon1=100000*0.1;bon2=100000*0.075+bon1;bon4=200000*0.05+bon2;bon6=200000*0.03+bon4;bon10=400000*0.015+bon6;printf(請輸入利潤);scanf(%ld,&i);/計算if(i=1e5)bonus=i*0.1;else if(i2e5)bonus=bon1+(1-100000)*0.075;else if(i=4e5)bonus=bon2+(i-200000)*0.05;else if(i=6e5)bonus=bon4+(i-400000)*0.03;else if(i=1e6)bonus=bon6+(i-600000)*0.015;elsebonus=bon10+(i-1000000)*0.01;printf(獎金是 %10.2fn,bonus);printf(%fn,1e2);*/6.1輸入兩個正數(shù),求最大公約數(shù)最小公倍數(shù)./*#includevoid main()int a,b,num1,num2,temp;printf(請輸入兩個正整數(shù):n);scanf(%d,%d,&num1,&num2);if(num1num2)temp=num1;num1=num2;num2=temp;a=num1,b=num2;while(b!=0)temp=a%b;a=b;b=temp;printf(它們的最大公約數(shù)為:%dn,a);printf(它們的最小公倍數(shù)為:%dn,num1*num2/a);*/6.2輸入一行字符,分別統(tǒng)計出其中英文字母,空格,數(shù)字和其它字符的個數(shù)./解:/*#include void main()char c;int letters=0,space=0,digit=0,other=0;printf(請輸入一行字符:n); while(c=getchar()!=n)if(c=a&cA&c=0&c=9)digit+;elseother+;printf(其中:字母數(shù)=%d 空格數(shù)=%d 數(shù)字?jǐn)?shù)=%d 其它字符數(shù)=%dn,letters,space,digit,other);*/6.3求s(n)=a+aa+aaa+aaa之值,其中工是一個數(shù)字./解:/*#includevoid main()int a,n,count=1,sn=0,tn=0; /解決問題的方法值得借鑒!printf(請輸入a和n的值:n);scanf(%d,%d,&a,&n);printf(a=%d n=%d n,a,n);while(count=n)tn=tn+a;sn=sn+tn;a=a*10;+count;printf(a+aa+aaa+aaa=%dn,sn);*/ /6.4 求1+2!+3!+4!+20!./*#includevoid main()float n,s=0,t=1;for(n=1;n=20;n+)t=t*n;s=s+t;printf(1!+2!+20!=%en,s);*/6.5/*#includevoid main()int N1=100,N2=50,N3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k=N1;k+)/計算1到100的和s1=s1+k;for(k=1;k=N2;k+)/計算1到50各數(shù)平方和s2=s2+k*k;for(k=1;k=N3;k+)s3=s3+1/k;printf(總和=%8.2fn,s1+s2+s3);*/6.6水仙開花/*#includevoid main()int i,j,k,n;printf( 水仙花數(shù)是:n);for(n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%dn,n);printf(n);*/6.7完數(shù)/* /方法二:此題用數(shù)組方法更為簡單.#include#define M 1000/定義尋找范圍void main()int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;int i,j,n,s;for(j=2;j=M;j+) n=0; s=j;for(i=1;i1)printf(%d,%d,k0,k1);if(n2)printf(,%d,k2);if(n3)printf(,%d,k3);if(n4)printf(,%d,k4);if(n5)printf(,%d,k5);if(n6)printf(,%d,k6);if(n7)printf(,%d,k7);if(n8)printf(,%d,k8);if(n9)printf(,%d,k9);printf(n);*/6.8 有一個分?jǐn)?shù)序列:2/1,3/2,5/3,8/5求出這個數(shù)列的前20項之和./解:/*#includevoid main()int n,t,number=20;float a=2,b=1,s=0;for(n=1;n=number;n+)s=s+a/b;t=a,a=a+b,b=t;printf(總和=%9.6fn,s);*/6.9球反彈問題/*#includevoid main()float sn=100.0,hn=sn/2;int n;for(n=2;n=10;n+)sn=sn+2*hn;/第n次落地時共經(jīng)過的米數(shù)hn=hn/2;/第n次反跳高度printf(第10次落地時共經(jīng)過%f米 n,sn);printf(第10次反彈%f米.n,hn);*/6.10猴子吃桃/*#includevoid main()int day,x1,x2;day=9;x2=1;while(day0)x1=(x2+1)*2;x2=x1;day-;printf(桃子總數(shù)=%dn,x1);*/6.14打印圖案/*#includevoid main() int i,j,k;for(i=0;i=3;i+)for(j=0;j=2-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);for(i=0;i=2;i+)for(j=0;j=i;j+)printf( );for(k=0;k=4-2*i;k+)printf(*);printf(n);*/6.15乒乓比賽/*#includevoid main() char i,j,k;/i是a是對手;j是b是對手;k是c的對手for(i=x;i=z;i+)for(j=x;j=z;j+)if(i!=j)for(k=x;k=z;k+)if(i!=k & j!=k) if ( i!=x & k!=x & k!=z)printf(順序為:na-%ctb-%ctc-%cn,i,j,k);*/7.2 用選擇法對 10 個數(shù)排序. /*選擇法排序.*/ /*#define N 10 #includevoid main() int i,j,min,temp,aN; /輸入數(shù)據(jù) printf(請輸入十個數(shù):n); for (i=0;iN;i+) printf(a%d=,i); scanf(%d,&ai); printf(n); for(i=0;iN;i+) printf(%5d,ai); printf(n); /排序 for (i=0;iN-1;i+) min=i; for(j=i+1;jaj) min=j; /排序思想有待近一步清晰temp=ai;ai=amin; amin=temp; /輸出 printf(n 排序結(jié)果如下:n); for(i=0;iN;i+) printf(%5d,ai); printf(n); */7.3 對角線和: /計算矩陣對角線元素之和/*#includevoid main() float a33,sum=0; int i,j; printf(請輸入矩陣元素:n); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%f,&aij); for(i=0;i3;i+) sum=sum+aii; printf(對角元素之和=%6.2fn,sum); */7.4 插入數(shù)據(jù)到數(shù)組 /插入數(shù)據(jù)到數(shù)組/*#includevoid main() int a11=1,4,6,9,13,16,19,28,40,100; int temp1,temp2,number,end,i,j; printf(初始數(shù)組如下:); for (i=0;iend) a10=number; else for(i=0;inumber) temp1=ai; ai=number; for(j=i+1;j11;j+) temp2=aj; aj=temp1; temp1=temp2; break; printf(插入元素后顯示如下:n);for(i=0;i11;i+) printf(%5d,ai); printf(n); */7.5 將一個數(shù)組逆序存放。 /數(shù)組逆序存放 /*#define N 5 #include void main() int aN=8,6,5,4,1,i,temp; printf(初始數(shù)組:n); for(i=0;iN;i+) printf(%4d,ai); for(i=0;iN/2;i+) temp=ai; ai=aN-i-1; aN-i-1=temp; printf(n交換后的數(shù)組:n); for(i=0;iN;i+) printf(%4d,ai); printf(n); */7.6 楊輝三角 /打印楊輝三角形 /*#define N 11 #includevoid main() int i,j,aNN; for(i=1;iN;i+) aii=1; ai1=1; for(i=3;iN;i+) for(j=2;j=i-1;j+) aij=ai-1j-1+ai-1j; /打印輸出for(i=1;iN;i+) for(j=1;j=i;j+) printf(%6d,aij); printf(n); printf(n); */7.11/打印圖案 /*#inc

溫馨提示

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

評論

0/150

提交評論