C语言课件cd-5_1(选择结构)
合集下载
c语言选择结构
30
问题 思考
资料仅供参考
讲座 选择结构程序设计
根据输入的考试成绩(百分制整数)打印出等级水平。 (使用switch语句实现)
A: 80~100 B: 70~79
C: 60~69
D: <60
使用什么结构来解决问题?
理想中
#include <stdio.h>
void main()
{
int score; printf(“请输入考试成绩0~100:”); scanf(“%c”,&score);
b)*(p-c))
输出s
3,4,5 s= 6.00
3,4,8 Not a triangle!
25
多分支(一)
资料仅供参考
讲座 选择结构程序设计
格式
if (表达式1) 语句1 else if (表达式2) 语句2
……
else 语句n
语句本身含 分号
举例
if (cost>3000) else if (cost>2000) else if (cost>1500) else if (cost>1000) else
被嵌套的条件语句和嵌套进 去的条件语句既可是单分支, 也可是双分支。
注意
分析 方法
if与else的配对原则: else总是与它上面的最近的未配对的if配对。
1、主句是单分支还是双分支的。 2、嵌套进来的子句是双分支还是单分支的,嵌 套在if后面还是else后面。
27
多分支(三)
资料仅供参考
讲座 选择结构程序设计
生活中的“选择”
体育课排队中位置的选择 第一次排队 来了新人的排队
大学的选择: 高考分数、学校知名度、兴趣、就业前景、…… 风险:招生数量、竞争人数、……
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语言(第五章选择结构) c语言 教学课件
▪ 非闰年的判别:
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
《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语言程序设计ppt课件-第3章-选择结构
1.表达式 2. if语句 3. switch语句 4. 选择结构的嵌套 5. 选择结构的应用
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
C语言课件 第5章
如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
大一C语言实用课件
• 1980年贝尔实验室的Bjarne Stroustrup对C语言 进行了扩充,推出了“带类的C”,多次修改后起 名为C++。以后又经过不断的改进,发展成为今 天的C++。
• Visual C++是Microsoft公司推出的基于 Windows平台的C++可视化开发环境。使用版 本Visual C++ 6.0
数值范围 10-38~1038 10-308~10308 10-4932~104932
double 16(8) 19
如:
float x,y;
double z;
五、 字符型数据
1. 字符常量 • 用单引号括起来的单个字符,如‘a’,’b’等。 • 转义字符:以\开头的特殊字符。
如:\n 表示回车换行
• 各种C语言的版本都是按照ANSI C作为标准的。 • 主要版本有:
Microsoft C, Turbo C, BORLAND C等。
• 实验环境:
Visual C++ 6.0
二、特点
1 语言简洁、紧凑,使用方便、灵活 2 运算符丰富 3 数据结构丰富 4 具有结构化的控制语句 5 程序设计自由度大
• 不合法的标识符:2a,x/y,a>b等。
使用标识符应注意:
• C语言中标识符区分大小写字母。即:大 写字母和小写字母被认为是两个字母。如: Sum,SUM,sum是不同的标识符。 • 标识符的长度没有统一的规定。
二、常量与变量
1. 常量与符号常量 • 常量:在程序运行过程中,值保持不变的量叫 ~。如:10,0,-3,4.2,-1.3,‘a’,’b’等。 • 符号常量:用标识符表示的一个常量称为~。 通常用大写字母表示。 如:#define PI 3.14159 main() 符号常量 { float r,area; r=10; area=PI*r*r; printf(“area=%f\n”,area); }
• Visual C++是Microsoft公司推出的基于 Windows平台的C++可视化开发环境。使用版 本Visual C++ 6.0
数值范围 10-38~1038 10-308~10308 10-4932~104932
double 16(8) 19
如:
float x,y;
double z;
五、 字符型数据
1. 字符常量 • 用单引号括起来的单个字符,如‘a’,’b’等。 • 转义字符:以\开头的特殊字符。
如:\n 表示回车换行
• 各种C语言的版本都是按照ANSI C作为标准的。 • 主要版本有:
Microsoft C, Turbo C, BORLAND C等。
• 实验环境:
Visual C++ 6.0
二、特点
1 语言简洁、紧凑,使用方便、灵活 2 运算符丰富 3 数据结构丰富 4 具有结构化的控制语句 5 程序设计自由度大
• 不合法的标识符:2a,x/y,a>b等。
使用标识符应注意:
• C语言中标识符区分大小写字母。即:大 写字母和小写字母被认为是两个字母。如: Sum,SUM,sum是不同的标识符。 • 标识符的长度没有统一的规定。
二、常量与变量
1. 常量与符号常量 • 常量:在程序运行过程中,值保持不变的量叫 ~。如:10,0,-3,4.2,-1.3,‘a’,’b’等。 • 符号常量:用标识符表示的一个常量称为~。 通常用大写字母表示。 如:#define PI 3.14159 main() 符号常量 { float r,area; r=10; area=PI*r*r; printf(“area=%f\n”,area); }
C语言课件
第5章 章 选择结构程序 设计
关系运算符和关系表达式
• C语言提供 种关系运算符: 语言提供6种关系运算符 语言提供 种关系运算符: 小于) ① <(小于 小于 小于或等于) ② <=(小于或等于 小于或等于 优先级相同 (高) 高 大于) ③ >(大于 大于 大于或等于) ④ >=(大于或等于 大于或等于 等于) ⑤ = = (等于 等于 优先级相同 (低) 低 不等于) ⑥ !=(不等于 不等于
if语句 语句
• if语句的三种形式 语句的三种形式 – 形式一: 形式一:
• 格式:if (expression) 格式: statement 例: if(x>y) > printf("%d\n",x); % , ;
expr 非0 statement =0
• if语句的三种形式 语句的三种形式 – 形式二: 形式二:
如: …… case ‘A’: case ‘B’: case ‘C’: printf(“score>60\n”); break; ……..
例: switch(grade) {case 'a'∶ ∶ printf("85~100\n");break; ~ \ ; case 'b'∶ ∶ printf("70~84\n");break; ~ \ ; case 'c'∶ ∶ printf("60~69\n");break; ~ \ ; case 'D'∶ ∶ printf("<60\n");break; < \ ; default∶ ∶ printf("error\n");break; \ ; }
• 逻辑运算符的优先次序
关系运算符和关系表达式
• C语言提供 种关系运算符: 语言提供6种关系运算符 语言提供 种关系运算符: 小于) ① <(小于 小于 小于或等于) ② <=(小于或等于 小于或等于 优先级相同 (高) 高 大于) ③ >(大于 大于 大于或等于) ④ >=(大于或等于 大于或等于 等于) ⑤ = = (等于 等于 优先级相同 (低) 低 不等于) ⑥ !=(不等于 不等于
if语句 语句
• if语句的三种形式 语句的三种形式 – 形式一: 形式一:
• 格式:if (expression) 格式: statement 例: if(x>y) > printf("%d\n",x); % , ;
expr 非0 statement =0
• if语句的三种形式 语句的三种形式 – 形式二: 形式二:
如: …… case ‘A’: case ‘B’: case ‘C’: printf(“score>60\n”); break; ……..
例: switch(grade) {case 'a'∶ ∶ printf("85~100\n");break; ~ \ ; case 'b'∶ ∶ printf("70~84\n");break; ~ \ ; case 'c'∶ ∶ printf("60~69\n");break; ~ \ ; case 'D'∶ ∶ printf("<60\n");break; < \ ; default∶ ∶ printf("error\n");break; \ ; }
• 逻辑运算符的优先次序
C语言条件判断选择结构程序设计课件
PPT学习交流
9
关系表达式的结果
• 在C语言中,关系表达式的结果为1或0
• 关系表达式为0,表示“假”
• 例如
• 3<2
2!=6
值为0
• 若a=3, b=2, c=1
值为1
a>b>c
(a>b)==c
b+c<a
值为0
值为1
值为0
PPT学习交流
10
PPT学习交流
24
逻辑表达式总结(3)
PPT学习交流
4
本次课程所讲内容
• 条件判断
• 关系运算符与关系表达式 • 逻辑运算符与逻辑表达式
• 选择结构程序设计
• if语句 • 条件运算符与条件表达式 • switch-case语句
PPT学习交流
5
关系运算符
•关系运算是一种 “比较运算”,即用 关系运算符对两 个运算量进行比 较
• 例如,关系表达式
算术运算符 (高) 关系运算符 赋值运算符 (低)
• 例如
• c>a+b • a>b==c • a==b<c • a=b>c • x!=a*b<c
PPT学习交流
8
关系表达式
• 用关系运算符将若干表达式连接起 来的式子,称为关系表达式
• a+b>b+c • (a=3)>(b=5) • ‘a’<‘z’ • (a>b)>b>c • 2*a+b<c-d
• a>b • a<=b • a+b>c • ‘a’<‘v’
PPT学习交流
6
关系运算符及其优先次序
C语言第1章PPT课件
▪
(1)C程序是由函数构成的,函数是C程序的基本单位。任何
一个C源程序都至少包含main主函数,也可以包含一个main主函数
和若干个其他函数。
▪ (2)一个函数由两部分组成:函数头和函数体。
▪ 函数头即函数的第1行,如例1-1中的int main()。函数体即函数头下 面的花括号{}内的部分。若一个函数内有多个大括号,则最外层的一 对{}为函数体的范围(关于函数的组成部分参见第6章函数)。
程
项
序
目
编
工
辑
作
窗
区
口
窗
口
2021/4/8
13
新建一个C源程序
▪ 在Visual C++主窗口的主菜单栏中选择“文件(File)”, 然后在其下拉菜单中单击“新建(New)”,如图1-6所示。
2021/1-7)中,选择此对话框 的左上角的“文件”选项卡,选择其中的“C++ Source File”选项,其功能是建立新的C++源程序文件。
✓具有低级语言功能的高级语言
✓模块化和结构化语言
✓可移植性好
✓执行效率高
2021/4/8
3
C程序结构
▪ C程序结构由头文件、主函数、系统的库函 数和自定义函数组成,因程序功能要求不 同,C程序的组成也有所不同。其中main 主函数是每个C语言程序都必须包含的部分。
2021/4/8
4
C程序的基本结构
2021/4/8
22
▪ 在得到可执行文件后,就可以直接执行 “例1-1.exe”了。选择“组建(B)”—“执 行[例1-1.exe]”,如图1-15所示。
2021/4/8
23
c语言 第四章 选择结构课件
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
if ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)
选择结构课件
N 语句2
在if和else后面可以有多个操作语句,则if语句 的形式变成: if (表达式) {语句序列1} else {语句序列2}
教育改变命运,励志改变人生。
第四章 选择结构程序设计—if语句
if语句的其他形式
当语句2为空时, else可以省 略,if语句的形式变换为: if (条件) 语句 任务2:由键盘输入x、y两个数,要求从大到小排序并输出。 分析: 关键技术:两个变量互换的算法是:t=x;x=y;y=t; 定义x、y、t用于存放输入的两个数和中间变量; 输入x、y if(x<y) {t=x;x=y;y=t;} 输出x、y
引例
计算函数值
sin( x) y x 1
需考虑:① 输入x ② 判断x值
x0 x0
③ 根据x值,计算y值
④ 输出y值 显然②③顺序程序不能够实现,须引入选择结构程序。
教育改变命运,励志改变人生。
第四章 选择结构程序设计—if语句
引例:计算函数值
sin( x) y x 1 x0 x0
通过这几个例子,我们可以发现,计算机编程的核心是算法,算法通用于各种语 言。算法可以通过不同的编程语言来实现。 教育改变命运,励志改变人生。
第四章 选择结构程序设计—if语句
任务3: 任给a、b、c三个数,按从大到小的顺序输出。
分析: 1)对于任意两个数a,b:若a>b, 则输出a,b,否则交换a和b 2)对于三个数,有6种可能: a>b>c a>c>b b>a>c b>c>a c>a>b c>b>a 3) 使用判断-交换法: ① 若a<b,则交换a和b ② 若a<c,则交换a和c 结果a最大 ③ 若b<c,则交换b和c 结果a>b>c 交换方法: 设a=5,b=8 a=b;b=a; 结果a=8,b=8(错误)
C语言程序设计教程:选择结构程序设计
25
4.2 switch语句
(5) case后面的语句块可以是一条语句或多条语句,也可 是空语句,但不需要用大括号括起来。
(6) 当case后面常量表达式与switch后面的表达式均不匹 配时,则执行default后面的语句块,default可以放在程序的 任何位置,不一定要位于最后。
(7) 多个case可以共用一个语句块。 例如: switch(n)
注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。 因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。
15
4.1.1 if语句的三种形式
思考:若将例4.4中程序改为以下两种写法,结果分别会如何?
程序段一如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=90)
4.1.1 if语句的三种形式
程序段二如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=60)
printf("及格!\n "); else if(score>=70)
9
4.1.1 if语句的三种形式
2. 双分支选择结构
双分支结构语法的一般格式为:
if(表达式)
{
语句块1;
}
4.2 switch语句
(5) case后面的语句块可以是一条语句或多条语句,也可 是空语句,但不需要用大括号括起来。
(6) 当case后面常量表达式与switch后面的表达式均不匹 配时,则执行default后面的语句块,default可以放在程序的 任何位置,不一定要位于最后。
(7) 多个case可以共用一个语句块。 例如: switch(n)
注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。 因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。
15
4.1.1 if语句的三种形式
思考:若将例4.4中程序改为以下两种写法,结果分别会如何?
程序段一如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=90)
4.1.1 if语句的三种形式
程序段二如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=60)
printf("及格!\n "); else if(score>=70)
9
4.1.1 if语句的三种形式
2. 双分支选择结构
双分支结构语法的一般格式为:
if(表达式)
{
语句块1;
}
C语言程序设计课件:C 程序基本结构
符ASCII 值加6 后变成其他字符的ASCII
值,然后利用printf()进行输出。
# include <stdio.h>
int main()
{
/* 定义字符型变量,并给它们赋初值 */
char c1, c2, c3, c4, c5, c6, c7;
c1 = 'C';
c2 = 'h';
c3 = 'i';
入和输出函数,
函数scanf()和printf()来完成数据的格式输
入和输出操作,其作用是向默认的输入设备
(键盘)和输出设备(终端或显示器)输入
或输出若干个任意类型的数据。
1.printf()函数的功能
printf()函数称为格式输出函数,最末一个字母
f 即为“格式”(format)之意,格式输出函
控制语句、复合语句、空语句与类.
介绍这些基本语句及其在顺序结构中的应用,
可以使读者对C 程序有一个初步的认识,为
以后的学习打下基础
(1)表达式语句:表达式语句由表达式加上分号“;”组成,运
行结果可以得到表达式的值。其一般形式为:
表达式;
例如:x=y+z; 赋值语句;
i++; 自增1 语句,i 值增1
/* 输出原码 */
printf("原码是:%c%c%c \n", c1, c2, c3);
/* 对字符进行译码运算 */
c1 = c1 + 6;
c2 = c2 + 6;
c3 = c3 + 6;
/* 输出译码结果 */
printf("密码是:%c%c%c \n", c1, c2, c3);
值,然后利用printf()进行输出。
# include <stdio.h>
int main()
{
/* 定义字符型变量,并给它们赋初值 */
char c1, c2, c3, c4, c5, c6, c7;
c1 = 'C';
c2 = 'h';
c3 = 'i';
入和输出函数,
函数scanf()和printf()来完成数据的格式输
入和输出操作,其作用是向默认的输入设备
(键盘)和输出设备(终端或显示器)输入
或输出若干个任意类型的数据。
1.printf()函数的功能
printf()函数称为格式输出函数,最末一个字母
f 即为“格式”(format)之意,格式输出函
控制语句、复合语句、空语句与类.
介绍这些基本语句及其在顺序结构中的应用,
可以使读者对C 程序有一个初步的认识,为
以后的学习打下基础
(1)表达式语句:表达式语句由表达式加上分号“;”组成,运
行结果可以得到表达式的值。其一般形式为:
表达式;
例如:x=y+z; 赋值语句;
i++; 自增1 语句,i 值增1
/* 输出原码 */
printf("原码是:%c%c%c \n", c1, c2, c3);
/* 对字符进行译码运算 */
c1 = c1 + 6;
c2 = c2 + 6;
c3 = c3 + 6;
/* 输出译码结果 */
printf("密码是:%c%c%c \n", c1, c2, c3);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*格式化输出*/
}
运行时输入:3 4 输出:16
共 37 页 第 19 页
例2
指出下列程序的输出结果: #include <stdio.h> void main() {
int a; scanf("%d",&a); if (a>50) printf("%d",a); if (a>40) printf("%d",a); if (a>30) printf("%d",a); }
判断个位数上数字相同
如:15%10==25%10 为真,16%10==18%10 为假
x/10%10==y/10%10 判断十位数上数字相同
如:123/10%10==224/10%10 为真
共 37 页 第 7 页
5.2 逻辑运算符和逻辑表达式
5.2.1 逻辑运算符
C语言提供三种逻辑运算符: && (逻辑与) 、 || (逻辑或) 、! (逻辑非)
(ch>=‘a’&& ch<=‘z’)||(ch>=‘A’&& ch<=‘Z’) ❖ 判断变量ch是否为空格、回车
ch==‘ ‘ || ch==‘\n’ ❖ 判断变量year是否为闰年(year能被4整除但不能被
100整除,或year能被400整除)
(year % 4==0 && year % 100!=0)||(year % 400==0)
说明:
(1)优先级次序:!
&&
||
(2)结合方向:从左向右
共 37 页 第 8 页
5.2.2 逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子. 规定:判断一个逻辑量为“真、假”的方法:
“非0”代表“真”,“0”代表“假” a && b a||b !a
共 37 页 第 9 页
逻辑运算真值表
共 37 页 第 15 页
5.3 选择语句
5.3.1 if 语句
根据给定表达式决定要执行的操作。
1. 单选择if语句
语句格式: if (表达式) {语句组;} 例: if (a>b) x=a;
零
表达式
非零
语句
执行过程:
计算表达式的值,判断表达 式值为真时执行语句组,否 则跳过语句继续执行后续语 句。
如何解决?
自然语言:如果… 那么… 否则…
C语言: 分支语句
共 37 页 第 4 页
5.1 关系运算符和关系表达式
5.1.1 关系运算符
1.关系运算符
关系运算是进行比较大小的运算,并产生运算结果1
(真)或 0(假)。 C语言中的关系运算符有6种:
注意!
<、<=、>、>=、==、!=
优先次序:前4种同级,高于后2种(后2种同级)
a
b
a&&b a||b
!a
0
0
0
0
1
0
非0
0
1
1
非0
0
0
1
0
非0
非0
1
1
0
共 37 页 第 10 页
5.2.2 逻辑表达式
[例]: 写出1<x<10的逻辑表达式? x>1&&x<10
运算符的优先级
!(非)
(高)
算术运算符
关系运算符
&& 和 ||
赋值运算符 (低)
共 37 页 第 12 页
5.2.2 逻辑表达式 [例]:5>3&&2||8<4-!0 [例]:a+b<c&&c==d [例]:a-!d||m>n+3
练习
1. 判断奇、偶数
设有变量定义 int z;scanf(“%d”,&z);
分析z%2==0 的值?
如果z为偶数,则 z%2==0的值为真(1);
否则z为奇数,则 z%2==0的值为假(0);
因此,z%2==0是断言“z是偶数”的c语言判断式。 2. 判断x与y的某位数字是否相同
x%10==y%10
关系表达式的值为逻辑值“真”或“假”.
注意: C语言没有逻辑型数据,关系表达式的真、假 是以数值“1”代表“真”,以“0”代表“假”。
[例]:设 a=3, b=2, c=1 ,求下列表达式的值?
c>b
值为0(假)
(a-b)==1
值为1(真)
(b+c)<a
值为0(假)
a=5>3>4
a的值为0
共 37 页 第 6 页
表达式可以是关系式或逻辑式
共 37 页 第 16 页
2. 双选择if语句
语句格式: if (表达式P)
{语句组1;} eP
A
B
功能:
计算表达式的值,当表达式值为 非零时执行语句组A,否则执行 语句组B。
共 37 页 第 17 页
有关if语句的说明
if(表达式)后面不加分号 其它语句之后有分号 else不是语句,不能单独使用 当if后有多个执行语句时,必须用{ }将多个语句括 起来,构成一个复合语句, { }之外不必有分号。
强调:在逻辑表达式的求解过程中,只要能确定 表达式的值,就不继续向下求解其他的值了.
共 37 页 第 14 页
练习:控制条件的正确表示方法
❖ 判断变量ch是否为数字字符 ch>=‘0’&& ch<=‘9’
❖ 判断变量ch是否为英文字母 ch>=‘a’&& ch<=‘z’ ch>=‘A’&& ch<=‘Z’
共 37 页 第 18 页
例1
#include <stdio.h>
void main()
{
int a,b,s;
scanf(“%d%d”,&a,&b); /*格式化输入*/
s=a;
/* 赋值 */
if(a<b) s=b;
/* 单分支 */
s*=s; ;
/* 赋值 */
printf(“%d\n”,s);
结合方向:关系运算符的结合性为从左到右;
算术运算符 (高) 关系运算符 赋值运算符 逗号运算符 (低)
共 37 页 第 5 页
5.1.2 关系表达式
定义:用关系运算符将两个表达式连接起来的式子。
形式:表达式1 关系运算符 表达式2
如:(a>b)>(b<c) 、‘a’<‘b’ 、x>y 、s+f>d
(5>3)&&2||((8<(4-(!0))) ((a+b)<c)&&(c==d) (a-(!d))||(m>(n+3))
共 37 页 第 13 页
5.2.2 逻辑表达式 [例]:(m=a<b)&&(n=c-d) 若a=3,b=2,c=6,d=5,n=8
m=? ,n=?
[例]:a||b||c 如果a为真,就不再判断b和c了
课前回顾
• 数据类型、运算符与表达式 • 格式化的输入/出函数:scanf(),
printf() • 字符输入/出函数:getchar(),putchar() • 算法的概念及其表示方法
共 37 页 第 1 页
为什么要用选择结构?
根据学生分数判断是否及格 根据学生分数如何进行分级 一元二次方程求解