C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构.doc
《C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构.doc》由会员分享,可在线阅读,更多相关《C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流C语言程序设计(第3版)何钦铭 颜 晖 第3章 分支结构【精品文档】第 10 页第3章 分支结构【练习 3-1】例 3-4 中使用 else-if 语句求解多分段函数,为了检查 else-if 语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程序。解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。可再给出 x=0和 x=15 时的两种情况。【练习 3-2】计算符号函数的值: 输入一个整数 x,计算并输出下列分段函数 sign(x)的值。 -1 x0解答:#incl
2、ude int main(void) int x, y; printf(Enter x: );scanf(%d,&x);if(x0) y=1;else if (x=0) y=0;else y=-1;printf(sign( %d ) = %dn,x,y);return 0;【练习 3-3】统计学生平均成绩与及格人数:输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。试编写相应程序。解答:# include int main(void) int count, i, n; double grade, total; printf(Enter n: ); scanf
3、(%d, &n); total = 0; count = 0; for(i = 1; i = 60) count+; printf(Grade average = %.2fn, total / n); printf(Number of pass = %dn, count); return 0;【练习 3-4】统计字符:输入 10 个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。试编写相应程序。解答:#include int main(void) int i; int blank, digit, letter, other; char c;blank = digit = lett
4、er = other = 0; for(i=1;i=a & c =A & c =0 & c = 9)digit+;else if(c= |c=n)blank+;elseother+;printf(letter=%d,blank=%d,digit=%d,other=%dn, letter, blank, digit, other);return 0;【练习3-5】输出闰年:输出21世纪中截至某个年份之前的所有闰年年份。判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。试编写相应程序。解答:# include int main(void) int year; printf(Ent
5、er year: ); scanf(%d, &year);for(;year=2000;year-)if( (year % 4 = 0 & year % 100 != 0 ) | year % 400 = 0) printf(It is a leap yearn); elseprintf(It is not a leap yearn ); return 0;【练习 3-6】在例 3-8 程序中,如果把switch语句中所有的break都去掉,运行结果会改变吗?如果有变化,输出什么?为什么?解答:如果去掉所有的 break 语句,运行结果会改变,输出 price = 0.0,因为不管 choic
6、e 值与其中某个常量表达式相等,当去掉 break 语句时,其后的所有语句段都将运行,故每次都将执行到 price=0.0 语句为止。【练习 3-7】成绩转换:输入一个百分制成绩,将其转换为五分制成绩。百分制成绩到五分制成绩的转换规则:大于或等于90分为A,小于90分且大于或等于80分为B,小于80分且大于或等于70分为C,小于70分且大于或等于60分为D,小于60分为E。试编写相应程序。解答:#include int main(void) double grade;printf(Input grade: ); scanf(“%lf”,&grade); If(grade=90) printf(
7、A); else if(grade=80) printf(B); else if(grade=70) printf(C);else if(grade=60) printf(D);else printf(E); return 0;或#include int main(void) double score; char grade; printf(Input your score: ); scanf(%lf,&score); switch(int(score/10) case 10: case 9: grade=A ; break; case 8: grade=B; break; case 7: g
8、rade=C; break;case 6: grade=D; break;default: grade=E; break;printf(Your grade is: %c,grade); return 0;【练习 3-8】查询水果的单价:有 4 种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是 3.00 元/公斤,2.50 元/公斤,4.10 元/公斤和 10.20 元/公斤。在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过 5 次时,自动退出查询;不到 5 次时,用户可以选择退出。当用户输入编号 14,显示
9、相应水果的单价(保留两位小数);输入 0,退出查询;输入其他编号,显示价格为 0。试编写相应程序。1 apples2 pears3 oranges4 grapes0 Exit解答:#include int main(void) int ri; int choice; float price; for(ri=1; ri=5; ri+)printf(1 applesn);printf(2 pearsn);printf(3 orangesn);printf(4 grapesn);printf(0 Exitn);scanf(%d, &choice);if(choice=0)break;else swi
10、tch(choice)case 1: price=3.00; break;case 2: price=2.50; break;case 3: price=4.10; break;case 4: price=10.20; break;default: price=0;break;printf(price=%0.2fn, price);return 0;【练习3-9】 请读者重新编写例 3-4 的程序,要求使用嵌套的 if - else 语句,并上机运行。解答:#include int main(void) double x, y; printf(Enter x:); scanf(%lf, &x)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计第3版何钦铭 第3章 分支结构 语言程序设计 分支 结构
限制150内