[其它考试]2_C语言快速入门2分支循环.ppt
《[其它考试]2_C语言快速入门2分支循环.ppt》由会员分享,可在线阅读,更多相关《[其它考试]2_C语言快速入门2分支循环.ppt(79页珍藏版)》请在三一文库上搜索。
1、第2章 C语言快速入门 (2),程序控制结构 顺序结构 选择结构 循环结构,2.5 程序控制结构,C语言的语句(statement)以“;”作分隔符,编译后产生机器指令。C语言语句可分为两大类:简单语句和复合语句。,2.5.1 语句概述,简单语句 说明语句 变量说明语句 函数原型说明语句 表达式语句 空语句 流程控制语句 复合语句,2.5.2 结构化程序设计,基本思想:任何程序都可以用三种基本结构表示, 顺序结构 选择结构 循环结构 在程序中限制使用无条件转移语句(goto)。 结构化程序:由三种基本结构反复嵌套构成的程序叫结构化程序。 优点:结构清晰,易读,提高程序设计质量和效率,2.6 顺
2、序结构,按照解决问题的自然顺序写出相应的程序语句 它的执行顺序是自上而下,依次执行。,例:交换两个变量的值 int a=5,b=10; int t; t=a; a=b; b=t;,这个顺序不能乱,例:输入三角形边长,求面积,#include #include main() float a,b,c,s,area; printf(“请输入三角形三条边长“); scanf(“%f%f%f“, ,输入:3 4 6 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33,顺序结构,#include void main() float x,x1,x2,y; prin
3、tf(“请输入x的值“); scanf(“%f”, ,#include #include void main() float a,y; printf(“请输入a的值“); scanf(“%f“, ,2.7 选择结构,如果没有条件判断语句,世界上最先进的计算机也只是一个计算器。选择结构使得计算机表现出具有智能。,自然语言:如果那么 否则 C语言:选择结构,问题引入:计算两个数中的最小者.,num1 num2,min,?,Input,Process,Output,scanf(“%d%d“,if (num1 num2) min = num1; else min = num2;,计算两个数中的最小者,
4、printf(“%d“, min);,main() int num1, num2, min; scanf(“%d%d“, ,C 程序:计算两个数中的最小者,2.7.1 基本选择结构(ifelse结构),选择结构的基本编程模式,if语句的三种基本形式,模式1: 单选择if语句 语句格式: if (条件) 语句组;,功能:判断条件为真时执行语句否则跳过语句,条件可以是关系表达式或逻辑表达式,#include main() float a; scanf(“%f”, ,分析:对于任意给定的一个数a,如果a0,绝对值等于它自身,不需要做任何处理;如果a0,则-a就是a的绝对值,显然本例使用编程模式1。,
5、【例】从键盘输入一个实数a,然后输出其绝对值。,模式2: 双选择if语句,5.1 if语句,语句格式: if (条件) 语句组1; else 语句组2;,功能:判断条件为真时执行语句组1否则执行语句组2,分析: 假设有三个数a,b,c,用变量max3表示三个数中的最大的数。 将三个数分成两组,a,b为一组,c为一组; 先求a,b中的最大数,如果 ab,则max3=a,否则max3=b; 将a,b的最大数max3与c比较,如果max3c,则max3就是三个数中的最大数,否则c是三个数中的最大数,max3=c;,【例】从键盘任意输入三个数,输出三个数中最大的数,#include main() fl
6、oat a,b,c,max3; printf(“输入三个数a,b,c:“); scanf(“%f%f%f“, ,模式3: 多条件的if语句,语句格式: if (条件1) 语句1; else if (条件2) 语句2; else if (条件3) 语句3; else if (条件m) 语句m; else 语句n;,功能: 从多组语句中选择满足条件的语句组执行。,3.多条件的if语句,从键盘输入一个整数a,按其值的大小分别输出a1000,例,main() int a; scanf(“%d”, ,从四个条件中选择一个为真的执行,说明:,在if-else语句中,一般采用“缩进”的书写形式来表示“语句1
7、”或“语句2”所属的层次。 缩进仅是一种书写形式,没有逻辑意义 if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,银行存款本金计算:,main( ) int year; float money,rate,total; printf(“Input money and year =?“); scanf(“%f%d“, ,银行存款本金计算: 期满总金额= 本钱 +本钱月息 月数,例,2.7.2 条件运算符,条件运算符是一个三元运算符,其格式如下:,expr1 ? expr2: expr3,if(expr1) expr2; else expr3;,等价,if (num
8、1 num2) min = num1; else min = num2; printf(“Smallest: %dn”, min);,min = num1 num2 ? num1 : num2; printf(“Smallest: %dn”, min);,例:计算最小值,【例2.7-3】(字符大写转小写)输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。,main() char ch; scanf(“%c“, ,例:体型判断,按“体指数”对肥胖程度进行划分: 体指数t = w / h2 (体重w单位为公斤,身高h单位为米) 当t 18时,为低体重; 当18 t 2
9、5时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。 编程从键盘输入你的身高h和体重w,判断你的体重属于何种类型。,例,#include main() float h, w, t; printf(“Please enter h,w:“); scanf(“%f, %f“, ,当t 18时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。,#include main() float h, w, t; printf(“Please enter h,w:“); scanf(“%f, %f“, ,18 25 27,例,当t 1
10、8时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。,2.7.3 多分支选择结构(switchcase),switch(expr) case M1: S_1; break; case M2: S_1; break; case Mn: S_n; break; default: S_d; ,switch语句的执行过程是: 计算expr的值(整型) 计算出每个常量表达 式M1,M2,Mn的值(整型) 让expr依次同M1,M2, 进行比较,多分支选择,switch (expression) case value1 : statement1; b
11、reak; case value2 : statement2; break; default : statementX; break; ,Example: switch (month) case 1: printf(“Januaryn”); break; case 2: printf(“Februaryn”); break; case 3: printf(“Marchn”); break; default: printf(“Othersn”); break; printf(“End”);,January _,January End _,多分支选择,Example: switch (month)
12、 case 1: printf(“Januaryn”); break; case 2: printf(“Februaryn”); break; case 3: printf(“Marchn”); break; default: printf(“Othersn”); break; printf(“End”);,多分支选择,Example: switch (month) case 1: printf(“Januaryn”); break; case 2: printf(“Februaryn”); case 3: printf(“Marchn”); break; default: printf(“O
13、thersn”); break; printf(“End”);,February _,March _,End _,多分支选择,Example: switch (month) case 1: printf(“Januaryn”); case 2: printf(“Februaryn”); case 3: printf(“Marchn”); default: printf(“Othersn”); break; printf(“End”);,若 month = 1 ?,若month = 34 ?,多分支选择,switch(ch) case a: case A: d1=(x+y)/2; d2=x*y-
14、2; break; case b: case B: d1=(a+b)/2; d2=a*b-2; break; default: printf( “Input error!n”); exit(1); ,【例】分析下面switch语句的执行过程。,【例】分析下面程序段中的错误,float x=2; int a=3,b=1; switch(2*x) /错误:2*x是浮点型表达式 case 2.5: /错误:2.5是浮点常量表达式 printf(“%f”,2*x); break; case a+b: /错误:a+b不是整型常量表达式,因为a,b是变量 printf(“%d”,a+b); case 2,
15、3,4: /错误:case子句只能有一个常量表达式 printf(“%d %d %d”,2,3,4); ,2.8 循环结构,我们之所以感到计算机无所不能,是因为计算机能不厌其烦地重复大量枯燥的工作。,循环问题,例,求:,分析,s=1+2+3+x,问题被简化为做加法:,最基本的执行语句就是循环体内的语句。其次要考虑在进入循环之前和结束循环之后计算机应该完成的操作。,循环是有规律的重复操作。将复杂问题分解为简单的操作过程,程序只对简单过程描述,这些过程的多次重复就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不可少!,#include main() int i,n,s; printf(“
16、输入自然数n=“); scanf(“%d“, ,10 s=55 100 s=5050 255 s=32640,运行,计算前n个自然数的和,for(表达式1;表达式2;表达式3) S;,for循环结构,循环起始条件,循环结束条件,循环增量,for语句的执行过程 首先执行表达式1。 如果表达式2的值为非0,就重复执行语句S和表达式3,直到表达式2的值为0时止,#include void main() int i,s=0; for(i=1;i=100;i+) s= s+i; printf(“s=%d,i=%dn“,s,i); ,循环控制变量,循环 在某个条件成立的前提下,重复地执行一个语句块。在循环
17、过程中会不断地检测条件是否成立,当条件不再成立时,循环结束,特点:是先判断控制条件,如果条件成立则执行语句序列,否则退出循环。,条件,N,语句序列,Y,While 循环语句(当型循环),格式: while (表达式) 循环体语句;,2.双选择if语句,main() int i=1,s=0,n; scanf(“%d“, ,计算前n个自然数的和,注意:1、如果语句超过一个,则必须用 构成复合语句 2、在循环体中应有改变循环条件值的语句,void main( ) int counter=1, sum=0, n; while (counter6) scanf(“%d“, ,注意: counter 不参
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其它考试 其它 考试 _C 语言 快速 入门 分支 循环
链接地址:https://www.31doc.com/p-2002413.html