ch05复习习题课(1)_2学时

上传人:第*** 文档编号:34039900 上传时间:2018-02-20 格式:DOC 页数:9 大小:96KB
返回 下载 相关 举报
ch05复习习题课(1)_2学时_第1页
第1页 / 共9页
ch05复习习题课(1)_2学时_第2页
第2页 / 共9页
ch05复习习题课(1)_2学时_第3页
第3页 / 共9页
ch05复习习题课(1)_2学时_第4页
第4页 / 共9页
ch05复习习题课(1)_2学时_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《ch05复习习题课(1)_2学时》由会员分享,可在线阅读,更多相关《ch05复习习题课(1)_2学时(9页珍藏版)》请在金锄头文库上搜索。

1、第一章 拓展练习请运用所学知识编写一个程序,求从键盘上输入的 4 个正整数中的最小数,并将结果输出到屏幕上。提示:根据例题 1.3,可以求得前两个数的较大数,再将这个求得的较大数和第三个数用同样的方法求得较大的数,这就是前三个数中的最大数,最后将这个结果和第四个数用同样的方法求得较大的数,这就是这四个数中的最大数。【例 1.3】找出任意两个整数中较大的数。程序如下:1 #include 2 int max(int x, int y) /* 定义 max 函数 */3 return( xy ? x : y ); /* 求出两数中的较大数并返回 */4 /* max 函数结束 */5 void m

2、ain()6 int num1, num2, m;7 printf(Input the first integer number: ); /* 提示输入第一个整数 */8 scanf(%d, /* 从键盘上输入第一个整数 */9 printf(Input the second integer number: ); /* 提示输入第二个整数 */10 scanf(%d, /* 输入第二个整数 */11 m= max(num1, num2); /* 调用 max,计算两个数中的较大数*/printf(Input the 3 integer number: );scanf(%d, m= max(nu

3、m1, m);printf(Input the 4 integer number: );scanf(%d, m= max(num1, m);12 printf(max=%dn, m); /* 输出结果 */13 第 2 章 2.1 2.4 2.8 2.14 2.16 2.181、对给定的一个年份,判断是不是闰年。要求用 N-S 图描述该算法。提示:能被 4整除但不能被 100 整除的或能被 400 整除的年份是闰年。分析:将 leap 设置为是否闰年的标志:0 表示非闰年,1 表示闰年。这样,当 year 为闰年时将 leap 置为 1;当 year 为非闰年时将 leap 置为 0。最后,根

4、据 leap 的值即可判断出year 是否闰年。这种处理两种状态值的方法,对优化算法和提高程序的可读性非常有效,一定要仔细体会并掌握。参考答案:判断闰年的 N-S 图如图 2.1 所示。输入年号 yearyear 能被 400 整除?F T被 4 整除但不能 1leap被 100 整除T F1leap 0leapleap 为 1T F打印是闰年 打印非闰年图 2.1 判断闰年4、用 N-S 图描述求 100 个数中的最小数的算法。分析:输入第 1 个数给 min;输入第 2 个数给 x,若 x void main() int m=1,n=2;int k=+m;printf(k=, k);k=m

5、+n+;printf(m=%d, n=%d, k=%dn, m, n, k);k=-n-m;printf(m=%d, n=%d, k=%dn, m, n, k);k=(m=n);printf(k=%dn, k);参考答案:(1) k=m=2, n=3, k=4m=2, n=2, k=0k=1(2)#include void main() int a=4,b=3,c=2,d=1;printf(%dn, (a+b,b+c,c+d);参考答案:(2) 3(3)#include void main() int a=1,b=2,c=0;printf(%dn, a+-1);printf(%dn, b/+a

6、);参考答案:(3) 00(4)#include void main() int a=-5,b=10;float x=1.75, y=2.34e-03;printf(a+b=%dn, a+b);a+;b-;printf(a*b=%dn, a*b);printf(x+y=%fn, x+y);参考答案:(4) a+b=5a*b=-36x+y=1.752340第 3 章 3.5 3.9 3.125、已知矩形的长和宽分别是 300 和 20,请编写计算其周长和面积的程序。参考程序如下:1 #include stdio.h2 void main()3 4 int l=300,w=20;5 int c,

7、s;6 c = 2*(l+w);7 s =l*w;8 printf(c=%d s=%d n, c, s); 9 9、输入一个华氏温度,要求计算出摄氏温度。计算公式为: ) 32F(5C要求:输入要有提示,输出要有文字说明,并取两位小数。分析:注意 5/9 的结果是 0,因此,要写成 5.0/9,或者采用其他有效的方式。摄氏温度 F 和华氏温度 c 都应该用 float 类型变量存储。参考程序如下:1 #include stdio.h2 void main()3 4 float c, F;5 printf(Please Input 华氏温度 F:);6 scanf(%f,7 c=5.0/9*(F

8、-32);8 printf(摄氏温度 c=%6.2fn,c); 9 12、请写出下面程序的输出结果:#include stdio.hvoid main() int a=5,b=7,c=-1;float x=67.6584,y=-879.123;long n=1234567;unsigned u=65535;printf(%d%dn,a,b);printf(%3d%3dn,a,b);printf(%f,%fn,x,y);printf(%-10f,%-10fn,x,y);printf(%8.2f,%8.2f,%.4f,%.4f,%3f,%3fn,x,y,x,y,x,y);printf(%e,%10

9、.2en,x,y);printf(%c,%d,%o,%xn,c,c,c,c);printf(%ld,%lo,%lxn,n,n,n);printf(%u,%o,%x,%dn,u,u,u,u);printf(%s,%5.3sn,COMPUTER,COMPUTER);参考答案如下:575 767.658401,-879.12298667.658401 ,-879.12298667.66, -879.12,67.6584,-879.1230,67.658401,-879.1229866.765840e+001,-8.79e+002,-1,37777777777,ffffffff1234567,4553

10、207,12d68765535,177777,ffff,65535COMPUTER, COMCh03 补充作业:用实验与习题指导P158 的标准库函数中 rand 函数产生两个指定范围内的随机整数,并计算输出显示它们的和,输出格式如下图。提示:1、函数使用格式说明:例如 x=rand()%100,可以产生一个 100 以内的随机数,赋给变量 x。2、程序开头部分需加入相应的头文件。#include #include void main( ) int x, y ,m;x = rand() % 1000; y = rand() % 1000;m=x+y;printf( 两个随机数: %d + %d

11、 的和是 %d。n , x, y,m );每次变化的随机整数:#include #include #include /*用系统的时间作为种子初始化随机数序列*/ void main( ) int x, y ,m;srand( unsigned ) time( NULL ); /*用 time 函数获取系统时间并转换为一个整数,用做 srand 函数的参数,作为种子初始化随机数序列*/x = rand() % 100; y = rand() % 100;m=x+y;printf( %d + %d = %d , x, y,m );第 4 章 P80 4.4 4.10 4.13 4.14 4、编程计

12、算下面的函数,其中,x 由键盘输入。2)2(2xeyx分析:这是一个数学上的分段函数问题,可以用三个并列的简单 if 语句实现,也可以用 if-else-if 语句实现,还可以用 if 语句的嵌套实现。由于程序中用到了标准数学函数,因此,一定要加上数学库头文件“math.h” 。参考程序如下(方法一):1 #include stdio.h2 #include 3 void main()4 5 float x, y;6 printf(Please Input x:);7 scanf(%f,8 if(x-2 10 if(x2) y=(x+2)*(x+2);11 printf(x=%f, y=%fn

13、,x,y);12 参考程序如下(方法二):1 #include stdio.h2 #include 3 void main()4 5 float x, y;6 printf(Please Input x:);7 scanf(%f,8 if(x3 void main()4 5 float x, y;6 printf(Please Input x:);7 scanf(%f,8 if(x3 void main()4 5 float x, y;6 printf(Please Input x:);7 scanf(%f,8 if(x9999)10 n=5;11 else if(num999)12 n=4;

14、13 else if(num99)14 n=3;15 else if(num9)16 n=2;17 else18 n=1;19 printf(位数是%dn,n);20 printf(各位数字的和为:);21 x4=num/10000;22 x3=num%10000/1000;23 x2=num%10000%1000/100;24 x1=num%10000%1000%100/10;25 x0=num%10;26 switch(n)27 28 case 5:printf(%dn,x4+x3+x2+x1+x0);29 num1= x0*10000+x1*1000+x2*100+x3*10+x4;30

15、 if(numnum1)printf(%d,%dn, num,num1);31 else printf(%d,%dn, num1,num); break;32 case 4:printf(%dn,x3+x2+x1+x0);33 num1=x0*1000+x1*100+x2*10+x3;34 if(numnum1)printf(%d,%dn, num,num1);35 else printf(%d,%dn, num1,num); break;36 case 3:printf(%dn,x2+x1+x0);37 num1=x0*100+x1*10+x2;38 if(numnum1)printf(%d,%dn, num,num1);39 else prin

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

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