C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章

上传人:E**** 文档编号:89384877 上传时间:2019-05-24 格式:PPT 页数:26 大小:100KB
返回 下载 相关 举报
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章_第1页
第1页 / 共26页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章_第2页
第2页 / 共26页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章_第3页
第3页 / 共26页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章_第4页
第4页 / 共26页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章》由会员分享,可在线阅读,更多相关《C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第四章(26页珍藏版)》请在金锄头文库上搜索。

1、1,第4章 C语言程序控制结构,2,4.1 顺序结构,顺序结构是最简单的C语言程序结构,也是C语言程序中最常用的程序结构。 顺序结构程序的设计步骤如下: (1)用预处理命令包含文件或进行宏定义(随情况而定,不必须); (2)定义变量; (3)为变量赋初值; (4)进行运算和数据处理; (5)输出运算结果数据。,3,4.2 分支结构,在顺序结构程序中,程序的流程是固定的,不能发生跳转,只能按照语句书写的先后顺序逐条逐句执行。如果希望计算机根据不同的情况采取不同的动作,就要使用分支结构,就像打乒乓球一样,要根据对方当前打的球来决定自己该怎么打。在C语言中,用if条件语句和switch多分支选择语句

2、来实现选择程序结构。实际上,也可以用if语句来代替switch语句。,4,4.2.1 if条件语句,在C语言中,条件语句的一般形式如下: if(表达式) 语句1; else 语句2; 上述结构表示:如果表达式的值为非0(True)即真, 则执行语句1,执行完语句1从语句2后开始继续向下执行;如果表达式的值为0(False)即假,则跳过语句1而执行语句2。,5,4.2.2 switch多分支选择语句,在编写程序时,经常会碰到按不同情况分转的多路问题,这时可用嵌套ifelseif语句来实现,但ifelseif语句使用不方便,并且容易出错。对这种情况,C语言提供了一个多分支选择语句,其格式为: sw

3、itch(表达式) case 常量1: 语句1或空; break; case 常量2: 语句2或空; break; case 常量n; 语句n或空; break; default: 语句n+1或空; 执行switch开关语句时,将变量逐个与case后的常量进行比较,若与其中一个相等,则执行该常量下的语句,若不与任何一个常量相等,则执行default后面的语句。,6,4.3 循环结构,在许多问题中,我们需要根据条件重复地做某事,这时就要用到循环控制结构,在C语言中,有以下几种循环语句: for语句 while语句 dowhile语句,7,4.3.1 for语句,C语言中的for语句应用非常灵活,

4、其主要用于定数循环,也可用于不定数循环。其形式如下: for(表达式1;表达式2; 表达式3) 循环语句; 表达式1一般是一个初始化赋值语句,它用来给循环控制变量赋初值;表达式2一般是一个条件表达式,它决定什么时候退出循环;表达式3一般是一个增量表达式,定义循环控制变量每循环一次后按什么方式变化。这3个部分之间用;隔开。,8,4.3.2 while语句,while循环的一般形式为: while(表达式) 循环语句; while循环表示当表达式为真时,便执行循环语句。直到表达式为假才结束循环。并继续执行循环程序外的后续语句。其执行步骤如下: (1)对表达式进行判断; (2)表达式为真则执行循环语

5、句,为假则退出循环; (3)执行循环语句后再次对表达式进行判断; (4)跳到步骤(2)执行。,9,4.3.3 dowhile语句,dowhile循环的一般格式为: do 循环语句; while(表达式); 这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假则终止循环。因此,dowhile循环至少要执行一次循环语句。 其执行步骤如下: (1)先执行循环语句; (2)判断表达式的值是真是假,若为真重复步骤(1);若为假退出循环。 同样,当有许多语句参加循环时,要用和把它们括起来。,10,4.3.4 循环嵌套,上面所讲的3种循环语句是可以相

6、互嵌套的,可以在一个循环体的内部出现另一条循环语句,这种嵌套在理论上来说可以是无限的。 例如,可用以下的程序段来把矩阵数据读入数组data55中(有关数组的知识在第5章介绍): int data55,i,j; for(i=0;i5;i+) for(j=0;j5;j+) scanf(“%d“,11,同样把数组中的数据输出到显示器上的程序段可以写为: for(i=0;i5;i+) for(j=0;j5;j+) printf(“%3d“,aij); printf(“n“); 在上面的程序段中,先执行外层循环i=0,然后进入内循环,当内循环执行5次后退出内循环,进行第二次外循环i=1,然后内循环再执行

7、5次,直到i=5时退出循环,这个循环共执行5*5=25次。,12,4.4 break,continue和goto语句,4.4.1 break语句 break语句通常用在循环语句和开关语句中。当break语句用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch 中的用法已在前面介绍开关语句时的例子中涉及到,这里不再举例。 当break语句用于dowhile,for,while循环语句中时,可使程序终止循环而执行循环后面的语句。通常break语句总是与if语句联在一起,即满足条件时便跳出循

8、环。,13,4.4.2 continue语句,continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。 continue语句只用在for,while,dowhile等循环体中,常与if条件语句一起使用,用来加速循环。应注意的是, 本语句只结束本层本次的循环,并不跳出循环。,14,4.4.3 goto语句,goto语句是一种无条件转移语句,与BASIC中的goto语句相似。goto 语句的使用格式为: goto 标号; 其中标号是按标识符规定书写的符号,这个标识符加上一个:一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。另外标号必须与goto语句同

9、处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。 在结构化程序设计中一般不主张使用goto语句,以免造成程序流程的混乱,使理解和调试程序产生困难。,15,4.5 上机实训,实验目的: 结构化程序设计是良好程序开发的要求,本实验要求掌握结构化程序设计的3种基本方法:顺序、选择和循环及其应用。 实验内容: 求圆的周长和面积 交换两个数的值 英文字母大小写转换程序 闰年的判别 用switch语句求分段函数的值 九九乘法表 求n!,16,4.5.1 求圆的周长和面积,设计一个顺序结构程序,输入圆的半径,求其周长和面积。 编写程序代码如下

10、: #include #define PI 3.14 /*把3.14定义为标识符PI*/ void main() float radius,perimeter,area;/*radius是半径,perimeter是周长,area是面积*/ printf(“Please input the radius of the circle:n“); scanf(“%f“, 程序运行结果: Please input the radius of the circle: 33 The perimeter of the circle is 207.240005 The area of the circle is

11、 3419.459961,17,4.5.2 交换两个数的值,编写一个顺序结构程序,由键盘输入两个数,并交换这两个数的值。 编写程序代码如下: #include void main() int x,y,temp; printf(“Please input two numbers:n“); scanf(“%d%d“, 程序运行结果: Please input two numbers: 22 33 Before changed:x=22,y=33 After changed:x=33,y=22,18,4.5.3 英文字母大小写转换程序,编写一个带ifelse语句的选择程序,如果输入的字母是大写字母,

12、将其转化为小写小母;如果是小写字母,则将其转化为大写字母。 编写程序代码如下: #include void main() char ch1,ch2; printf(“Please input the character:“); scanf(“%c“,19,else if(ch1=a 程序运行结果: Please input the character:Q After changed:q,20,4.5.4 闰年的判别,编写一个程序,判别所输出的年份是否为闰年。 编写程序代码如下: #include void main() int year,flag=0; /*flag为1是闰年,为0为非闰年*/

13、 printf(“Please input the year:“); scanf(“%d“, else ,21,if(year%400=0) flag=1; if(flag) printf(“%d is a leap year.n“,year); else printf(“%d is not a leap year.n“,year); 程序运行结果: Please input the year:2005 2005 is not a leap year.,22,4.5.5 用switch语句求分段函数的值,用switch语句求下列分段函数的值。 x0 编写程序代码如下: #include voi

14、d main() float x,y; int flag; printf(“x=“); scanf(“%f“, if(x0),23,flag=-1; else if(x0) flag=1; else flag=0; switch(flag) case -1: y=x*x+1; break; case 0: y=100; break; case 1: y=2*x+10; break; printf(“f(x)=%f“,y); 程序运行结果: x=30 f(x)=70.000000,24,4.5.6 九九乘法表,编写一个for循环程序,输出九九乘法表。 编写程序代码如下: #include voi

15、d main() int i,j; for(i=1;i=9;i+) for(j=i;j=9;j+) printf(“%dx%d=%d “,i,j,i*j); printf(“n“); ,25,程序运行结果: 1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45 6x6=36 6x7=42 6x8=48 6x9=54 7x7=49 7x8=56 7x9=63 8x8=64 8x9=72 9x9=81,26,4.5.7 求n!,编写一个求n!的程序,用while循环来实现。 编写程序代码如下: #include void main() int n,i=1,result=1; printf(“n=“); scanf(“%d“, 程序运行结果: n=5 5!=120,

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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