2006C程序设计-第3章.ppt_第1页
2006C程序设计-第3章.ppt_第2页
2006C程序设计-第3章.ppt_第3页
2006C程序设计-第3章.ppt_第4页
2006C程序设计-第3章.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,第三章 程序设计结构,3.1 程序设计结构的基本概念,3.2 顺序结构,3.3 选择结构,3.4 循环结构,3.5 程序举例,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,第三章 程序设计结构,3.1 程序设计结构的基本概念,例2,有两个学生做猜数游戏,学生甲写下一个数让学生乙猜,对于这个猜数游戏可以分两种情况:(1)猜数的机会只有一次,结果只有对错两种情况。(2)猜数的机会有多次,每次给出一个提示,最终学生乙应该能猜中此数。,例1,有一个学生想计算周日花了多少钱,可以把周日一天每一项开销记录下来,并把每项金额累

2、加起来就知道花了多少钱。,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.1.1 结构化程序设计的基本原则,1、自顶向下,2、逐步细化,3、模块化设计,4、结构化编码,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.1.2程序设计的三种基本结构,1966年,Bohra和Jacopini提出了以下3种基本结构,用这3种基本结构可以完整表述处理问题的所有操作步骤。,一、顺序结构。,问题:假设一个学生一天的开销如下:买牙膏(toothpaste) 3.2元买香皂(soap) 2元买洗发液(shampoo)12.5元买书(book) 46元,C程序设计 庞振平等

3、 华南理工大学出版社 第三章 程序设计结构,二、选择结构。,问题:学生甲出示一个数,让学生乙猜。只给一次机会。,结束,用虚线框起部分是选择结构,此结构一定包含一个判断,根据比较判断结果的不同,执行的结果不同。,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,三、循环结构。,问题:学生甲出示一个数,让学生乙猜。直到猜对为止。,结束,上述的三个问题,使用了三种结构来完成的,这三种算法,用传统流程图画出。,用虚线框起部分是循环结构,此结构包含一个判断,根据比较判断的结果,猜数、比较、猜错了要重复执行多次。,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.2 顺序结

4、构,3.2.1 C语句,1、表达式语句,2、控制语句语句,3、函数调用语句,4、复合语句,5、空语句,toothpaste = 3.2 ; soap = 2.0 ; sum = toothpaste + soap ;,if( )else for( ) while( ) dowhile( ) continue break switch goto return,printf(“This is a stringn”); scanf(“%d%d”,if(x+y!=0) z=x+y; t=z/100; printf(“%f”,t); else printf(“%f”,x+y);,;,C程序设计 庞振平等

5、 华南理工大学出版社 第三章 程序设计结构,3.2.2 顺序结构程序设计,【例3-1】统计一天的费用。,#include void main() float toothpaste, soap, shampoo, book,sum; toothpaste=3.2; soap=2; shampoo=12.5; book=46.0; sum=0; sum= toothpaste+ soap+ shampoo+ book; printf(“%f”,sum); ,头文件,主函数,复合语句,变量说明语句,赋值语句,求和表达式,输出语句,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,【例3

6、-2】编写一程序,读入一数字字符09,并把其转换为相应的整数后显示出来。,#include “stdio.h” void main() int d; char c; c=getchar(); d=c-48; printf(“%dn”,d); ,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,【例3-4】从键盘输入一个大写字母,要求改用小写字母输出。,#include void main() char c1,c2; c1=getchar(); printf(“c,dn”,c1,c1); c2=c1+32; printf(“c,dn”,c2,c2); ,程序运行结果: A A ,6

7、5 a,97,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,【例3-5】有两个容器装满不同的液体,现在想把两个容器中的液体对调过来,编写一个程序实现这一过程 。,#include void main() int ca1,ca2,cat; ca1=10; ca2=20; cat=ca1; ca1=ca2; ca2=cat; printf(“%d,%d”,ca1,ca2); ,10,20,10,20,10,程序运行结果: 20,10,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.2.3 图形输入输出,C语言有两种输入输出方式。 其一是字符方式,将屏幕看成25

8、行,80列个字符。 其二是将屏幕看成点阵方式,具体的点数视显示卡所支持的点数和颜色。 在TRUBO C 中在使用图形输入输出时,必须加入头文件。 #include ,1、图形模式的初始化函数 函数名: initgraph 用 法: void initgraph(int 功 能: 图形模式的初始化,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,2、清屏函数 函数名: cleardevice 用 法: void cleardevice(void); 功 能: 该函数用来清除图形屏幕内容。,3、设置背景色函数 函数名: setbkcolor 用 法: void setbkcolor

9、( int color); 功 能: 该函数用来设置图形屏幕的背景颜色。,4、设置前景色函数 函数名: setcolor 用 法: void setcolor(int color); 功 能: 该函数用来设置图形屏幕的前景颜色。,屏幕颜色符号常量表,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,5、设定填充方式函数 函数名: setfillstyle 用 法: void setfillstyle(int pattern, int color); 功 能: 该函数用来设定填充方式,color的值是当前屏幕图形模式时颜色的有效值。,关于填充式样pattem的规定,C程序设计 庞振

10、平等 华南理工大学出版社 第三章 程序设计结构,6、封闭图形的填充函数 函数名: bar 用 法: void bar(int x1, int y1, int x2, int y2); 功 能: 该函数用来确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口,再按规定图形模式和颜色填充。,7、图形模式下的文本输出函数 函数名: outtextxy 用 法: void outtextxy(int x, int y, char *textstring); 功 能: 该函数输出字符串指针textstring所指的文本在规定的(x, y)位置。 其中x和y为象元坐标。,C程序设计 庞

11、振平等 华南理工大学出版社 第三章 程序设计结构,8、输出字符设置函数 函数名: settextstyle 用 法: void settextstyle(int font, int direction, int charsize); 功 能: 该函数用来设置输出字符的字形、输出方向和字符大小等特性。Turbo C 2.0,font 取值范围,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.3 选择结构,3.3.1 用if语句实现选择结构,1、 用if语句实现二分支选择结构,语句的格式:if() ;else ;,牢记:表达式非“0”为“真”,C程序设计 庞振平等 华南理工大学

12、出版社 第三章 程序设计结构,2、 用if语句实现多分支选择结构,语句的格式:if() ;else if() ;else if() ;else if() ;else ;,【例3-12】从键盘上输入一个字符,判断输入字符种类。#include void main() char c; printf(Enter a character:); c=getchar(); if(c=0,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3、 if语句的嵌套,语句的格式:if ( 表达式1 ) if ( 表达式2) 语句 1 else 语句 2else if ( 表达式3 ) 语句 3 els

13、e 语句 4,语句1,语句2,语句3,语句4,【例3-13】有一函数 -1 (x0)编一程序,输入一个x值,输出y值。#include “stdio.h”void main()int x,y; scanf(“%d”,4、if和goto语句构成循环,一般形式 goto 语句标号;,功能:无条件转移语句 语句标号说明: 不能用整数作标号。 只能出现在goto所在函数内,且唯一。 只能加在可执行语句前面。 限制使用goto语句。,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,例 用if 和goto语句构成循环,求1到100之和,/ #include void main() int

14、i,sum=0; i=1; loop: if(i=100) sum+=i; i+; goto loop; printf(%d,sum); ,sum=0+1 sum=1+2=3 sum=3+3=6 sum=6+4 sum=4950+100=5050,循环初值,循环终值,循环变量 增值,循环条件,循环体,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.3.2 用switch实现多分支选择结构,switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; break; . c

15、ase En: 语句组 n; break; default: 语句组 ; break; ,【例3-17】输入某年某月某日,判断这一天是这一年的第几天?,#include void main() int day,month,year,sum,leap; printf(nplease input year,month,dayn); scanf(%d,%d,%d, ,sum=sum+day; if(year%400=0|(year%4=0 ,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,例 switch(score) case 5: printf(“Very good!”); ca

16、se 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: case 1: case 0: printf(“Fail!”); default : printf(“data error!”); ,运行结果:score为5时,输出: Very good! Good! Pass! Fail! data error!,例 switch(score) case 5: printf(“Very good!”);break; case 4: printf(“Good!”); break; case 3: printf(“Pass!”); break; ca

17、se 2: case 1: case 0: printf(“Fail!”); break; default : printf(“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,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.3 循环结构,3

18、.4.1 while循环结构 语句格式: while (表达式) 循环体语句,当表达式为非0值时,执行while语句中的内嵌语句,其特点是先判断表达式,后执行语句。,(1)循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句的形式出现。如果不加花括号,则while语句的范围只到while后面第一个分号处。,(2)在循环体中应有使循环趋向于结束的语句。,(3)循环体有可能一次也不执行,(4)循环体可为任意类型语句,当条件表达式不成立(为零)或循环体内遇到break,return语句退出循环。,【例3-18】编写一个程序,求1到100的和。 #include void main() int

19、 i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum); ,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.4.2 dowhile循环结构 语句格式: do 循环体语句 while(表达式);,它与while语句基本类似,唯一的差别是dowhile在没有判别表达式前先执行一次指定的循环体语句。,【例3-20】用dowhile循环语句,求1到100的和。 #include void main() int i,sum=0; i=1; do sum+=i; i+; while(i=100); printf(%d,sum)

20、; ,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.4.3 for循环结构 语句格式: for(表达式1;表达式2;表达式3) 循环体语句,(1)表达式1用来确定循环变量的初值,表达式2用来确定循环条件和终值,表达式3用来修改循环条件控制变量。,(2)for语句中表达式1,表达式2,表达式3 可以是任意类型,都可省略,但分号“;”不可省。,(3)当三个表达式全部省略时,for语句构成无限循环,形式如:for( ; ;)。(4)for语句可以转换成while结构。,(5)for语句执行过程:先求解表达式1;再求解表达式2,若其值为真(值为非0),则执行for语句的内嵌循环体

21、语句,若其值为假(值为0),则结束循环;执行完循环体语句后,执行表达式3,再接着从表达式2开始执行。,【例3-21】用for循环语句,求1到100的和。 #include void main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum); ,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.4.4 循环嵌套 (1)三种循环可互相嵌套,嵌套的层数不限。下面的几种嵌套形式都是合法的:,形式1: while() while() . ,形式2: while() do while( ); . ,形式3: for( ; ;

22、) do while(); while() . ,(2)外层循环可包含两个以上内循环,但内层不能相互交叉。(3)循环嵌套的执行流程是从外层循环开始执行,再进入内层循环执行,内层循环执行完毕后,退到外层循环接着执行。,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,【例3-23】编写一个程序,输出小九九表 #include void main() int i,j; for(i=1;i10;i+) printf(%4d,i); printf(n-n); for(i=1;i10;i+) for(j=1;j10;j+) printf(j=9)?%4dn:%4d,i*j); ,应用题举例

23、,该题存在的问题,讨论,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.4.5 break 语句 语句格式: break;说明: 当break语句出现在switch语句或循环语句中时,执行到break语句就退出switch语句或循环语句。,【例3-24】输出圆面积,面积大于100时停止。 #define PI 3.14159 void main() int r; float area; for(r=1;r100) break; printf(r=%d,area=%.2fn,r,area); ,C程序设计 庞振平等 华南理工大学出版社 第三章 程序设计结构,3.4.6 continue 语句 语句格式: continue;说明: 其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,根据循环条件的判定,决定是否进行下一次循环。,【例3-25】求输入的十个整数中正数的个数及其平均值。 #include void main() int i,num

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论