C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构

上传人:lcm****801 文档编号:105428622 上传时间:2019-10-12 格式:DOC 页数:11 大小:67KB
返回 下载 相关 举报
C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构_第1页
第1页 / 共11页
C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构_第2页
第2页 / 共11页
C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构_第3页
第3页 / 共11页
C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构_第4页
第4页 / 共11页
C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构》由会员分享,可在线阅读,更多相关《C语言程序设计(第3版)何钦铭 颜 晖 第3章分支结构(11页珍藏版)》请在金锄头文库上搜索。

1、第3章 分支结构【练习 3-1】例 3-4 中使用 else-if 语句求解多分段函数,为了检查 else-if 语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程序。解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。可再给出 x=0和 x=15 时的两种情况。【练习 3-2】计算符号函数的值: 输入一个整数 x,计算并输出下列分段函数 sign(x)的值。 -1 x0解答:#include int main(void) int x, y; printf(Enter x: );scanf(%d,&x);

2、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(%d, &n); total = 0; count = 0; for(i = 1; i = 60) count+; p

3、rintf(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 = letter = other = 0; for(i=1;i=a & c =A & c =0 & c = 9)digit+;els

4、e 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(Enter year: ); scanf(%d, &year);for(;year=2000;year-)if( (year

5、% 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,因为不管 choice 值与其中某个常量表达式相等,当去掉 break 语句时,其后的所有语句段都将运行,故每次都将执行到 price=0.

6、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(A); else if(grade=80) printf(B); else if(grade=70) printf(C)

7、;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: grade=C; break;case 6: grade=D; break;default: grade=E; break

8、; 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,显示相应水果的单价(保留两位小数);输入 0,退出查询;输入其他编号,显示价格为 0。试编写相应程序。1 apples2

9、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 switch(choice)case 1: price=3.00; break;case 2: price=2.50; br

10、eak;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); if (x 15)y = 2.5 * x - 10.5; else if(x0)y=0;elsey=4*x/3;

11、 printf(f(%.2f)=%.2fn, x, y); return 0;【练习 3-10】在例 3-12 中,改写 if 语句前,y= x + 1;和 y= x + 2; 两条语句的执行条件是什么?改写后呢?解答:改写前:y=x+1 的执行条件是 x1; y=x+2 的执行条件是 1=x2。改写后:y=x+1 的执行条件是 x1; y=x+2 的执行条件是 2= 10 or a = 0 | a = 10 & a = 10 | a = 02在嵌套使用if语句时,C语言规定else 总是 C 。A和之前与其具有相同缩进位置的if 配对B和之前与其最近的if 配对C和之前与其最近的且不带else的if配对 D和之前的第一个if 配对3下列叙述中正确的是 D 。Abre

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

最新文档


当前位置:首页 > 大杂烩/其它

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