计算机二级第章 程序控制结构_第1页
计算机二级第章 程序控制结构_第2页
计算机二级第章 程序控制结构_第3页
计算机二级第章 程序控制结构_第4页
计算机二级第章 程序控制结构_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、,5.空语句,只有分号“;”组成的语句称为空语句。 空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。 例如 while(getchar()!=n); 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。,7,【例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( ) float a,b,c,area; printf(“请输入三角形三条边的边长:”

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

5、 input three numbers:); scanf(%d%d%d, ,这两部分语句的顺序能调换吗?,10,【例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); ,这两部分语句的顺序能调换吗?,11,在顺序结构程序中,一般包括以下几个部分: 程序开头的编译预处理命令。 在程序中要

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

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

8、将y值存入x中 E2.2.3将TEMP中的值存入y中,#include main() int x,y,temp; printf(输入两个整数!); scanf(%d,%d,16,结构二:双路选择结构 if (表达式) 语句组1 else 语句组2,17,结构三:多路选择 if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else if (表达式m) 语句m else 语句n,18,多路选择结构(4分支),19,【例3.8】 main() int a; printf(Please input the score:); scanf(“%d”,

9、,从键盘上输入一个百分制成绩score,按下列原则输出其等级: 90score,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。,输入:95 运行结果:The grade is:A 输入:75 运行结果:The grade is:C,20,if后面都有“表达式”,一般为逻辑表达式或关系表达式,也可以为任意的数值类型,系统对表达式的值进行判断,若为0,按“假”处理,否则按“真”处理。 在if 和else 后面可以只含一个操作语句,也可以有多个操作语句,此时用 将几个语句括起来成为一个复合语句。在 后面不需要加括号。,2

10、1,if语句的嵌套在if语句中又包含一个或多个if语句,if ( ) if ( ) 语句组1 else 语句组2 else if ( ) 语句组3 else 语句组4,22,if ( ) if ( ) 语句1 else if ( ) 语句2 else 语句3,if ( ) if ( ) 语句1 else if ( ) 语句2 else 语句3,if与else的配对关系: 从最内层开始,else总是与它上面最近(未曾配对)的if配对; 如果if与else的数目不一样,为实现程序设计者的企图,可以加 来确定配对关系。,if ( ) if ( ) 语句1 else if ( ) 语句2 else 语

11、句3,23,switch结构,一般的格式: switch(表达式) case 常量表达式1: 语句组1 break; case 常量表达式2: 语句组2 break; case 常量表达式n: 语句组n break; default: 语句组n+1 ,执行过程: 当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组); 当执行到break语句时,跳出switch语句,转向执行switch语句的下一条。 如果没有任何一个case后面的“常量表达式”的值,与“表达式”的值匹配,则执行default 后面的语句(组)。然后,再执行switch

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

13、可以用if语句或if语句的嵌套来实现。,26,【例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,27,以下是等级考试中的选择题,对于整型变量x,下述if 语句( )与赋值语句:x=x%2=0?1:0;不等价。 if(x%2!=0) x=0; else

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论