收藏 分享(赏)

全国计算机C语言程序设计讲解.ppt

上传人:精品资料 文档编号:10789380 上传时间:2020-01-09 格式:PPT 页数:33 大小:422KB
下载 相关 举报
全国计算机C语言程序设计讲解.ppt_第1页
第1页 / 共33页
全国计算机C语言程序设计讲解.ppt_第2页
第2页 / 共33页
全国计算机C语言程序设计讲解.ppt_第3页
第3页 / 共33页
全国计算机C语言程序设计讲解.ppt_第4页
第4页 / 共33页
全国计算机C语言程序设计讲解.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、C 语言程序设计,上海虎贲教育,C语言教学班,第四章 选择结构程序设计,第一节 if 语句,if语句的三种形式 形式一: 格式:if (表达式) 语句;,形式二: 格式:if (表达式) 语句1; else语句2;,第一节 if 语句,形式三: 格式:if ( 表达式1 ) 语句1; else if (表达式2 ) 语句2;else if (表达式3 ) 语句3;.else 语句n;,说明: if后面的表达式类型任意 else不是一条独立的语句,它只是if语句的一部分if(x) if(x!=0)if(!x) if(x=0) 语句可以是复合语句用 内嵌结构中,else总是与前面最近的且未曾配对的

2、if语句配对组成一对if-else语句,如:if(a=b,例 考虑下面程序的输出结果: #include main() int x,y;scanf(“%d,%d”, ,Compile Error! 编译出错,#include main() int x,y; printf(“请输入一个整数:“);scanf(“%d“, ,例: 求一个数的绝对值,请输入一个整数: -12 整数: -12 的绝对值为:12,/*变量定义*/ /*语句提示*/ /*键盘输入一个数值*/,/*ch4_2.c*/ #include main() int a,b; /*变量定义*/printf(“Enter integer

3、 a:“); /*语句提示*/scanf(“%d“, ,例 输入两个数并判断两数是否相等,运行:Enter integer a:12Enter integer b:12a=b,运行:Enter integer a:12Enter integer b:9a!=b,#include main() int g; /*变量定义*/printf(“Enter g:“); /*语句提示*/scanf(“%d”, ,例 根据输入的学生成绩给出相应的等级,例 考虑下面程序输出结果:main() int x=100,a=10,b=20;int v1=5,v2=0;if(ab)if(b!=15)if(!v1)x=

4、1;elseif(v2) x=10;printf(“%d”,x);,结果:100,第二节 条件运算符和条件表达式,条件运算符,“?:”是C语言中唯一的一个三目运算符用 ?: 将表达式连接起来的式子成为条件表达式 一般形式:表达式1?表达式2:表达式3 结合性: 从右向左 优先级: 3 条件运算符赋值运算符逗号运算符 求值规则:先求的值,若其值为“真”,求出的值作为整个条件表达式的值;若其值为“假”,求出的值作为整个条件表达式的值。 表达式1、表达式2、表达式3类型可不同,表达式值取较高类型,ab?a:cd?c:d ab?a:(cd?c:d),5.2,例: xy?1:1.5 /*xy ,值为1.

5、0; xy ,值为1.5*/,第三节 switch 语句,switch( 表达式) case E1 : 语句组 1; case E2 : 语句组 2;.case En : 语句组 n;default: 语句组 ; ,一般形式:,执行过程: 一、计算表达式 二、找case 三、从找到的case开始,往下全部执行 四、若没找到case,则从default开始往下全部执行,若没default 则结束switch语句。,例 switch(score) case 5: printf(“Very good!”);case 4: printf(“Good!”);default : printf(“data

6、error!”);case 3: case 2: printf(“Pass!”);case 1: printf(“Fail!”); ,break; break; break;break; break;,字符型或整型,没有分号,整型/字符型 常量,互不相同,必须有冒号,必须有空格,运行结果:score为5时,输出:Very good! Good! data error! Pass! Fail!,运行结果:score为3时,输出:,Pass! Fail!,运行结果:score为0时,输出:,data error! Pass! Fail!,运行结果:score为5时,输出:,Very good!,运

7、行结果:score为3时,输出:,Pass!,运行结果:score为0时,输出:,data error!,例 void main() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0: a+; break;case 1: b+; break;case 2: a+;b+; break;case 3: a+;b+;printf(“a=%d,b=%d”,a,b);,运行结果:a=2,b=1,上机作业(使用选择结构),1、给出一个数判断是奇数还是偶数 2、输入三个数求出最大值或者是最小值,第五章 循环结构程序设计,一般形式:,while(表达式

8、) 循环体语句;,执行流程:,第一节 while 语句,特点:先判断表达式,后执行循环体 说明:循环体有可能一次也不执行。循环体只能是一条语句,如果包含一条以上的语句,应该用。循环体中一般有使循环趋向结束的语句,不可无限循环,如 k=0;while(k10) printf(“*”);k+;程序将重复执行输出语句printf,输出10个*号。,第一节 while 语句,#include main() int a;a=1;if(a=10)a+ ;printf(“a=%dn”,a); ,区分if语句和while语句.,#include main() int a;a=1;while(a=10)a+ ;

9、printf(“a=%dn”,a); ,一般形式:,do 循环体语句;while(表达式);,执行流程:,第二节 do-while 语句,分号不能少!,特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体,#include main() int a;scanf(“%d”, ,#include main() int a;scanf(“%d”, ,结论:当while后面的表达式的值为“真”时,两种循环得到的结果相同。否则,两者结果不相同。,while 和do-while的比较,一般形式:,for(表达式1 ; 表达式2 ; 表达式3)循环体语句;,执行流程:,第三节 for 语句,说明:

10、for语句中表达式1, 表达式2 ,表达式3 类型任意,都可省略,但他们之间分号;不可省 无限循环:for( ; ; ) for语句可以转换成while结构,表达式1; while(表达式2) 循环体语句;表达式3; ,for(循环变量赋初值;循环条件;循环变量增值) 循环体语句; ,for语句一般应用形式:,例:#includemain( ) int i;for(i=0;i10;i+)printf(“%d”,i);,例:#includemain( ) int i=0;for(;i10;)printf(“%d”,i+);,只要在进入循环之前将控制变量定义并赋初值,并在循环体中将控制变量的值进行

11、改变即可。,循环条件不可少! 分号不可少,#include main() int i,j,k;for(i=0,j=100;i=j;i+,j-) k=i+j;printf(“%d+%d=%dn“,i,j,k); ,例,表达式1和表达式3可以是简单表达式, 也可以是逗号表达式,例 分别用while 、do-while 和 for 循环求,#include main() int i,sum=0;i=1;while(i=100) sum+=i;i+;printf(“%d“,sum); ,#include main() int i,sum=0;i=1;do sum+=i;i+;while(i=100);

12、printf(“%d“,sum); ,#include main() int i,sum=0;for(i=1;i=100;i+)sum+=i;printf(“%d“,sum); ,三种循环可互相嵌套,层数不限 外层循环可包含两个以上内循环,但不能相互交叉,(1) while() while() .,(2) do do while( );.while( );,(3) while() do while( );.,(4) for( ; ;) do while();while() . ,第四节 循环嵌套语句,有以下程序段: int i,j,m=0; for(i=1;i=15;i+=4)for(j=3;

13、j=19;j+=4)m+; printf(“%d”,m); 程序段的输出结果是( )A 12 B 15 C 20 D 25,C,第五节 辅助控制语句,break语句 功能:在循环语句和switch语句中,终止并跳出循环体,即提前结束循环,接着执行循环下面的语句。 说明: break只能终止并跳出最近一层的结构 break只能用于循环语句和switch语句,例 break举例:,main() int s=0,i;for(i=1;i=5;i+) if(i%2=0)break;s=s+i;printf(“%d,%d”,s,i); ,结果: 1,2,continue语句 功能:结束本次循环,跳过循环体

14、中尚未执行的语句,进行下一次是否执行循环体的判断 仅用于循环语句中,第五节 辅助控制语句,例 continue举例:,main() int s=0,i;for(i=1;i=5;i+) if(i%2=0)continue;s=s+i;printf(“%d,%d”,s,i); ,结果: 9,6,第六节 标号语句和goto语句,main() int i=1;a: if(i=10) printf(“*”);i+;goto a ;在此例子中,“a:”为语句标号,语句标号由标识符和冒号构成,且可以和变量同名。goto称为无条件转向语句。限制使用goto语句。,本章上机练习题,1 计算并输出n(包括n)以内能被5或9整除的所有自然数之和。 2 功能是:计算并输出下列级数和:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报