C语言课后题编程答案

上传人:汽*** 文档编号:474358135 上传时间:2023-07-03 格式:DOCX 页数:33 大小:42.74KB
返回 下载 相关 举报
C语言课后题编程答案_第1页
第1页 / 共33页
C语言课后题编程答案_第2页
第2页 / 共33页
C语言课后题编程答案_第3页
第3页 / 共33页
C语言课后题编程答案_第4页
第4页 / 共33页
C语言课后题编程答案_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《C语言课后题编程答案》由会员分享,可在线阅读,更多相关《C语言课后题编程答案(33页珍藏版)》请在金锄头文库上搜索。

1、C 语言课后题编程答案所有章节的课后习题的选择题和填空题大家必须熟练掌握,编程题掌握到第九章即可。希望大家通过课后的编程题熟悉典型的编程算法,掌握基本的编程思路,注意编程细节。第3章3-17 编写程序,把560 分钟换算成用小时和分钟表示,然后进行输出。#includemain()int h,m;h=560/60;m=560%60;printf( “560分钟可转换成%d 小时 %d 分钟 ” ,h,m);程序总结:( 1 )只要在程序中用到系统提供的库函数,必须把库函数所在的头文件用#include 命令包含进来。否则库函数的使用无效。输入输出库函数的头文件是: stdio.h; 数学函数的

2、头文件是: math.h; 字符处理函数的头文件是: ctype.h;字符串处理函数的头文件是: string.h 。(2) 2) 注意 C 语言中的“/ ”和“% ”两种运算符。“/”的运算结果取决于两操作数的类型。比如:1/2=0( 与数学中不同,结果与操作数的类型一致,所以结果只取商值) ,1.0/2=0.5(除之前2要自动类型转换成2.0,因为只有同类型的操作数才能进行除运算), 1/2.0=0.5, 1.0/2.0=0.5。“% ”的两个操作数都必须是整数。(3) printf( “560分钟可转换成%d 小时 %d 分钟 ”, h,m); printf 第一个参数要尽量详细,这样可

3、以提高输出结果的可读性,恰当好处的添加提示性信息,可以提高程序的质量。(4) int h,m; 变量起名要有艺术性,尽量做到见名知意。3-18 编写程序,输入两个整数, 1500 和 350,求出它们的商和余数并进行输出。#includemain()int a,b,m,n;printf( “请输入两个整数:n ”);scanf( “%d%d ”,&a,&b);m=a/b;n=a%b;printf( %d 除以 d 商d 余d ,a,b,m,n);程序总结:(1) printf(请输入两个整数:n);这是一个提示信息,避免用户在看到黑屏后不知所措。(2) scanf( “%d%d ”,&a,&b

4、); scanf 的功能是用户要通过键盘输入数据,赋值给各输入项。注意每个输入项前面必须要加 & 符号。 %d 与输入项的个数要一致,类型要匹配。 %d 与 int 一致, %f 与 float 对应, %lf 与 double 匹配, %c 与 char 对应。3-19 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。#includemain()double a,b,c,x;printf( “请输入三个双精度数:n ”);scanf(“%lf%lf%lf ”,&a,&b,&c);x=(a+b+c)/3;x=x*10;x=x

5、+0.5;x=(int)x;x=x/10;printf( “x=%.1lf ”,x);程序总结:(1) double a,b,c,x; 和 scanf(“%lf%lf%lf ”,&a,&b,&c); 有直接联系, %lf 与输入项a,b,c在定义时所用的类型double 一致。(2) %.1lf,.1 的意思是结果仅保留小数点后一位小数。3-20编写程序,读入三个整数给 a、b、c,然后交换他们中的数,把 a中原 来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a,b,c。#includemain() int a,b,c,t;printf( “请输入三个整数: n”);scanf(

6、 “%d%d%d ”,&a,&b,&c);printf( “交换之前:a=%d,b=%d,c=%d ” ,a,b,c);t=a;a=c;c=b;b=t;printf( “交换之后: a=%d,b=%d,c=%d ” ,a,b,c);程序总结:交换两个变量的值和三个变量的值,都需要借助另外一个变量。第4章4-21若a的值小于100,请将以下选择结构改写成由switch语句构成的选择结构。if(a30) m=1;else if(a40) m=2;else if(a50) m=3;else if(a60) m=4;else m=5;#includemain() int a;printf( “ente

7、r a(a100):n ”);scanf(“%d ”,&a);printf( “a=%dn ”,a);switch(a/10) case 0:case 1:case 2:printf( “m=1n ”);break;case 3: printf( “m=2n ”);break;case 4: printf( “m=3n ”);break;case 5: printf( “m=4n ”);break;default: printf(“m=5n”);程序总结:( 1) 选 择结构的实现除了使用 if 语句以外,还可以使用 switch 语句来实现。( 2) switch后的表达式和case后的标号

8、的类型要一致,switch后的表达式直 接决定了 switch语句体的执行入口。执行完入口的case语句后,依次顺序往下执行,直到遇到 break 语句就彻底跳出 switch 语句体,转去执行 switch 语句体后的语句。( 3) default 语句可有可无,位置无所谓,当 switch 后的表达式和所有case后的标号都不一致时,转去执行default 语句,然后依次顺序执行default 语句后其他的 switch 语句,直到遇到 break 语句,则彻底跳出 switch 语句体。( 4) break 语句可出现在循环语句体和 switch 语句体内,目的是彻底跳出循环体和 swi

9、tch 语句体。( 5) case和其后的标号之间必须要加空格。4-22 编写程序,输入一位学生的生日 (年:y0 、月m0 、日d0) ,并输入当前的日期(年:y1、月ml、日di),输出该生的实际年龄。#includemain()int y0,m0,d0,y1,m1,d1,age ;printf( “输入一位学生的生日:n ”);scanf( “%d%d%d ”,&y0,&m0,&d0);printf( “输入当前日期: n”);scanf( “%d%d%d ”,&y1,&m1,&d1);age=y1-y0;if(m1m0|m0=m1&d1d0)age-;printf( “age=%dn

10、”,age);程序总结 :( 1) if(m1m0|m0=m1&d0d1) ,在程序设计中,要学会用逻辑与、或、非代替复杂的 if 语句嵌套。( 2) 在 printf 语句中,要尽量加上 n ,这样可以避免黑屏上的结束语pressany key to continue 出现在有价值的输出结果的后面,而是换行输出。这样就提高了程序输出结果的可读性。( 3) 通 过本设计,要加强对变量起名艺术性的认识。4-23 编写程序,输入一个整数,打印出它是奇数还是偶数。#include main()int x,y;printf( “请输入一个整数:n ”)scanf( “%d ”,&x);y=x%2;if

11、(y=0)printf( “%d 是一个偶数!n”,x);elseprintf( “%d 是一个奇数! n”,x);程序总结:y=x%2; 这是判断一个数是奇数还是偶数的一贯表示方式。计算机中的等号是双等号,与数学中的等号不一样。4-24 编写程序,输入a,b,c 三个数,打印出最大者。方法一:#includemain()int a,b,c,max;printf( “请输入三个数: n”);scanf( “%d%d%d ”,&a,&b,&c);if(ab)if(ac)max=a;elsemax=c;elseif(bc)max=b;elsemax=c;printf( “max=%d ”,max)

12、;程序总结:利用 if-else 的嵌套,可求出一组数的最大值和最小值。在 if-else 的嵌套中,要格外注意if和else的配对问题。配对的原则是:从最后一个else开始,寻找与其配对的if,我的原则是离else最近的还没有配对的if就是该else的配对对象。if和else的配对一旦出问题,输出结果全错。方法二:#includemain()int a,b,c,t;printf( “请输入三个数:n”);scanf( “%d%d%d ”,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf( “最大值为:

13、 %d ”,c);程序总结:1) 方法一利用 if-else 的嵌套来进行程序设计,极易容易出错。而方法二采用三个if语句的并列来实现,同样可以求出最大值。2) 方法二算法分析:第一个if 语句结束后, b 中保存 a 和 b 中的较大值;第二个if语句结束后,c中保存a和c中的较大值;第三个if语句结束后,c中保存b和c中的较大值;三次比较后, c 中的值就是三个数中最大的。(3) 现实生活中,交换两盆水必须要借助第三个盆子;在程序设计中,要想实现两个变量中值的交换,就必须借助第三个变量。25对于以下函数:Y=x(-5x0),y=x-1(x=0),y=x+1(0x10), 编写程序,要求输入

14、 x 的值,输出 y 的值。分别用:( 1 )不嵌套的 if 语句(2)嵌套的if 语句(3) if-else 语句( 4) switch 语句(1)#includemain()int x,y;printf( “请输入 x 的值:n”);scanf( “%d ”,&x);if(x=0)y=x-1;if(x-5&x0&x10)y=x+1;printf( “y=%dn ”,y);(2) #includemain()int x,y;printf( “请输入 x 的值:n”);scanf( “%d ”,&x);if(x-5)if(x0)if(x10)y=x+1;if(x=0)y=x-1;Printf( “y=%dn ”,y);(3) #includemain()int x,y;printf( “请输入 x 的值:n”);scanf( “%d ”,&x);if(x-5&x0)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号