南邮C语言习题4讲解.ppt_第1页
南邮C语言习题4讲解.ppt_第2页
南邮C语言习题4讲解.ppt_第3页
南邮C语言习题4讲解.ppt_第4页
南邮C语言习题4讲解.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 习题 典型案例分析,苏小红,C语言大学实用教程,习题4.2,4.2 选择题 (1)在下面的条件语句中,只有一个在功能上与其他三个语句不等价,这个不等价的语句是 A)if (a) s1; else s2; B)if (!a) s2; else s1; C)if (a != 0) s1; else s2; D)if (a = 0) s1; else s2;,习题4.2,4.2 (2)设有声明语句int a=1,b=0;,则执行以下语句后输出结果为 。 switch (a) case 1: switch (b) case 0: printf(*0*);break; case 1: print

2、f(*1*);break; case 2: printf(*2*);break; A)*0* B)*0*2* C)*0*1*2* D)有语法错误,习题4.2,(3)在while (x)语句中的x与下面条件表达式等价的是 A)x = 0 B) x = 1 C)x != 1 D) x != 0 (4)若有语句int x;,下面程序段的输出结果为 for (x=3; x6; x+) printf(x%2) ? *%d : #%dn, x); A)*3 B)#3 C)#3 D)*3#4 #4 *4 *4#5 *5 *5 #5,典型习题:习题4.18,4.204.25,利用穷举法求解的趣味智力题 习题4

3、.20韩信点兵 (习题4.21爱因斯坦数学题与此类似) 韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗? 设兵数为x,则按题意x应满足下述关系式: x%5 = 1 for (x=1; x 5000 ;x+) if (x%5=1 /*属于“瞎猫碰死耗子”的做法*/,错误案例,#include main() int x; for (x=1; ;x+) if (x%5=1 /*死循环*/,死循环,永远不会

4、退出的循环为死循环 for (;) while (1) do while (1); 一般情况下,要极力避免死循环 绝大多数程序不需要死循环。如果出现,往往都是bug 时间过长的循环会造成“假死”效果,也要考虑解决,解决方案1-goto,#include main() int x; for (x=1; ;x+) if (x%5=1 ,解决方案2-break,#include main() int x; for (x=1; ;x+) if (x%5=1 ,解决方案3-标志变量,#include main() int x = 1; int find = 0; /*设置找到标志为假*/ for (x=

5、1; !find ;x+) if (x%5=1 ,错误案例-判断三角形的类型x4-7-1,#include #include main() float a, b, c; printf(Input the three edge length:); scanf(%f, %f, %f, ,错在哪里?,错误案例分析,一般三角形,不是三角形,等边,等腰,直角 三角形,等腰 直角,有交叉关系的用并列的if 非此即彼的用ifelse,x4-7-2,main() float a, b, c; int flag = 1; if (a+bc ,错误案例-x4-7-3,main() if (a+bc ,错在哪里?,

6、x4-7-4,main() if (a+bc ,错误案例-x4-7-5,main() if (a+bc ,等腰在先 等边在后 是否可以?,错误案例,/*等腰三角形的条件*/ if (a=b | b=c | c=a) if (fabs(a-b)=LIMIT | fabs(b-c)=LIMIT | fabs(c-a)=LIMIT) /*直角三角形的条件 */ if (a*a+b*b=c*c | a*a+c*c=b*b | b*b+c*c=a*a) if (fabs(a*a+b*b-c*c)=LIMIT | fabs(a*a+c*c-b*b)=LIMIT | fabs(c*c+b*b-a*a)=LI

7、MIT) #define LIMIT 1e-7,典型习题-习题4.264.28,打印图案,* * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * * * * * * * * * * *,典型习题:习题4.104.17,累加求和的关键:寻找累加项的构成规律 前后项之间无关,习题4.

8、11,4.14,4.16 1*2*3 + 3*4*5 + + 99*100*101 term = i * (i+1) * (i+2); i = 1,3,99 前100项之积 term = n * n / (n-1) * (n+1); n = 2,4,100 1 - 1/2 + 1/3 - 1/4 + + 1/99 - 1/100 + 直到最后一项的绝对值小于10-4为止 term = sign / n; 分子sign = -sign; 初值为1 分母n = n + 1; 初值为1,典型习题:习题4.104.17,前后项之间有关,习题4.12,4.13,4.15,4.17 1!+2!+.+n! term = term * i; i = 1,2,10. term初值为1 x0 + x1 + x2 + x3 + term = term * x; term初值为1 a + aa + aaa + aaaa + aaaaa +. 例a=2, 2 + 22 + 222 + 2222 +. term = term * 10 + a; i = 1,2,n. term初值为0 直到最后一项的绝对值小于10-5 term = term / n; term初值为1.0 n = n + 1,n初值为1

温馨提示

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

评论

0/150

提交评论