第4章 顺序和选择结构程序设计

合集下载

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

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

第4章选择结构程序设计注:选择结构的考点,最重要的有两个,一个是逻辑表达式的值,另一个是分支界限。

弄明白这两个知识点,就能够以不变应万变了。

一、单项选择题1. 在C语言中,能代表逻辑值"真"的是。

A) true B)大于0的数C)非0整数D)非0的数2. 表示关系x<=y<=z的c语言表达式为。

A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z)3. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是。

A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=04、判断char型变量c1是否为大写字母的表达式为。

A)’A’<=c1<=’Z’ B)(c1>=’A’) & (c1<=’Z’)C)(’A’<=c1)AND (‘Z’>=c1) D)(c1>=’A’)&& (c1<=’’Z’)5. 有定义char c; c=getchar(); 判断字符变量c为大写字母的正确表达式为。

A) ‘A’=<c<=’Z’ B)c>=‘A’&& c<=’Z C)A=<c<=Z D) c>=A && c<=Z6. 设有语句“int a=4;b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是。

A)1B)0 C)-1 D)出错7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是。

第4章 选择结构程序设计《C语言程序设计(第三版)》-电子教案

第4章 选择结构程序设计《C语言程序设计(第三版)》-电子教案

【注意】
switch后跟的"表达式"允许为任何类型的表达式,其 后跟的"表达式"允许为任何类型的表达式, 后跟的 数据类型和case后面的常量表达式的数据类型一致. 后面的常量表达式的数据类型一致. 数据类型和 后面的常量表达式的数据类型一致 每一个case后的各常量表达式的值不允许重复,否则 后的各常量表达式的值不允许重复, 每一个 后的各常量表达式的值不允许重复 会报错. 会报错. 每一个case后允许有多条语句 可以不用花括号" 后允许有多条语句, 每一个case后允许有多条语句,可以不用花括号"{}" 括起来. 括起来. case和default子句出现的先后顺序可以变动,不会影 子句出现的先后顺序可以变动, 和 子句出现的先后顺序可以变动 响程序的执行结果. 子句也可以省略不用. 响程序的执行结果.default子句也可以省略不用. 子句也可以省略不用 多个case可以共用一组执行语句.例如: 可以共用一组执行语句. 多个 可以共用一组执行语句 例如: … case 'A': case 'B': case 'C':printf("Pass\n");break;
3<5 || ++b
【例4-2】测试短路现象 】
#include <stdio.h> void main() { int a,b; a=b=0; a || ++b; printf("%d,%d\n",a,b); a=b=1; a || ++b; printf("%d,%d\n",a,b); a=b=0; a && ++b; printf("%d,%d\n",a,b); a=b=1; a && ++b; printf("%d,%d\n",a,b); }

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

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

#include <stdio.h> int main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a>b) 如果 a>b,将a和b对换 , 和 对换 是 、 中的小者 { t=a; a=b; b=t; } a是a、b中的小者 if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; } printf("%5.2f,%5.2f,%5.2f\n",a,b,c); return 0; }
if (disc<0) 8<0为假 为假 printf(“has not real roots\n”); else 的值变为-1 的值变为 { p=-b/(2.0*a); p的值变为 的值变为0.71 的值变为 q=sqrt(disc)/(2.0*a); q的值变为 x1=p+q; x1的值变为 的值变为-0.29 的值变为 x2=p-q; x2的值变为 的值变为-1.71 的值变为 printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; }
if (disc<0) printf(“has not real roots\n”); else { p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf(“real roots:\nx1=%7.2f\n x2=%7.2f\n”,x1,x2); } return 0; 复合语句 }
C语言有两种选择语句: 语言有两种选择语句: 语言有两种选择语句 (1)if语句,实现两个分支的选择结构 语句, 语句 (2)switch语句,实现多分支的选择结构 语句, 语句

第四章 结构化程序设计的三种结构

第四章 结构化程序设计的三种结构

第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。

printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。

格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。

(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。

转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。

格式字符串中的普通字符,原样输出。

例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。

2.输出项表输出项表是可选的。

如果要输出的数据不止1个,相邻2个之间用逗号分开。

下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。

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

C语言程序设计第4章 选择结构程序设计-2018
(3) x、y和z中有两个为负数。 设x、y、z均为int型变量,则对应表达式为:
(x<0&&y<0&&z>=0)|| (x>=0&&y<0&&z<0)|| (x<0&&y>=0&&z<0)
(2) x和y中至少有一个小于z。
设x、y、z均为int型变量,则对应表达式为: (x<z)||(y<z)
注意
– 可等价于一条语句 – 可以嵌套使用
• 格式
{ <语句序列> { <语句序列> } <语句序列>
}
4.3.2 复合语句
• 【例4-2】迪士尼门票规定65周岁及以上的老 年人,平日票价为280元,高峰日票价为375元。
– 语句1为内嵌语句,只允许是一条语句,可以是简单的语句、复合 语句或者另一个if语句等
• 执行过程
– 先求解表达式
– 如果表达式的值为“真”,则执行语句1
– 否则,如果表达式的值为“假”,则什么都不做
4.3.2 复合语句
• 复合语句
– 用一对大括号将一组语句序列括起来,通常可以出现在允 许单条语句出现的地方
第4章 选择结构程序设计
目录
4.1 门票价格问题 4.2 条件的表示 4.3 单分支结构 4.4 双分支结构 4.5 多分支结构 4.6 综合案例 练习 4
问题
– 如果今天下雨,我就不去植物园 – 鱼与熊掌不可兼得 – 同样一件衣服,京东、天猫、唯品会、
官网、实体店都有售,价格、送货时间、 品质保障、优惠方式等各不同,到底选 择买哪一家的呢 – 复杂决策问题

C语言程序设计第四单元选择结构程序设计

C语言程序设计第四单元选择结构程序设计

思路指导
输入:输入学生的成绩存储到变量score中 输出:根据学生的成绩输出学生的等级 条件判断:判断学生成绩符合哪个范围 处理:根据判断,输出学生的等级
相关知识
1.多重if(多分支if语句)的语法格式 if(表达式1)
{语句体1} else if(表达式2)
{语句体2} else if(表达式3)
/*母亲身高*/
printf("你是男孩(b) 还是女孩(g)?");
scanf("%1s", &sex);
printf("你输入你爸爸的身高(cm):");
scanf("%f", &faheight);
printf("你输入你妈妈的身高(cm):");
scanf("%f", &moheight);
条件1 条件2
语句组1 语句组2
条件
语句组n+1 语句组n
语句组n 语句组n+1
相关知识
(二)解决选择问题的基本步骤和方法
选择结构是结构化程序设计的三种结构之一,也是常用的一种 结构,在大多数的程序中都包含有选择结构,一般来说解决这样 的问题用以下的方法和步骤:
1. 判断解决的问题是否是选择问题。 2. 若是选择问题,则判断是哪种选择结构类型,是单分支、双 分支还是多分支结构。 3. 若是选择问题,确定选择结构,确定选择条件、执行过程与 结束过程。 4. 用C语言描述。
此外,如果喜爱体育锻炼,那么可增高身高2%;如果有良 好的卫生饮食习惯,那么可增加身高1.5%。
思路指导
输入:性别(用字符型变量sex存储,输入字母g表示女性, 输入字符b表示男性)、父母身高(用实型变量存储, faheight为其父身高,moheight 为其母身高)、是否喜爱体 育锻炼(用字符型变量sports存储,输入字符y表示喜爱,输 入字符n表示不喜爱)、是否有良好的饮食习惯(用字符型变 量diet存储,输入字符y表示喜爱,输入字符N表示不喜爱)。 输出:身高 处理:利用给定公式和身高预测方法对身高进行预测。 判断条件:性别男还是女、是否喜爱体育锻炼、是否有良好 的饮食习惯。

第4章 C语言程序的基本控制结构

第4章 C语言程序的基本控制结构

#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B

表达 式

条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)

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

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语言顺序和选择结构程序设计

c语言顺序和选择结构程序设计
如: if (3) prinft("o.k");
if ('a')… 2. 上述形式中的语句必须以分号结束
3. 上述形式中的语句可以是由{ }括起来的复合语 句。此时,在{ }外可以不用分号.
形式2 if(表达式) 语句A
else 语句B
功能: 表达式为非0, 执行语句A 表达式为0, 执行语句B
0 表达式 = 0
顺序结构程序举例
例4-1:已知圆柱体半径6米,高7米,求体积。
分析:
输入量: 底面半径 高 输出量: 体积
都是实型数据
假设:用变量 r 表示半径 变量 h 表示高
变量 s 表示底面积 变量 v 表示体积
中间的处理过程: s=PI*r*r;
v=s*h;
例4-1程序流程:
❖ 整个程序的流程:
定义4个实型变量 r,h,v,s
用如下程序表示: #include "stdio.h" main() {
int score; scanf("%d",&score); if (score<60)
printf("不及格"); else if(score<70)
printf("及格"); else if(score<80)
printf("中"); else if(score<90)
❖ else

max=b;
❖ if (c>max)
如果c大于max,则把c放到max

max=c;

❖ printf("max is :%d\n",max);

第四章 顺序结构

第四章 顺序结构

例 m.n
例 int a=1234; float f=123.456; char ch=‘a’; printf(“%8d,%2d\n”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f); printf(“%3c\n”,ch);
运行 1234,1234 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a 例 static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); 运行结果:Hello,world! Hello,world! Hello Hello Hel
看下面程序的运行结果
main() {int a=1,b=2; b=a; printf("%d%d",a,b); }
? 如果把b=a; 换成a=b a=b; 程序的结果如何? 如果把b=a; 换成a=b;,程序的结果如何? b=a
4.2字符的输入输出 字符的输入输出
C语言无I/O语句,I/O操作由函数实现 #include <stdio.h> 或者: #include “stdio.h”
4.3格式输入输出 格式输入输出
格式输出函数
格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据
输出表:要输出的数据(以“,”分隔) 格式控制串:包含两种信息 格式说明: %[修饰符]格式字符 , 用于指定输出格式 普通字符或转义序列:原样输出 格式字符
格式字符:
d,i x,X o u c s e,E f g %%
输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符

C语言程序设计第4章

C语言程序设计第4章
技能目标
能够使用if语句和switch语句,进行 选择结构程序设计 会利用多分支结构解决较复杂逻辑 判断问题
目录
CONTENTS
00 案例4 百分制转换等级制 01 4.1 选择结构判定条件的构成 02 4.2单分支和双分支选择结构程序设计 03 4.3 多分支选择结构程序设计
目录
CONTENTS
04 4.4 小结 05 4.5 拓展案例
案例4 百分制转换等级制
问题描述
学生成绩管理系统中需要对老师录入的百分制转换为等 级制。百分制与等级制的对应关系如下:90-100 对应A、 80-89对应B、70-79对应C、60-69对应D、0-59对应E。
问题分析
这是一个需要根据不同条件作出相应选择的程序,根据 描述,我们可以定义float变量fScore用来存放成绩值, 从而根据题目列出下列条件表达式: fScore>=90&&fScore<=100 your grade is A fScore>=80&&fScore<=89 your grade is B fScore>=70&&fScore<=79 your grade is C fScore>=60&&fScore<=69 your grade is D fScore>=0&&fScore<=59 your grade is E
4.4 小结
(1)嵌套if-else语句和switch语句都是用来实现多分支选择结构的,它们的 应用环境不同,嵌套if-else 语句用于对多条件并列测试,从中取一的情形; switch语句用于单条件测试,从其多种结果中取一种的情形。 (2)一般情况下用switch能解决的问题,用嵌套if-else 也一样能解决,反 之用嵌套if-else 语句能解决的问题用switch也能解决,在使用时要根据具体 问题灵活运用。 (3)如果多分支选择结构中需要判断的逻辑关系只是是否相等,则最好用 switch语句。switch语句的执行效率高于嵌套if-else语句。

第4章 顺序选择结构程序设计

第4章  顺序选择结构程序设计
功能:如果布尔表达式为true, 则执行语句1,
布尔表达式? false
true
语句2
语句1
否则执行语句2
例 子: if(x>y) Console.WriteLine("x比较大"); else Console.WriteLine("y比较大");
说 明:
① 若布尔表达式的值为真时,程序执行内嵌语句序 列1,否则执行内嵌语句序列2。 ② if else语句中,内嵌语句序列1和内嵌语句序列2可 以是简单语句,也可以是复合语句。如果内嵌语句 序列中为多个执行语句要使用花括号({…})组合为一 个语句块。
当判断的条件相当多时,难以阅读
使用switch 语句
问题: 根据考试等级输出百分制 分数段: A级:90-100分 B级:80-89分 C级:70-79分 D级:60-69分 E级:0-59分
switch( grade) { case 'A': Console.WriteLine("90-100"); break; case 'B':Console.WriteLine("80-89"); break; case 'C': Console.WriteLine("70-79"); break; .................... default: Console.WriteLine("出错啦");
必须是离散类 型 必须是相匹配 switch( 表达式 ) 的常量表达式 { case 常量表达式1 : 语句组1; break; ........ 可以有多行语句, default: 语句组0 ; break; 不需要加 {}号 } default 分支是可选的

C语言程序设计第四章

C语言程序设计第四章

运行情况: 1989↙ 1989is not a leap year.
2000↙
2000 is a leap year.
C程序设计
第五章
选择结构程序设计
例4.6 求
2 ax bx c 0 方程的解
#include "stdio.h" #include "math.h" main() {float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if (fabs(a)<=1e-6) printf("is not a quadratic"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } }

第四章 选择(分支)结构程序设计

第四章 选择(分支)结构程序设计
4.2.2 逻辑表达式 掌握C语言的关系运算符和逻辑运算符后,可以
用一个逻辑表达式来表示一个复杂的条件。
例如:判断某一年是否闰年。 闰年:能被4整除,但不能被100整除;或能被 400整除。
(year%4==0&&year%100!=0)||year%400==0
表达式为“真”,闰年条件成立,是闰年,否则 非 闰年。
复合语句的形式:
{ 语句1; 语句2; 语句3; ……
}
4.3 if语句
4.3.1 if语句三种形式
复合语句在选择结构,循环结构中经常用到。 我们在逻辑上把复合语句看成是一条语句。
4.3 if语句
4.3.1 if语句三种形式
例:要求用户输入一个实数,然后求出这个实数 的绝对值。
4.3 if语句
逻辑运算的真值表:
a b a&&b
a||b
真真 真

真假 假

假真 假

假假 假

a
!a




4.2 逻辑运算符和逻辑表达式
4.2.1 逻辑运算符及其优先顺序
例:逻辑运算举例 a&&b 若a、b为真,则a&&b为真。 a||b 若a、b之一为真,则a||b为真。 !a 若a为真,则!a为假,反之若a为假,
4.3.1 if语句三种形式
▪ 在C语言中,表达式P的值是非0时,系统均按真 值处理。
例(1) if (‘a’) printf(“ok!”); (2) x=-5; if(x) printf(“ok!”); (3) y=0; if(y==0) printf(“ok!”); if(y) printf(“ok!”);

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

C语言程序设计:第4章 顺序结构与选择结构
printf("max: %d\n",a); if(a < b)
printf("max: %d\n",b); return 0; }
#include <stdio.h> int main(void) {
int a ,b,max; printf("请输入a和b的值\n"); scanf("%d%d",&a,&b); max = a; if(max < b)
7
顺序结构:复合语句
复合语句:由大括号{}中的0个或多个声明和语句列表共同构成。
#include <stdio.h> int main(void) {
int a = 10; int b = 11;
注意: 1>复合语句不以分号;作为结束符, 即最后的}后面不加分号。 2>在复合语句中可以定义变量,但
if(score >= 60)
printf("及格\n");
else
printf("不及格\n");
return 0;
}
19
选择结构: if...else if语句
成绩等级划分: 输入自己的成绩,根据成绩的范围输出成绩等级。
成绩范围
等级
90--100
A
80--89
B
70--79
C
60--69
D
0--59
3.输入一个字符,如果是大写字母改变为小写字母;如果是小写字 母,则把它变为大写字母;若是其他字符则不变
4.输入数字1-7,并输出显示对应的星期 (输入的数字 1 ,输出星期一,以此类推)

第4章c语言的三种基本结构

第4章c语言的三种基本结构

程序1: /*exp51.c*/ #include <stdio.h> main ( ) { int x, y;
scanf(“%d", &x); if (x<0)
y= -1; else if (x==0)
y=0; else
y=1; printf ("x=%d, y=%d\n", x, y); }
程序2:将程序1的if语句改为: /*exp52.c*/ #include <stdio.h> main ( ) { int x, y; scanf(“%d", &x); if (x>=0)
1. 顺序结构 先执行A, 再执行B.
A 表示 A B
B
2. 选择结构 存在某条件P, 若P为真,则执行A, 否则执行B。
TP F
A
B
表示为
TP F AB
另一种选择结构––多分支结构.
K
K=K1 K=K2
K=Kn
A1 A2 … Ai … An
3. 循环结构
有两种结构:当型和直到型 (1) 当型结构
例:计算10!并输出结果。
main()
main()
{
{
int i=1, sum=1;
int i=1; long sum=1;
loop: if (i<=10)
loop: if (i<=10)
{
{
sum=sum*i;
sum=sum*i;
i++;
i++;
goto loop;
goto loop;
}
}
printf(“10!=%d\n”,sum); printf(“10!=%ld\n”,sum
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.关系运算 1 .关系运算符 关系运算符用于两个数据量之间的比较,C语言中关系 运算符有以下6种: <、<=、>、>=、==、!= 关系运算结果是一个逻辑值,只有“真”和“假”两种 情况。 在C语言中规定: 逻辑值“真”用1表示,逻辑“假”用“0”表示。
4.4 关系运算与逻辑运算
2.关系表达式 用关系运算符将两个表达式连接起来的式子,称为关系表达 式。
输入任意两个整数,按从大到小顺序输出这两个数
#include "stdio.h" main() {int a,b,t; printf("Input a,b:"); scanf("%d,%d",&a,&b); if(a<b) {t=a; a=b; b=t; } printf("%d,%d\n",a,b); }
A
当型循环结构
直到型循环结构
4.3 顺序结构程序设计
顺序结构是这三种结构中最简单的一种,通常的处理流程是先输入 参数,然后完成相应的计算和处理,最后输出结果。 例:输入摄氏温度C的值,计算华氏温度F的值。(计算公式为:F= 9*C/5+32) main( ) { float c,f; printf("Please input c:"); scanf("%f",&c); f=9*c/5+32; printf("f=%6.2f\n",f); }
编写程序,输入一个x值,按以下函数计算出y的值
#include "stdio.h" main() {int x, y; scanf("%d",&x); if(x<0) y=-1; else if(x==0) y=0; else y=1; printf("y=%d\n",y); }
}
#include "stdio.h" main() {char ch; scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')?(ch+32):ch; printf("%c",ch); }
第4章 顺序和选择结构程序设计
4.1 C语句概述 4.2 算法基本知识 4.3 顺序结构程序设计 4.4 关系运算与逻辑运算 4.5 if 语句 4.6 if语句的嵌套 4.7 条件运算符 4.8 switch 语句 4.9 选择结构程序设计举例 本章小结 习题参考答案
4.1 C语句概述
C语言是通过语句向计算机系统发出操作指令的。C语句 可以分为以下5类: 1.表达式语句 即由一个表达式构成的语句。在一个表达式后面加上分 号就可以构成一个表达式语句。 2.函数调用语句 即由一次函数调用加上一个分号构成的一个语句。 3.空语句。即只有一个分号的语句。 4.复合语句。由一对大括号括起来若干条语句,在语法 上可以将பைடு நூலகம்们理解为一条复合语句。
else总是与它前面最近的一个未匹配的if相匹配。
输入3个任意整数,找出其中最大值
#include "stdio.h" main() {int a,b,c,max; scanf("%d%d%d",&a,&b,&c); if(a>b) if(a>c) max=a; else max=c; else if(b>c) max=b; else max=c; printf("max=%d\n",max); }
#include "stdio.h" main() {int a,b,max; printf("Input a,b:"); scanf("%d,%d",&a,&b); max=a; if(a<b) max=b; printf("max=%d\n",max); }
4.4 关系运算与逻辑运算
3.关系运算符的优先级 C语言规定,6种关系运算符之间的优先级顺序为: (1)前四种关系运算符(<、<=、>、>=)的优先级相同, 后两种关系运算符(==、!=)的优先级相同。 (2)前四种的优先级高于后两种。 关系运算符与其它运算之间的优先级顺序 : 算术运算符 关系运算符 赋值运算符 低 高
4.2 算法基本知识
二.算法的描述 对于算法的描述有很多种方法,如自然语言、流程图、计算 机语言和伪代码等,其中使用最广泛的是流程图。 1.传统的流程图
起止框 或 流程线
输入输出框
判断框
处理框
连接点
注释框
4.2 算法基本知识
2.N-S流程图
A
B
条件
成立 不成立
顺序结构
A
B
分支结构
当条件成立 A 直到条件成立
#include "stdio.h" main() {int a,b,max; printf("Input a,b:"); scanf("%d,%d",&a,&b); if(a>b) max=a; else max=b; printf("max=%d\n",max); }
条件表达式的执行过程是:先求表达式1的值,若表达式1的值为非 0则求解表达式2,且表达式2的值为整个条件表达式的值:若表 达式1的值为0则求解表达式3,且表达式3的值为整个条件表达式 的值。 条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算 符。
编写一个程序,输入一个x值,输出y值
#include "stdio.h" main() {int x, y; scanf("%d",&x); y=x<0?-1:x==0?0:1; printf("y=%d\n",y); }
4.4 关系运算与逻辑运算
4.逻辑运算符的结合方向 C语言规定,逻辑运算符的结合方向是: ! || 结合方向为:从右到左 结合方向为:从左到右
&& 结合方向为:从左到右
4.4 关系运算与逻辑运算
三.程序中对条件的描述 程序设计时,若要进行条件判断,应该用正确的逻辑表达式 或条件表达式来描述。
4.5 if 语句
1( x 0) y 0( x 0) 1( x 0)
4.8 switch 语句
switch语句也可以实现多分支的选择。
switch语句的一般形式如下:
switch(表达式) {case 常量表达式1:语句1;
case 常量表达式2:语句2;
┋ case 常量表达式n :语句 n; default:语句 n+1 ;
输入一个无符号十进制整数,输出与它对应十六进制
#include "stdio.h" main() { unsigned int x; printf("Input x:"); scanf("%u",&x); printf("%u=%xH\n",x,x); }
4.4 关系运算与逻辑运算
1( x 0) y 0( x 0) 1( x 0)
4.7 条件运算符
若if语句中,在表达式为“真”和“假”时,且都只执行一个赋值操 作给同一个变量赋值时,可以用条件运算来处理,这样可以使程 序更简捷。 条件运算符是三目运算符。条件表达式的一般形式为: 表达式1? 表达式2 :表达式3
输入3个实数a,b,c,按要求从小到大的顺序输出
#include "stdio.h" main() {float a,b,c,t; scanf("%f,%f,%f",&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;} printf("%5.2f,%5.2f,%5.2f\n",a,b,c); }
编程输入一个业务员的销售额,计算输出业务员的工资
#include "stdio.h" main() {float m,s; scanf("%f",&m); if(m<5000) s=800; else s=800+(m-5000)*0.03; printf("s=%.2f\n",s); }
#include "stdio.h" main() {int x,y; scanf("%d",&x); if(x<10) y=x+2; else; /*注意这一行有一个分号*/ y=x+5; printf("y=%d\n",y); }
输入任意两个整数,找出其中最大的数
4.1 C语句概述
5.流程控制语句。是C语言中规定的实现流程控制
的语句。C语言中共有9种流程控制语句,它们是:
if( ) ~ else ~ for( ) ~ while( ) ~ do ~ while( ) continue break switch goto return (条件语句) (循环语句) (循环语句) (循环语句) (结束本次循环) (中止执行switch或循环语句) (多分支选择语句) (无条件转向语句) (从函数返回语句)
相关文档
最新文档