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

上传人:无*** 文档编号:245389311 上传时间:2024-10-08 格式:PPTX 页数:32 大小:145.60KB
返回 下载 相关 举报
关于网络选择结构程序设计39888_第1页
第1页 / 共32页
关于网络选择结构程序设计39888_第2页
第2页 / 共32页
关于网络选择结构程序设计39888_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,重庆理工大学 计算机学院 基础教研室,*,4,第四章,选择结构程序设计,10/8/2024,1,重庆理工大学 计算机学院 基础教研室,第四章 选择结构程序设计,4.1语句的分类,C语言将语句(statement)分成以下几类:,控制语句,函数调用语句,空语句,表达式语句,复合语句,10/8/2024,2,重庆理工大学 计算机学院 基础教研室,if(),else,(条件语句),switch(多分支选择语句),for()(循环语句),while()(循环语句),do while()(循环语句),1.控制语句,10/8/2024,3,重庆理工大学 计算机学院 基础教研室,1.控制语句,continue(结束本次循环语句),break(中止执行switch或循环语句),goto(转向语句),return(从函数返回语句),10/8/2024,4,重庆理工大学 计算机学院 基础教研室,2.函数调用语句,函数调用语句由一个函数调用加上一个分号(;)构成。例如:,printf(“Hello!”);,3.空语句,只有一个分号(;)的语句。空语句不执行任何操作。例如:,;,10/8/2024,5,重庆理工大学 计算机学院 基础教研室,4.表达式语句,由C语言的任意合法表达式加上一个分号(;)构成。例如:,函数调用属于表达式的一种,而空语句则是没有任何表达式的语句,i+;,(使变量的值加1),x+y;,(完成x+y 操作,但不将其结果赋给,某一变量,所以该语句,无实际意义,),;,(空语句),printf(“Hello!”);,(函数调用语句),10/8/2024,6,重庆理工大学 计算机学院 基础教研室,5.复合语句,包含在由左花括号开始,右花括号结束的一组语句,在逻辑上构成一个整体,称为复合语句。,例如:,x=k+t;,y=x%5;,printf(“y is%d”,y);,任何可以放置语句的地方,都可以放置复合语句,10/8/2024,7,重庆理工大学 计算机学院 基础教研室,4.2关系运算符、逻辑运算符、条件运算符,本章将着重讨论利用选择控制实现选择结构程序设计。选择控制是指根据指定的条件是否满足,选择下一步要执行的语句。满足为,真,,不满足为,假,。,对于条件的描述,最为常见的就是关系表达式。,其一般形式:,4.2.1 关系运算符和关系表达式,操作数,关系运算符,操作数,每个操作数可以是变量、常量或者是任意有效的C语言表达式。,10/8/2024,8,重庆理工大学 计算机学院 基础教研室,大于 a,b 大于等于 a,=,b,小于 a,b 小于等于a,=,b,等于 a,=,b 不等于 a,!=,b,6种关系运算符:,关系表达式,只能产生两个数值之一:,0 或 1,。,一个判定为真的关系表达式的值为1;,一个判定为假的关系表达式的值为0。,C语言中,逻辑值真为1;逻辑值假为0。,10/8/2024,9,重庆理工大学 计算机学院 基础教研室,关系运算符的优先级,低于,算术运算符的优先级,但,高于,赋值运算符的优先级。其结合性是,左结合性,。,例如:,a=20,b=70,c=50,d=90,有下列表达式:,ad,相当于(ad,ad 为假,整个表达式的值为0,k=a+bc+d,相当于k=(a+b)(c+d),即 k=(90 C 的值为0,表达式 C a 的值为1,10/8/2024,11,重庆理工大学 计算机学院 基础教研室,逻辑运算符将其操作数视为逻辑值,即“真”或“假”。而C语言对于操作数真假的判定采取了如下原则:,4.2.2 逻辑运算符和逻辑表达式,三种逻辑运算符:,逻辑非,!,a,逻辑与a,&,b,逻辑或a,|,b,高,低,C语言中,任意非零值为逻辑值,真,;,零为逻辑值,假,。,10/8/2024,12,重庆理工大学 计算机学院 基础教研室,逻辑表达式!(5 10)&(8 10)|(8 10)的值为1。,逻辑表达式(5=60,?,P,:,F,如果x大于或等于60,则y被赋值P,该表达式的值为,P,;如果x小于60,则y被赋值,F,,该表达式的值为,F,。,10/8/2024,15,重庆理工大学 计算机学院 基础教研室,C语言提供两种选择控制语句:,if,语句,switch,语句。,4.3 选择结构的程序设计,所有程序的正常执行次序通常都是顺序的。然而,在许多问题的解决方案中,常会根据情况的不同,采取不同的处理方式。,10/8/2024,16,重庆理工大学 计算机学院 基础教研室,if(,表达式,),语句A,else,语句B,4.3.1 if语句,if语句的一般形式:,表达式?,语句A,语句B,真(非0),假(0),10/8/2024,17,重庆理工大学 计算机学院 基础教研室,else子句,是可选的。当无else子句时的if语句形式为:,if(,表达式,),语句,表达式?,语句,真(非0),假(0),10/8/2024,18,重庆理工大学 计算机学院 基础教研室,当if语句的目标块中又出现if语句时,C语言有如下规定:else子句总与距它最近的if配套。例如:,if,(k),if(h)do1();,if,(i)do2();/*这个if*/,else,do3();/*和这个else 组合*/,if(t)do4();,else,do5();/*这个 else 和 if(k)组合*/,10/8/2024,19,重庆理工大学 计算机学院 基础教研室,基于上述规则,一个常用的嵌套if语言构成多分支选择结构,也称为if-else-if阶梯,其,一般形式如下:,if(,表达式1,),语句1;,else if(,表达式2,),语句2;,else if(,表达式3,),语句3;,.,else,语句n;,10/8/2024,20,重庆理工大学 计算机学院 基础教研室,C语言中,switch语句同样可以实现多分支选择。switch语句的一般形式是:,4.3.1 switch 语句,switch(,表达式,),case,常量1,:,语句序列1,break;,case,常量2,:,语句序列2,break;,case,常量3,:,语句序列3,break;,.,default:,语句序列n,可选,可选,10/8/2024,21,重庆理工大学 计算机学院 基础教研室,switch语句可以作为另一个switch语句中语句序列的一部份,形成,嵌套,switch语句。这时,即使内外层的常量相同,也不会引起冲突。例如:,switch(,x,),case 1:printf(“process(x,y)n”);,switch(,y,),case 0:printf(“Divided by 0 error!n”);,break;,case 1:process(x,y);,break;,case 2:,10/8/2024,22,重庆理工大学 计算机学院 基础教研室,例4.1从键盘读入两个整数,然后显示这两个数的商。,4.3 选择结构的程序设计举例,#include,void main(),int a,b;,printf(Enter two numbers(separate by,):);,scanf(%d,%d,if(b),printf(a/b=%dn,a/b);,else,printf(Can not divide by zero.n);,10/8/2024,23,重庆理工大学 计算机学院 基础教研室,例4.2从键盘读入年份,然后判断该年是否为闰年。符合下列条件之一的年份都是闰年:,能被400 整除的年份;,不能被100整除,但可以被4整除的年份。,10/8/2024,24,重庆理工大学 计算机学院 基础教研室,#include,void main(),int year,leap;,printf(Enter year:);,scanf(%d,/*判断是不是闰年*/,if(year%400=0|(year%4=0&year%100!=0),leap=1;/*是闰年*/,else,leap=0;,if(leap),printf(%d is a leap year.n,year);,else,printf(%d is not a leap year.n,year);,10/8/2024,25,重庆理工大学 计算机学院 基础教研室,例4.3企业发放的奖金根据利润提成。,利润(I)不超过10万元时,奖金可提10%;,利润不超过20万元时,其中的10万元按10%提成,高于10万元的部分提成7.5%;,20万到40万元,其中的20万元按前述b方法提成,高于20万元的部分提成5%;,40万到60万元,其中的40万元按前述c方法提成,高于40万元的部分提成3%;,60万到100万元,其中的60万元按前述d方法提成,高于60万元的部分提成1.5%;,高于100万元时,其中的100万元按前述e方法提成,超过100万元的部分提成1%。,从键盘输入当月利润I,求应发放奖金总数?,10/8/2024,26,重庆理工大学 计算机学院 基础教研室,#include,void main(),long int i;,int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;,printf(Enter profit earned:);,scanf(%ld,bonus1=100000*0.1;,bonus2=bonus1+100000*0.075;,bonus4=bonus2+200000*0.05;,bonus6=bonus4+200000*0.03;,bonus10=bonus6+400000*0.015;,10/8/2024,27,重庆理工大学 计算机学院 基础教研室,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+(i-1000000)*0.01;,printf(bonus=%dn,bonus);,10/8/2024,28,重庆理工大学 计算机学院 基础教研室,例4.4输入某年某月某日,判断这一天是这一年的第几天?,解析:,以2000年4月8日为例,应该先把前三个月的天数加起来,然后再加上8天即本年的第几天。,遇闰年情况,且输入月份大于3时需要多加一天。,10/8/2024,29,重庆理工大学 计算机学院 基础教研室,#include,void main(),int day,month,year,sum,leap;,printf(nplease input year,month,dayn);,scanf(%d,%d,%d,switch(month)/*先计算某月以前月份的总天数*/,case 1:sum=0;break;case 2:sum=31;break;,case 3:sum=59;break;case 4:sum=90;break;,case 5:sum=120;break;case 6:sum=151;break;,case 7:sum=181;break;case 8:sum=212;break;,case 9:sum=243;break;case 10:sum=273;break;,case 11:sum=304;break;case 12:sum=334;break;,default:printf(month data error);,/*二月按28天计*/,10/8/2024,30,重庆理工大学 计算机学院 基础教研室,sum=sum+da
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!