第04章__选择结构程序设计C语言程序设计教程张虹波

合集下载

《C语言程序设计教程(第二版)》 第04章-选择结构程序设计

《C语言程序设计教程(第二版)》 第04章-选择结构程序设计

/* max = max{num1, num2 } */
2019/2/22
12
4.说明 (1)运算对象的数据类型:除整型外,也可以是实 型、字符型等其它任何类型数据。 (2)子表达式计算:只有在必须计算下一个子表达 式才能求解时,才计算;否则,不再计算。
换句话说:
①对 于 逻 辑 与 运算 , 如果 第 1 个 对 象 被判定 为 “逻辑假”,系统不再计算第2个对象(因为无论真假,都 不影响整个表达式的结果)。
2019/2/22
13
②对于 逻辑或 运算,如果 第 1 个对象 被判定为 “逻辑真”,系统不再计算第2个对象。 思考:假设n1、n2、n3、n4、x、y的值分别为1、 2 、 3 、 4 、 1 、 1 ,求解表达式“ (x = n1 > n2) && (y = n3 > n4)”后,x、y的值=?
2019/2/22
4
4.1.2 关系表达式 1.概念——用关系运算符,将两个表达式连接 起来的式子。 例如:a > b,'a' >= 'b' ,a + b > c - d 2.关系表达式的值——逻辑真 / 逻辑假 ●如果关系成立,则表达式的值为逻辑真; ●如果关系不成立,则表达式的值为逻辑假。
C语言没有逻辑型数据,用 整数1 表示 “逻辑 真”,用整数0表示“逻辑假”。
[案例4.1] 输入3个整数num1、num2、num3, 求最大值。 算法设计要点: (1) 任取一个数预置为max(最大值); (2) 用其余的数num依次与max比较:如果num > max,则max ← num 。 比较完所有的数后,max中的数就是最大值。
2019/2/22

C语言程序设计教程

C语言程序设计教程
全书分为11章,主要内容包括C语言与程序设计、基本类型数据及其运算、选择结构程序设计、循环结构程 序设计、数组、函数、指针、结构体与共用体、文件、位运算和C语言应用。每章均配有教学课件和习题。
成书过程
修订情况
出版工作
修订情况
该教材是根据教育部非计算机专业计算机课程教学指导分委员会制定的《非计算机专业计算机基础课程教学 基本要求》和《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)》中提 出的要求编写而成的。
C语言程序设计教程
清华大学出版社出版的图书
01 成书过程
03 教材目录 05 教材特色
目录
02 内容简介程》是由张玉春、孙大元主编,2013年清华大学出版社出版的高等学校计算机基本教育 规划教材。该教材既可以作为高等学校本科及专科学生C语言程序设计的教材,又可以作为自学者的参考用书,同 时可供各类考试人员复习参考。
出版工作
2013年9月1日,该教材由清华大学出版社出版。
内容简介
内容简介
全书分为11章,主要内容包括C语言与程序设计、基本类型数据及其运算、选择结构程序设计、循环结构程 序设计、数组、函数、指针、结构体与共用体、文件、位运算和C语言应用。每章均配有教学课件和习题。此外, 附录包含常用字符与ASCII码值对照表、C语言关键字、运算符和结合性、C库函数。
该教材大部分教学内容采用例题的形式进行组织,并对例题进行分析。该教材还介绍了C语言在硬件方面和 在软件方面的应用。
作者简介
作者简介
张玉春,1964年生,女,硕士,吉林大学公共计算机教学与研究中心教授,研究方向为计算机应用。 孙大元,1955年生,男,吉林大学公共计算机教学与研究中心副教授,从事高校非计算机专业理工类本科学 生的计算机基础教学工作。

c语言选择结构程序设计教案

c语言选择结构程序设计教案

1 y= 0 1
main() { float x; int y; scanf("%f",&x); if(x>=0) if(x>0) y=1; else y=0;
( x 0) ( x 0) ( x 0)
编写程序,输入 x,输出 y 值。
else y=-1; printf("x=%f y=%d\n",x,y); } 使用 if 语句时应注意以下几点: ① if 后面圆括号内的表达式可以为任意类型,但一般为关系表 达式或逻辑表达式。 ② if 和 else 后面的语句可以是任意语句。 ③ if(x)与 if(x!=0)等价。 ④ if(!x)与 if(x= =0)等价。 五、举例说明 例 5:读入一个整数,判断其能否被 3 整除。 #include <stdio.h> main() { int a ; printf("Enter an integer “) ; scan("%d",&a) ; 不得用于商业用途 /*输入一个整数*/
仅供个人参考 选择结构程序设计(一) 1.关系运算符和关系表达式 2.逻辑运算符和逻辑表达式 内容 3.条件运算符及条件表达式 4.IF 语句 5.IF 语句的嵌套 1.关系运算符和关系表达式 2.逻辑运算符和逻辑表达式 重点 3.条件运算符及条件表达式 4.IF 语句的格式使用 5.IF 语句的嵌套 难点 复杂条件的表示;IF 语句的正确使用。 通过前面的顺序结构程序设计的介绍,我们都知道顺序结构程序 设计按照自上而下的流程的顺序执行,但是在实际生活中,仅顺序结 问题 提出 构是无法满足用户要求的,并不是所有的程序都是自上而下的顺序执 行,而是根据条件有选择的执行。这就是我们将要学习的分支结构程 序设计。 一、导入 讨论导入:请教学生翻译下面的英语句子 ?a.If she is not in Class1 then she will be in Class2. ?b.If it does not rain then I'll go to park, else I'll go to the movie. ?????? 创造情景,使学生感觉新鲜和自信,学生可以翻译的准 确无误。此过程中,教师引导学生注意 if 、then、 else 三个词的使 用。 学生归纳:条件语句的一般形式: 详细 内容 格式 1:if 条件 then 语句组 格式 2:if 条件 then 语句组 1 else 语句组 2 二、if 中的条件表示 1.关系运算符和关系表达式 在程序中经常需要比较两个量的大小关系, 以决定程序下一步 的工作。比较两个量的运算符称为关系运算符。 (1) .关系运算符: 操作符 > >= 作用 大于 大于等于 生活中的 “十 字路口” 也属 于选择结构 类型。 举例说明 实例讲解说 明 举例说明 通过讲解, 向 if 语句过渡 通过与前面 引入的例子 重点说明其 格式 结合实例说 明其注意事 项 通过图例说 明嵌套的匹 配关系。 对比实例, 详 细细化注意 事项 通过实例, 说 明分支程序 设计的思想, 巩固前面所 讲的内容。 说明

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

►(b*b-4*a*c)>=0
b*b-4*a*c>=0
►z= (x>y+3)
z= x>y+3
►(a>b)= = c
a>b= =c
►a=(b!=c)
a=b!=c
当然为提高程序的可读性、可维护性你不妨多使用 括号,因为C语言中的有些优先级很容易让你不小心犯 错。
C语言程序设计
第4章 选择结构程序设计
第10页
“>”的结果为“假”,即条件不成立。
C语言程序设计
第4章 选择结构程序设计
第5页
4.1 关系运算及关系表达式
4.1.1 关系运算符及其优先次序
运算符
含义
> 大于
优先级
结合性
>= 大于或等于 这些关系运算符等优
< 小于
先级,但比下面的优 先级高
左结合性
<= 小于或等于
== 等于 != 不等于
这些关系运算符等优 先级,但比上面的优 先级低
C语言程序设计
第4章 选择结构程序设计
第4页
4.1 关系运算及关系表达式
所谓“关系运算”实际上就是“比较运算”, 即将两个数据进行比较,判定两个数据是否符合 给定的关系。例如,
► “x>y+3”中的“>”表示一个大于关系运算。 ➢如果a的值是5,b的值是1,则大于关系运算
“>”的结果为“真”,即条件成立; ➢如果a的值是2,b的值是1,则大于关系运算
因为按照自左至右的结合方向,先执行关系运算
“a>b”得值为1(“真”),再执行关系运算“1>c”, 得值为0(“假”),因此y为0。
C语言程序设计

北理工《C语言程序设计教程(第二版)》李凤霞主编李书涛主审版习题答案

北理工《C语言程序设计教程(第二版)》李凤霞主编李书涛主审版习题答案
(3)源程序:
main()
{int x,y;
scanf(&quot;%d&quot;,&amp;x);
if(x&lt;10) if(x&gt;=5)y=x+1;
else if(x&gt;=0)y=x-1;
else if(x&gt;-5)y=x;
main()
{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */
printf(&quot;cock hen chick\n&quot;);
for(i=1;i&lt;=20;i++)
for(j=1;j&lt;=33;j++)
for(k=1;k&lt;=33;k++)
{int a[]={-10,0,15,34},i;
for(i=0;i&lt;=3;i++)
printf(&quot;%d\370C=%g\370F\t&quot;,a[i],a[i]*1.8+32);}
执行结果:
-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F
4.源程序:
=-200
j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf(&quot;%lf%lf%lf&quot;,&amp;a,&amp;b,&amp;c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)

c语言教学 第四章 选择结构程序设计

c语言教学 第四章 选择结构程序设计

printf(“%d”,a>b?a:b); 取expr2值 取expr3值
例 求 a+|b| printf(“a+|b|=%d\n”,b>0?a+b:a-b);
例 (a==b)?‟Y‟:‟N‟ (x%2==1)?1:0 (x>=0)?x:-x (c>=„a‟ && c<=„z‟)?c-‟a‟+‟A‟:c
选择结构程序设计
if_else_if形式
格式: if(表达式1) else if (表达式2) else if (表达式3) …… [else 语句1; 语句2; 语句3; 语句n;]
表达式1
T
F
表达式2
TБайду номын сангаас
F
表达式3
T
F
语句1
语句2
语句3
语句n
选择结构程序设计
例如:下面的程序段是判断输入字符的种类。 char c; printf ("Enter a character: "); c = getchar ( ); if (c < 0x20) printf ("The character is a control character\n"); else if (c >= '0' && c <= '9') printf ("The character is a digit\n"); else if (c >= 'A' && c <= 'Z') printf ("The character is a capital letter\n"); else if (c >= 'a' && c <= 'z') printf ("The character is a lower letter\n"); else printf ("The character is other character\n");

《C语言程序设计教程》.

《C语言程序设计教程》.
f (a,b); 说 1、可不写形参名:double func(double, int, float); … 明 2、不能只写形参名而不写类型: }
double func(x,y,z); fun2( ) 3、只有函数返回值为 … 或char时,函数值类型才可以省略。 ① { int 4、函数定义的声明中形参的次序与类型要一致。如: f (c,d); ③ 错误 double func(int y, … float z, double x); } 5、当某函数要被多个函数调用时,可将函数的调用声明写在 所有函数前。如: float f(float x,float y)
P136习题2:画正弦曲线
算法分析: 若画下列形式的正弦 曲线,则每行应输出: y个空格、1个*号、换行 空格数y与sin值有关。 而sin值在[-1,1] 内,故 应将放大同样倍数的 sin 值作为y值。
* * * * * *
sin(x)
* * *
# define PI 3.14 # include “math.h” main( ) { int x,y,i; double rd=PI/180; for (x=0;x<=360;x=x+15) { y=(int)(10+10*sin(x*rd)); for (i=1;i<=y;i++) y个空格 printf(“ ”); printf(“*\n”); } }
main( )
f21( ) { … }
f22( ) { … }
f1( )
f2( )
f11( )
f21( )
f22( )
较大的程序一般分为若干个程序模块。每个模块实现一个特定的功能。 常将一些常用的功能模块编写成函数,以被多个程序调用。

C语言程序设计:第4章 选择结构程序设计

C语言程序设计:第4章 选择结构程序设计
gt; >= == !=
作用 小于 小于等于 大于 大于等于 等于 不等于
运算数 双目 双目 双目 双目 双目 双目
结合性 左结合 左结合 左结合 左结合 左结合 左结合
优先级 10 10 10 10 9 9
2
例如:
(1) 比较整型变量k大于0,表达式为:k>0 (2) 比较考试成绩score大于等于60,表达式为:score>=60 (3) 比较整型变量k模2等于0,即判断k是否是偶数:k%2==0 (4) 比较字符变量ch的值等于'A',表达式为:ch!='A'
return 0; }
Input 2 integers(a b):100 10<回车> 100,10
Input 2 integers(a b):10 100<回车> 100,10
2.双分支if语句
if (表达式) 语句1 else 语句2
执行过程: 首先先判断表达式的值 若为非0则执行语句1 若为0则执行语句2
if语句的双分支形式,在语法上 视为一条语句。
表达式

语句1

语句2
例4-4:判断整数的奇偶性。从键盘输入一个整数x,根据其奇 偶性输出x是奇数或x是偶数。
Input an integer: 12<回车> 12 is odd number.
#include <stdio.h>
int main()
return 0;
}
例4-5:修改例3-6使用海伦公式计算三角形面积程序的要求,当输入 的三个边长能够构成三角形时,计算面积;否则,输出不能构成三角 形。
思路分析:三角形面积的计算过程与原例题相同,新要求是在“三个 边长能构成三角形”这一条件成立时才进行计算面积,否则直接输出 提示信息。根据数学知识,这一条件可以描述为“任意两个边长之和 大于第三个边长”,输入三个边长a、b、c后,条件可以使用如下的 逻辑表达式描述:

c语言选择结构程序设计教案

c语言选择结构程序设计教案

C语言选择结构程序设计教案一、教学目标1. 理解选择结构的概念和作用。

2. 掌握if语句和switch语句的语法和使用方法。

3. 能够运用选择结构解决实际问题。

二、教学内容1. 选择结构的概念和作用。

2. if语句的语法和使用方法。

3. switch语句的语法和使用方法。

4. 选择结构的嵌套。

三、教学重点与难点1. 重点:if语句和switch语句的语法和使用方法。

2. 难点:选择结构的嵌套和运用。

四、教学方法1. 讲解:讲解选择结构的概念和作用,以及if语句和switch语句的语法和使用方法。

2. 示例:通过示例演示如何使用选择结构解决实际问题。

3. 练习:让学生通过练习掌握选择结构的运用。

五、教学准备1. 教材或教案。

2. 计算机和投影仪。

3. 练习题。

六、教学过程1. 引入:通过一个简单的例子,比如判断一个数的正负,引入选择结构的概念。

2. 讲解:详细讲解if语句和switch语句的语法和使用方法,包括条件表达式和分支语句。

3. 示例:给出一些示例代码,演示如何使用if语句和switch语句来实现不同的选择结构。

4. 练习:让学生编写一些简单的程序,练习使用if语句和switch语句。

七、案例分析1. 案例一:编写一个程序,根据用户输入的年份,判断是平年还是闰年。

2. 案例二:编写一个程序,根据用户输入的分数,判断成绩等级。

八、选择结构的嵌套1. 讲解:讲解选择结构嵌套的概念和作用。

2. 示例:给出一些示例代码,演示如何使用选择结构嵌套来解决更复杂的问题。

3. 练习:让学生编写一些程序,练习使用选择结构嵌套。

九、课堂互动1. 提问:让学生回答关于选择结构的问题,比如if语句和switch语句的区别等。

2. 讨论:让学生分组讨论如何使用选择结构解决实际问题,并展示他们的解决方案。

十、总结与作业1. 总结:总结本节课所学的内容,包括选择结构的概念、if语句和switch语句的语法和使用方法,以及选择结构的嵌套。

C语言程序设计教程课后答案(第2版)杨路明

C语言程序设计教程课后答案(第2版)杨路明

第一章 C语言程序设计概述-习题答案1算法的描述有哪些基本方法?1、自然语言2、专用工具 2C语言程序的基本结构是怎样的?举一个例子说明。

1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。

3C语言有什么特点?1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。

4★指出合法与不合法的标识符命名。

AB12--√leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ if--× XYZ43K2--√ AVE#XY--× _762--√ #_DT5--×PAS--√C.D--×说明下列 Turbo C 热键的功能。

F2: 源文件存盘F10: 调用主菜单F4: 程序运行到光标所在行(用于调试程序) Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。

6说明下列 Turbo C 方式下输入并运行下列程序,记录下运行结果。

①main() {printf("********************\n");printf(" welcome you \n"); printf(" very good \n);printf("********************\n");}②main(){ int a,b,c,t;printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /* 教材 S 是错误的 */t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y; return(z);}答运行结果:welcome youvery good运行结果: please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/ max number is:4一个 C 程序是由若干个函数构成的,其中有且只能有一个___函数。

语言程序设计电子课件与教案

语言程序设计电子课件与教案

输出x1,x2
}
4.1 选择结构程序设计
A0401例: 求 ax2+bx+c=0 方程的根。 输入a b c
a, b, c 由键盘输入
int main() { float a,b,c,disc,x1,x2,p,q;
计算disc= b2-4ac
scanf("%lf%lf%lf",&a,&b,&c);
} 2.执行过程
(1)若 条件表达式==常量表达式i
没有分号
则 执行语句组i 以及语句组i+1…语句组n+1
(2)若 条件表达式 != 任何常量表达式
则 执行default 的语句组n+1
A0405输入星期中的某一天,运显行示结对果 应的英文
Input 1- 7: 4↙
main(){ int i;
else if (i==3)
case 4: printf( "Today is Thursday!");
printf ("Today is Wednesday !\n"); case 5: printf( "Today is Friday!");
else if (i==4)
case 6: printf( "Today is Saturday!");
其他
50元
{ int age, ticket;
scanf(“%d”,&age);
if (age>=70) ticket=0;
else if (age<7) ticket=10;
else if (50≤age ≤70) ticket=20;

第04章 汇编语言程序设计

第04章 汇编语言程序设计

JMP CX
;寄存器间接转移,可使用任何一个通用寄存器
JMP WORD PTR[BX]
;存储器间接转移,目的地址在存储单元中
已在数据段定义存储器单元“TARGET” : TAEGET DW ONE
下面四组指令都可以实现向标号“ONE”的转移:
1)JMP ONE
;近程直接转移
2)LEA DX, ONE
JMP
目的位置
执行JMP指令后,程序转移到新的“目的位置”执行。
[例4-1] 用JMP指令实现转移
CODE
SEGMENT
ASSUME
CS: CODE
START: MOV DL, 20H
ONE:
MOV AH, 2
INT 21H
INC DL
JMP ONE
MOV AX, 4C00H
INT 21H
CODE
① 短转移 如果目的位置离开出发点很近,可以使用以下格式:
JMP SHORT LABEL 其中“LABEL”是目的位置的标号。这种格式产生的机器指令代
码最短,为2字节。
100H: SHORT TWO
指令“JMP SHORT TWO”汇编后产生的机器指令为 “EB0A”。 “EB”是这种类型转移指令的“操作码”,“0A”是目的位置离开出 发点的距离,10CH-102H=0AH。
4.1 选择结构程序
4.1.1 测试和转移控制指令 4.1.2 基本选择结构 4.1.3 单分支选择结构 4.1.4 复合选择结构 4.1.5 多分支选择结构
4.1.1 测试和转移控制指令
1. 无条件转移指令 2. 比较和测试指令 3. 条件转移指令
1. 无条件转移指令
无条件转移指令的一般格式:

二级C语言程序设计第4章选择结构程序设计

二级C语言程序设计第4章选择结构程序设计
(5)由于switch语句中的“case 常量表达式”部分只起 标号的作用,而不进行条件判断,所以在执行完某个 case后的语句后,将自动转到该语句后面的语句去执行, 直到遇到switch语句的右花括号或break语句为止,而 不再进行条件判断。如果在执行完一个case分支后,要 跳出switch语句转到下一条语句执行,可在一个case结 束后、下一个case开始前插入一个break语句。程序一 且执行到braek语句,将立即跳出switch语句。
例如:
switch(n) {
case 1: x=1; case 2: x=2; } 当n=1时, 将连续执行下面两个语句:
x=1; x=2;
switch(n) {
case 1:x=1; braek; case 2:x=2; braek; } 当n=1时, 将只执行一个语句:
x=1;
第4章 选择结构程序设计
4.5 开关语句 说明: (6)多个case可以共用一组执行语句。例如: switch(n) {
case 1: case 2: case 3: x=3; }
第4章 选择结构程序设计
4.5 开关语句 注意: (1)switch的表达式后不能有“;”。 (2)case和default与其后面的常量表达式间至少有一个空格。 (3)switch语句可以嵌套,break语句只跳出它所在的switch
输出a,b,c
结束
第4章 选择结构程序设计
4.6 应用举例 例4.6 输入一个不多于4位的正整数,求出它是几位数,逆序
打印出各位数字
分析:
已知:一个不多于4位的正整数(用x来存放)。 求:该正整数是几位数,该正整数的各位数字(分别用a、b、
c、d来存放千位、百位、十位、个位上的数字,由a、b、 c、d的值确定该正整数是几位数)。 处理:用算术运算/和%取出组成x的各位上的数字,再从高 位到低位判断各位上的数字是否不为零,据此确定该正整 数是几位数。

第4章 选择结构程序设计

第4章 选择结构程序设计
计算机科学系 张丽虹
exam4-2
10
4.3 if语句
4.3.3 多分支if语句
表达式1 格式 N Y if (表达式1) 语句1 表达式2 语句1; Y e l se i f ( 表达式2 ) 语句2; 语句2 Y e l s e i f (表达式3) 语句3; 语句n …… else 语句 n+1;
计算机科学系 张丽虹
12
4.3 if语句
例:编写一个收款程序,计算购买某物品的总金额。该 物品的单价为5元/公斤,购买5公斤以上打9折,购买 10公斤以上打8折,购买20公斤以上打7折,购买50公 斤以上打6折,购买100公斤以上打5折。
exam4_3.c
例:编写一个程序,根据用户输入的三角形三条边长判 定是何种三角形 ,对于有效三角形,求其面积。
功能:
计算表达式的值,与常量表达式的值比较,等于第i个值时,顺序执 行语句序列i、i+1、 …、 n+1,直到遇到break语句或右花括号}。 若与所有常量表达式值都不相等,执行语句序列n+1。
计算机科学系 张丽虹
16
4.4 switch语句
例: 从键盘上输入一个百分制成绩score,输出其等级。
#include <stdio.h> main( ) { int x; scanf ("%d",&x); if (x%2 != 0) { printf("%d is an odd \n",x) ; if (x%5==0) printf("%d is the times of 5 \n",x) ; } else printf("%d is an even \n",x) ; }

《C语言程序设计基础与实训教程》第4章:选择结构程序设计

《C语言程序设计基础与实训教程》第4章:选择结构程序设计
/webnew/
4.1.2 关系表达式
关系表达式的一般形式为: 表达式 关系运算符 表达式 例如:a+b>c-d,x>3/2,'a'+1<c,-i-5*j==k+1;都是合法的关 系表达式。由于表达式也可以又是关系表达式。因此也允许出现嵌套的 情况,例如:a>(b>c),a!=(c= =d)等。 由于C语言没有逻辑型数据,所以用整数“1”表示“逻辑真”, 用 整 数 “ 0 ” 表 示 “ 逻 辑 假 ” 。 如 : 5 > 0 的 值为 “ 真 ” , 即 为 1 。 (a=3)>(b=5)由于3>5不成立,故其值为假,即为0。 例如,假设num1=3,num2=4,num3=5,则: (1)num1>num2的值=0。 (2)(num1>num2)!=num3的值=1。 (3)num1<num2<num3的值=1。 (4)(num1<num2)+num3的值=6,因为num1<num2的值=1,1+5=6。
/webnew/
第四章 选择结构程序设计

4.1 关系运算符和关系表达式
4.2逻辑运算符和逻辑表达式 4.3 if语句 4.4 switch语句 4.5 程序举例

4.6上机实训
http://wwΒιβλιοθήκη /webnew/
/webnew/
4.2.2 逻辑表达式
【例4.2】 main( ) { char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",!x*!y,!!!x); printf("%d,%d\n",x||i&&j-3,i<j&&x<y); printf("%d,%d\n",i= =5&&c&&(j=8),x+y||i+j+k); } 运行结果: 0,0 1,0 0,1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

&& (两个&之间没 有空格)
|| (两个|之间没有空 格)
双目运算符,逻辑与, 表示并且
双目运算符,逻辑或, 表示或者
左结合性 低
第 四 章 选 择 结 构 程 序 设 计
逻辑运算真值表
A 假 假 真 真 B 假 真 假 真 !A 1 1 0 0 !B 1 0 1 0 A && B 0 0 0 1 A || B 0 1 1 1
C
语 言 程 序 设 计 教 程
2. 逻辑运算符和逻辑表达式 逻辑表达式
用逻辑运算符连接起来的式子称为逻辑表达式。 逻辑表达式的一般形式为:表达式 逻辑运算符 表达式 例:a < 例: b < c、x > 10 || x < -10、!x && !y b &&
第 四 章 选 择 结 构 程 序 设 计
第 四 章 选 择 结 构 程 序 设 计
C
语 言 程 序 设 计 教 程
第 四 章 选 择 结 构 程 序 设 计
3. 条件运算符与表达式 • 一般形式: expr1 ? expr2 : expr3 • 执行过程 【例5-1】小写字母转盘。 #include <stdio.h> • 功能:相当于条件语句,但不能取代一般if语句 输出结果(假设输入为w) : #include <conio.h> 例 求(a>b) if a+|b| 例 (a==b)?‟Y‟:‟N‟ • 例 ( )printf(“%d”,a); 条件运算符可嵌套 ch1 = v, ch2 = x void main printf(“a+|b|=%d\n”,b>0?a+b:a-b); printf(“%d”,a>b?a:b); { else 0 ? 1 : (x 如 (x%2==1)?1:0 < 0 ? -1 : 0) x> =0 非0 (x>=0)?x:-x printf(“%d”,b); char • 优先级: && c<=„z‟)?c-‟a‟+‟A‟:c ch, ch1, ch2; //变量定义 expr1 (c>=„a‟ 13 ch = getche ( ); //读取一字符 • 结合方向:自右向左 取expr2值 取expr3值 putchar ('\n'); //换行 如 a > b ? 'z' : ch c > b ? a : (c ch1 = ch == 'a'? a : c > d-?1; : d a//求前驱字符 > d ? c : d) ch2 = ch == 'z' ? 'a' : ch + 1; //求后继字符 • expr1、expr2、expr3类型可不同,表达式值取较高的 printf ("ch1 = %c, ch2 = %c\n", ch1, ch2); //显示结果 类型 }
//d = 1 d=a>b 已知:a = 1; b = 2; c = 3; f = a > b > c //f = 0 问:d = a != c == a < b < c;的值? 答:d 的值为1。 等价于:d = ((a != c) == ((a < b) < c));
C
语 言 程 序 设 计 教 程
本章讨论
C
语 言 程 序 设 计 教 程
4.2 关系运算符、逻辑运算符、条件运算符
1. 关系运算符和关系表达式 关系运算符
关系运算符 > >= (>和=之间没有空格) 含 义 大于 大于或等于 优先级 这些关系运算符等优 先级,但比下面的优 先级高 结合性
<
第 四 章 选 择 结 构 程 序 设 计
关系运算注意: 例 若a = 0; b = 0.5; x = 0.3; 则 a <= x <= b的值为 0 例 int i = 1, j = 7, a; a = i + (j % 4 != 0); 则a = 2 例 ‘a‟>0 ‘A‟>100
1 结果为 结果为0
例 5 > 2 > 7 > 8在C中是 允许的,值为 0
函数调用语句 a = 10 赋值表达式 由函数名、实际参数加上分号“;”组成。其一般形 a = 10; 赋值语句 式为:函数名(实际参数表); k++ 表达式 表达式语句 空语句 k++; printf ("C Program") 函数调用; 只有分号“;”组成的语句称为空语句。空语句是什么 printf (“C Program”); 函数调用语句 也不执行的语句。在程序中空语句可用来作空循环体。 其功能是输出字符串"C Program"。 while (getchar( ) != '\n' ) ; 本语句的功能是,只要从键盘输入的字符不是回车则 重新输入。这里的循环体为空语句。
a = 4; b = 5; 逻辑运算符的优先级 !a //值为0 !、~、++、--、sizeof 高 a && b //值为1 算术运算符 移位运算符 a ||例如: b //值为1 关系运算符 (a a !a || b <= x && x <= b 等价于: <= x) && (x <= b) //值为1 &、|、^ (a a > b && x > y 等价于: > b) && (x > y) 4 && ==||b2|| x == y 等价于:(a == b) || (x == y) //值为1 &&、|| a0 赋值运算符 5 > 3!a || a低 b 8 < 4 - !0 (!a) || (a 等价于: && > || 2 //值为1> b) 等价于:(!a) > b 已知:a = 4; b&&>„d‟ 5; //值为1 „c‟ =!a b c = 2 || b < b - !a;的值? c = (a || b) a || 8 等价于: 问:c = b > 3 && (a a 7 && b & 8 等价于: | 7) (8 < (b – 8) 答:c 的值为1。 |等价于:c = (((b > 3) && 2) || && (b &(!a))));
第 四 章 选 择 结 构 程 序 设 计
学习内容
C程序中语句的分类 关系运算符、逻辑运算符、条件运算符 选择结构的程序设计(if语句、switch语句) 选择结构程序设计举例 本章小结
C
语 言 程 序 设 计 教 程
4.1
C程序中语句的分类
C语言程序的执行部分是由语句组成的。程序的功能也 是由执行语句实现的。C语言中的语句可以分为以下5类: 表达式语句 由表达式加上分号“;”组成。其一般形式为:表达式;
例 x?„a‟:„b‟ //x=0,表达式值为‘b‟; x≠0,表达式值为‘a‟ x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5
C
语 言 程 序 设 计 教 程
运算符总结:
到现在为止,我们已经学习了30多个运算符。掌握它 们的优先级关系特别重要。优先级的记忆规则:
C
语 言 程 序 设 计 教 程
控制语句 用来实现一定的控制功能的语句称为控制语句 。C语 言用控制语句来实现选择结构和循环结构。C语言有九种 控制语句。可分成以下三类:
分支 循环
第 四 章 选 择 结 构 程 序 设 计
辅助控制
if( )~else~ switch for( )~ while( )~ do~while( ) continue break goto return
小于
<= (<和=之间没有空格) 小于或等于 注意: (两个=之间没有空格) 等于 这些关系运算符等优 ==C语言用0表示假,非0表示真。 先级,但比上面的优 != (!和=之间没有空格) 不等于 一个关系表达式的值不是0就是1,0表示假,1表示真。 先级低
左结合性
关系表达式
用关系运算符连接起来的式子称为关系表达式。 关系表达式的一般形式为:表达式 关系运算符 表达式
(a a >> 2 && b << 1 等价于: >> 2) && (b << 1)
C
语 言 程 序 设 计 教 程
逻辑运算注意: 逻辑表达式求解时,并非所有的逻辑运算符都被执行, 只是在必须执行下一个逻辑运算符才能求出表达式的解时, 才执行该运算符。 例 a && b && c //只在a为真时,才判别b的值; 只在a、b都为真时,才判别 c的值 例 a || b || c //只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值 例 a = 1; b = 2; c = 3; d = 4; m = 1; n = 1; (m = a > b) && (n = c > d) //结果:m = 0, n = 1
第4章 选择结构程序设计
制作人:张虹波
C
语 言 程 序 设 计 教 程
第4章:选择结构程序设计
学习的意义
在编制程序时,有时并不能保证程序一定执行某些指令, 而是要根据一定的外部条件来判断哪些指令要执行。如菜谱 中要加工西红柿,可能有这样的步骤:如果是用鲜西红柿, 则去皮、切碎,开始放入,如果是用西红柿酱,就在最后放 顺序结构 入。这里,我们并不知道具体操作时执行哪段指令,但菜谱 第3章已讨论 选择结构 给出了不同条件下的处理方式,计算机程序也是如此,可以 程序结构 本章讨论 根据不同的条件执行不同的代码,这就是选择结构。程序总 循环结构 是为解决某个实际问题而设计的,而问题往往包含多个方面, 第5章讨论 不同的情况需要有不同的处理,所以选择结构在我们的实际 应用程序中可以说是无处不在,离开了选择结构很多情况将 无法处理,因此,正确掌握选择结构程序设计方法对于我们 编写实际应用程序尤为重要。
相关文档
最新文档