第4章 程序结构
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。
LabVIEW虚拟仪器技术第4章-程序结构

基本程序结构
在各编程语言中,基本的程序结构有三种: 顺序结构、条件结构和循环结构。
LabVIEW中,除了具有上述三种程序结构外, 还提供了用于事件处理的事件结构。
此外,还有局部变量,属性节点和调用节点 等功能,为增加程序编写的灵活性提供了保障。
文本语言接口
在LabVIEW的图形化编程环境中,利用上述 程序结构可以解决很多非常复杂的问题。
范例
条件结构的输出隧道。
条件结构的输出方式
条件结构的输出有两种方式:
1.在条件分支内部输出数据
2.通过数据输出隧道,在条件结构外部输出数据
在分支内部输出数据更符合常规编程语言的编 程方式,但是从LabVIEW数据流的观点来看,并 不是最佳选择。
程序求输入数值的平方根,计算之前先判断 输入是否大于等于0。判断为真,结果由显示控件 输出,判断结果为假时,条件为真的分支不执行。
点击右键,在快捷菜单中我们可以添加或删 除每一帧。我们也可以通过拖曳的方式来改变每 一帧的大小。
顺序结构在执行时,会按照帧的顺序,从左 到右,依次执行每一帧。每一帧都有一个帧序号, 最小的帧序号为0,然后是1、2、3依次递增。
平铺式顺序结构因为代码是平铺的,因此代 码更直观,可读性较高。但是它的缺点是占用空 间较大。
针对于此,可以通过调用快捷菜单中的“替 换为层叠式顺序”功能,将平铺式的顺序结构转 换成层叠式的,以使VI看起来更为紧凑。
4.1.2 层叠式顺序结构
从本质上看,层叠式顺序结构和平铺式顺序 结构的功能完全相同,且二者可以相互转换。
层叠式顺序结构的创建
层叠式顺序结构外形类似于条件结构。它包 括一个或多个顺序执行的子程序框图或帧。
在很多情况下,程序员会需要多段代码按照预 先设定的顺序执行,这就需要顺序结构来帮忙了。
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、格式指示符输出不同类型的数据,要使用不同的类型转换字符。
程序结构

4.3 循环结构程序设计
For 循环变量=初值 To 终值 [Step 步长] 语句块 [ Exit For ] For Each 元素变量 In 数组或集合 语句块 Next 元素变量 * 内循环变量与外循环变量不能同名 * 外循环必须完全包含内循环,不能交叉 先判断后执行 While循环 While 条件 Do While 条件 语句块 Loop Do Until 条件 语句块 Loop 先执行后判断 Do 语句块 Loop While 条件 Do 语句块 Loop Until 条件
例如: Case 1 To 10 Case 2,4,6,8, Is>10
应用例
例题5-1:设计程序,回答“天下事有难易乎?”的提问,根据用户的不同 选择,现实不同的语句。 例题5-2:已知某书店图书均九折销售,一次购书100元以上(包括100元) 打八五折。 例题5-3:If语句的嵌套 在例5-2的基础上,实现购书金额300元(含)以上打八二折。 例题5-4:用块If的嵌套语句来描述博弈论中的经典案例“囚徒困境”。 例题5-5:ElseIf语句 设计程序,鉴定成绩,输入百分制成绩,显示相应的五级制评定。 例题5-6:行 If 语句 设计程序,求最大值:要求可以输入任意的3个数,并能找出其中的最大值。 例题5-7:用Select Case语句代替ElseIf语句来实现成绩评定。
应用举例
例题6-1:编写程序,实现累加:要求使用For循环计算从1~100的自然数之 和。 例题6-2:编写程序,实现阶乘:要求使用For循环求N!(N为自然数)。 例题6-3:修改例6-2,要求显示For循环语句在执行过程中的具体情况。
例题6-4:编写程序,求π的近似值。
例题6-5:While循环 编写程序,求总成绩,可以实现输入若干成绩,并计算总成绩。
C语言程序设计第4章 选择结构程序设计-2018

(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
问题
– 如果今天下雨,我就不去植物园 – 鱼与熊掌不可兼得 – 同样一件衣服,京东、天猫、唯品会、
官网、实体店都有售,价格、送货时间、 品质保障、优惠方式等各不同,到底选 择买哪一家的呢 – 复杂决策问题
第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章选择结构程序设计课后习题答案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语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式输出函数
控制字符说明: 控制字符说明:
d o X, x u
C 语 言 程 序 设 计
以十进制形式输出 有符号整数 以8进制形式输出无 符号整数 16进制形式输出 以16进制形式输出 无符号整数 以十进制形式输出 无符号整数
s 输出字符串 以小数形式输出单、 以小数形式输出单、 f 双精度实数 以指数形式输出单、 E, 以指数形式输出单、 e 双精度实数 以 f 或 e 格式中的 G, 较短形式输出单、 较短形式输出单、双 g 精度实数
西安工业大学
C 语 言 程 序 设 计
格式输入函数
功能:从终端输入若干任意类型的数据。 功能:从终端输入若干任意类型的数据。 格式: 格式控制, 格式:scanf( 格式控制,地址表列 )
1)格式控制:双引号括起来的字符串,包含: )格式控制:双引号括起来的字符串,包含: 格式说明:由%和控制字符组成,指定数据项的 和控制字符组成, 格式说明: 和控制字符组成 输入类型和格式。 输入类型和格式。 普通字符:需原样输入的字符。 普通字符:需原样输入的字符。 2)地址表列:给出输入数据的变量地址。 )地址表列:给出输入数据的变量地址。 输入数据时,数据间可以用空格、回车、 输入数据时,数据间可以用空格、回车、Tab 键作为间隔。 键作为间隔。
西安工业大学
4.1.1 C语言语句
空语句: 构成。 4)空语句:由一个分号 ; 构成。 复合语句: 将多条语句括起来构成。 5)复合语句:由 { } 将多条语句括起来构成。 如: while(i<=100) { sum=sum+i; i++; } 注意:1)复合语句的{ }后面不能有 后面不能有” 注意:1)复合语句的{ }后面不能有” ; ”。 复合语句的 。 2)复合语句中可以是简单语句、复合语句、 2)复合语句中可以是简单语句、复合语句、 复合语句中可以是简单语句 空语句。 空语句。
1)格式字符与输出项个数应相同,按先后顺序一 格式字符与输出项个数应相同, 一对应,若输出格式字符与输出项类型不一致时, 一对应,若输出格式字符与输出项类型不一致时, 自动按指定格式输出。 自动按指定格式输出。 除了X,E,G X,E,G外 其它格式字符要用小写字母。 2)除了X,E,G外,其它格式字符要用小写字母。 格式控制字符串中可以包含转义字符。 3)格式控制字符串中可以包含转义字符。 格式控制字符串中的普通字符则原样输出。 4)格式控制字符串中的普通字符则原样输出。 输出项的参数除了常数、变量, 5)输出项的参数除了常数、变量,还可以是表达 函数调用。 式、函数调用。 如:printf(“max=%d, i=%d\n”,max(a,b),i++); printf( max=%d, i=%d\ ,max(a,b),i++);
3. g 格式符 :
%g :根据待输出数据大小,自动选择 或e格式符 根据待输出数据大小,自动选择f或 格式符 选择输出宽度小的一种)来输出实数, (选择输出宽度小的一种)来输出实数,且不 输出无意义的0。 输出无意义的 。
西安工业大学
格式输出函数
使用printf函数说明: 使用printf函数说明: printf函数说明
C 语 言 程 序 设 计
西安工业大学
4.1.3 数据格式化输入与输出
编译预处理
C语言规定:使用库函数时,应将函数对应的头 语言规定:使用库函数时, 语言规定 文件通过预处理命令包含到本程序中。 文件通过预处理命令包含到本程序中。 文件包含预处理命令格式: 文件包含预处理命令格式: #include "头文件名" 或 #include <头文件名>
西安工业大学
C 语 言 程 序 设 计
实型数据输出格式符
2. e 格式符 :
%e :由系统自动指定输出数据的宽度和小数位数。 由系统自动指定输出数据的宽度和小数位数。 %m.ne或%-m.ne :至少输出 位数据,其中有 位 或 至少输出m位数据 其中有n位 位数据, 小数。 小数。
C 语 言 程 序 设 计
西安工业大学
C 语 言 程 序 设 计
4.1.2 赋值语句
赋值语句: 赋值语句:
由赋值表达式加上一个分号构成赋值语句。 由赋值表达式加上一个分号构成赋值语句。 如:sum = a+b;
C 语 言 程 序 设 计
注意: 注意:
1)赋值符“ 1)赋值符“=”右边的表达式也可以是一个赋值 赋值符 表达式。 表达式。 如:a=b=c=2; 2)变量赋初值与赋值语句的区别 变量赋初值与赋值语句的区别。 2)变量赋初值与赋值语句的区别。 如:int a=1,b=1; a=1; b=1; b=1;
C语言程序设计 语言程序设计
任课教师: 任课教师:刘敏侠
E-mail:wxr211@ :
第四章 程序控制结构
4.1 顺序结构程序设计 4.2 选择结构程序设计 4.3 循环结构程序设计
C 语 言 程 序 设 计
西安工业大学
C程序结构
C程序 程序
C 语 言 程 序 设 计
源程序文件1 源程序文件
C 语 言 程 序 设 计
对于标准输入输出函数,对应的头文件为stdio.h 对于标准输入输出函数,对应的头文件为 则预处理命令为: 则预处理命令为: #include "stdio.h“ 或 #include < stdio.h >
西安工业大学
格式输出函数
按照用户指定的格式, 功能:按照用户指定的格式,向终端输出若干任 意类型的数据。 意类型的数据。
源程序文件2 源程序文件
源程序文件n 源程序文件
预处理命令
全局变量声明
函数1 函数
函数n 函数
函数首部
函数体
局部变量声明
西安工业大学
执行语句
4.1 顺序结构程序设计
C语言语句 4.1.1 C语言语句 4.1.2 赋值语句 4.1.3 数据格式化输入与输出 4.1.4 字符数据的输入与输出 4.1.5 顺序程序设计
西安工业大学
C 语 言 程 序 设 计
整型数据输出格式符
2、
例:unsigned int a = 65535 ;int b = -2 ; printf("\na = %d, %o, %x, %u" , a , a , a , a ) ; printf("\nb = %d, %o, %x, %u" , b , b , b , b ) ;
西安工业大学
C 语 言 程 序 设 计
格式输入函数说明
如: int a,b,c ;float d ;char c1,c2,c3 ; scanf ("%d%d%d%f", &a, &b, &c, &d) ; scanf ("a=%db=%dc=%d", &a, &b, &c ) ; scanf ("%d,%d,%d,%f", &a, &b, &c, &d) ; scanf ("%c%c%c", &c1, &c2, &c3) ;
c 输出单个字符
西安工业大学
整型数据输出格式符
1. 整型数据输出格式符 —— d 格式符: 格式符:
%d :按整型数据的实际长度输出 %ld :用于输出长整型整数 %md:数据输出至少 位,不足 位则左补空格。 数据输出至少m位 不足m位则左补空格 位则左补空格。 %-md:数据输出至少 位,不足 位则右补空格。 数据输出至少m位 不足m位则右补空格 位则右补空格。 例:int a = 123 ,b = 12345 ;long d = 123456 ; printf("%d, %4d, %4d, %ld" , a , a , b , d ) ;
西安工业大学
4.1.2 赋值语句
3)变量说明中,不允许连续给多个变量赋初值, 变量说明中,不允许连续给多个变量赋初值, 而赋值语句可以连续赋值。 而赋值语句可以连续赋值。 a=b=c=1;(不合法 不合法) 如:int a=b=c=1;(不合法) a=b=c=2; 4)要区分赋值语句与赋值表达式 如:if ((a=b)>0) max=a;
西安工业大学
C 语 言 程 序 设 计
格式输入函数
控制字符说明: 控制字符说明:
d o 用以输入有符号的 十进制整数 用以输入无符号的 8进制整数 进制整数 c 用以输入单个字符 s 用以输入字符串
C 语 言 程 序 设 计
用以输入无符号的 x 16进制整数 进制整数 用以输入无符号的 u 十进制整数
C 语 言 程 序 设 计
西安工业大学
实型数据输出格式符
1. f 格式符: 格式符:
原样输出整数部分,输出6位小数 位小数。 %f :原样输出整数部分,输出 位小数。 %m.nf :至少输出 位数据,其中有 位小数,数 至少输出m位数据 其中有n位小数 位数据, 位小数, 据不足m位时,左补空格。 据不足 位时,左补空格。 位时 %-m.nf :同上,数据不足 位时,右补空格。 同上,数据不足m位时 右补空格。 位时, 例:float f = 123.456 ; printf(“%f,%10f,%10.2f,%.2f,%-10.2f”,f,f,f,f,f);
西安工业大学
用以输入实型数据 f, (以小数形式或指数 e 形式) 形式)
格式输入函数说明
scanf( )函数使用说明: 函数使用说明: 函数使用说明
1) 地址序列应该是接受数据的变量地址,而非变 地址序列应该是接受数据的变量地址, 量名。 量名。 2) 在格式控制字符串中的普通字符,在输入时应 在格式控制字符串中的普通字符, 原样输入。 原样输入。 3) 格式控制符中可以使用修饰符:h、l、m、*。 格式控制符中可以使用修饰符: 、 、 、 。 4) %c格式符要求读入一个字符,不需用空格等 格式符要求读入一个字符, 格式符要求读入一个字符 字符作为间隔。 字符作为间隔。 5) 在输入数据时,数据输入结束的依据为:空格、 在输入数据时,数据输入结束的依据为:空格、 回车、 出现 按指定宽度结束;非法输入。 出现; 回车、tab出现;按指定宽度结束;非法输入。