高级程序设计(c语言)答案谭浩强版.doc_第1页
高级程序设计(c语言)答案谭浩强版.doc_第2页
高级程序设计(c语言)答案谭浩强版.doc_第3页
高级程序设计(c语言)答案谭浩强版.doc_第4页
高级程序设计(c语言)答案谭浩强版.doc_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include1.5请参照本章例题,编写一个C程序,输出以下信息:* Very Good!*解:mian()printf(“*”);printf(“n”);printf(“Very Good!n”);printf(“n”);printf(“*”);1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解:mian()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(“最大数为:“%d”,max);第三章3.6写出以下程序运行的结果。 main() char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%cb%ctc%ctabcn”,c1,c2,c3);printf(“tb%c %c”,c4,c5);解: aabbccabc AN3.7要将China译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母例如,字母A后面第4个字母是EE代替A。因此,China应译为Glmre。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,C、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别变为G、l、m、r、e,并输出。解:#include main() char c1=C,c2=h,c3=i,c4=n,c5=a;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(密码是%c%c%c%c%cn,c1,c2,c3,c4,c5); 运行结果: 密码是Glmre3.9求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5(1)2.5(2)3.53.10写出程序运行的结果。main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“%d,%d,%d,%d”,i,j,m,n);解: 9,11,9,103.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a (5) a%=(n%=2),n的值等于5(6)a+=a-=a*=a解:(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0第四章44若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.600_ _y+z=-1.20_ _z+x=-2.40c1=a_or_97(ASCII)c2=b_or_98(ASCII)main()int a=3,b=4,c=5;long int u=51274,n=128765;float x=1.2,y=2.4,z=3.6;char c1=a,c2=b;printf(a=%2d b=%2d c=%2dn,a,b,c);printf(x=%f,y=%f,z=%fn,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(%s %s %d%sn,c1=a,or,c1,(ASCII);printf(%s %s %d%sn,c2=a,or,c2,(ASCII);47用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,问在键盘上如何输入?main()int a,b;float x,y;char c1c2;scanf(a=%d_b=%d,&a,&b);scanf(_x=%f_y=%e,&x,&y);scanf(_c1=%c_c2=%c,&c1,&c2);a=3_b=7_x=8.5_y=71.82_c1=A_c2=a4-8#define pi 3.1415void main()float r,h,rl,ra,ss,sv,cv;printf(输入圆的半径和圆柱的高nn);scanf(%f%f,&r,&h);rl=2*pi*r;ra=pi*r*r;ss=4*pi*r*r;sv=4*pi*r*r*r/3;cv=ra*h;printf(圆周长为:%fnn圆面积为:%fnn圆球表面积为:%fnn圆球体积为:%fnn圆柱体积为:%fnn,rl,ra,ss,sv,cv);4-9#include void main()float F,c;printf(输入一个华氏温度nn);scanf(%f,&F);c=5*(F-32)/9;printf(摄氏温度为:%.2fnn,c);第五章5-4#include void main()int a,b,c,max;printf(输入三个整数a,b,cnn);scanf(%d%d%d,&a,&b,&c);if(ab) max=a;else max=b;if(maxc) max=c;printf(最大的数为:%dnn,max);5-5#include void main()float x,y;printf(输入xnn);scanf(%f,&x);if(x1) y=x;else if(x10) y=2*x-1; else y=3*x-11; printf(y=%fnn,y);5-6#include void main()float m;int n;printf(输入成绩nn);scanf(%f,&m);n=m/10;switch(n)case 0:case 1: case 2:case 3: case 4:case 5:printf(Enn);break;case 6:printf(Dnn);break;case 7:printf(Cnn);break;case 8:printf(Bnn);break;case 9:case 10:printf(Ann);break;5-7#include #include void main()int a,b,c,i,j,n;printf(输入五位正整数nn);scanf(%d,&a);printf(nn);c=a; for(i=1;i+) b=c%10; c=c/10; printf(%d,b); if(c=0) printf(nn); printf(正整数为%d位数nn,i);break; c=a;for(j=i-1;j=0;j-) n=pow(10,j); b=c/n; c=c%n; printf(%dn,b);5-8if语句:#include void main()int I;float bonus;printf(输入当月利润Inn);scanf(%d,&I);if(I=100000) bonus=I/10;else if(I=200000) bonus=10000+(I-100000)*7.5/100; else if(I=400000) bonus=10000+7500+(I-200000)*5/100; else if(I=600000) bonus=10000+7500+10000+(I-400000)*3/100; else if(I=1000000) bonus=10000+7500+10000+6000+(I-600000)*1.5/100; else bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;printf(应发奖金数为:%fnn,bonus);switch语句:#include void main()int I,n;float bonus;printf(输入当月利润Inn);scanf(%d,&I);if(I1000000) n=10;else n=I/100000;switch(n)case 0:bonus=I/10;break;case 1:bonus=10000+(I-100000)*7.5/100;break;case 2: case 3:bonus=10000+7500+(I-200000)*5/100;break;case 4:case 5:bonus=10000+7500+10000+(I-400000)*3/100;break;case 6:case 7:case 8:case 9:bonus=10000+7500+10000+6000+(I-600000)*1.5/100;break;case 10:bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;break;printf(应发奖金数为:%fnn,bonus);5-9#include void main()int a,b,c,d,temp,min;printf(输入四个数a,b,c,dnn);scanf(%d%d%d%d,&a,&b,&c,&d);if(ab) temp=a; a=b; b=temp;if(ac) temp=a; a=c; c=temp;if(ad) temp=a; a=d; d=temp;printf(由小到大排列为:nn);printf(%d ,a);if(bc) temp=b; b=c; c=temp;if(bd) temp=b; b=d; d=temp;printf(%d ,b);if(cd) temp=c; c=d; d=temp;printf(%d ,c);printf(%d,d);5-10#include #include void main()float x,y,a,b,c,d;printf(输入点的坐标nn);scanf(%f%f,&x,&y);a=sqrt(2-x)*(2-x)+(2-y)*(2-y);b=sqrt(2-x)*(2-x)+(-2-y)*(-2-y);c=sqrt(-2-x)*(-2-x)+(-2-y)*(-2-y);d=sqrt(-2-x)*(-2-x)+(2-y)*(2-y);if(a=1|b=1|c=1|d=1) printf(该点建筑高度为:10m);else printf(该点建筑高度为:0m);第六章:6-1#include #include void main()int m,n,max,min,i,k;printf(输入两个正整数nn);scanf(%d%d,&m,&n);if(mn) k=n;else k=m;for(i=1;in) k=m;else k=n;for(i=k;i+) if(i%m=0)&(i%n=0) min=i; break; printf(最小公倍数为:%dnn,min);6-2#include void main()char c;int l=0,b=0,n=0,e=0;printf(输入一行字符nn);while(c=getchar()!=n) if(c=a&c=A&c=48&c=57) n+=1; else e+=1;printf(英文字母个数为:%dnn空格个数为:%dnn数字个数为:%dnn其他字符个数为:%dnn,l,b,n,e);6-3#include #include void main()int n,k,i;float a,s=0;printf(输入n和ann);scanf(%d%f,&n,&a);for(i=0;in;i+) k=pow(10,i); s=s+(n-i)*a*k;printf(和s=%fnn,s);6-4#include void main()int n,s,S=0,i,j;printf(输入nnn);scanf(%d,&n);for(i=1;j=n;i+) s=1; for(j=1;j=i;j+) s=s*j; S+=s;printf(和S=%dnn,S);6-5#include void main()int i,m,n,t;int s1=0,s2=0;float s3=0,s,l;printf(输入m,n,t的值nn);scanf(%d%d%d,&m,&n,&t);for(i=1;i=m;i+) s1+=i;for(i=1;i=n;i+) s2+=i*i;for(i=1;i=t;i+) l=1.0/i; s3+=l;s=s1+s2+s3;printf(和s=%f,s);6-6#include void main()int m,n,k,i,j;printf(水仙花数为:n);for(i=100;i=999;i+) j=i; m=j%10; j=j/10; n=j%10; k=j/10; if(i=m*m*m+n*n*n+k*k*k) printf(%d ,i);6-7#include #include void main()int i,j,k,s;for(i=1;i=1000;i+) s=0; for(j=1;ji;j+) if(i%j=0) s+=j; if(s=i) printf(nn); printf(%d its factors are ,i); for(j=1;ji;j+) if(i%j=0) printf(%d ,j); 6-8#include void main()int n,i;float f1,f2,s,temp;printf(输入nnn);scanf(%d,&n);f1=2.0;f2=3.0;s=f1;for(i=1;i=n-1;i+) s+=f2/f1; temp=f2; f2=f1+f2; f1=temp;printf(前%d项和为%f,n,s);6-9#include #include void main()int i,n,l=100;float m,s=0;printf(输入nnn);scanf(%d,&n);m=l;for(i=1;i=n;i+) s+=2*m; m=m*0.5; printf(第%d次落地时经过%f米nn,n,s-l);printf(第%d次落地后反弹%f米nn,n,m);6-10#include void main()int m=1,n,i;printf(输入nnn);scanf(%d,&n);for(i=1;in;i+) m=(m+1)*2;printf(一共摘了%d个桃子nn,m);6-11#include #include void main()float a,x1,x2;printf(输入ann);scanf(%f,&a);x1=a/2;loop:x2=(x1+a/x1)/2;if(fabs(x1-x2)1e-5) x1=x2; goto loop;else printf(nna的平方根为%fnn,x2);6-12#include #include void main()float f(float); float xpoint(float,float); float root(float,float);float x,x1,x2,f1,f2;do printf(输入x1,x2nn); scanf(%f%f,&x1,&x2); f1=f(x1); f2=f(x2);while(f1*f20);x=root(x1,x2);printf(方程在1.5附近的根为:%fnn,x);float f(float x)float y;y=2*x*x*x-4*x*x+3*x-6;return(y);float xpoint(float x1,float x2)float y;y=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1);return(y);float root(float x1,float x2)float x,y,y1;y1=f(x1);do x=xpoint(x1,x2); y=f(x); if(y*y10) y1=y; x1=x; else x2=x;while(fabs(y)1e-4);return(x);6-13#include #include void main()float f(float);float root(float,float);float x,x1,x2,f1,f2;do printf(输入x1,x2nn); scanf(%f%f,&x1,&x2); f1=f(x1); f2=f(x2);while(f1*f20);x=root(x1,x2);printf(方程的根为:%fnn,x);float f(float x)float y;y=2*x*x*x-4*x*x+3*x-6;return(y);float root(float x1,float x2)float x,y;do y=f(x1+x2)/2); if(y1e-4) x2=(x1+x2)/2; else x=(x1+x2)/2;while(fabs(y)1e-4);return(x);6-14#include void 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#include void main()char i,j,k;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-%cnB-%cnC-%cn,i,j,k); 第七章7-1#include #include void main()int i,j;int a101;printf(素数为:nn);for(i=1;i=100;i+) ai=i;for(i=3;i=100;i+) for(j=2;j=sqrt(ai);j+) if(ai%j=0) ai=0; break; for(i=2;i=100;i+) if(ai!=0) printf(%d ,ai);7-2#include void main()int a10,i,j,temp;printf(输入10个整数nn);for(i=0;i10;i+) scanf(%d,&ai);for(i=0;i10;i+) for(j=i+1;jaj) temp=ai; ai=aj; aj=temp; printf(排序后的输出为:nn);for(i=0;i10;i+) printf(%d ,ai);printf(nn);7-3#include void main()int a9,i,s=0;printf(输入一个3*3整型矩阵nn);for(i=0;i9;i+) scanf(%d,&ai);for(i=0;i9;i+=4) s+=ai;printf(对角线元素之和为:%dnn,s);7-4#include void main()int a11=1,2,3,4,5,6,7,8,9,10;int i,j,n,temp1,temp2;printf(输入一个数nnn);scanf(%d,&n); if(a0-a9)0) if(n=a9) a10=n; else for(i=0;i10;i+) if(ain) temp1=ai; ai=n; for(j=i+1;j0) if(n=a9) a10=n; else for(i=0;in) temp1=ai; ai=n; for(j=i+1;j11;j+) temp2=aj; aj=temp1; temp1=temp2; break; for(i=0;i11;i+) printf(%d ,ai);7-5#include #define N 5void main()int aN;int i,temp;printf(输入5个个数nn);for(i=0;iN;i+) scanf(%d,&ai);for(i=0;i=N/2;i+) temp=ai; ai=aN-i-1; aN-i-1=temp;for(i=0;iN;i+) printf(%d ,ai);printf(nn);7-6#include #include void main()int a1010=1;int i,j;for(i=1;i10;i+) for(j=0;j=i;j+) ai0=ai-10; aij=ai-1j-1+ai-1j; for(i=0;i10;i+) for(j=0;j=i;j+) printf(%4d,aij); printf(nn);7-7#include #define N 7void main()int aNN=0;int i,j,k;i=0;j=(N-1)/2;aij=1;for(k=2;k=N*N;k+) i=i-1; j=j+1; if(iN-1) i=i+2; j=j-1; else if(iN-1) j=0; if(aij=0) aij=k; else i=i+2; j=j-1; aij=k; for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(nn); 7-8#include void main()int a44,i,j,max,min,k1,k2,flag;printf(输入一个4*4的数组nn);for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,&aij); printf(鞍点为:nn);for(i=0;i4;i+) max=ai0; for(j=0;j4;j+) if(max=aij) max=aij; k1=j; min=a0k1; for(j=0;j=ajk1) min=ajk1; k2=j; if(max!=min) flag=0; else flag=1; printf(%dn,max); break; if(flag=0) printf(不存在nn);7-9#include void main()float a15=100,98,65,55,34,23,23,12,11,9,7,6,4,3,2,n;int i,low,high,mid;printf(原数组为:nn);for(i=0;i15;i+) printf(%6.2f,ai);printf(nn输入一个数nnn);scanf(%f,&n);low=0;high=14;i=0;while(low=high) mid=(low+high)/2; if(amid=n) printf(该数是数组中第%d个元素nn,mid+1); i+; break; else if(amidn) high=mid-1; else low=mid+1;if(i=0) printf(无此数!nn);7-10#include void main()char a380;int i,j,upon=0,low=0,num=0,spa=0,oth=0;for(i=0;i3;i+) printf(输入第%d行文字nn,i); gets(ai); for(j=0;j=A&aij=a&aij=48&aij=57) num+=1; else if(aij= ) spa+=1; else oth+=1; printf(英文大写字母:%d个nn,upon);printf(英文小写字母:%d个nn,low);printf(数字: %d个nn,num);printf(空格: %d个nn,spa);printf(其他字符: %d个nn,oth);7-11#include void main()int i,j;for(i=0;i5;i+) for(j=0;j=i;j+) printf( ); for(j=i;ji+5;j+) printf(* ); printf(n);7-12#include void main()char a80,b80;int i,j;printf(输入密码nn);gets(a);for(i=0;i=A)&(ai=a)&(ai=z) bi=219-ai; else bi=ai;bi=0;printf(密文为:nn);puts(a);printf(原文为:nn);puts(b);7-13#include void main()char a80,b80;int i,j,k;printf(输入第1个字符串nn);gets(a);printf(输入第2个字符串nn);gets(b);for(i=0;i80;i+) if(ai=0) k=i; for(j=0;j80&bj!=0;j+) ak=bj; k+; ak=0; break; printf(连接后字符串为:nn);puts(a);7-14#include void main()char a80,b80;int i,j,k;printf(输入第1个字符串nn);gets(a);printf(输入第2个字符串nn);gets(b);for(i=0;(i0) printf(nn字符串a大于字符串b:%4dnn,k); break; else if(k0) printf(nn字符串a小于字符串b:%4dnn,k); break; else k=0;if(k=0) printf(nn字符串a等于字符串b:%4dnn,k);7-15#include void main()char s180,s280;int i,j;printf(输入数组s1nn);gets(s1);printf(输入数组s2nn);gets(s2);for(i=0;i80&s2i!=0;i+) s1i=s2i;s1i=0;printf(nn复制后的数组为:nn);puts(s1);第八章8-1#include void main()int max_div(int,int);int min_mul(int,int);int m,n;printf(输入两个整数nn);scanf(%d%d,&m,&n);if(max_div(m,n)=0) printf(nn无最大公约数为nn);else printf(nn最大公倍数为:%dnn,max_div(m,n);printf(nn最大公倍数为:%dnn,min_mul(m,n);int max_div(int k1,int k2)int min(int,int);int i,k,flag;k=min(k1,k2);for(i=k;i1;i-) if(k1%i=0)&(k2%i=0) return(i); flag=1; break; else flag=0;if(flag=0) return(0);int min_mul(int k1,int k2)int max(int,int);int i,k;k=max(k1,k2);for(i=k;i+) if(i%k1=0)&(i%k2=0) return(i); break; int min(int k1,int k2)int min;min=k1;if(k1k2) min=k2;return(min);int max(int k1,int k2)int max;max=k1;if(k1k2) max=k2;return(max);8-2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论