《C语言程序结构》PPT课件.ppt

上传人:s9****2 文档编号:571463289 上传时间:2024-08-11 格式:PPT 页数:36 大小:329.81KB
返回 下载 相关 举报
《C语言程序结构》PPT课件.ppt_第1页
第1页 / 共36页
《C语言程序结构》PPT课件.ppt_第2页
第2页 / 共36页
《C语言程序结构》PPT课件.ppt_第3页
第3页 / 共36页
《C语言程序结构》PPT课件.ppt_第4页
第4页 / 共36页
《C语言程序结构》PPT课件.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《《C语言程序结构》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C语言程序结构》PPT课件.ppt(36页珍藏版)》请在金锄头文库上搜索。

1、第第4章章 C语言程序结构语言程序结构 C语言源程序由多个函数构成,其中有且只有一个语言源程序由多个函数构成,其中有且只有一个 main函数,应用程序的入口点。函数,应用程序的入口点。 函数由函数由函数头函数头和和函数体函数体组成。组成。 函数体由函数体由声明声明和和语句语句组成。组成。 C中语句有中语句有表达式语句表达式语句函数调用语句函数调用语句空语句空语句复合语句复合语句控制语句控制语句C语言语句语言语句n表达式语句表达式语句表达式;表达式;n函数调用语句函数调用语句printf(“hello world”););n复合语句:用复合语句:用括起的多条语句括起的多条语句语句语句1;语句语句

2、2;n空语句空语句;n控制语句控制语句条件语句:条件语句:if语句,语句,switch语句语句循环语句:循环语句:do while语句,语句,while语句,语句,for语句语句转向语句:转向语句:break语句,语句,continue语句,语句,goto语句,语句,return语句语句语句语句是是c+程序中最小的可执行单元。一程序中最小的可执行单元。一条语句由一个分号结束。语句可以很简条语句由一个分号结束。语句可以很简单,也可以很复杂。单,也可以很复杂。复合语句也称为块(语句块),复合语句也称为块(语句块),在语法上起一个语句的作用。在语法上起一个语句的作用。对单个语句必须以对单个语句必须以

3、“;”结束,结束,对复合语句,其中的每个语句仍对复合语句,其中的每个语句仍可以可以“;”结束,而整个复合语结束,而整个复合语句以句以“”结束。结束。4.1 顺序结构顺序结构按语句顺序逐条执行按语句顺序逐条执行例:输入两个整数,输出它们的和例:输入两个整数,输出它们的和void main()int x,y,sum;x=10;y=20;sum=x+y;printf(“%d+%d=%d”,x,y,sum);AB4.2 选择结构选择结构4.2.1 if语句(语句(2个分支选择)个分支选择)n语法形式语法形式if ( 表达式表达式) 语句语句else语句语句n说明:说明:表达式一般为关系表达式或逻表达式

4、一般为关系表达式或逻辑表达式。但并不限于这两种辑表达式。但并不限于这两种表达式,只要表达式类型是任表达式,只要表达式类型是任意数值类型均可。(值为意数值类型均可。(值为0代表代表假,值为非假,值为非0代表真)代表真)语句为内嵌语句,可以是简单语句为内嵌语句,可以是简单语句、复合语句、空语句,控语句、复合语句、空语句,控制语句制语句。条件条件ABYN可选可选例例1:输入一个整数,输出其绝对值:输入一个整数,输出其绝对值例例2:对输入的两个正整数求和,否则提示输入错误。:对输入的两个正整数求和,否则提示输入错误。例例3:输入两个整数,输出其中较大的数:输入两个整数,输出其中较大的数例例4:输入三个

5、整数,判断这三个整数能否作为三角:输入三个整数,判断这三个整数能否作为三角形的三条边形的三条边例例1:输入一个整数,输出其:输入一个整数,输出其绝对值绝对值#include void main()int a,b;scanf(%d,&a);b=a;if(a0)b=-a;printf(%d,b);getch();例例2:对输入的两个正整数求和,否则提示输入错:对输入的两个正整数求和,否则提示输入错误。误。 #include void main()int a,b,sum;scanf(%d%d,&a,&b);if(a0)&(b0)sum=a+b;printf(%d+%d=%d,a,b,sum);els

6、eprintf(输入错误);getch();nif语句嵌套语句嵌套if 语句中,如果内嵌语句又是语句中,如果内嵌语句又是if语句,就构成语句,就构成了嵌套了嵌套if语句。语句。if(条件条件)语句语句else语句语句if(条件条件)语句语句else语句语句if(条件条件)语句语句else语句语句if(条件条件1)语句语句else if(条件条件2)语句语句else if(条件条件3)语句语句else语句语句n例例1:将成绩转换为:将成绩转换为ABCDE五级分制五级分制n例例2:输入三个整数,输出其最大值:输入三个整数,输出其最大值#include void main()int a,b,c,ma

7、x;scanf(%d%d%d,&a,&b,&c);if(ab)if(ac)max=a;elsemax=c;elseif(bc)max=b;elsemax=c;printf(max is %d,max);#include void main()int a,b,c,max;scanf(%d%d%d,&a,&b,&c);if(ab)max=a;else max=b;if(maxc)max=c;printf(max is %d,max);#include void main()int a,b,c,max;scanf(%d%d%d,&a,&b,&c);max=ab?a:b;max=maxc?max:c;

8、printf(max is %d,max);n例例2:输入三个整数,输出其最大值(三种解法):输入三个整数,输出其最大值(三种解法)nif语句嵌套注意事项语句嵌套注意事项else总是与最近的总是与最近的if语句配对语句配对if或或else后是多条语句,必须用后是多条语句,必须用 括起括起if(a=0)if(b=1)a+;elsea- -;if(a=0)if(b=1)a+;elsea- -;if(a=0)if(b=1)a+;elsea- -;if ( x6)if ( y6 )System.out.print(“x=“+x);System.out.print(“y=“+y);if ( x6)if

9、( y6 )System.out.print(“x=“+x);System.out.print(“y=“+y);4.2.2 switch语句(多个分支选择)语句(多个分支选择)n语法形式为:语法形式为:switch(表达式表达式) case 常量表达式常量表达式1:语句序列语句序列1 case 常量表达式常量表达式2:语句序列语句序列2 case 常量表达式常量表达式n:语句序列语句序列n default:语句语句序列序列 n说明:说明:表达式值为整型或字符型表达式值为整型或字符型常量表达式值与条件表达式同类型,只能是常量,且各个值不能相同常量表达式值与条件表达式同类型,只能是常量,且各个值不

10、能相同default部分可省略部分可省略每个每个case分支可以有多条语句,可以不用分支可以有多条语句,可以不用n执行执行每个每个 case 语句是一个入口点语句是一个入口点可以使用可以使用break;跳出跳出switch语句语句例例1:输入星期的数值,输出对应的英文单词:输入星期的数值,输出对应的英文单词例例2:输出对应月份的天数:输出对应月份的天数程序见书程序见书p48,494.3 循环结构循环结构n提供重复处理的能力提供重复处理的能力 ,当某一特定条件为,当某一特定条件为true时,时,循环语句就重复执行循环语句就重复执行 ,并且,并且 每循环一次就会测试每循环一次就会测试一下循环条件一

11、下循环条件 ,如果为,如果为false 则循环结束则循环结束 ,否则,否则继续循环。继续循环。nC提供了三种支持循环结构的语句:提供了三种支持循环结构的语句:while语句语句dowhile语句语句for语句语句n三者可以完成类似的功能三者可以完成类似的功能 ,不同的是它们控制循,不同的是它们控制循环的方式。环的方式。4.3.1 while语句语句n语法形式语法形式while(表达式表达式)语句语句n说明说明表达式一般是关系表达式表达式一般是关系表达式或逻辑表达式,但不局限或逻辑表达式,但不局限于此。于此。循环条件表达式值为非循环条件表达式值为非0表示真,循环继续,表示真,循环继续,0表表示假

12、,循环停止。示假,循环停止。语句:简单语句,控制语语句:简单语句,控制语句,复合语句,空语句。句,复合语句,空语句。 while语句的执行流程图语句的执行流程图求表达式求表达式 的值的值执行循环体执行循环体语句语句表达式表达式的的值为真值为真?是是否否例例1:求和:求和1+2+100例例2:输入一个正整数,求其阶乘。(:输入一个正整数,求其阶乘。(p50)例例3:求两个正整数的最大公约数。(:求两个正整数的最大公约数。(p51)4.3.2 do-while语句语句n语法形式:语法形式: do 语句语句 while(表达式表达式) ;n与与while语句不同的是语句不同的是do循环中的循环中的

13、至少会执行一次至少会执行一次,而而while语句当条件第一语句当条件第一次就不满足时,语句次就不满足时,语句一次也不会被执行。一次也不会被执行。否是是表达式的表达式的值为真值为真?执行循环体语句执行循环体语句求表达式的值求表达式的值 do-while语句的执行流程图语句的执行流程图例例1:输入一个正整数,求其阶乘。(:输入一个正整数,求其阶乘。(p52)例例2:求和:求和1+2+1004.3.3 for语句语句n语法形式语法形式for(表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句n说明说明表达式表达式1:初值表达式,初始化循环:初值表达式,初始化循环控制变量并控制变量并表达式表

14、达式2:循环条件表达式,判断循:循环条件表达式,判断循环是否进行,非环是否进行,非0为真,执行循序,为真,执行循序,0为假,终止循环。为假,终止循环。表达式表达式3:修改循环控制变量,改变:修改循环控制变量,改变循环条件循环条件 for语句的执行流程图语句的执行流程图否否是是执行表达式执行表达式1求表达式求表达式2的值的值表达式表达式2值值为真为真?执行循环体语句执行循环体语句求表达式求表达式2的值的值例例1:输入一个正整数,求其阶乘。:输入一个正整数,求其阶乘。例例2:求和:求和1+2+100。nfor循环语句头的变化循环语句头的变化for(表达式表达式1;表达式;表达式2;表达式;表达式3

15、)语句语句三个表达式都可选,但三个表达式都可选,但“;”不能省。不能省。表达式表达式1和表达式和表达式3都可以是都可以是“,”分隔的表达式列表分隔的表达式列表逗号运算符:逗号运算符:,逗号表达式:逗号表达式:用逗号将若干个表达式连起来组成的表达式。用逗号将若干个表达式连起来组成的表达式。 例如例如 已知已知 int n,i; i=0,n=1逗号表达式运算:从左到右依次求出各表达式的值,并将逗号表达式运算:从左到右依次求出各表达式的值,并将最后一个表达式最后一个表达式的的值做为整个逗号表达式的值。值做为整个逗号表达式的值。例例1:求和:求和1+2+100。 (p54)循环语句小结循环语句小结1、

16、循环语句要素、循环语句要素循环控制变量、循环终止条件、循环体循环控制变量、循环终止条件、循环体循环控制变量赋初值循环控制变量赋初值每次循环更改循环控制变量每次循环更改循环控制变量2、三种循环语句比较、三种循环语句比较三种语句可以互相替代三种语句可以互相替代循环次数确定:循环次数确定:for语句语句循环次数不定:循环次数不定:n至少执行一次循环体至少执行一次循环体 do-while语句语句n循环体可能一次都不执行循环体可能一次都不执行 while语句语句循环语句嵌套循环语句嵌套例:输出乘法例:输出乘法99表(表(p58)#include void main()int i,j,k;for(i=1;

17、i=9;i+)for(j=1;j=i;j+)k=i*j;printf(%2d*%2d=%2d,i,j,k);printf(n);循环语句与分支语句嵌套循环语句与分支语句嵌套例:显示例:显示ASCII码为码为30到到90的所有字符的所有字符(p57)4.3.4 break和和continue语句语句1、break语句语句n语法形式语法形式break;n用于用于switch语句:跳出语句:跳出switch语句语句n用于循环语句:终止循环,跳出循环语句用于循环语句:终止循环,跳出循环语句2、continue语句语句n语法形式语法形式continue;n用于循环语句:用于循环语句:跳过本次循环,开始下

18、一次循环(跳过本次循环,开始下一次循环(下一次下一次循环是否执行仍然取决于循环条件的判断。循环是否执行仍然取决于循环条件的判断。 )例例1:读取输入的数据,并求和,当输入数据:读取输入的数据,并求和,当输入数据为为0时,结束。(时,结束。(p59)例例2:求满足条件:求满足条件12+22+n2=1000的最大的最大n值(值(p59)例例3:输出:输出200以内所有不能被以内所有不能被7整除的数整除的数(参考(参考p60,61例例4-16,4-17)程序设计程序设计n分析问题,确定解决方法(数学模数学模型,算法思想型,算法思想)n确定数据结构(确定要处理的数据,以确定要处理的数据,以及数据的组织

19、)及数据的组织)n确定算法,描述算法(确定如何处理确定如何处理数据,使用哪些语句,操作流程是什么数据,使用哪些语句,操作流程是什么n编写程序算法描述算法描述n算法描述方法算法描述方法程序流程图程序流程图N-S图图PAD图图伪代码伪代码图形表示图形表示自然语言表示自然语言表示程序流程图程序流程图三种基本成分:三种基本成分:加工步骤加工步骤逻辑条件逻辑条件控制流控制流 A B A Bp真真假假p A真真p A真真假假假假 A B Gi=a=b=c开始开始输入输入ns=s+aa=a+1anYN输出输出 s结束结束例:输入整数例:输入整数n,求小于求小于n的所有整数之和的所有整数之和分析:分析:数学模

20、型:数学模型:sum=1+2+3+n算法思想:循环累加算法思想:循环累加需处理的数据:需处理的数据:n,所求的和所求的和累加的循环控制变量累加的循环控制变量算法描述算法描述s=0,a=0PAD图图PAD图所描述的程序结构图所描述的程序结构十分清晰。十分清晰。图中最左边的竖线是程序图中最左边的竖线是程序的主线,即第一层控制结的主线,即第一层控制结构。构。随着程序层次的增加,随着程序层次的增加,PAD图逐渐向右延伸,每图逐渐向右延伸,每增加一个层次,图形向右增加一个层次,图形向右扩展一条竖线。扩展一条竖线。PAD图中竖线的总条数就图中竖线的总条数就是程序的层次数;是程序的层次数;S1S2S1S2Q

21、Q1Q2Qns1s2snWHILE QSdo while QSc1c2cnS1S2Snswitche=for S例:输入整数例:输入整数n,求小于求小于n的所有整数之和的所有整数之和分析:分析:数学模型:数学模型:sum=1+2+3+n算法思想:循环累加算法思想:循环累加需处理的数据:需处理的数据:n,所求的和所求的和累加的循环控制变量累加的循环控制变量算法描述算法描述输入输入nwhile ans=s+aa+输出输出sa,s初始化初始化开始开始结束结束n例例1:输入一个整数:输入一个整数n,求求2n之间的所有素之间的所有素数(数(p63)n例例2:已知公式:已知公式ex=1+x+x2/2!+x

22、n/n!输入输入x与与n的值,求的值,求ex (p61) 例例1:输入一个整数:输入一个整数n,求求2n之间的所有素数之间的所有素数分析:分析:数学模型:数学模型:求素数:求素数:n%2!=0 & n%3!=0n%(n开方取整开方取整)!=0 ,那么那么n是素数是素数算法思想:算法思想:循环(循环(i从从2到到n判断每个数判断每个数i是否素数)是否素数)循环(循环(j从从2到(到(n的开方取整)判断的开方取整)判断i能否被能否被j整除)整除)需处理的数据需处理的数据n循环控制变量循环控制变量算法描述算法描述 输入输入nfor i=2;in;i+for j=2;jsqrt(i);i+i%j=0f

23、lag=1breakflag=0i是素数是素数flag=0开始开始结束结束例例2:已知公式:已知公式ex=1+x+x2/2!+xn/n!输入输入x与与n的值,求的值,求ex (p61)分析:分析:数学模型数学模型: ex=1+x+x2/2!+xn/n!算法思想算法思想: 输入输入x,输入输入n从从1到到n循环:做累加求和循环:做累加求和累加项累加项数据:数据:x,n,结果结果,临时数据临时数据算法描述算法描述 初始化初始化输入输入x,nfor i=2;in;i+t=xpower/facts=s+txpower=xpower*xfact=fact*i开始开始结束结束输出输出s作业作业np73习题习题3,8

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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