《高级C语言》第4章 选择结构程序设计


else if(ch>='a'&&ch<='z')
printf("你输入的是一个小写字母!\n");
else
运行结果
printf("你输入的是除数字和字母以外的其它字符!\n"); return 0;
}
-21-
多分支if语句
【例题4-4】多分支if语句应用示例。
程序编制:输入一百分制成绩,要求输出成绩对应等级‘A’,‘B’,‘C’, ‘D’,‘E’。90分以上为等级A,80分-89分为等级B,70分-79分为等级C,60分-69 分为等级D。
return 0; }
程序运行结果
-22-
4.4.2 if语句的嵌套
if(表达式1)
if(表达式1_1) 语句1;
else
语句2;
else
if(表达式1_2) 语句3;
else 语句4;
if(表达式1) if(表达式1_1) 语句1;
else if(表达式1_2) 语句2; else 语句3;
-23-
-4-
4.1.1关系运算符及其优先级
C语言提供了6种关系运算符:
-5-
4.1.1关系运算符及其优先级
在表4-1中,前4个关系运算符的优先级相同,后2个关系运算 符的优先级相同,前4个关系运算符的优先级高于后2个关系运算 符的优先级。
关系运算符与前面学过的算术运算符和赋值运算符相比: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符。 例如: a+b>c+d (a+b)>(c+d) a==b>=c a==(b>=c) a=b!=c a=(b!=c
在编程过程中,常常需要表示出由几个简单条件组成的 复合条件。例如,参加本次奥林匹克数学竞赛的学生的年龄 必须在13岁到16岁之间,要表示满足条件的参赛学生的年龄, 用数学表达式可以写成13<=age<=16,该数学表达式在C语言 该如何表示呢?如何将关系表达式age>=13和age<=16组合在 一起呢?这就要用到逻辑运算符。
max=(temp>c)?temp:c;
printf(“max=%d\n”,max);
return 0;
图4-1 例题4-1运行结果
}
-17-
4.4 if语句
C语言编程时,有时需要使程序根据条件有选择地执行语 句。C语言有两种选择语句:
(1)if语句,有3种形式,分别是单分支选择if语句、双 分支选择if语句和多分支选择if语句。
例如: 若a=5,b=2, 逻辑表达式!a&&b<7的值为0。 逻辑表达式!7.3&&8 的结果为0。 逻辑表达式!5||4.5的结果为1。 “abc”&&“defg”的结果为1。
-13-
4.2.2 逻辑表达式
在实际编程过程中,有时也需要把数学表达式转换成C语言的 逻辑表达式形式,例如: (1)数学表达式a<b<c写成合法的C语言表达式形式为 a<b&&b<c (2)数学表达式|x|>6 写成合法的C语言逻辑表达式形式为 x>6||x<-6。
及应用。 ➢ 熟悉多分支选择switch 语句编程。 ➢ 能熟练地运用if语句和switch语句进行选择结构综合编程。
-3-
4.1关系运算符与关系表达式
➢ 在程序中经常需要比较两个量的大小关系,在C语言中,“ 比 较运算”就是“关系运算”,关系运算就是比较两个量的大小 关系。 例如,x<7是一个关系表达式,其中的“<”是一个关系 运 算符。 若x的值是5,则表达式5<7成立,表达式的值为“真”。 若x的值是9,则表达式9<7不成立,表达式的值为“假”。
真)时,运算结果就为1(逻辑真),否则为0(逻辑假)。 例如:5>4||4<3 逻辑表达式的结果是1(逻辑真) 6<5||5>8 逻辑表达式的结果是0(逻辑假)。
-11-
4.2.1 逻辑运算符及其优先级
3. 逻辑非(!) 其运算规则为:当!左边的操作数为1(逻辑真)时,逻辑非运
算的结果为0(逻辑假);当!左边的操作数为0(逻辑假)时,逻 辑非运算的结果为1(逻辑真)。
else if(表达式2) 语句2;
else if(表达式3) 语句3;
…… else if(表达式n) 语句n;
else
语句m;
-20-
多分支if语句
【例题4-3】多分支if语句应用示例1。
编写程序:从键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母还是其
它字符,并输出相应的信息。
#include "stdio.h"
双分支if语句的形式为: if(表达式1) 语句1; else 语句2; 双分支if语句的执行过程:当表达式1的值为非0(逻辑真)时,
则执行语句1;否则执行语句2。
-19-
4.4.1 if语句的三种形式
3.多分支if语句
多分支if语句适用于有3个或3个以上的分支选择时,一般形 式为:
if(表达式1) 语句1;
k=(n=b>a)||(m=a); 求变量m, n, k的最终值。
-15-
4.3 条件运算符与条件表达式
条件表达式的一般形式为: 表达式1?表达式2:表达式3 运算规则:先求解表达式1的值,若表达式1的值为真(非
0的值),则求表达式2的值,并把表达式2的值作为整个表达式 的值;若表达式1的值为假(为0值),则求表达式3的值,并把 表达式3的值作为整个表达式的值。
-14-
4.2.2 逻辑表达式
在使用逻辑表达式时,要注意: ●在用&&运算符相连的表达式中,计算从左向右进行时,
若遇到运算符左边的操作数为0(逻辑假),则停止运算。 因为此时已经可以判定逻辑表达式结果为假。 例如:若x=0,y=5;求逻辑表达式x&&(y=7)的值及最终的y值。
●在用||运算符相连的表达式中,计算从左至右进行时, 若遇到运算符左边的操作数为1(逻辑真),则停止运算。 因为已经可以断定逻辑表达式结果为真。 例如:int a=3,b=4,m=0,n=0,k;
if(表达式1) {if (表达式2 } 语句1;
else 语句2; 添加{ }后可以很清楚地表示出else与if的配对关系。 (2) 在if语句的嵌套结构中,if与else匹配后,只能形成嵌套结构,不能形成 交叉结构。
-24-
4.5 switch语句
switch语句可以根据switch后表达式的多种值,对应case表 示的多个分支,switch语句又称为开关语句。
int main( )
{ char ch;
printf("请输入一个字符: ");
ch=getchar(); if(ch>='0'&&c<ch='9')
printf("你输入的是一个数字字符!\n");
else if(ch>='A'&&ch<='Z')
printf("你输入的是一个大写字母!\n");
#include <stdio.h>
int main( )
{ double score;
printf(“please input score(0-100):”);
scanf(“%lf”,&score);
if(score>=90&&score<=100) printf(“The grade is A\n”);
4.4.2 if语句的嵌套
学习if语句的嵌套要注意以下几个问题: (1) 在if语句的嵌套结构中,应注意if与else的配对规则,else总是与它最近
的还没有配对的if相匹配。如果忽略了else与if配对,就会发生逻辑上的错误。 为避免产生逻辑错误,使程序结构更清晰,可以加{ } 来确定配对关系,例如:
-10-
4.2.1 逻辑运算符及其优先级
1.逻辑与(&&) 其运算规则为:当&&左右两边的操作数均为非0(逻辑真)
时,结果才为1(逻辑真),否则为0(逻辑假)。 例如:(5>3)&&(6<7) 运算结果是1(逻辑真)。 “abc”&&(4>7) 运算结果是0(逻辑假)
2.逻辑或(||) 其运算规则为:当||左右两边的操作数有一个为非0(逻辑
编写程序:从键盘输入3个整数a,b,c, 输出其中最大的数 (用条件表达式实现)。
#include <stdio.h>
int main( )
{ int a,b,c,temp,max;
printf(“please input a,b,c:”);
scanf(“%d,%d,%d”,&a, &b,&c);
temp=(a>b)?a:b;
例如: (1) 若int a=3,b=4;mmx=a>b?a+2:b+3;则mmx的值为7。 (2) 若int a=3,b=5,c=2,d=3; mmx=a>b?a:c>d?c:d后,mmx的
值为3。(条件运算符是右结合性)。
-16-
4.3 条件运算符与条件表达式
【例题4-1】条件表达式应用示例。
-6-
4.1.2关系表达式
关系表达式是用关系运算符将两个表达式连接起来,进行关 系运算的式子。被连接的表达式可以是算术表达式、关系表达式、 逻辑表达式、赋值表达式或字符表达式。
合集下载

C语言程序设计第4章选择结构程序设计ppt课件

C语言程序设计第4章选择结构程序设计ppt课件

8
printf("grade is E" );
9 else if (score >=60 && score<70 )
10
printf( "grade is D");
11 else if (score >=70 && score<80 )
12
printf( "grade is C");
13 else if (score>=80 && score<90 )
printf("a,b="); scanf("%d,%d",&a,&b); if (a>b) max=a; else max=b; printf("max=%d\n",max); }
结束
8
3.if-else if-else语句
(1)语句格式:
if (表达式1) 语句1
else if (表达式2) 语句2
不再判断,顺序执 行下面的语句
21
4.2 switch语句
switch (表达式) {case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n [default:语句n+1] }
注意:
1. <表达式>可以是整型或字 符型表达式; 2. case后面必须是常量表达 式,不能包含变量; 3. 每个常量表达式的值应互 不相同; 4. case语句先后顺序随意; 5.若从上至下没有找到与表 达式的值相匹配的case,含有 default子句时,执行语句n+1。

第章 高级语言程序设计C--选择结构程序设计PPT资料

第章 高级语言程序设计C--选择结构程序设计PPT资料
计算机科学与技术学院—— C语言程序设计
4.1 C言语判别语句
• 几个生活中判别语句的例子 • 假设下班早,去超市 • 假设天黑了,开灯 • 假设男生,做家务 • 假设年龄大于7岁,上小学 • 用C言语方式来表达 • if〔下班早〕{去超市} • if〔天黑了〕{开灯} • if〔男生〕{做家务} • 计if算〔机年科学龄与大技于术学7院岁—〕—{上C语小言程学序}设计
第四章 选择构造程序设计 华侨大学计算机科学与 计算机科学与技术学院—— C语言程序设计
第四章 选择构造程序设计 内容提要 C言语判别语句 C言语if选择构造 C言语中的条件运算符 多分支选择语句 switch…case
计算机科学与技术学院—— C语言程序设计
4.1 C言语判别语句 if语句是C言语中用来做判别的功能语句,用于控制语句
case 6: printf("D\n");break;
if(i < 0){ printf("please input two integers A and B: ");
void main(){
i = -i; 能够出现多个if与多个else扎堆出现的情况。
printf("input score:"进展判别。
假设表达式的值假与全设部c判ase别后的表常量达表达式式的得值均出不相的等,结那么果执行为defa真ult后〔的执非行语0句〕集合,。 那么先执行紧跟if
判别表达式后的花括号中的执行语句集合1,再执行后续语
句;
计算机科学与技术学院—— C语言程序设计
4.2 C言语if选择构造
if〔判别表达式〕{ 执行语句集合1
} else if〔判别表达式〕{
执行语句集合2

山东理工大学史上最全C语言C程序设计(4 选择结构)

山东理工大学史上最全C语言C程序设计(4 选择结构)

思考:输入年和月,输出这个月份的天数?
定义年(year),月(month),天数(day),输入年,月
switch
month
1,3,5,7,8,10,12
case 4,6,9,11
day=31;
day=30;
2
Y 闰年? N
day=29
day=28
输出年,月对应的天数
19
#include <stdio.h>
6
4.5从键盘输入两个整数,求出其中的较大数并输出。
#include<stdio.h> main() {
int a,b,max; printf("请输入两个整数:\n"); scanf("%d%d",&a,&b); if(a>=b) max=a; else max=b; printf("较大数为%d\n",max); }
else if(income<=5000)
5 >12500
tax=(income-3500)*0.03;
税率(%) 0 3 10 20 30
else if(income<=8000)
tax=(5000-3500)*0.03+(income-5000)*0.1;
else if(income<=12500)
• 结合方向:自右向左
取expr2值
如 a>b?a:c>d?c:d a>b?a:(c>d?c:d)
取expr3值
• expr1、expr2、expr3类型可不同,表达式值取较高的类 型
例 x?‘a’:‘b’ //x=0,表达式值为‘b’; x‡0,表达式值为‘a’ x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5

高级语言程序设计习题(最新版带答案)

高级语言程序设计习题(最新版带答案)

第1章C语言概述习题1.单项选择题(1)C语言是在B语言的基础上产生的。

A.AB.BC.DD.E(2)在C语言中,每个语句必须以D结束。

A.回车符B.冒号C.逗号D.分号(3)标识符和关键字间,要用C隔开。

A.回车符B.冒号C.空格D.分号(4)用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。

A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保存源文件(5)下列说法中正确的是(B)。

A.由于C源程序是高级语言程序,因此一定要在TC软件中输入B.由C源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C.由于C程序是高级语言程序,因此输入后即可执行D.由于C程序是高级语言程序,因此它由命令组成(6)下列说法中正确的是(A)。

A.C语言程序由主函数和0个或多个函数组成B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成D.C语言程序由过程组成(7)下列说法中错误的是(D)。

A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行2.填空题(1)C语言只有32个关键字和9种控制语句。

(2)C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3)每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。

(4)在C语言程序中允许出现的字符集是ASCII码字符集。

(5)C语言的程序中有特殊含义的英语单词称为保留字。

(6)C语言标识符的长度是前8位有效。

(7)C语言中,标识符的定义规则是以字母或下划线为开头。

(8)C语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以*/符号作为结束标记。

第2章数据类型运算符和表达式习题1.单项选择题(1)以下选项中,正确的C语言整型常量是D。

C程序设计(第四版)(谭浩强编)教程-第4章_选择结构程序设计

C程序设计(第四版)(谭浩强编)教程-第4章_选择结构程序设计


==
!=
等于
不等于
a==b
x!=0
低 (赋值运算符)
Lecture Notes
12
Liu Yong, USTC © 2010
关系表达式
用关系运算符将两个表达式连接起来 a+b>c+d, (a=3)>x
注意区分等于(==)和赋值运算符(=)

a=b, a==b
关系表达式的值是逻辑值—“真”或“假”
if(exp1)
语句1
else
语句1}
else
语句2
Lecture Notes 8
语句2
Liu Yong, USTC © 2010
例:
#include <stdio.h>
int main() {
int result;
printf(“input your score:”); scanf(“%d”,&result);
case 6: printf("Sat.\n"); break;
default:printf("Sun.\n"); }
Lecture Notes 27 Liu Yong, USTC © 2010
Lecture Notes
18
Liu Yong, USTC © 2010
逻辑表达式求值特点
逻辑表达式中的运算符,只有会影响表
达式求值时,才会执行
a&&b&&c a||b||c
若a为“假”,则不再判断b和c 若a为“真”,则不再判断b和c
举例,(m=a>b)&&(n=c>d)

C语言-桂林理工大学4-第四章 选择结构程序设计

C语言-桂林理工大学4-第四章 选择结构程序设计

0),这样,&&运算符之后的赋值表达式b=a就不被执行了,所以b的值仍为1。
*优先级:

!(非)
算术运算符
关系运算符
&& 和 ||用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执 行给出的两种操作之一。 4.2.1 if语句三种形式
1、 if(表达式)语句 例如:if(x>y)printf(“%d”,x);
流程图见图4-1 (a ) 2、 if(表达式)语句1 else 语句2
例如:if(x>y)printf(“%d”,x);else printf(“%d”,y); 流程图见图4-1 (b )
图4-1
复合语句在if语句中的使用
基本形式中的语句(如s、s1、s2等)均可采用多于一条语句的复合语句结 构,这时要使用花括号{}把各语句括起来而成为复合语句。
case 常量表达式1:语句1 case 常量表达式2:语句2
……… case 常量表达式n:语句n [default: 语句n+1] } switch语句case中语句的终止可以使用break.
说明: (1) switch括号后面的表达式,允许为任何类型。 (2) 当“表达式”的值与某个case后面的常量表达式的值相等时,就执行此 case后面的语句。如果表达式的值与所有常量表达式都不匹配,就执行 default后面的语句(如果没有default就执行跳出switch,执行switch语 句后面的语句)。 (3) 各个常量表达式的值必须互不相同,否则出现矛盾。 (4) 各个case,default出现的顺序不影响执行结果。
op=getchar( ); switch (op) { case '+': z=x+y; break;

C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版


C★
A★
●B
4.2.1 用if语句处理选择结构举例
C★ A ●★ ● B
4.2.1 用if语句处理选择结构举例
C★ A ● ●★ B
#include <stdio.h> int main() { float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) 如果a>b
{ t=a;
a=b; 将a和b的值互换
b=t; } printf("%5.2f,%5.2f\n",a,b); return 0; }
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{ t=a; a=b;
选择结构,用if语句实现的
a && b 真 假 假 假
a || b 真 真 真 假
4.4.1 逻辑运算符及其优先次序
➢逻辑运算符的优先次序
! → && → ||
(!为三者中最高)
➢与其他运算符的优先次序
! 算术运算符 关系运算符
&& 和 || 赋值运算符
(高) (低)
4.4.2 逻辑表达式
➢ 逻辑表达式的值应该是逻辑量“真”或“假” ➢ 编译系统在表示逻辑运算结果时
4.3.1关系运算符及其优先次序
c>a+b a>b==c a==b<c a=b>c
等效于 c>(a+b) 等效于 (a>b)==c 等效于 a==(b<c) 等效于 a=(b>c)

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

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语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。

常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。

C选择结构程序设计

}
printf("The maximum value is %dn", max);
简单的选择结构程序示例
• return 0;
简单的选择结构程序示例
}
```
复杂的选择结构程序示例
• 总结词:一个复杂的示例,通过嵌套的ifelse语句实现多个条件判断和流程控制。
复杂的选择结构程序示例
嵌套if-else语句
选择结构在游戏中的应用示例
}
printf("Congratulations! You guessed the number
in %d tries.n", tries); // 输出猜测结果和猜测次数
选择结构在游戏中的应用示例
• return 0;
选择结构在游戏中的应用示例
}
```
06
总结与展望
• 人工智能与机器学习:随着人工智能和机器学习技术的不断发展,选择结构程 序设计可能会与这些领域产生更多的交叉和融合。例如,使用机器学习算法来 自动生成或优化选择结构代码,从而提高开发效率和代码质量。
THANKS
感谢观看
• 泛型编程:泛型编程是一种更通用的编程范式,它允许算法独立于特定数据类 型进行操作。泛型选择结构可以进一步提高代码的复用性和可维护性,是未来 发展的重要方向之一。
• 条件编译:条件编译是一种特殊的编程技巧,可以根据预定义的宏或条件来决 定是否编译某段代码。条件编译可以看作是一种更灵活的选择结构,它允许在 编译时根据不同条件决定程序的某些部分是否被包含。
简单的选择结构程序示例
• 总结词:一个简单的选择结构程序示例,通过if语句实现 条件判断和流程控制。
简单的选择结构程序示例

精品课件-C语言程序设计实用教程-第4章 选择结构程序设计


转换成小写字母,否则直接输出*/
printf("ch=%c\n",ch);
}
4.3 switch语句
C语言还提供了另一种用于多分支选择的switch语句,这种 语句把一个表达式的值和一个整数或字符常量表中的元素逐一比 较,发生匹配时,与匹配常数关联的语句被执行。 switch语句的一般形式:
switch(表达式) {case 常量表达式1:语句1;[break;] case 常量表达式2:语句2;[break;] ...... case 常量表达式n:语句n;[break;] [default:语句n+1;[break; ]] }
2\n");
else { if (score<90) printf("Grant grade:
else printf(“Grant grade:
1\n”);}
}
【例4.8】 if语句的嵌套应用。
#include<stdio.h>
main()
{
int a,b;
printf("input a,b=");
if语句中又包含一个或多个if语句称为if语句的嵌套。 一般形式为: if()
if() 语句1; else 语句2 ; else if() 语句3; else 语句4;
【例4.7】 使用嵌套的if语句实现相同的功能,首先根据成绩
的取值范围处理分为两种情况:有或者没有助学金,如果有则
进一步判别等级是一等、二等或三等助学金。
4.1 引例
1.问题描述——学生助学金评定 助学金是高等院校资助贫困学生的一项重要举措,一般助学金 的评定要参考学生的学习成绩。假定助学金的评选规则为:综 合平均成绩在90分及以上的同学可获一等助学金;在 80分 (包括80分)至90分之间的同学可获二等助学金;在60分(包 括60分)至80的同学可获三等助学金;60分以下的同学不能获 助学金。 2.引例分析 首先用最简单的方式处理评定结果:根据某位同学的成绩判断 他能否获取助学金,输出不获得助学金的提示信息,算法的流 程图如图4-1所示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档