版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 高中信息技术数据与计算之数据挖掘的聚类算法的谱聚类算法应用课件
- 春季祭祀扫墓防火安全指南
- 农业机械使用技术全解析
- 2026年能源行业TCFD披露:转型风险与物理风险双重暴露
- 2026年气候情景分析韧性评估企业落地实施实务
- 2026年银行智能体应用场景全景图:零售 对公 财富 运营
- 2026年手术机器人术中导航与配准精度评价方法
- 2026年低空空域北斗基准站增强信号覆盖评估报告
- 2026年高光谱成像检测装备农产品品质分级应用
- 2026年ECMO围手术期抗凝管理目标与监测指标指南
- 变配电室平面布置设计方案
- 保温工程绩效考核制度
- 电信网络故障处理操作手册
- 2026 国家公务员面试热点预测 30 题:附答题框架
- 产品技术样片
- 2026年盐城工业职业技术学院单招职业适应性测试模拟测试卷新版
- 郑州市2024年河南郑州市新型智慧城市运行中心招聘事业编制工作人员10人笔试历年参考题库典型考点附带答案详解(3卷合一)试卷2套
- 2026年辽宁医药职业学院单招职业技能考试参考题库附答案详解
- 2026年恩施职业技术学院单招职业技能测试题库及答案详解1套
- 国有企业纪检监察面试题库
- 2025年工程机械维修工(高级技师)职业鉴定考试题库(含答案)
评论
0/150
提交评论