C语言 第四章.程序控制结构

上传人:woxinch****an2018 文档编号:54136192 上传时间:2018-09-08 格式:PPT 页数:55 大小:405KB
返回 下载 相关 举报
C语言 第四章.程序控制结构_第1页
第1页 / 共55页
C语言 第四章.程序控制结构_第2页
第2页 / 共55页
C语言 第四章.程序控制结构_第3页
第3页 / 共55页
C语言 第四章.程序控制结构_第4页
第4页 / 共55页
C语言 第四章.程序控制结构_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《C语言 第四章.程序控制结构》由会员分享,可在线阅读,更多相关《C语言 第四章.程序控制结构(55页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计,程序控制结构,C语言的语句,C语言中语句以分号“;”结束,语句分为: 1.声明语句:在程序编译时处理,在程序运行时不产生相应的操作。 2.执行语句:在程序运行时向计算机系统发出操作命令,使计算机执行特定的操作。,void main() int i; /*声明语句*/printf(“%dn“,(i=1,+i); /*执行语句*/ ,C语言的执行语句,表达式语句:表达式加分号“;” 空语句:仅一个分号“;”构成的语句 复合语句:用一对花括号括起来的多条语句 控制语句:C语言提供9种控制语句,见P62,#include void main() int i;i = abs(-2); /

2、*表达式语句(赋值语句) 空语句*/printf(“%dn“,i); /*表达式语句(函数调用语句)*/ ,C语言的执行语句,#include void main() int a,b;printf(“Please input a,b:n“);scanf(“%d,%d“, ,程序控制结构,程序的三种基本结构 顺序结构:程序执行按照代码书写顺序执行选择结构:循环结构:,if 语句 switch语句,当型循环结构(for语句、while语句)直到型循环结构(do-while语句),顺序结构,所谓顺序结构程序就是按代码书写顺序,自上而下执行的语句构成的程序段。 一般顺序结构的流程图为:,动作1,动作2

3、,动作3,例:计算两个键盘输入的整数的平均值并输出。,开始,输入两个整数,计算平均值,定义三个变量,输出平均值,结束,#include main() int a,b;float average;printf(“Please input a,b:n“);scanf(“%d,%d“, ,选择结构,C语言的选择控制语句有两条: 条件选择语句:if语句 开关分支语句:switch语句,一、if语句的三种形式 1、if(表达式) 语句,例:输入一个字母,以小写形式输出该字母。,#include main() char c;printf(“Input a letter:“);c=getchar();if(

4、c=A ,开始,输入一个字母,定义一个字符变量,输出字母,结束,大写字母?,转换为小写字母,真(非0),假(0),选择结构,一、if语句的三种形式 2、 if(表达式) 语句1 else 语句2,例:输出实数x,y中的较大者。,#include main() float x,y;printf(“Input x,y:“);scanf(“%f,%f“, ,开始,输入两个实数,定义两个实型变量,输出x,结束,xy?,输出y,真(非0),假(0),选择结构,一、if语句的三种形式 3、 if(表达式1) 语句1else if(表达式2) 语句2. . . . . .else if(表达式n) 语句ne

5、lse 语句n+1,例:输入百分制成绩,要求输出相应的五级制成绩。 百分制成绩与五级制成绩之间的转换标准为: 90分以上为“A”;8089分为“B”;7079分为“C”; 6069分为“D”;60分以下为“E”。,#include main() int score;printf(“Please input the score(0100):“);scanf(“%d“,else if(score=80)printf(“Bn“);else if(score=70)printf(“Cn“);else if(score=60)printf(“Dn“);elseprintf(“En“);getch();

6、,例:在一对/*/之间补充程序,使对其输入的一个月工资数额,求应交税款。设应交税款的计算公式如下: 如: 输入:4500 输出:f(4500.00)=30.00 输入:6500 输出:f(6500.00)=195.00 输入:9500 输出:f(9500.00)=645.00,#include void main() float x;double y;printf(“Please input a number:n“);scanf(“%f“, ,if(x=3500) y=0;else if(x=5000) y=(x-3500)*0.03;else if(x=8000) y=(x-3500)*0.

7、1-105;else if(x0) y=1; else y=0;,例:有如下一函数,请判断以下哪个程序是正确的?,程序4: main() int x,y;scanf(“%d“, ,y=0; if(x=0) if(x0) y=1; else y=-1;,例:以下程序的输出结果是?,#include main() int a,b,c,x;a=b=c=0;x=35;if(!a)x-;else if(b);if(c)x=3;else x+=4;printf(“x=%dn“,x); ,x=38,选择结构,二、switch语句,switch 语句的一般形式: switch(表达式) case 常量表达式1

8、:语句组1;break;case 常量表达式2:语句组2;break;case 常量表达式n:语句组n; break;default:语句组n+1; ,多分支选择结构:根据一个表达式的不同取值来实现对分支的选择。,#include main( ) char grade;grade=getchar();grade=(grade=a ,每个分支的常量的值必须互不相同,各个分支允许内嵌多个语句,而且可以不用括起来,最后一个分支可以不加break语句,#include main( ) char grade;grade=getchar();switch(grade)default:printf(“Err

9、orn“);break;case A:case a:printf(“90100n“);break;case B:case b:printf(“8089n“);break;case C:case c:printf(“7079n“);break;case D:case d:printf(“6069n“);break;case E:case e:printf(“60n“);break; ,无论default分支是否最后出现,它都是作为最后一个分支来考虑,允许多个case共用一组执行语句,例:以下程序的输出结果是? main() int x=1,y=0,a=0,b=0;switch(x) case 1

10、 :switch(y) case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“a=%d,b=%dn“,a,b); ,a=2,b=1,break;,a=1,b=0,例:运行以下程序段,结果为:( ) int t=3; switch(t) case 1:printf(“1“);break;case 2:printf(“2“);break;case 3:printf(“3“);break;default: printf(“Error!“); A) 1 B)2 C) 3 D) Error!,D,int t=49;

11、,A,循环结构,循环结构的特点是在给定的条件成立时,反复执行某程序段,直到条件不成立。 循环条件:给定的条件 循环体:反复执行的程序段,C语言的循环控制语句有三种: while语句 do-while语句 for语句,循环结构(while),while(循环条件表达式) 循环体,main() int n=1,sum=0;while(n=100) sum+=n;+n;printf(“n=%d,sum=%dn“,n,sum); ,去掉花括号?,while(n=100);?,循环结构(do-while),do循环体while(循环条件表达式);,main() int n=1,sum=0;dosum+=

12、n+;while(n=100);printf(“n=%d,sum=%dn“,n,sum); ,勿忘分号“;”,While与do-while的比较,main() int sum=0,n;scanf(“%d“, ,main() int sum=0,n;scanf(“%d“, ,输入1时,结果相同,都是输出55,输入11时,结果就不相同了,分别输出0和11,循环结构(for),for(表达式1;表达式2;表达式3) 循环体,main() int n,sum=0;for(n=1;n=100;n+)sum+=n;printf(“n=%d,sum=%dn“,n,sum); ,表达式1只执行一次,常用于对循

13、环变量赋初值,表达式2:循环条件表达式,表达式3常用于循环变量的更新,每次执行完循环体后执行一次,循环结构(for结构的变形),main() int n,sum;for(n=1,sum=0;n=100;sum+=n,n+);printf(“n=%d,sum=%dn“,n,sum); ,for(,;表达式2;,) 循环体 /*表达式1、3用逗号表达式*/,for(;表达式2;表达式3) 循环体 /*表达式1缺省*/,main() int n=1,sum=0;for(;n=100;n+)sum+=n;printf(“n=%d,sum=%dn“,n,sum); ,for(;表达式2;) 循环体 /*

14、表达式1、3缺省*/,main() int n=1,sum=0;for(;n100)break;printf(“n=%d,sum=%dn“,n,sum); ,其它程序流程控制(break),break语句:在switch中退出switch结构;在循环中结束循环。,例:将数字512表示成两个数的和,这两个数分别为15和13的倍数。,main() int i;for(i=1;i+)if(!(512-i*15)%13)break;printf(“%d+%d=512n“,i*15,512-i*15); ,int i;for(i=1;(512-i*15)%13;i+);printf(“%d+%d=512n“,i*15,512-i*15);,其它程序流程控制(continue),continue语句:结束本次循环,跳过循环体后面的语句,开始下一轮循环(循环的短路)。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 高中教育

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