您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页大学C语言课后习题答案

大学C语言课后习题答案

来源:华佗小知识


1.6编写一个程序,输入a b c三个值,输出其中最大者。 解:main()

{int a,b,c,max; printf(\"请输入三个数a,b,c:\\n\"); scanf(\"%d,%d,%d\max=a;

if(max解:字符常量是一个字符,用单引号括起来。字符串常量是由0个或若干个字符而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号'\\0'. 3.7将\"China\"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母, 例如,字母\"A\"后面第4个字母是\"E\用\"E\"代替\"A\".因此,\"China\"应译为\"Glmre\".请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并输出. main()

{char c1=\"C\c1+=4; c2+=4; c3+=4; c4+=4; c5+=4;

printf(\"密码是%c%c%c%c%c\\n\

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= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1='a' or 97(ASCII) c2='B' or 98(ASCII) 解: 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=%2d\\n\printf(\"x=%8.6f,y=%8.6f,z=%9.6f\\n\

printf(\"x+y=%5.2f y=z=%5.2f z+x=%5.2f\\n\printf(\"u=%6ld n=%9ld\\n\

printf(\"c1='%c' or %d(ASCII)\\n\printf(\"c2='%c' or %d(ASCII)\\n\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\main()

{int a,b; float x,y,z; char c1,c2;

scanf(\"%5d%5d%c%c%f%f\运行时输入:10 20Aa1.5 -3.75 +1.5,67.8

注解:按%5d格式的要求输入a与b时,要先键入三个空格,而后再打入10与20。%*f是用来禁止赋值的。在输入时,对应于%*f的地方,随意打入了一个数1.5,该值不会赋给任何变量。

4.8设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积,用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字.请编程. 解:main()

{float pi,h,r,l,s,sq,vq,vz; pi=3.1415926; printf(\"请输入圆半径r圆柱高h:\\n\"); scanf(\"%f,%f\

l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=4.0/3.0*pi*r*r*r; vz=pi*r*r*h;

printf(\"圆周长为: =%6.2f\\n\圆面积为: =%6.2f\\n\圆球表面积为: =%6.2f\\n\

printf(\"圆球体积为: =%6.2f\\n\

4.9输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32),输出要有文字说明,取两位小数. 解: main()

{float c,f; printf(\"请输入一个华氏温度:\\n\"); scanf(\"%f\printf(\"摄氏温度为:%5.2f\\n\

5.4有三个整数a,b,c,由键盘输入,输出其中最大的数. main()

{ int a,b,c; printf(\"请输入三个数:\"); scanf(\"%d,%d,%d\printf(\"max=%d\\n\printf(\"max=%d\\n\

else printf(\"max-%d\\n\

5.9 输入四个整数,按大小顺序输出. main()

{int t,a,b,c,d; printf(\"请输入四个数:\"); scanf(\"%d,%d,%d,%d\printf(\"\\n\\n a=%d,b=%d,c=%d,d=%d \\n\{t=a;a=c;c=t;}

if(a>d) {t=a;a=d;d=t;} if(b>c) {t=b;b=c;c=t;} if(b>d) {t=b;b=d;d=t;} if(c>d)

{t=c;c=d;d=t;} printf(\"\\n 排序结果如下: \\n\"); printf(\" %d %d %d %d \\n\5.10有4个圆塔,圆心分别为(2,2)(-2,2),(-2,-2),(2,-2),圆半径为1。这4个塔的高度为10米,今输入任一点的坐标,求该点的建筑高度。 main()

{ int h=10; float x,y,x0=2,y0=2,d1,d2,d3,d4; printf(\"请输入一个点(x,y):\"); scanf(\"%f,%f\

d1=(x-x0)*(x-x0)+(y-y0)(y-y0); d2=(x-x0)*(x-x0)+(y+y0)(y+y0); d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);

d4=(x+x0)*(x+x0)+(y+y0)*(y+y0); if(d1>1 && d2>1 && d3>1 && d4>1) h=0; printf(\"该点高度为%d\

6.1输入两个正数,求最大公约数最小公倍数. main()

{ int a,b,num1,num2,temp; printf(\"请输入两个正整数:\\n\"); scanf(\"%d,%d\

if(num16.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数. 解: #include

main()

{ char c; int letters=0,space=0,degit=0,other=0; printf(\"请输入一行字符:\\n\"); while((c=getchar())!='\\n') { if(c>='a'&&c<='z'||c>'A'&&c<='Z') letters++; else if(c==' ') space++; else if(c>='0'&&c<='9') digit++; else other++; }

printf(\"其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%d\\n\

6.3求s(n)=a+aa+aaa+…+aa…a之值,其中工是一个数字. 解:main()

{ int a,n,count=1,sn=0,tn=0; printf(\"请输入a和n的值:\\n\"); scanf(\"%d,%d\

printf(\"a=%d n=%d \\n\++count; } printf(\"a+aa+aaa+…=%d\\n\6.4 求1+2!+3!+4!+…+20!. main()

{ float n,s=0,t=1; for(n=1;n<=20;n++) { t=t*n; s=s+t; } printf(\"1!+2!+…+20!=%e\\n\6.6水仙花数 main()

{ int i,j,k,n; printf(\" '水仙花'数是:\"); for(n=100;n<1000;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(\"%d\

6.8 有一个分数序列:2/1,3/2,5/3,8/5……求出这个数列的前20项之和. 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.6f\\n\

7.3对角线和: /*计算3*3矩阵对角线元素之和*/ main()

{ float a[3][3],sum=0; int i,j; printf(\"请输入矩阵元素:\\n\"); for(i=0;i<3;i++) for(j=0;j<3;j++)

scanf(\"%f\对角元素之和=6.2f\

6.14打印图案 main()

{ int i,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-1;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\"); }

7.1用筛选法求100之内的素数. /*用筛选法求100之内的素数*/ #include #define N 101 main()

{ int i,j,line,a[N]; for(i=2;iif(a[j]%a[i]==0) a[j]=0; printf(\"\\n\"); for(i=2,line=0;iif(line==10) { printf(\"\\n\"); line=0;} } } 7.2用选择法对10个数排序. /*选择法排序.*/ #define N 10 main()

{ int i,j,min,temp,a[N];/*输入数据*/ printf(\"请输入十个数:\\n\"); for (i=0;iscanf(\"%d\排序*/

for (i=0;ia[j]) min=j; temp=a[i]; a[i]=a[min];

a[min]=temp; } /*输出*/ printf(\"\\n排序结果如下:\\n\"); for(i=0;i7.6杨辉三角 /*打印10行杨辉三角形*/ #define N 11 main()

{ int i,j,a[N][N]; for(i=1;ia[i][j]=a[i01][j-1]+a[i-1][j]; for(i=1;i7.13/*连接两个字符串(不用'stract')*/ main()

{ char s1[80],s2[40]; int i=0,j=0; printf(\"\\n请输入字符串1:\"); scanf(\"%s\printf(\"\\n请输入字符串2:\"); scanf(\"%s\while(s2[j]!='\\0') s1[i++]=s2[j++]; s1[i]='\\0'; printf(\"\\n连接后字符串为:%s\7.14/*字符串s1和s2比较*/ #include main()

{int i,resu; char s1[100],s2[100]; printf(\"请输入字符串1:\\n\"); gets(s1); printf(\"\\n 请输入字符串2:\\n\");

gets(s2); i=0; while((s1[i]==s2[i]) && (s1[i]!='\\0'))i++; if(s1[i]=='\\0' && s2[i]=='\\0')resu=0;

else resu=s1[i]-s2[i]; printf(\" %s与%s比较结果是%d\7.15/*字符串s2中字符复制到s1中*/ #include main()

{char from[80],to[80]; int i; printf(\"请输入字符串\"); scanf(\"%s\for(i=0;i<=strlen(from);i++)

to[i]=from[i]; printf(\"复制字符串为:%s\\n\

8.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果#include //下面函数求最大公约数 int (int a,int b)

{ int t; while((t=a%b)!=0) { a=b; b=t; } return b; } //下面函数求最小公倍数 int

lcm(int a,int b)

{ int t; t=a; while(t%b)t+=a; return t; } //主函数 void main() { int m,n; printf(\"请输入两个整数:\");

scanf(\"%d%d\

printf(\"%d 与 %d 的最大公约数是 %d\\n\printf(\"%d 与 %d 的最小公倍数是 %d\\n\

10.6 写一函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度 #include //求以指针head为开头的字符串长度 int howlong(char *head)

{ int i;//长度计数器 char *p;//工作指针,用它来检查每一个字符 i=0; p=head; while(*p)//循环条件是指针p未移到结束符'\\0'处

{ i++;//计数 p++;//工作指针后移 } return i; } void main() { char c[81]; printf(\"请输入字符串:\\n\");

gets(c); //输入字符串 printf(\"字符串长度是: %d\\n\输出其长度 } 例6.6 用π/4≈1-1/3+1/5-1/7+。。。。公式求π的近似值,直到某一项的绝对值小于1e-6为止 #include main()

{ int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while((fabs(t))>1e-6) {pi=pi+t; n=n+2; s=-s; t=s/n; }

pi=pi*4; printf(\"pi=%10.6f\\n\

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务