免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*/* 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程序设计-谭浩强书后面习题答案/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(请输入三个数a,b,c:n);scanf(%d,%d,%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(最大数为:%dn,max);*/3.6写出以下程序的运行结果:/*#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/解:程序的运行结果为:/aabb cc abc/A N*/*3.7将China译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母,例如,字母A后面第4个字母是E,用E代替A.因此,China应译为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写出下面程序的运行结果: /特别重要对于理解+和-字符的运算顺序/*#includevoid main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);*/解:结果: 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.想得到以下的输出格式和结果,请写出程序要求输出的结果如下: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函数输入数据,使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函数时,第一个输入行末尾输入的回车被第二个scanf函数吸收,因此在第二三个scanf函数的双引号后设一个空格以抵消上行入的回车.如果没有这个空格,按上面输入数据会出错,读者目前对此只留有一初步概念即可,以后再进一步深入理解.*/*4.7用下面的scanf函数输入数据使a=10,b=20,c1=A,c2=a,x=1.5,y=-3.75,z=57.8,请问在键盘上如何输入数据?scanf(%5d%5d%c%c%f%f%*f %f,&a,&b,&c1,&c2,&y,&z);解:*/*#include /三个浮点数之间不能留空格啊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有三个整数a,b,c,由键盘输入,输出其中最大的数./*#includevoid main()int a,b,c;printf(请输入三个数:);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:使用条件表达式./*#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中最大数是%dn,max);*/5.7给一个不多于5位的正整数,要求:1.求它是几位数2.分别打印出每一位数字3.按逆序打印出各位数字.例如原数为321,应输出123./*#includevoid main()long int num;int indiv,ten,hundred,thousand,tenthousand,place;printf(请输入一个整数(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(每位数字为:);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反序数字为:);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反序数字为:);printf(%d%d%d%dn,indiv,ten,hundred,thousand);break;case 3:printf(%d,%d,%dn,hundred,ten,indiv);printf(n反序数字为:);printf(%d%d%dn,indiv,ten,hundred);case 2:printf(%d,%dn,ten,indiv);printf(n反序数字为:);printf(%d%dn,indiv,ten);case 1:printf(%dn,indiv);printf(n反序数字为:);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输入两个正数,求最大公约数最小公倍数./*#includevoid main()int a,b,num1,num2,temp;printf(请输入两个正整数: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(它们的最大公约数为:%dn,a);printf(它们的最小公倍数为:%dn,num1*num2/a);*/6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数./解:/*#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(其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%dn,letters,space,digit,other);*/6.3求s(n)=a+aa+aaa+aaa之值,其中工是一个数字./解:/*#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各数平方和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( 水仙花数是: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完数/* /方法二:此题用数组方法更为简单.#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 有一个分数序列:2/1,3/2,5/3,8/5求出这个数列的前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次落地时共经过的米数hn=hn/2;/第n次反跳高度printf(第10次落地时共经过%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(桃子总数=%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 个数排序. /*选择法排序.*/ /*#define N 10 #includevoid main() int i,j,min,temp,aN; /输入数据 printf(请输入十个数: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 排序结果如下: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 插入数据到数组 /插入数据到数组/*#includevoid main() int a11=1,4,6,9,13,16,19,28,40,100; int temp1,temp2,number,end,i,j; printf(初始数组如下:); 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 将一个数组逆序存放。 /数组逆序存放 /*#define N 5 #include void main() int aN=8,6,5,4,1,i,temp; printf(初始数组: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交换后的数组: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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版哮喘症状和护理指南
- 少儿科普讲解大赛
- 网红老师自我介绍
- 胶质瘤问诊方法
- 儿歌音乐节拍游戏
- 如何做好营养保健
- 2025年一级造价师交通案例分析真题及答案
- 员工生日活动方案
- 林业专业基础知识考试题库及答案
- 屋面工程施工方案
- T-EJCCCSE 197-2025 系统窗施工技术规范
- 环卫驾驶员安全知识培训课件
- 不锈钢水箱安装施工方案(3篇)
- 卫生院药房专业知识培训课件
- correlation 测量相关性模板
- 山西农行笔试题目及答案
- 第三单元 分数除法 (讲义)-2025-2026学年六年级上册数学人教版
- 工厂玩手机管理办法规定
- DB35∕T 2169-2024 仲裁庭数字化建设规范
- 2025年福建省国有资产管理有限公司人员招聘笔试备考试题及答案
- 岭南版美术五年级上册3. 童眼看世界 课件(内嵌视频)
评论
0/150
提交评论