资源描述:
《何钦铭版C语言第3章答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、45若要改变else正常的配对规则,一般采用改变else和if的配对两种方法:例3-12改写下列if语句,使else和第1个if配对。采用{},构造一个复合语句。if(x<2)if(x<1)y=x+1;增加空的else语句;elsey=x+2;每条语句的执行条件?if(x<2){if(x<2)if(x<1)y=x+1;if(x<1)y=x+1;}else;elsey=x+2;elsey=x+2;46归纳总结本章的各个重要知识点。本章总结•正确理解if语句和switch语句分支结构:的执行机制;if-else语
2、句•掌握各类关系表达式、逻辑elseif表达式的运用;分支结构:switch语句•能合理运用分支语句熟练编写case后为常量表达式分支结构类的程序;break的使用数据类型:char型运算符与表达式逻辑运算符、关系运算符逻辑表达式分支结构程序的综合设计3.3练习与习题参考答案3.3.1练习参考答案练习3-1例3-4中使用else-if语句求解多分段函数,为了检查else-if语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程
3、序。解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。可再给出x=0和x=15时的两种情况。练习3-2输入一个整数x,计算并输出下列分段函数sign(x)的值。1,x0ysign(x)0,x01,x0解答:#includeintmain(void){intx,y;printf("Enterx:");scanf("%d",&x);if(x>0)y=1;elseif(x==0)y=0;elsey=-1;printf("sign(%d)=%d",x,y);
4、return0;}练习3-3输入一个正整数n,再输入n个学生的成绩,计算平均成绩,并统计所有及格学生的人数。解答:#includeintmain(void){intcount,i,n;doublegrade,total;printf("Entern:");scanf("%d",&n);total=0;count=0;for(i=1;i<=n;i++){printf("Entergrade#%d:",i);scanf("%lf",&grade);total=total+grade;if(grade
5、>=60)count++;}}printf("Gradeaverage=%.2f",total/n);printf("Numberofpass=%d",count);return0;}练习3-4输入15个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。解答:#includeintmain(void){inti;intblank,digit,letter,other;charc;blank=digit=letter=other=0;for(i=1;i<=15;i++){c=g
6、etchar();if(c>='a'&&c<='z'
7、
8、c>='A'&&c<='Z')letter++;elseif(c>='0'&&c<='9')digit++;elseif(c==''
9、
10、c=='')blank++;elseother++;}printf("letter=%d,blank=%d,digit=%d,other=%d",letter,blank,digit,other);return0;}练习3-5输入一个年份year,判断该年是否为闰年。判断闰年的条件是:能被4整除但不能被100整除,或
11、者能被400整除。解答:#includeintmain(void){intyear;printf("Enteryear:");scanf("%d",&year);if((year%4==0&&year%100!=0)
12、
13、year%400==0)printf("Itisaleapyear");elseprintf("Itisnotaleapyear");return0;}练习3-6在例3-8程序中,如果把switch语句中所有的break都去掉,运行结果会改变吗?如果有变化,输出什么?为什
14、么?解答:如果去掉所有的break语句,运行结果会改变,输出price=0.0,因为不管choice值与其中某个常量表达式相等,当去掉break语句时,其后的所有语句段都将运行,故每次都将执行到price=0.0语句为止。练习3-7输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用switch语句。例如,输入A,输出90-100。五级制成绩对应的百