关于网络选择结构程序设计

上传人:F****n 文档编号:96399031 上传时间:2019-08-26 格式:PPT 页数:32 大小:239KB
返回 下载 相关 举报
关于网络选择结构程序设计 _第1页
第1页 / 共32页
关于网络选择结构程序设计 _第2页
第2页 / 共32页
关于网络选择结构程序设计 _第3页
第3页 / 共32页
关于网络选择结构程序设计 _第4页
第4页 / 共32页
关于网络选择结构程序设计 _第5页
第5页 / 共32页
点击查看更多>>
资源描述

《关于网络选择结构程序设计 》由会员分享,可在线阅读,更多相关《关于网络选择结构程序设计 (32页珍藏版)》请在金锄头文库上搜索。

1、2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,1,4,第四章,选择结构程序设计,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,2,第四章 选择结构程序设计,4.1语句的分类 C语言将语句(statement)分成以下几类: 控制语句 函数调用语句 空语句 表达式语句 复合语句,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,3,if ( ) else (条件语句) switch (多分支选择语句) for ( ) (循环语句) while ( ) (循环语句) do while ( ) (循环语句),1.控制语句,2019年8月26日星

2、期一,重庆理工大学 计算机学院 基础教研室,4,1.控制语句,continue (结束本次循环语句) break (中止执行switch或循环语句) goto (转向语句) return (从函数返回语句),2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,5,2.函数调用语句 函数调用语句由一个函数调用加上一个分号(;)构成。例如: printf(“Hello!”);,3.空语句 只有一个分号(;)的语句。空语句不执行任何操作。例如: ;,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,6,4.表达式语句 由C语言的任意合法表达式加上一个分号(;)构成。例如

3、:,函数调用属于表达式的一种,而空语句则是没有任何表达式的语句,i+ ; (使变量的值加1) x + y ; (完成x + y 操作,但不将其结果赋给 某一变量,所以该语句无实际意义) ; (空语句) printf (“Hello!”); (函数调用语句),2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,7,5.复合语句 包含在由左花括号开始,右花括号结束的一组语句,在逻辑上构成一个整体,称为复合语句。 例如:, x = k + t ; y = x %5 ; printf (“y is % d”, y); ,任何可以放置语句的地方,都可以放置复合语句,2019年8月26日星期

4、一,重庆理工大学 计算机学院 基础教研室,8,4.2关系运算符、逻辑运算符、条件运算符,本章将着重讨论利用选择控制实现选择结构程序设计。选择控制是指根据指定的条件是否满足,选择下一步要执行的语句。满足为真,不满足为假。,对于条件的描述,最为常见的就是关系表达式。 其一般形式:,4.2.1 关系运算符和关系表达式,操作数 关系运算符 操作数,每个操作数可以是变量、常量或者是任意有效的C语言表达式。,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,9,大于 a b 大于等于 a = b 小于 a b 小于等于 a = b 等于 a = b 不等于 a != b,6种关系运算符:,

5、关系表达式只能产生两个数值之一:0 或 1。 一个判定为真的关系表达式的值为1; 一个判定为假的关系表达式的值为0。,C语言中,逻辑值真为1;逻辑值假为0。,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,10,关系运算符的优先级低于算术运算符的优先级,但高于赋值运算符的优先级。其结合性是左结合性。,例如: a=20, b=70, c=50, d=90, 有下列表达式: ad 相当于(ad, ad 为假,整个表达式的值为0 k=a+bc+d 相当于k=(a+b) (c+d), 即 k = (90 140), 即k=1, 为变量k赋值1,整个表达式的值为1。,2019年8月26

6、日星期一,重庆理工大学 计算机学院 基础教研室,11,字符数据同样可以用关系运算符比较,比较的依据是其所用代码的数值。,例如比较ASCII码的字符: 表达式 a = A 的值为0 表达式 A C 的值为0 表达式 C a 的值为1,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,12,逻辑运算符将其操作数视为逻辑值,即“真”或“假”。而C语言对于操作数真假的判定采取了如下原则:,4.2.2 逻辑运算符和逻辑表达式,三种逻辑运算符: 逻辑非 ! a 逻辑与 a & b 逻辑或 a | b,C语言中, 任意非零值为逻辑值真; 零为逻辑值假。,2019年8月26日星期一,重庆理工大

7、学 计算机学院 基础教研室,13,逻辑表达式 !(5 10)&(8 10)|(8 10)的值为1。 逻辑表达式(5 10)&(10)的值为1 逻辑表达式 !a 的值为0,例如:,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,14,条件运算符(?)是C语言中惟一的一个三目运算符,其表达式的一般形式:,4.2.2 条件运算符和条件表达式,操作数 1 ? 操作数2 : 操作数3,条件表达式的执行过程为:先求解操作数1的逻辑值,如果为非零值“真”,再求解操作数2,并将操作数2的值作为该条件表达式的值;如果为零值“假”,则求解操作数3,并将操作数3的值作为该条件表达式的值。,2019

8、年8月26日星期一,重庆理工大学 计算机学院 基础教研室,15,条件运算符的优先级高于赋值运算符,但低于算术运算符、关系运算符及逻辑运算符。我们来看一个例子: y = x =60 ? P : F 如果x大于或等于60,则y被赋值P,该表达式的值为P;如果x小于60,则y被赋值F,该表达式的值为F。,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,16,C语言提供两种选择控制语句: if 语句 switch 语句。,4.3 选择结构的程序设计,所有程序的正常执行次序通常都是顺序的。然而,在许多问题的解决方案中,常会根据情况的不同,采取不同的处理方式。,2019年8月26日星期一

9、,重庆理工大学 计算机学院 基础教研室,17,if(表达式) 语句A else 语句B,4.3.1 if语句,if语句的一般形式:,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,18,else子句,是可选的。当无else子句时的if语句形式为:,if(表达式) 语句,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,19,当if语句的目标块中又出现if语句时,C语言有如下规定:else子句总与距它最近的if配套。例如:,if (k) if (h) do1(); if (i) do2(); /* 这个if */ else do3(); /* 和这个else 组

10、合 */ if (t) do4(); else do5(); /* 这个 else 和 if(k) 组合 */,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,20,基于上述规则,一个常用的嵌套if语言构成多分支选择结构,也称为if-else-if阶梯,其 一般形式如下:,if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else 语句n;,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,21,C语言中,switch语句同样可以实现多分支选择。switch语句的一般形式是:,4.3.1 switch 语句

11、,switch(表达式) case 常量1 : 语句序列1 break; case 常量2 : 语句序列2 break; case 常量3 : 语句序列3 break; default : 语句序列n ,可选,可选,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,22,switch语句可以作为另一个switch语句中语句序列的一部份,形成嵌套switch语句。这时,即使内外层的常量相同,也不会引起冲突。例如:,switch (x) case 1 : printf(“process(x , y)n”); switch (y) case 0 : printf(“Divided b

12、y 0 error!n”); break; case 1 : process (x , y ); break; case 2 : ,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,23,例4.1从键盘读入两个整数,然后显示这两个数的商。,4.3 选择结构的程序设计举例,#include void main() int a, b; printf(“Enter two numbers(separate by ,):“); scanf(“%d,%d“, ,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,24,例4.2从键盘读入年份,然后判断该年是否为闰年。符合下列

13、条件之一的年份都是闰年: 能被400 整除的年份; 不能被100整除,但可以被4整除的年份。,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,25,#include void main() int year,leap; printf(“Enter year:“); scanf(“%d“, ,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,26,例4.3企业发放的奖金根据利润提成。 利润(I)不超过10万元时,奖金可提10%; 利润不超过20万元时,其中的10万元按10%提成,高于10万元的部分提成7.5%; 20万到40万元,其中的20万元按前述b方法提成,

14、高于20万元的部分提成5%; 40万到60万元,其中的40万元按前述c方法提成,高于40万元的部分提成3%; 60万到100万元,其中的60万元按前述d方法提成, 高于60万元的部分提成1.5%; 高于100万元时,其中的100万元按前述e方法提成,超过100万元的部分提成1%。 从键盘输入当月利润I,求应发放奖金总数?,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,27,#include void main() long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; printf(“Enter profit e

15、arned:“); scanf(“%ld“,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,28,if (i=100000) bonus=i*0.1; else if(i=200000) bonus=bonus1+(i-100000)*0.075; else if(i=400000) bonus=bonus2+(i-200000)*0.05; else if(i=600000) bonus=bonus4+(i-400000)*0.03; else if(i=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(

16、i-1000000)*0.01; printf(“bonus=%dn“,bonus); ,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,29,例4.4输入某年某月某日,判断这一天是这一年的第几天? 解析: 以2000年4月8日为例,应该先把前三个月的天数加起来,然后再加上8天即本年的第几天。 遇闰年情况,且输入月份大于3时需要多加一天。,2019年8月26日星期一,重庆理工大学 计算机学院 基础教研室,30,#include void main() int day,month,year,sum,leap; printf(“nplease input year,month,dayn“); scanf(“%d,%d,%d“, ,/*二月按28天计*/,2019年8月26日星

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号