C程序设计第四章
- 格式:ppt
- 大小:356.00 KB
- 文档页数:65
C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。
其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。
在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。
C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。
如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。
⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。
常见的关系运算符包括:<、<=、>、>=、==、!=等种类。
其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。
⽽前4种⾼于后2种。
例如, >优先于==。
⽽>与<优先级相同。
并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。
逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。
表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。
⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
月日第4章选择结构程序设计4.1 选择结构和条件判断举例:在现实生活中,需要进行判断和选择的情况是很多的如果你在家,我去拜访你如果考试不及格,要补考如果遇到红灯,要停车等待周末我们去郊游70岁以上的老年人,入公园免票都需要用到【选择】在现实生活中,需要进行判断和选择的情况是很多的,处理这些问题,关键在于进行条件判断,由于程序处理问题的需要,在大多数程序中都会包含选择结构,需要在进行下一个操作之前先进行条件判断。
C语言有两种选择语句:(1)if语句,实现两个分支的选择结构(2)switch语句,实现多分支的选择结构例4.1 在例3.5的基础上对程序进行改进。
题目要求是求一元二次方程的根。
由键盘输入a,b,c。
假设a,b,c的值任意,并不保证b*b-4ac>0。
需要在程序中进行判别,如果b*b-4ac>0 ,就计算并输出方程的两个实根,否则就输出“方程无实根”的信息。
解题思路:输入a,b,c计算discdisc<0计算x1,x2输出无实根输出x1,x2假真程序#include <stdio.h>#include <math.h>int main ( ){double a,b,c,disc,x1,x2,p,q;scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;计算b2-4ac,disc的值变为-15if (disc<0)printf(“has not real roots\n”);else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;pri ntf(“real roots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2); }return 0;}-15<0为真#include <stdio.h>#include <math.h>int main ( ){double a,b,c,disc,x1,x2,p,q;scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;计算b2-4ac,disc的值变为8if (disc<0)printf(“has not real roots\n”);else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“real roots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2); }return 0;}8<0为假p的值变为-1q的值变为0.71x1的值变为-0.29x2的值变为-1.71if (disc<0)printf(“has not real roots\n”);else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“real roots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);}return 0;}选择结构,用if语句实现的if (disc<0)printf(“has not real roots\n”);else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“real roots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);}return 0;}4.2 用if语句实现选择结构4.2.1 用if语句处理选择结构举例例4.2 输入两个实数,按代数值由小到大的顺序输出这两个数。