谢丽聪老师C语言课件-5分支结构程序(2)-2009
合集下载
分支结构的程序实现课件(共24张PPT)2023—2022学年浙教版(2019)高中信息技术必修1

多分支
True
False
A
A
C
B
x=7
x=12
res=142
res=142-5=137
C
D
a**3+b**3+c**3 == int(num)
90
200
0.8
if x< = 3:
elif x< = 10:
else:
y=10
y=10+(x-3)*1.8
y=22.6+(x-10)*2.4
Thanks
if 表示式 1: if 表达式 2: 代码块 1 else: 代码块 2elif: if 表达式 3: 代码块 3 elif 表达式4: 代码块 4 else: 代码块 5else: if 表达式 5: 代码块 6
伪代码2: if 车牌记录在小区住户汽车记录能够查询到: 解锁门禁,允许汽车驶入 else: 提示警告音,禁止通行
请大家思考,“如果”和“否则”的代码是否会都运行?
·定义
选择结构也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码。 在Python语言中,if else 语句可以实现这种选择功能。
a = int(input(“请输入数”))if a > 0 : b = a + 1else : b = a + 2print( b )
a = int(input(“请输入数”))if a > 0 : b = a + 1elif a > 5 : b = a + 3else : b = a + 2print( b )
条件为真(true)时执行
条件为假(false)时执行
C程序设计简明教程第2章 C语言基础 (结构化)PPT课件

章节目录
图2-上8 一计算页优惠价 下一页
11
该问题属于多分支选择问题。该问题中旅游的淡 季1~5月份、10月份、11月份的优惠率一样, 在switch语句中,这几种情况可以使用同一种操 作;旅游的旺季7~9月份的优惠率一样,可以使 用同一种操作 。 “计算优惠率”按钮实现代码如下。
private void button1_Click(object sender, System.EventArgs e) {
1 单选按钮(RadioButton)
单选按钮也叫选项按钮,为用户提供从多 个选项中选择一个选项的功能,因此单选 按钮顾名思义是一种“多选一”的控件。
章节目录
上一页
下一页
15
(1)RadioButton控件的常用属性 Checked属性 该属性用来设置或返回单选按钮是否被选中。 Text属性:显示文字 AutoCheck属性 如果AutoCheck属性被设置为true(默认),那么 当选择该单选按钮时,将自动清除该组中所有其他单 选按钮。 Appearance属性 该属性用来获取或设置单选按钮控件的外观。
章节目录
上一页
下一页
3
代码:private void button1_Click(object sender, System.EventArgs e) {
double k,m; k=double.Parse(tCost.Text); if (k<1000)
{ m=k*0.9;
} else
{ m=k*0.8;
} pCost.Text=m.ToString( ); }
章节目录
上一页
下一页
4
if…else…if语句 格式: if(条件1)语句1 else if(条件2)语句2
c语言 分支结构 课件【2024版】

break;
default:
other ++;
break;
}
}
printf("blank=%d, digit=%d, other=%d\n", blank, digit, other);
return 0;
}
3.3 分支结构程序设计
分支结构一般分为二分支和多分支两种结构 用条件语句(if 和 switch)实现选择
printf("=%.2f\n", value1*value2);
break;
case '/': printf("=%.2f\n", value1/value2);
如果除数为0?
break;
default:
printf("Unknown operator\n");
break;
}
return 0;
2、在switch中不使用break
default :
语句段n+1;
}
表达式的值=常量表达式 1 的值
表达式的值=常量表达式 2 的值
表 达 式
表达式的值=常量表达式 n 的值
其他
switch (choice) { case 1: price=3.0; case 2: price=2.5; case 3: price=4.0; case 4: price=3.5; default: price=0.0;
if (x < 2)
if (x < 1) y = x + 1;
else y = x + 2;
每条语句的执行条件?
if (x < 2){ if (x < 1) y = x + 1;
谢丽聪老师C语言课件-6循环控制-2009.ppt

例8. while和do-while循环比较。 sum i
void main()
输入:8
0
8
8
9
{int sum=0,i; scanf(“%d”,&i);
17
10
27
11
while(i<=10)
do {sum=sum+i;
{sum=sum+i; i++;
i++;}
} while(i<=10);
printf(“sum=%d”,sum);
for语句形式: for(循环变量赋初值;循环条件;循环变量增量) 语句
总是一个赋 值语句, 它用 来给循环控 制变量赋初 值
总是一个表 达式, 它用来 判别循环是 否终止
定义循环控制 变量每循环一 次后按什么方 式变化
这三个部分之间用“;”分开
对于for循环中语句的一般形式, for(表达式1;表达式2 ;表达式3) 语句
运行结果:5050
注意: i和sum的初值 i的终值
例3 统计从键盘输入一行字符的个数。
#include <stdio.h>
void main() { int n=0;
完成对输入字 符个数计数。
printf("input a string:\n");
while(getchar()!='\n') n++;
}
输入:11
sum=0
sum=11
66..44.1fo形r 式语:句——代替while 语句
for (表达式1;表达式2;表达式3) 语句 要正确表达循环结构应注意三方面要求: 1、循环控制变量的初始化。 2、循环的条件。 3、循环控制变量的值的更新
C语言程序设计基础分支结构程序设计PPT课件

if 语句 if 语句
例:计算符号函数
输入变量x, 计算符号函数:
1 当 x>0
y = 0 当 x=0
-1 当 x<0
非0
非0
if (x>=0)
x>0
if(x>0) y = 1;
else y = 0;
else y = -1;
y=1
x >= 0
0
y=0
0 y = -1
例4-9
非0
0
x <2
非0
0
x <1
非0
0
exp1
int n;
(n>0) ? 2.9 : 1
n = 10
2.9
n = -10
1.0
x+2 x>0 y=
x2 x<=0
if ( x>0 ) y=x+2;
else y=x*x;
y = (x>0) ? x+2 : x*x;
4.3 switch语句
switch(表达式) {
case 常量表达式1:语句段1 case 常量表达式2:语句段2
非0
0
表达式
if (exp)
statement_1
语句1
ch=getchar(); if(ch>='a'&&ch<='z')
ch=ch-'a'+'A'; putchar(ch);
ch=getchar(); if(ch>='a'&&ch<='z'){
第四章 分支结构的C程序设计39页PPT文档

4.1.3 逻辑表达式
7
熟练掌握关系运算符和逻辑运算符,可以用逻辑表达式表 示一个复杂的条件。例如:判断某年y是否是闰年。y满足二者 之一为闰年:
(1)y能被4整除,但不能被100整除; (2)y能被400整除。 两个条件为或(||)的关系,条件(1)内的两个条件为与 (&&)的关系。判断整除用求余运算%,余数为0,则能整除。 表达式写成: (y % 4= =0 && y % 100 ! = 0 )|| y % 400 = = 0
4.2.1 if语句的简单形式
9
if语句的简单格式 if (表达式) 语句
可为算术、关系、逻辑、赋值 等表达式
内嵌语句,可为:
赋值语句 函数调用语句 控制语句 复合语句 空语句
功能:
– 计算表达式的值,如果是一个非0值(即 逻辑真),就执行内嵌语句,否则(即逻 辑假)跳过内嵌语句,顺序执行后续语句。
逻辑表达式的值也是一个逻辑值(非“真”即“假”)。
逻辑表达式求解,在值已能确定的情况下不一定求到最后。 如:
(1)表达式a && b && c: 当a=0时,表达式的值为0,不必计算判断b、c; 当a=1,b=0时,表达式的值为0,不必计算判断c; 只有a=1,b=1时,才判断c; (2)表达式a || b || c: 当a=1(非0)时,表达式的值为1,不必计算判断b、c; 当a=0时,才判断b,如b=1,则表达式的值为1,不必计算 判断c; 只有a=0,b=0时,才判断c;
C 程序设计
第四章 分支结构的C程序设计
山西大同大学 物电学院
本章主要内容
2
4.1 分支结构中的表达式 4.2 if语句
谢丽聪老师C语言课件-1C语言概述-2009

1.3 C 语言学习内容
程序
由某种语 言表示
1.4 计算机语言概述
1.语言分类: 1.语言分类: 语言分类 机器语言 汇编语言 高级语言
2.计算机语言表达方式较接近于英语 2.计算机语言表达方式较接近于英语 和我们熟悉的数学公式, 和我们熟悉的数学公式,因此具有较 好的通用性. 好的通用性.
3.常用的高级语言 3.常用的高级语言
编译
连 接
(EXE)
执 行
�
注意: 注意:
计算机不能执行高级语言 写的程序, 写的程序,只能执行机器 语言程序
必须用如下的编译方式把源程序翻译 成目标程序才能被计算机硬件识别和 执行: 执行:
产家提供 我 们 编 输入C 输入 语言源 程序 编译 程序 目标程 序( OBJ) ) 装配 程序
可执行 程序
盘中多出来 名字自己定 结 果
执行一个程序从主函数开始, 执行一个程序从主函数开始 再从主函数结束
1.C程序结构 1.C程序结构: 程序结构:
1)一个 程序由一个主函数和 )一个C程序由一个主函数和 程序由一个主函数和>=0个其它的函数组成, 个其它的函数组成, 个其它的函数组成 每个函数实现某特定功能, 函数间先后不限制, 每个函数实现某特定功能 , 函数间先后不限制 , 执 行程序总是从主函数开始到主函数结束 2)每个函数结构如下: )每个函数结构如下: [函数类型]<函数名>([形参1][,形参2]……) 函数类型]<函数名 函数名> 形参1][,形参2 ……) [形参定义;] 形参定义; { [声明部分] 声明部分] [执行部分]} 执行部分]} 3)可用 /* */ 把注释内容括起来插入在程序中任何 ) 位置,但不允许插入到字符串中 应培养写注释习惯. 但不允许插入到字符串中. 位置 但不允许插入到字符串中.应培养写注释习惯.
谢丽聪老师C语言课件-3数据类型、运算符与表达式-2009

字符串常量和字符常量区别: 1)字符常量由单引号括起来,字符串常量由 双引号括起来。字符常量只能是单个字符, 字符串常量则可以含一个或多个字符。 2)可以把一个字符常量赋予一个字符变量, 不能把一个字符串常量赋予一个字符变量。 3)字符常量占一个字节的内存空间。字符串 常量占的内存字节数等于字符串中字节数加 1 。 增 加 的 一 个 字 节 中 存 放 字 符 "\0" (ASCII码为0)。这是字符串结束的标志。
保留字
3、运算符:
运算符与变量,函数一起组成表达式,表示各种运 算功能。运算符由一个或多个字符组成。
4、分隔符
在C语言中采用的分隔符有逗号和空格两种。
5、常量:
在后面章节中将专门给予介绍。
6、注释符:
C语言的注释符是以“/*‖开头并以“*/‖结尾的串。 在“/*‖和“*/‖之间的即为注释。程序编译时,不 对注释作任何处理。注释可出现在程序中的任何位 置。注释用来向用户提示或解释程序的意义。
在使用之前必须先定义, #define
常量
程序执行过程中 值不发生改变的 量
一、整型常量: 只有 1. 十进制整数:123 、-76 、0 整数 2.八进制整数:076 、-0253 076转换成十进制:7*8+6 3.十六制整数:0xa 、0x20 、0xf4 0xf4转换成十进制:15*16+4
9 1 7 33
退格 例. void main( ) { printf(‖pencil\b\b\bxxx\n‖);}
显示结果: penxxx
xxx 打印结果: penci l
先打印pencil 再重复打印xxx 覆盖cil
先显示pencil 再退三格用xxx 覆盖cil
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
5.2 逻辑表达式:
由逻辑运算符、圆括号把表达式连接起来的式子 ——表示条件
若所表示的条件成立、其值为1(非0)、否则其值为0 逻辑运算符:&& (与) 、|| (或)、!(非)
&&和||均为双目运算符,具有左结合性。!为单目 运算符,具有右结合性。 逻辑运算符和其它运算符优先级的关系可表示如下:
0
∥
要算
0
&& 不 算
非0 && 要 算
7
1、执行 int a,b,c; a=b=c=0;
a=1 停止不算
+ +a||+ +b&&+ +c;
后a、b、c值分别为1、0、0
2、执行 int a=5,b=6,x=1,y=2;
(a=x>y)&&(b= x>y);
后a、b值分别为0、6
值为 0 赋给a, 停止不算
第五章 分支结构程序设计
5.1 关系运算符和表达式 5.2 逻辑运算符和表达式 5.3 逻辑表达式的跳跃 5.4 if语句 5.5 switch语句
1
5.1 关系表达式
由关系运算符、圆括号把两个表达式连接起
来的式子。 ——表示条件
若所表示的条件成立、则其值为1(非0)、
否则其值为0。
非=
关系运算符:< 、<=、>、>=、==、!=
例:
97
8
表达式
a>=2 、3>9 、’a’ != ( a=8 ) 、 值为1
x+(y=3)==k*z 、(a!=3)>(k<l)
优先
成立为1
不成立为0 2
注意:数学中多个条件,例 a>b>c>d 应表示为 a>b && b>c && c>d
不能顺手也写为 a>b>c>d
关系运算符都是双目运算符,其结合性均 为左结合。关系运算符的优先级低于算术 运算符,高于赋值运算符。 在六个关系运算符中 ,<,<=,>,>=的 优先级相同,高于==和!=,==和!=的 优先级相同。
实现数的 互换
printf("%d %d %d\n",a,b,c);
}
输入:1 6 2↙
输出:6 2 1
13
例4:从键盘输入一个字符,判断它是否小写字母。
若是,将其转换成大写字母,否则不进行转换,作
后输出该字母。
#include<stdio.h>
main()
main()
{char c;
c=getchar();
5
例 : 设x=0,y=2,a=8,k=-1,q=1,z=1,则 1、x+y>3 && a==8
→2>3 &&1 → 0 &&1 → 0
2、x+y && ’a’
→ 2 &&97 → 1
3、x+(y=3)==k*z || !a
→0+3==-1 || !a → 0||0 →0
4、(x!=7) || ’a’
{int a,b,c,t;
照从大到小顺序输出
printf("\n input two numbers: ");
scanf("%d %d %d " ,&a,&b,&c);
if (a<b){ t=a;a=b;b=t;} if (a<c){ t=a;a=c;c=t;} if (b<c){ t=b;b=c;c=t;}
!(非)→&&(与)→||(或) “&&”和“||”低于关系运算符,“!”高于算术运算
符。
4
按照运算符的优先顺序可以得出: a>b && c>d 等价于
(a>b)&&(c>d)
!b==c||d<a 等价于 ((!b)==c)||(d<a)
a+b>c&&x+y<b 等价于 ((a+b)>c)&&((x+y)<b)
→0!=7||97 →1||97 →1
5、! ( x+y>3 && a==8 )
→!(2>3&&1) →!(0&&1) →!0 →1 6、! ( k*q ) → !(-1) →0 7、!!!x →!!(1) →!(0) → 1
6
5.3 逻辑表达式的跳跃
作第一个,知道结果,后面不作,如:
非0 ∥
不算
输入两个整数
if(a>b)
printf("max=%d\n",a);
else
输出其中大数
printf("max=%d\n",b);
}
输入:23 46
8
3、执行 int a,b,c;a=b=c= - 1;
+ +a && + +b || + +c;
1 a=0
3 c=0
2 不算,值为0
4 整体为0
后a、b、c值分别为0、-1、0
9
例1:
main()
{char c='k'; int i=1,j=2,k=3;
X为非0 0
float x=3e+5,y=0.85;
{ char c,a;
if(c<=‘z’&&c>=‘a’)c-=32;
c=getchar();
printf("%c\n",c);}
if(c<=‘a’ || c>=‘z’ )
a=c;
/*判断非小写字母情况*/
if(c<=‘z’&&c>=‘a’)
a=c-32; *判断是否是小写字母情况*/
printf("%c\nlse if(表达式) 语句1;
else 语句2;
语义:如果表达式的值 为真,则执行语句1,否则 执行语句2 。
后面不能 加;
15
void main() {int a, b;
例2的改写
printf("input two numbers: ");
scanf("%d %d",&a,&b);
为1,后面要算
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
为非0,后面不算
1,0 为0,后面不算 0,1
{int a,b,max;
printf("\n input two numbers: ");
scanf("%d %d",&a,&b);
max=a;
max=23
if (max<b) max=b;
max=46
printf("max=%d",max);
}
输入:23 46
输出:max=46
12
例3:void main() 功能:输入三个数,按
10
5.4 选择结构(if 语句)
5.4.1 if语句的三种形式 1、第一种形式为基本形式: if if(表达式) 语句
语义:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图。
表达式可 以是任意 合法表达 式,后面 不能加;
11
例2:void main()
此语句用于提示输入
5.2 逻辑表达式:
由逻辑运算符、圆括号把表达式连接起来的式子 ——表示条件
若所表示的条件成立、其值为1(非0)、否则其值为0 逻辑运算符:&& (与) 、|| (或)、!(非)
&&和||均为双目运算符,具有左结合性。!为单目 运算符,具有右结合性。 逻辑运算符和其它运算符优先级的关系可表示如下:
0
∥
要算
0
&& 不 算
非0 && 要 算
7
1、执行 int a,b,c; a=b=c=0;
a=1 停止不算
+ +a||+ +b&&+ +c;
后a、b、c值分别为1、0、0
2、执行 int a=5,b=6,x=1,y=2;
(a=x>y)&&(b= x>y);
后a、b值分别为0、6
值为 0 赋给a, 停止不算
第五章 分支结构程序设计
5.1 关系运算符和表达式 5.2 逻辑运算符和表达式 5.3 逻辑表达式的跳跃 5.4 if语句 5.5 switch语句
1
5.1 关系表达式
由关系运算符、圆括号把两个表达式连接起
来的式子。 ——表示条件
若所表示的条件成立、则其值为1(非0)、
否则其值为0。
非=
关系运算符:< 、<=、>、>=、==、!=
例:
97
8
表达式
a>=2 、3>9 、’a’ != ( a=8 ) 、 值为1
x+(y=3)==k*z 、(a!=3)>(k<l)
优先
成立为1
不成立为0 2
注意:数学中多个条件,例 a>b>c>d 应表示为 a>b && b>c && c>d
不能顺手也写为 a>b>c>d
关系运算符都是双目运算符,其结合性均 为左结合。关系运算符的优先级低于算术 运算符,高于赋值运算符。 在六个关系运算符中 ,<,<=,>,>=的 优先级相同,高于==和!=,==和!=的 优先级相同。
实现数的 互换
printf("%d %d %d\n",a,b,c);
}
输入:1 6 2↙
输出:6 2 1
13
例4:从键盘输入一个字符,判断它是否小写字母。
若是,将其转换成大写字母,否则不进行转换,作
后输出该字母。
#include<stdio.h>
main()
main()
{char c;
c=getchar();
5
例 : 设x=0,y=2,a=8,k=-1,q=1,z=1,则 1、x+y>3 && a==8
→2>3 &&1 → 0 &&1 → 0
2、x+y && ’a’
→ 2 &&97 → 1
3、x+(y=3)==k*z || !a
→0+3==-1 || !a → 0||0 →0
4、(x!=7) || ’a’
{int a,b,c,t;
照从大到小顺序输出
printf("\n input two numbers: ");
scanf("%d %d %d " ,&a,&b,&c);
if (a<b){ t=a;a=b;b=t;} if (a<c){ t=a;a=c;c=t;} if (b<c){ t=b;b=c;c=t;}
!(非)→&&(与)→||(或) “&&”和“||”低于关系运算符,“!”高于算术运算
符。
4
按照运算符的优先顺序可以得出: a>b && c>d 等价于
(a>b)&&(c>d)
!b==c||d<a 等价于 ((!b)==c)||(d<a)
a+b>c&&x+y<b 等价于 ((a+b)>c)&&((x+y)<b)
→0!=7||97 →1||97 →1
5、! ( x+y>3 && a==8 )
→!(2>3&&1) →!(0&&1) →!0 →1 6、! ( k*q ) → !(-1) →0 7、!!!x →!!(1) →!(0) → 1
6
5.3 逻辑表达式的跳跃
作第一个,知道结果,后面不作,如:
非0 ∥
不算
输入两个整数
if(a>b)
printf("max=%d\n",a);
else
输出其中大数
printf("max=%d\n",b);
}
输入:23 46
8
3、执行 int a,b,c;a=b=c= - 1;
+ +a && + +b || + +c;
1 a=0
3 c=0
2 不算,值为0
4 整体为0
后a、b、c值分别为0、-1、0
9
例1:
main()
{char c='k'; int i=1,j=2,k=3;
X为非0 0
float x=3e+5,y=0.85;
{ char c,a;
if(c<=‘z’&&c>=‘a’)c-=32;
c=getchar();
printf("%c\n",c);}
if(c<=‘a’ || c>=‘z’ )
a=c;
/*判断非小写字母情况*/
if(c<=‘z’&&c>=‘a’)
a=c-32; *判断是否是小写字母情况*/
printf("%c\nlse if(表达式) 语句1;
else 语句2;
语义:如果表达式的值 为真,则执行语句1,否则 执行语句2 。
后面不能 加;
15
void main() {int a, b;
例2的改写
printf("input two numbers: ");
scanf("%d %d",&a,&b);
为1,后面要算
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
为非0,后面不算
1,0 为0,后面不算 0,1
{int a,b,max;
printf("\n input two numbers: ");
scanf("%d %d",&a,&b);
max=a;
max=23
if (max<b) max=b;
max=46
printf("max=%d",max);
}
输入:23 46
输出:max=46
12
例3:void main() 功能:输入三个数,按
10
5.4 选择结构(if 语句)
5.4.1 if语句的三种形式 1、第一种形式为基本形式: if if(表达式) 语句
语义:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图。
表达式可 以是任意 合法表达 式,后面 不能加;
11
例2:void main()
此语句用于提示输入