计算机二级第3章程序控制结构

上传人:san****019 文档编号:70759790 上传时间:2019-01-18 格式:PPT 页数:28 大小:335.51KB
返回 下载 相关 举报
计算机二级第3章程序控制结构_第1页
第1页 / 共28页
计算机二级第3章程序控制结构_第2页
第2页 / 共28页
计算机二级第3章程序控制结构_第3页
第3页 / 共28页
计算机二级第3章程序控制结构_第4页
第4页 / 共28页
计算机二级第3章程序控制结构_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《计算机二级第3章程序控制结构》由会员分享,可在线阅读,更多相关《计算机二级第3章程序控制结构(28页珍藏版)》请在金锄头文库上搜索。

1、1,第3章 程序控制结构,3.1 C语言的语句 3.2 顺序结构 3.3 分支结构,2,C语言的语句,C语句可分为以下五类: 1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句,3,1.表达式语句,表达式语句由表达式加上分号“;”组成。 其一般形式为: 表达式; 执行表达式语句就是计算表达式的值。 例如: x=y+z; 赋值语句 y+z; 加法运算语句, 但计算结果不能保留,无实际意义i+; 自增1语句,i值增1,4,2.函数调用语句,由函数名、实际参数加上分号“;”组成。 其一般形式为: 函数名(实际参数表); 执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式

2、参数,然后执行被调函数体中的语句,求取函数值。,例:,5,3.控制语句,控制语句用于控制程序的流程, 以实现程序的各种结构方式。 它们由特定的语句定义符组成。语言有九种控制语句。 可分成以下三类: (1) 条件判断语句 if语句,switch语句 (2) 循环执行语句 do while语句,while语句,for语句 (3) 转向语句 break语句,goto语句,continue语句,return语句,6,4.复合语句,把多个语句用括号括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句 x=y+z; a=b+c; printf(“%d%d”,x,a); 是一

3、条复合语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加分号。,7,5.空语句,只有分号“;”组成的语句称为空语句。 空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。 例如 while(getchar()!=n); 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。,8,【例3.1】 #include #include float triangle_area(float a, float b, float c) float l; l=(a+b+c)/2.0; return sqrt(l*(l-a)*(l-b)*(l-c); main(

4、) float a,b,c,area; printf(“请输入三角形三条边的边长:”); scanf(“%f%f%f”, ,函数调用语句,back,主函数在后, 自定义函数在前的格式,9,【例3.2】 #include #include main( ) float triangle_area(float a, float b, float c) ; float a,b,c,area; printf(“请输入三角形三条边的边长:”); scanf(“%f%f%f”, ,10,顺序结构,按书写顺序执行的语句构成的程序段 【例3.3】输入任意三个整数,求它们的和及平均值 main( ) int nu

5、m1,num2,num3,sum; float aver; printf(“Please input three numbers:“); scanf(“%d%d%d“, ,这两部分语句的顺序能调换吗?,11,【例3.4】从键盘输入一个小写字母,要求用大小写字母形式输出该字母及对应的ASCII码值 #include main() char c1,c2; printf(“Input a lowercase letter: “); c1=getchar(); putchar(c1); printf(“%dn“,c1); c2=c1-32; printf(“%c,%dn“,c2,c2); ,这两部分语

6、句的顺序能调换吗?,12,在顺序结构程序中,一般包括以下几个部分: 程序开头的编译预处理命令。 在程序中要使用标准函数(又称库函数),除printf( )和scanf( )外,其它的都必须使用编译预处理命令,将相应的头文件包含进来。 顺序结构程序的函数体中,是完成具体功能的各个语句和运算,主要包括: 变量类型的说明; 提供数据语句; 运算部分; 输出部分。,13,【例3.5】 #include main( ) float a,b,c,l,area; printf(“请输入三角形三条边的边长:”); scanf(“%f%f%f”, ,14,分支结构,根据输入数据或中间结果的不同选择不同的语句组执

7、行,此时需要一个变量或表达式的值来作为判定的依据。 两种分支结构 条件分支(if和if else):根据给定的条件进行判断,决定执行某个分支的程序段; 开关分支(switch):根据给定整型表达式的值进行判断,决定执行多路分支中的一支。,15,if结构,结构一:单路选择结构 if (表达式) 语句组 【例3.6】 main() int i; printf(“Please input an integer:”); scanf(“%d”,16,【例3.7】输入两个数字将较大的送入x中,较小送入y中,并输出. 算法分析: E1:输入x,y值 E2:两者中较大者存入x中,较小存入y中 E3:输出X,Y

8、 E2.1IF xy THEN E2.2交换x,y E2.2.1将x值存入临时变量TEMP中 E2.2.2将y值存入x中 E2.2.3将TEMP中的值存入y中,#include main() int x,y,temp; printf(“输入两个整数!“); scanf(“%d,%d“,17,结构二:双路选择结构 if (表达式) 语句组1 else 语句组2,18,结构三:多路选择 if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else if (表达式m) 语句m else 语句n,19,多路选择结构(4分支),20,【例3.8】 ma

9、in() int a; printf(“Please input the score:“); scanf(“%d”, ,从键盘上输入一个百分制成绩score,按下列原则输出其等级: 90score,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。,输入:95 运行结果:The grade is:A 输入:75 运行结果:The grade is:C,21,if后面都有“表达式”,一般为逻辑表达式或关系表达式,也可以为任意的数值类型,系统对表达式的值进行判断,若为0,按“假”处理,否则按“真”处理。 在if 和else

10、 后面可以只含一个操作语句,也可以有多个操作语句,此时用 将几个语句括起来成为一个复合语句。在 后面不需要加括号。,22,if语句的嵌套在if语句中又包含一个或多个if语句,if ( ) if ( ) 语句组1 else 语句组2 else if ( ) 语句组3 else 语句组4,23,if ( ) if ( ) 语句1 else if ( ) 语句2 else 语句3,if ( ) if ( ) 语句1 else if ( ) 语句2 else 语句3,if与else的配对关系: 从最内层开始,else总是与它上面最近(未曾配对)的if配对; 如果if与else的数目不一样,为实现程序设

11、计者的企图,可以加 来确定配对关系。,if ( ) if ( ) 语句1 else if ( ) 语句2 else 语句3,24,switch结构,一般的格式: switch(表达式) case 常量表达式1: 语句组1 break; case 常量表达式2: 语句组2 break; case 常量表达式n: 语句组n break; default: 语句组n+1 ,执行过程: 当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组); 当执行到break语句时,跳出switch语句,转向执行switch语句的下一条。 如果没有任何一个c

12、ase后面的“常量表达式”的值,与“表达式”的值匹配,则执行default 后面的语句(组)。然后,再执行switch语句的下一条。 (注:方括号表示可选项),25,switch结构,26,说明 switch后面的“表达式”,可以是整型、字符型和枚举型中的一种。 每个case后面“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象(即对表达式的同一值,有两种或两种以上的执行方案)。 case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句。 各case及default子句的

13、先后次序,不影响程序执行结果。 多个case子句,可共用同一语句(组)。 用switch语句实现的多分支结构程序,完全可以用if语句或if语句的嵌套来实现。,27,【例3.9】 main() int score, grade; printf(“Input a score(0100): ”); scanf(“%d”, ,例3.6 从键盘上输入一个百分制成绩score,按下列原则输出其等级: 90score,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。,输入:85 运行结果:grade=B 输入:45 运行结果:grade=E,28,以下是等级考试中的选择题,对于整型变量x,下述if 语句( )与赋值语句:x=x%2=0?1:0;不等价。 if(x%2!=0) x=0; else x=1; if(x%2)x=1; else x=0; if(x%2=0) x =1; else x=0; if(x%2=1) x =0; else x=1; 以下的语句中,无内嵌执行语句的if语句是()。 if ( x = y) x += y ; if ( xy ,以下程序运行时,若从键盘输入5,则输出结果是()。 main() int a; scanf(“%d“, (a)7 (b) 4 (c) 5 (d) 6,

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

当前位置:首页 > 高等教育 > 大学课件

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