ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:32.61KB ,
资源ID:4865680      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4865680.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计习题参考答案.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计习题参考答案.docx

1、C语言程序设计习题参考答案第一章 C语言概述参考答案一、1C 2二、1、函数 2、位 3、分号 4、main 5、 6、换行 7、注释 8、函数首部、函数体9、main 10、编辑、编译、连接、运行 三、1错错对对对对错8对四、1、#include /*包含头文件,为了使用printf和scanf语句,注意句末无分号*/void main() printf(“* * * * * * * * * * * n”); /*n的作用相当于回车*/ printf(“ I am a student.n”); printf(“* * * * * * * * * * * n”);2、#include void

2、 main() int a,b; printf(“Please input a,b:n”); scanf(“%d,%d”,&a,&b); /*注意输入两个数之间用逗号分隔*/ if(ab) printf(“%d”,a); else printf(“%d”,b);3、#include void main() int a,b,c,max; printf(“Please input a,b,c:n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a;if(ab) max=b; /*max用于保存a,b中比较大的数*/if(maxc) max=c; /*将a,b中较大的数再和c比

3、较* /printf(“The largest number is %d”,max);第二章 数据与运算参考答案一、1 21二、1、8 2、28 3、5 4、0 5、double 6、8 ,10 7、12 8、D 9、52 10、25,21,37 11、48 12、20 200.000000 14、9,11,9,10 15、11.5013、aa口bb口口口cc口口口口口口abc A口N三、1.错 2.对 对错错对错错错对四、1、1)第1步:(int)(x+y)=(int)(7.2)=7第2步:a%3*7%2/4=7%3*7%2/4=1*7%2/4=1/4=0第3步:x+0=x=2.5(计算机显

4、示为2.500000)1、2)第1步:(float)(a+b)/2=(float)(2+3)/2=(float)(5)/2=5.0/2=2.5第2步:(int)x%(int)y=(int)(3.5)%(int)(2.5)=3%2=1第3步:2.5+1=3.5(计算机显示为3.500000)2、1)(a=a+a=12+12=24) 2、2)(a=a-2=12-2=10) 2、3)(a=a*(2+3)=12*5=60)2、4) (a=a/(a+a)=12/24=0,注意a是整型) 2、5) 已知n的值等于5 a=0 2、6)(从右向左解开:a=a*a=144;a=a-a=0;a=a+a=0)五、编

5、程题1、参考答案:#include void main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(“password is %c%c%c%c%cn”,c1,c2,c3,c4,c5);运行结果:password is Glmre也可以用循环和数组:#include void main() char c=“China”; printf(“password is “);for(int i=0;i=4,i+)printf(“%c”,ci+=4); printf(“n”);2、参考答案:#i

6、nclude void main() char c1=97,c2=98; printf(“%d, %dn”,c1,c2); printf(“%c,%cn”,c1,c2);3、参考答案: #include #include void main() double a, b, c, total, average, square, squareroot; printf(请输入三个双精度实数:); scanf(%lf%lf%lf, &a, &b, &c); total = a + b + c; average = total/3.0; square = a*a + b*b + c*c; squarero

7、ot = sqrt(square); printf(三个数的和=%-15.3f,三个数的平均值=%-15.3fn, total, average); printf(三个数的平方和x=%.3f,x的平方根=%.3fn, square, squareroot); 运行结果: 请输入三个双精度实数:1.23 4.56 7.89 三个数的和=13.680 ,三个数的平均值=4.560 三个数的平方和x=84.559,x的平方根=9.1964、 参考答案: #include #include void main() float a, b, c, k, area; printf(请输入三角形三条边的边长:

8、); scanf(%f%f%f, &a, &b, &c); /*由键盘输入三角形三边边长*/ if (a+b = c) | (a+c = b) | (b+c = a) printf(您输入的三条边无法构成三角形。n); exit(1); /* 结束程序 */ k = (a+b+c)/2; area = sqrt( k*(k-a)*(k-b)*(k-c) ); /* 函数sqrt(x)是求 x 的平方根 */ printf(该三角形的面积是%6.2fn, area); 运行结果: 请输入三角形三条边的边长:3.4 5.6 7.4 该三角形的面积是 9.055、 参考答案: #include vo

9、id main() long a1, a2, a3, a4; printf(请输入两个整数:); scanf(%ld%ld, &a1, &a2); a3 = a1/a2; a4 = a1%a2; printf(两数进行整数除的商是%ld, 余数是%ldn, a3, a4); 运行结果:请输入两个整数: 654321 789两数进行整数除的商是829, 余数是2406、参考答案: 要求得到某数(例如f=1.875)的第二位小数位,先把f乘以100(f*100),值为187.5,然后取f*100的整数部分(int)(f*100),值为187,最后由(int)(f*100)%10得到其个位数程序如下

10、: #include void main() int a, b, c; float f; printf(请输入两个整数:); scanf(%d%d, &a, &b); f = 1.0*a/b ; c = (int)(f*100)%10; printf(两数进行实数除,商是%f, 商的第二位小数位是%dn, f, c); 运行结果:请输入两个整数: 15 8两数进行实数除,商是1.875000, 商的第二位小数位是77、参考答案: #include void main() unsigned u, high4, low4; printf(请输入一个无符号整数:); scanf(%u, &u); l

11、ow4 = (u & 0xf); /* u的低四位保留原值,其余位置0 */ high4 = (u & 0xf000)12; /* u的高四位保留原值,其余位置0,并右移12位 */ printf(%u 的十六进制是%xn , u, u); printf(十六进制表示%u的低四位是%x,高四位是%xn, u, low4, high4); 运行结果: 请输入一个无符号整数:54332 54332 的十六进制是d43c 十六进制表示54332的低四位是c,高四位是d8、参考答案: #include void main() char c1, c2, t; printf(请输入两个半角的小写英文字母:

12、); c1=getchar(); c2=getchar(); c1 -= 32; c2 -= a-A; /*与32等价*/ t = c1; c1 = c2; c2 = t; printf(%c%cn, c1, c2); 运行结果: 请输入两个半角的小写英文字母:db BD9、 参考答案: #include void main() int k; int hour, minute, second; printf(请输入秒数:); scanf(%d, &k); hour = k/3600; k %= 3600; minute = k/60; second = k%60; printf(%d小时%d分

13、钟%d秒。n, hour, minute, second); 运行结果:请输入秒数: 72782小时1分钟18秒。10、 参考答案: #include void main() float a, b, c, d, real, imag; printf(请输入第一个数的实部和虚部:); scanf(%f%f, &a, &b); printf(请输入第二个数的实部和虚部:); scanf(%f%f, &c, &d); real = a*c-b*d; imag = a*d+b*c; printf(两个复数积的实部和虚部分别是%f, %fn, real, imag); 运行结果:请输入第一个数的实部和虚

14、部:1.1 2.2请输入第二个数的实部和虚部:3.3 4.4 两个复数积的实部和虚部分别是-6.050000, 12.100000第3章 C程序的基本控制结构参考答案一、单选题:1、B 2、D 3、A 4、B 5、B 6、A 7、B 8、D 9、C 10、C 11、C 12、B 13、C 14、D 15、D 16、C 17、B 18、B二、填空题:1、6.6 2、Z 3、5,6,A,B 4、1 F 5、22 6、x=-x 7、9 8、month 9、!10、27 11、3,3,3 12、15151513、0 14、D 15、ch=ch+32 16、sum= sum+ grade 17、int

15、k1=0,k2=0,k3=018、c=a&c=z 19、x=(i-1)*4+j 三、改错题1、错误语句:if (year%400!=0)正确语句:if (year%400=0)2、错误语句:scanf(“%d”,x); 正确语句:scanf(“%d”,&x);3、错误语句:max=(tempc)?temp:c ;4、错误语句:if( x%5= =0|x%7= =0 ) 正确语句:if( x%5= =0&x%7= =0 ) 5、错误语句:int i,num; 正确语句:int i,num=0;6、错误语句:while (fabs(t)10-6) 正确语句:while (fabs(t)1e-6)7

16、、错误语句:int f1,f2; 正确语句:long int f1,f2;四、编程题:1、从键盘输入一个圆的半径,输出圆的面积。输出时要有文字说明,取小数点后2位。#includevoid main() float r,s; scanf(“%f”,&r); s=3.14*r*r; printf(“s=%.2f”,s);2、输入一个整数,判断是奇数还是偶数。#includevoid main()int i; scanf (“%d”,&i); if (i%2= =0) printf(“%d 是一个偶数 ”,i); elseprintf(“%d 是一个奇数 ”,i);3、从键盘输入一个三角形的边长,

17、输出三角形面积,取2位小数。当三角形不成立时输出“它不是一个三角形”。#include#includevoid main() float a,b,c,s,area; scanf (“%f,%f,%f”,&a,&b,&c); if (a+bc & b+ca & c+ab) s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%.2fn”,area);else printf(“它不是一个三角形”);4、从键盘输入一个字符,判断其是否是大写字母,如果是大写字母,则转换为小写字母,否则不转换。#includevoid main()

18、char c; c=getchar( ); if ( c=A&c=Z) c=c+32; printf(“%c”,c); 5、从键盘输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中A对应的是90分(含90分)以上的成绩,B对应的是8089分的成绩,C对应的是7079的成绩分,D对应的是6069分的成绩,E对应的是小于60分的成绩。如果输入的数值小于0或大于100要有“输入成绩错误”的信息显示。#includevoid main() int score,c; scanf (“%d”,&score); c=score/10; switch (c) case 0: case 1: case

19、 2: case 3: case 4: case 5: printf(“E”);break; case 6: printf(“D”); break; case 7: printf(“C”); break; case 8: printf(“B”); break; case 9: case 10: printf(“A”); break; default: printf(“error”);6、编写程序,求123200。 #includevoid main( )int i,s;i=1;s=1;for(i=1;i=200;i+)s=s+i; printf(1+2+3+200=%dn,s);7、有一分数序

20、列:2/1,3/2,5/3,8/5,13/8,21/13,求出这个数列的前20项之和。#include void main()int i,temp;float f2=2,f1=1,sum=0;for(i=1;i=20;i+) sum=sum+f2/f1; temp=f2;f2=f2+f1;f1=temp; printf(sum=%9.6fn,sum);8、求1!+2!+3!+4!+20!#include void main()int i;float sum=0,f=1;for(i=1;i=20;i+) f= f*i; sum= sum+f; printf(sum=%en,sum);9、用牛顿迭

21、代法求方程4x3-8x2+6x-12=0在1.5附近的根。#include#includevoid main()float x=1.5,x0,y,f1;do x0=x; y=(4*x0-8)*x0+6)*x0-12; f1=(12*x0-16)*x0+6; x=x0-y/f1; while(fabs(x-x0)=1e-6);printf(x=%10.2fn,x); 10、打印出以下图案。 * * * * * * *#include void main( )int i,j,k;for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(k=1;k=2*i-1

22、;k+) printf(*); printf(n); for(i=1;i=3;i+) for(j=1;j=i;j+) printf( ); for(k=1;kstring) stringstr2;正确语句:if (strcmp(str2,string)0) strcpy(string,str2);3、错误语句:char c5=C,h ,i,n,a ;正确语句:char c6=C,h ,i,n,a ;或char c =“China”;4、错误语句:int a3=3*0 ; 正确语句:int a4;5、错误语句:scanf(“%d%d%d”,&a);正确语句:for (i=0; i3; i+) s

23、canf(“%d”,&ai); 或scanf(“%d%d%d”, &a0, &a1, &a2);四、编程题1、用数组来处理,求解Fibonacci数列前40项:1,1,2,3,5,8,13,21。 #includevoid main() int i; int t40=1,1; for(i=2;i40;i+) ti=ti-2+ti-1; for(i=0;i40;i+) if(i%5=0) printf(n); printf(%15d,ti); 2、用选择法对20个整数排序(由大到小)。#includevoid main()int i,j,min,t,x20;for(i=0;i20;i+) sca

24、nf(%d,&xi);for(i=0;i19;i+) min=i; for(j=i+1;jxj)min=j; t=xi; xi=xmin; xmin=t; for(i=0;i20;i+) printf(%6d,xi);3、有一个35的矩阵,要求编程序求出其中值最小的那个元素的值,以及其所在的行号和列号。#includevoid main()int i,j,s=0,t=0,min; int a35;for (i=0;i3;i+) for (j=0;j5;j+)scanf(%d, &aij); min=a00; for (i=0;i3;i+) for (j=0;j5;j+) if (aijmin)

25、 min=aij; s=i; t=j; printf(min=%d,s=%d,t=%dn,min,s,t);4、编一程序,将两个字符串连接起来,不要用strcat函数。#includevoid main()char str180,str220;int i=0,j=0;scanf(%s,str1);scanf(%s,str2); printf(str1:%sn,str1); printf(str2:%sn,str2);while(str1i!=0)i+;while(str2j!=0)str1i=str2j; i+; j+;str1i=0; printf(%sn,str1);5、求一个55矩阵对角线元素之和(左上至右下之对角线)。#includevoid main( )float a55,sum=0;int i,j;for(i=0;i5;i+) for(j=0;j5;j+)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1