[其它考试]2C语言快速入门2分支循环.ppt
《[其它考试]2C语言快速入门2分支循环.ppt》由会员分享,可在线阅读,更多相关《[其它考试]2C语言快速入门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,顺序结构,#includevoid main()float x,x1,x2,y;printf(“请输入x的值“);scanf(“%f”,#include#includ
3、evoid 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;,计算两个数中的最小者,printf(%d,min);,main()int num1,num2,min;scanf(%d%d,C 程序:计算两个数中的
4、最小者,2.7.1 基本选择结构(ifelse结构),选择结构的基本编程模式,if语句的三种基本形式,模式1:单选择if语句语句格式:if(条件)语句组;,功能:判断条件为真时执行语句否则跳过语句,条件可以是关系表达式或逻辑表达式,#includemain()float a;scanf(“%f”,分析:对于任意给定的一个数a,如果a0,绝对值等于它自身,不需要做任何处理;如果a0,则-a就是a的绝对值,显然本例使用编程模式1。,【例】从键盘输入一个实数a,然后输出其绝对值。,模式2:双选择if语句,5.1 if语句,语句格式:if(条件)语句组1;else 语句组2;,功能:判断条件为真时执行
5、语句组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;,【例】从键盘任意输入三个数,输出三个数中最大的数,#includemain()float a,b,c,max3;printf(输入三个数a,b,c:);scanf(%f%f%f,模式3:多条件的if语句,语句格式:if(条件1)语句1;else if(条件2)语句2;el
6、se if(条件3)语句3;else if(条件m)语句m;else 语句n;,功能:从多组语句中选择满足条件的语句组执行。,3.多条件的if语句,从键盘输入一个整数a,按其值的大小分别输出a1000,例,main()int a;scanf(“%d”,从四个条件中选择一个为真的执行,说明:,在if-else语句中,一般采用“缩进”的书写形式来表示“语句1”或“语句2”所属的层次。缩进仅是一种书写形式,没有逻辑意义if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,银行存款本金计算:,main()int year;float money,rate,total;pr
7、intf(Input money and year=?);scanf(%f%d,银行存款本金计算:期满总金额=本钱+本钱月息 月数,例,2.7.2 条件运算符,条件运算符是一个三元运算符,其格式如下:,expr1?expr2:expr3,if(expr1)expr2;else expr3;,等价,if(num1 num2)min=num1;elsemin=num2;printf(“Smallest:%dn”,min);,min=num1 num2?num1:num2;printf(“Smallest:%dn”,min);,例:计算最小值,【例2.7-3】(字符大写转小写)输入一个字符,判别它是
8、否大写字母,如果是,将它转换成小写字母;如果不是,不转换。,main()char ch;scanf(%c,例:体型判断,按“体指数”对肥胖程度进行划分:体指数t=w/h2(体重w单位为公斤,身高h单位为米)当t 18时,为低体重;当18 t 25时,为正常体重;当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时,为超重体重;
9、当t 27时,为肥胖。,#include main()float h,w,t;printf(Please enter h,w:);scanf(%f,%f,18 25 27,例,当t 18时,为低体重;当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的值(整型
10、)让expr依次同M1,M2,进行比较,多分支选择,switch(expression)case value1:statement1;break;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_,
11、JanuaryEnd _,多分支选择,Example:switch(month)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;de
12、fault:printf(“Othersn”);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-2;break;ca
13、se 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,3,4:/错误:case子句只能有一个常量表达式 prin
14、tf(“%d%d%d”,2,3,4);,2.8 循环结构,我们之所以感到计算机无所不能,是因为计算机能不厌其烦地重复大量枯燥的工作。,循环问题,例,求:,分析,s=1+2+3+x,问题被简化为做加法:,最基本的执行语句就是循环体内的语句。其次要考虑在进入循环之前和结束循环之后计算机应该完成的操作。,循环是有规律的重复操作。将复杂问题分解为简单的操作过程,程序只对简单过程描述,这些过程的多次重复就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不可少!,#include main()int i,n,s;printf(输入自然数n=);scanf(%d,10s=55100s=5050255
15、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);,循环控制变量,循环 在某个条件成立的前提下,重复地执行一个语句块。在循环过程中会不断地检测条件是否成立,当条件不再成立时,循环结束,特点:是先判断控制条件,如果条件成立则执行语句序列,否则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其它考试 其它 考试 语言 快速 入门 分支 循环
链接地址:https://www.31ppt.com/p-6034132.html