C语言 第03章 分支结构
c语言 课件第3章 顺序、分支、循环

算法的表示方法 ①自然语言表示法
②伪代码表示法 ④N-S流程图表示法 流程图表示法 ⑤流程图表示法
用人们日常使用的语言进行算法的描述 用自然语言、计算机语言及符号进行算法描述 用自然语言、 用矩形框进行算法的描述 用一些图框描述算法
③计算机语言表示法 C、C++、BASIC、VB、VC等语言的程序 、 、 、 等语言的程序
确定性:算法每执行一步,其顺序和内容都必须有确切的规定, ③ 确定性:算法每执行一步,其顺序和内容都必须有确切的规定, 不能含糊不清或二义性 可执行性:算法的所有操作都必须能做到, ④ 可执行性:算法的所有操作都必须能做到,即可操作性 个或多个输入; ⑤ 0个或多个输入;一个或多个输出 个或多个输入
沃 思
程序 = 数据结构 + 算法
数据结构: 数据结构:程序中指定数据的类型和数据的组织形式 算法: 算法: 操作步骤
4
3.1.1 程序算法及其特征 是程序处理问题(数据的计算和处理)的方法和步骤。 (1)算法 是程序处理问题(数据的计算和处理)的方法和步骤。 ) 是解决特定问题而要一步一步执行的有穷操作的描述; 是解决特定问题而要一步一步执行的有穷操作的描述; 是描述解决计算机求解及处理问题的步骤和方法。 是描述解决计算机求解及处理问题的步骤和方法。 算法应包括计算机的数值计算 计算方法等问题 本课程不涉及。) 数值计算、 等问题, (注:算法应包括计算机的数值计算、计算方法等问题,本课程不涉及。) (2)特征 ) 一个完整的程序应具有以下特征: 一个完整的程序应具有以下特征: 分步性: ① 分步性:一个算法是由一步一步的操作完成的 ② 有穷性:一个算法必须能在执行有限步之后结束 有穷性: N! = 1×2×3×. . . ×(N-1)×N × × × × Sum = 1+2+3+. . .+N +. . . 有穷 无穷
C语言第3章_分支结构

3.1 关系运算符及其表达式
关系表达式的值
由于C语言没有逻辑型数据,所以用“1”(非0 值)表示“逻辑真”(true),用“0”(0值) 表示“逻辑假”(false)。
条件运算符
一般格式:
条件运算符是C语言中唯一一个三目运算符。 •运算规则
如果“表达式1”的值为非0(即逻辑真), 则运 算结果等于“表达式2”的值;否则,运算结果等 于“表达式3”的值。
3.3 分支结构和条件运算符
运算符的优先级与结合性
条件运算符的优先级,高于赋值运算符,但低 于关系运算符和算术运算符。其结合性为“自 右至左”(即右结合性)。
与其它种类运算符的优先关系
!→ 算术运算 → 关系运算 → &&→ || → 赋值运 算
3.2 逻辑运算符及其表达式
逻辑表达式
所谓逻辑表达式是指用逻辑运算符将1个或多个 表达式连接起来,符合C语言规则的进行逻辑运 算的式子。
在C语言中,用逻辑表达式表示多个条件的组合。 逻辑表达式的值也是一个逻辑值(非“真”即 “假”)。
3.3 分支结构和条件运算符
switch语句
if语句可以处理多分支,但分支不宜太多,因 此C语言提供了switch语句直接处理多分支选择。
一般形式
3.3 分支结构和条件运算符
执行过程
①当switch后面“表达式”的值,与某个case后 面的“常量表达式”的值相同时,就执行该 case后面的语句(组);当执行到break语句 时,跳出switch语句,转向执行switch语句的 下一条。 ②如果没有任何一个case后面的“常量表达式” 的值,与“表达式”的值匹配,则执行default 后面的语句(组)。然后,再执行switch语句 的下一条。
编程语言基础-C语言 第3章 分支程序设计

③ 假设A和B是两个表达式,下面对逻辑运 算进行说明。 1) A && B 若A、B均为真, 则“A && B”值为真,否则为 假。 2) A || B 若A、B均为假, 则“A || B值”为假,否则为真。 3) ! A 若A为真, 则 “!A”为假;否则为真。
看下面的例子:
1.
( 3 < 2 ) && ( 7 > 5 ) 值:0 只有 && 右面的子表达式为真 ( 3 < 2 ) || ( 7 > 5 ) 值:1 只要求有一个子表达式为真 !(3<2) 子表达式为假。 值:1
运行结果: 1. 请输入一个正 整数:36↙ Yes! 2. 请输入一个正 整数:15↙ No!
3.2.3 if语句的嵌套
一般形式是: if(表达式1) 语句1; else if(表达式2) 语句2; else if (表达式3) 语句3; else 语句4;
执行过程如图3-4所示。
表达式 1 假 表达式 2 假
}
3.4 分支程序设计应用实例
例3-7: 从键盘输入二个整数,输出其中最大者。 main( ) { int a, b, max; printf("请输入二个整数:"); scanf("%d %d", &a, &b ); if ( a > b ) max = a; else max = b; printf("二者中最大值为:%d", max ); getch( ); 运行结果: } 17 31↙ 二者中最大值为:31
第3章 分支程序设计
3.1 关系表达式和逻辑表达式
C语言-第3章分支结构教学案

第3章 分支结构程序设计(选择结构)1、掌握if 、if-else 、if 的嵌套语句的语法结构及编程语句的语法结构及编程 123.2.1 单分支if 语句的使用学习目标:1、理解选择结构的概念和特点;2、掌握单分支if 语句的语法结构、执行过程和基本用法,学会正确书写if 语句; 4、能正确阅读if 语句程序,会使用if 语句编写、调试并运行程序。
课前准备:预习P30-32(预习后,将学案上知识点在课本上做记号,并完成相应预习题) 课时分配:2课时 活动课堂活动一、发现问题(目标——了解分支结构的意义)实例:从键盘上输入一个数,求这个数的平方根。
算法:发现问题:活动二、解决问题(目标——掌握分支结构) 思考:从键盘输入一个数,若为正数和0则 求其平方根,否则不予处理。
算法:活动三、预习交流(1 ·语句中a>b ·if 每行的结尾,分支中各语句结尾均有 (符号),但 后没有。
·在(2)(3)两语句段中的不同处画上横线,语句(2)中的c=a+b; (属于/不属于)if 分支。
活动五:观察思考(目标——掌握if 的执行流程)1、观察下列程序的执行,口述程序的执行过程,画出程序的流程图: 例1:#include <math.h>#include <stdio.h>main(){float x,y;clrscr();scanf("%f",&x);if (x>=0){y=sqrt(x);printf("%.2f",y);}}流程图:4、说明:例:表达式 -3+‘d’为________表达式,值为______,作条件判断结果为___________ 表达式 a=0 为__________表达式,值为_______,作条件判断结果为__________ 表达式 a=5 为__________表达式,值为________,作条件判断结果为_________ 表达式a>4为____________表达式,若a=5 则结果为_________表达式(a>0)&&(a%2==0)为________表达式,若结果为5 则结果为__________活动六、尝试学习(目标—if语句的初步应用)编程:输入一个学生成绩score,如果成绩大于60,则显示pass,否则不显示程序:流程图:活动七、合作探究、拓展应用(目标—if语句的应用)1、阅读下列程序,写出运行结果,画出程序的流程图:main() Array {int a,b;scanf("%d%d",&a,&b);if (a<b) a=b;printf("%d",a);}执行:·若输入4 5,则输出:________________若输入5 4,则输出:________________·程序的功能是:______________________。
C语言分支结构.ppt

3.1.5 else – if 语句
if(( ch>= 'a' && ch <= 'z' )||( ch>= 'A' && ch<='Z')) letter ++;
else if (ch >= '0' && ch <= '9') digit ++;
else other ++;
实现多路选择
else – if 语句
|| ( ch >= 'A' && ch <= 'Z' )
数字字符
ch >= '0' && ch <= ' 9'
其他字符 除此外
3.1.1 程序解析
#include <stdio.h> int main(void) {
int i, digit, letter, other; char ch;
处理方法: 逐个输入与判断
ASCII字符集:每个可用字符:惟一的 次序值( ASCII 码)见附录2
1 == ‘1’ ?
3.1.3 字符型数据的输入和输出
1. 字符输入函数getchar——输入一个字符
char ch; ch = getchar( );
2. 字符输出函数putchar——输出一个字符
putchar ( 输出参数 );
条件的表示
例3-2 写出满足下列条件的C表达式 (1) ch 是空格或者回车
ch == ' ' || ch == '\n'
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语言课件5

[2] Select popcorn [3] Select chocolate
if (choice == 0) break;
[4] Select cola
switch (choice) {
[0] Exit
case 1: price=3.0; break;
case 2: price=2.5; break;
for( i =lo1o; ip<=o5r;si+w+)it{ch to be exited im[3m] Seedleiacttechlyo.colate
printf("[1] Select crisps \n");
[4] Select cola
printf("[2] Select popcorn \n");
下菜单,用户可以连续查询商品的价格,当查询次数
超过5次时,自动退出查询;不到5次时,用户可以选
择退出。当用户输入编号1~4,显示相应商品的价格;
输入0,退出查询;输入其他编号,显示价格为0。
[1] Select crisps [2] Select popcorn [3] Select chocolate [4] Select cola
☻ exp1 && exp2 先算exp1,若其值为0, STOP
☻ exp1 || exp2 先算exp1,若其值为1,
STOP
3 逻辑运算和逻辑表达式
例:写出满足下列条件的C表达式。(P44 例3-2 ) ① ch 是空格或者换行。 ch == ' ' || ch == '\n' ② 判断ch 是否为小写英文字母 (ch >= 'a') && (ch <= 'z') 或:ch >= 'a' && ch <= 'z' ③ 判断ch 是否为英文字母
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'){
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 构造类型:
1 char (字符)数据类型
字符型数据有常量和变量之分 1) 字符型常量的描述
(P41)
合法字符值(字符型常量)的描述:由一对单引号 所包括的一个字母、数字或特殊符号
'a', ' ', '9', '&','%' "b", 'aB'
如何表示单引号' 呢?
1 char (字符)数据类型
真-1, 假-0,
计算时数值非零就是真
3 逻辑运算和逻辑表达式
真-1, 假-0, 计算时非零就是真 哪些是逻辑表达式? a && b a || b && c !a && b a || 3+10 && 2 !(x == 2) !x == 2 ch || b 0 1 0 1 1 0 1
char ch = 'w'; int a = 2, b = 0, c = 0; float x = 3.0;
① x >= -1 并且 x <= 1
-1 1 x
x >= -1 && x <= 1
ห้องสมุดไป่ตู้
② x <= -1 或者 x >= 1 x <= -1 || x >= 1 ③ 非(x <= -1)即x>-1
-1 1 -1 1 x !(x <= -1) x
3 逻辑运算和逻辑表达式
逻辑运算符的结果,只有两个值:“真”或“假”。
(64-127)
'0'-'9' 'A'-'Z' 'a'-'z'
1 char (字符)数据类型
2) 字符型变量的描述 定义字符型变量ch,用于存放字符型数据。 char ch; c1 = ‘a’; 97
一个字符占一个byte
ch = ‘a‘;
/* 表示将字符型常量 ’a‘ 赋给字符型变量ch */
从键盘输入一个字符 char ch; ch = getchar( );
2)字符输出函数int putchar(输出参数)
输出一个字符 putchar(输出参数);
ch=getchar();
putchar(ch);
字符常量或字符变量
例
3 逻辑运算和逻辑表达式
X > 100
并且 x < 1000
x∈(100,1000)
1) 字符型常量的描述 一些特定含义的字符表示方法(转义字符):
'\'': 表示单引号 '\"': 表示双引号 ‘\n’: 表示换行符 ‘\0’: 表示值为0的字符 ‘\007’: 表示鸣叫beep声音的字符
Question: 到底char类型可以表达多少字符呢? 一个char占8bits, 28 =256
第三章 分支结构
涉及的C语言语法内容: 3.1.2 3.1.3 3.1.4 3.1.5 字符类型 字符数据的输入和输出 逻辑运算 分支结构
C语言提供的数据类型
1. 基本数据类型:
1) 整型: int 2) 实型(浮点型) float (单精度浮点型), double (双精度浮点数) 3) 字符型 char (character)
写出满足要求的C表达式
(1) x 为零
关系表达式 x == 0 逻辑表达式 !x
x取0 x取非0 x==0 真 x==0 假
x取0
!x 真
x取非0 !x 假
(2) x 不为零 关系表达式 x != 0 逻辑表达式 x
(3)x 和 y 不同时为零 !(x == 0 && y==0) x != 0 || y!=0 x || y
例3-4 查询自动售货机中商品的价格 (p47)
假设自动售货机出售4种商品,薯片(crisps)、爆米花 (popcorn)、巧克力(chocolate)和可乐(cola),售价 分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以 下菜单,用户可以连续查询商品的价格,当查询次数 超过5次时,自动退出查询;不到5次时,用户可以选 择退出。当用户输入编号1~4,显示相应商品的价格; 输入0,退出查询;输入其他编号,显示价格为0。 [1] Select crisps 循环次数明确,用for [2] Select popcorn [3] Select chocolate 要选择的条件明 确,类别较多 [4] Select cola [0] Exit switch 和 break;
#include <stdio.h> int main(void) A break statement { int choice, i; double price; causes for( i = 1; i <= 5;switch i++) { loop or to be exited printf("[1] Select crisps \n"); printf("[2] Select popcorn \n"); printf("[3] Select chocolate \n"); printf("[4] Select cola \n"); printf("[0] exit \n"); printf("Enter choice: "); scanf("%d", &choice); if (choice == 0) break; switch (choice) { case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break; } printf("price = %0.1f\n", price);
☻ exp1 && exp2 先算exp1,若其值为0, STOP ☻ exp1 || exp2 先算exp1,若其值为1, STOP
3 逻辑运算和逻辑表达式
例:写出满足下列条件的C表达式。(P44 例3-2 ) ① ch 是空格或者换行。 ch == ' ' || ch == '\n' ② 判断ch 是否为小写英文字母 (ch >= 'a') && (ch <= 'z') 或:ch >= 'a' && ch <= 'z' ③ 判断ch 是否为英文字母 (ch >= 'a' && ch <= 'z') || ( ch >= 'A' && ch <= 'Z') ④ year 是闰年,即 year 能被 4 整除但不能被 100 整除,或 year 能被 400 整除。 ( year%4 == 0 && year % 100 != 0) || (year%400 == 0)
2 字符型数据的输入和输出(p42)
方法1:调用函数scanf()和printf() char ch; scanf("%c", &ch); printf("%c", ch); scanf(“%d%c%d”, &a,&ch,&b);
2 字符型数据的输入和输出(p42)
方法2:调用字符输入输出函数
1)字符输入函数int getchar(void)
( x > 100) && ( x < 1000)
X > 100
或者 x < 80
( x > 100) || ( x < 80)
3 逻辑运算和逻辑表达式
1) 逻辑运算符
①逻辑与 && , 二目运算符 a = 105; (a > 100), && (a < 1000) 就是“真” a && b60; 运算对象 和 b都为“真”时 ,结果为 a= (aa > 100) && (a < 1000) 就是“假” “真” . 否则为假。 ②逻辑或 a = 105; || , 二目运算符 (a > 100) || (a < 80) 就是“真”
1 char (字符)数据类型
典型字符集:ASCII码 (P283)
(American Standard Code for Information Interchange)
ASCII 码列出所有可用的字符 每个字符对应唯一的次序值(ASCII 码值)
(0-63)
严格区别数字字符和数字 字符'0'完全不同于数字0
3 逻辑运算和逻辑表达式
1) 逻辑运算符
A,B代表不同的逻辑对象集合
A && B A || B
A
B
A
B !A !A A
3 逻辑运算和逻辑表达式
A && B A || B !A !(x>1) 即 x<=1
(x>1)&&(y>1)
(y>1) (x>1)
(x>1)||(y>1)
(y>1) (x>1)
3 逻辑运算和逻辑表达式