计算机二级c语言考试c语言学习第3讲

上传人:san****019 文档编号:71365799 上传时间:2019-01-20 格式:PPT 页数:38 大小:664.31KB
返回 下载 相关 举报
计算机二级c语言考试c语言学习第3讲_第1页
第1页 / 共38页
计算机二级c语言考试c语言学习第3讲_第2页
第2页 / 共38页
计算机二级c语言考试c语言学习第3讲_第3页
第3页 / 共38页
计算机二级c语言考试c语言学习第3讲_第4页
第4页 / 共38页
计算机二级c语言考试c语言学习第3讲_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《计算机二级c语言考试c语言学习第3讲》由会员分享,可在线阅读,更多相关《计算机二级c语言考试c语言学习第3讲(38页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计,第三讲,3.1 选择型程序设计 if语句(条件选择语句) if语句的三种形式 形式一: 格式:if (表达式) 语句; 执行过程:,例:if (xy) printf(“%d”,x);,形式二: 格式:if (表达式) 语句1 else 语句2 执行过程:,例:if (xy) max=x; else max=y;,形式三: 格式:,if (表达式1 ) 语句1 else if (表达式2 ) 语句2 else if (表达式3 ) 语句3 . else 语句n ,执行过程:,例:if (salary10000) index=0.4; else if (salary8000) in

2、dex=0.3; else if (salary4500) index=0.15; else if (salary3000) index=0.05; else index=0;,如:if(a=b 程序运行后的输出结果是 A)3 B)2 C)1 D) 0 (10年9月)若变量已正确定义, 在if (W)printf(“%dn,k”); 中,以下不可替代W的是 A)ab+c B)ch=getchar() C)a=b+c D)a+,说明: if后面的表达式类型任意 ,语句可以是复合语句 if(x) if(x!=0) if(!x) if(x=0),例 考虑下面程序的输出结果: #include mai

3、n() int x,y; scanf(“%d,%d”, ,Compile Error!,例1.若有以下程序 main() int a=4,b=3,c=5,t=0; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; printf(“%d %d %dn”); 执行后输出结果是_. 例2.若有以下程序 main() int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%dn”,x); 执行后输出结果是_.,学考结合:,例(11年3月)有以下程序 main() int x; scanf(“%d“, 若

4、程序运行时从键盘输入12,则输出结果为 【7】 。,if语句嵌套: 一般形式:,if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,实现if else 正确配对方法:加 ,有以下程序(08年9月28题) #include main() int x=1,y=2, z=3; if(xy) if (yz) printf(“%d”,+z);

5、 else printf(“%d”,+y); printf(“%dn”,x+); 程序运行结果是 A)331 B)41 C) 2 D)1,学考结合:,3.2条件运算符与表达式 一般形式: expr1 ? expr2 : expr3 执行过程 功能:相当于条件语句,但不能取代一般if语句,条件运算符可嵌套 如 x0?1:(x0?-1:0) 优先级: 13,如 ab?a:cd?c:d ab?a:(cd?c:d) expr1、expr2、expr3类型可不同,表达式值取较高的类型,例 x?a:b /x=0,表达式值为b; x0,表达式值为a xy?1:1.5 /xy ,值为1.0; xy ,值为1.

6、5,例1有以下程序段 int k=0,a=1,b=2,c=3; k=ac?c:k; 执行该程序段后,k的值是_. A) 3 B) 2 C) 1 D) 0 (20099)19)以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是 A)if(ab)c,学考结合:,3.3 switch语句(开关分支语句) 一般形式:,switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; break; . case En: 语句组 n; break; default: 语句组 ; break; ,执行过程:,注意事项: Switch语句中的圆括号中的表达

7、式的必须是整型或字符型 可以没有break语句和default部分 E1,E2,En是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出(跳出规则) case后可包含多个可执行语句,且不必加 switch可嵌套 多个case可共用一组执行语句,如: case A: case B: case C: printf(“score60n”); break; ,例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail

8、!”); default : printf(“data error!”); ,运行结果:score为5时,输出: Very good! Good! Pass! Fail! 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(“na=%d,b=%d”,a,b); ,运行结果:a=2,b=1,经典例题:,2010/3)18、以下选项中与if

9、(a=1) a=b;else a+;语句功能不同的switch语句:A、switch(a) B、switch(a=1) case 1:a=b;break; case 0 : a=b;break; default : a+; case 1 : a+; C、switch(a) D、switch(a=1) default : a+;break; case 1:a=b;break; case 1:a=b; case 0: a+; (19)有以下程序2011年3月 main() int s; scanf(“%d“, 运行时,若输入1 2 3 4 5 0,则输出结果是 A)6566456 B)66656

10、C)66666 D)6666656,3.4循环型程序设计 概述 C语言可实现循环的语句: 用goto 和 if 构成循环 while 语句 do while 语句 for 语句 goto语句及用goto构成循环(一般了解) goto语句一般格式:,goto 语句标号; . 标号:语句;,功能:无条件转移语句 说明: 不能用整数作标号 标号只能出现在goto所在函数内,且唯一 标号只能加在可执行语句前面 限制使用goto语句,例 用if 和goto语句构成循环,求,#include main() int i,sum=0; i=1; loop: if(i=100) sum+=i; i+; goto

11、 loop; printf(“%d“,sum); ,sum=0+1 sum=1+2=3 sum=3+3=6 sum=6+4 sum=4950+100=5050,while语句 一般形式:,while(表达式) 循环体语句;,执行流程:,特点:先判断表达式,后执行循环体 注意事项: While是C语言的关键字; 圆括号内的表达式为任意合法的表达式; 循环体语句只有一个时可不加花括号;多时必须加; 循环体有可能一次也不执行; 循环体可为任意类型C语句; 下列情况,退出while循环 条件表达式不成立(为零); 循环体内遇break,return,goto; 无限循环: while(1) 循环体;,

12、例1. 以下程序的运行结果是_.,#include main() int i,sum=1; i=1; while(i=5) sum=sum*i; i+; printf(“%d“,sum); ,例 2.以下程序的运行结果是_.,#include main() int y=10; while(y- -); printf(“y=%dn“,y); ,dowhile语句 一般形式:,do 循环体语句; while(表达式);,执行流程:,特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 dowhile可转化成while结构,例 1.用dowhile循环求,#include main() in

13、t i,sum=0; i=1; do sum+=i; i+; while(i=100); printf(“%d“,sum); ,例 2.以下程序的运行结果是_. #include main() int i,n=0; i=0; do i+; +i; while(n!=0); printf(“%d“,i); ,例 while和dowhile比较(了解),#include main() int i,sum=0; scanf(“%d“, ,main() int i,sum=0; scanf(“%d“, ,for语句 一般形式: ,for(expr1 ; expr2 ; expr3) 循环体语句;,执行

14、流程: ,for语句一般应用形式:,for(循环变量赋初值;循环条件;循环变量增值) 循环体语句; ,说明: for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可省 无限循环: for(;) for语句可以转换成while结构,expr1; while(expr2) 循环体语句; expr3; ,例:#include main( ) int i=0; for(i=0;i3;i+) switch(i) case 0:printf(“%d”,i); case 2:printf(“%d”,i); default:printf(“%d”,i); ,运行结果:,例: (08年9月8题填空) 以下程序的输出结果【8】。. #include main() int i,j,sum; for(i=3;i=1;i-) sum=0; for(j=1;j=i;j+) sum+=i*j; printf(“%dn”,sum); (2011/3-22)若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k+) printf(“*n“); 下面关于语句执行情况的叙述中正确的是 A)循环体执行两次 B)循环体执行一次 C)循环体一次也不执行 D)构成无限循环,循环的嵌套(关键要分清层次) 三种循环可互相嵌套,层数不限 外层循环可包含两个以上内循环,

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

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

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