C语言程序设计 教学课件 ppt 作者 孟庆昌 第04章

上传人:E**** 文档编号:89370246 上传时间:2019-05-24 格式:PPT 页数:77 大小:175.50KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者  孟庆昌 第04章_第1页
第1页 / 共77页
C语言程序设计 教学课件 ppt 作者  孟庆昌 第04章_第2页
第2页 / 共77页
C语言程序设计 教学课件 ppt 作者  孟庆昌 第04章_第3页
第3页 / 共77页
C语言程序设计 教学课件 ppt 作者  孟庆昌 第04章_第4页
第4页 / 共77页
C语言程序设计 教学课件 ppt 作者  孟庆昌 第04章_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 孟庆昌 第04章》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 孟庆昌 第04章(77页珍藏版)》请在金锄头文库上搜索。

1、第4章 语句和控制流,一个完整的C程序代码可以存放在一个或多个C源文件中。每一个C源文件可以包含若干预处理命令和C函数, 一个C函数只能包含在一个C源文件中。整个C程序只有 一个主函数(名为main)。而C函数又由数据说明和执行语句构成。 语句是指示计算机完成某项任务的完整命令。程序或函数的功能是由一系列语句实现的。 C语言属于第三代语言,是过程性语言。 从理论上讲,结构化程序设计只要有顺序、选择和循环三种基本结构就可以了。表4-1列出了C语言中各种语句及其示例。它分为4类,即:简单语句、选择语句、循环语句和转移语句。,4.1 表达式语句 4.2 空 语 句 4.3 返 回 语 句 4.4 复

2、 合 语 句 4.5 if 语 句 4.6 switch语句 4.7 while语句 4.8 for 语 句 4.9 dowhile语句 4.10 break语句 4.11 continue语句 4.12 goto语句 4.13 循 环 嵌 套,4.1 表达式语句,由表达式构成的语句称作表达式语句。其一般形式为: 表达式; 例如: a5; xab*10; i; printf(“ Input your data ! n“); 最常用的表达式语句是赋值语句和函数调用语句。 分号是一个语句中不可缺少的组成部分。,4.2 空 语 句,C语言中的空语句就是只有一个分号的语句: ; 空语句不执行任何动作。

3、 但从语法上看,它起一个语句的作用。 while(getchar()! n );,4.3 返 回 语 句,C语言中返回语句有两种形式,即: return; return 表达式;, 第二种形式的返回语句在程序中经常遇到,它不仅把控制权返回给主调函数,而且还把表达式的值返回。 为了表达清晰,易于理解,往往把返回语句中的表达式用圆括号括起来,形式为: return(表达式); return (n1);,4.4 复 合 语 句,在C语言中,复合语句又称为分程序(block),它是由一对花括号括起来的若干语句组成的。例如: count; i; xtemp10; totaltotalx; printf(

4、“ Totald n “,total); 从语法上看,复合语句是作为一个语法整体出现的。 在编写程序时要注意,复合语句中最后一条语句后面的分号不能省略,否则会造成语法错。,4.5 if 语 句,4.5.1 if语句的形式 第一种形式是: if(表达式) 语句,if语句的第二种形式是: if(表达式) 语句1 else 语句2,例4-3:判定输入的整数是否是13的倍数。 /* Whether a number is multiple of 13 or not */ #include void main() int number,rm; printf(“Input your number. n“)

5、; scanf(“d“,&number ); rmnumber13; if ( rm0 ) printf(“Its true. n“); else printf(“Its false.n“); ,4.5.2 if语句的嵌套形式 在if语句中又包含一个或多个if 语句的情况,称作if语句的嵌套。 1“语句1”是if-else结构 if ( 表达式1) if ( 表达式2) 语句1 else 语句2 else 语句3,if ( score60 ) if ( score90 ) printf(“Excellent!n“); else printf(“Fair.n“); else printf(“Fa

6、ilure!n“);,如果一般形式中的“语句1”是if语句的简化形式,就出现了如下式所示的情况: if(表达式1) if(表达式2) 语句1 else 语句2 else与上面哪个if配成一对呢?在C语言中约定,else总是与前面最近的if配对。 为了保证else是与第一个if配对,必须用花括号将第二个简化形式的if语句括起来。,2“语句2”是if-else结构 else-if嵌套结构的一般形式是: if(表达式) 语句1 else if(表达式) 语句2 else if(表达式3) 语句3 . . . else 语句n,在使用if语句的嵌套结构时,应注意: 合理地安排判定条件,既符合给定问题在

7、逻辑功能上的要求,又要增加可读性。 注意else子句与if子句的配对约定,即:else与它前面最近的一个if配对。如果if子句中的语句又是嵌套的if语句的简化形式,应注意加花括号。 如果是多重的else-if结构,为了便于书写,可采用上面的形式,即第一个if与下面各个else左对齐,上下都在同一列上,显得层次清晰,易于阅读和理解。,例4-6:求一元二次方程ax2bxc0的根。 如果系数a和b同时为0,则原方程退化,不再是方程了; 如果a是0,而b不是0,则原方程退化成一次方程,只有一个根,其值是c/b; 如果a不是0,而c是0,则原方程有两个根,其值分别是b/a和0; 如果a和c都不为0,则可

8、利用求根公式计算:,#include #include void main() double a,b,c; /*方程的系数*/ double dsc; /* 判别式的值*/ double re,im; /* 实部和(可能的)虚部*/ printf(“Input values of A,B,C n“); scanf(“lflflf“,&a,&b,&c);,if(a0.0)&(b0.0) printf(“The equation is degenerate.n“); else if(a0.0) printf(“Single root:xfn“,c/b); else if(c0.0) printf(

9、“Two roots:x1ftx2fn“,0.0,b/a); else reb/(2.0*a); dscpow(b,2.0)4.0*a*c; imsqrt(fabs(dsc)/(2.0*a);,if(dsc0.0) printf(“Two roots:x1=%ftx2=%fn“,reim,reim); else printf(“Two complex roots:n“); printf(“x1ffitx2ffin“,re,im,re,im); ,4.6 switch语句,switch语句的简单语法结构形式如下: switch(表达式) 语句 switch是关键字,紧跟其后的“表达式”的值必须是

10、整型的,一般来说,switch语句的语法结构如下: switch(表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n1 ,例如: switch(opt) case :printf (“dn“,v1v2 ); break; case :printf (“dn“,v1v2 ); break; case * :printf (“dn“,v1*v2 ); break; case / :if( v2 !0) printf (“dn“,v1/v2 );,else printf ( “Division by zero. n“);

11、break; case :if( v2 !0) printf (“dn“,v1v2 ); else printf (“Modulus by zero. n“); break; default:printf ( “Unknown operator. n“ ); break; ,对switch语句的特性和使用还要说明以下几点: 执行该语句时,先计算switch后的表达式,其结果必须是整型量。它依次与每一个case之后的常量表达式比较,如果出现匹配,就转去执行相应的语句。 case后面必须是整数或一个字符常量(也是整型量),或者是可以得到整型量的一个常量表达式。不允许这种常量表达式中包含有变量或函数

12、调用。 在一个switch语句中不允许出现两个或更多的情况常量具有同样的值。, 如果有关键字default,那么,在给定表达式的值与所有case之后的情况常量都不匹配的情况下,就转去执行default 之后的语句。 但应强调两点:第一,default不一定出现在switch 结构的最后,其实,它可以出现在中间,甚至出现在所有case之前。第二,如果没有default这一部分,也没有出现与情况常量相匹配的情况,那么,这个switch语句实际上就成了一个空语句,什么也不做。 case及后面的常量表达式,实际仅起标号作用。表达式的值与某个情况常量一旦匹配,那么,在执行下面语句的过程中,只要不遇到br

13、eak语句,就一直执行下去,而不再判别与别的情况常量是否匹配。,下面是一个例子,用于说明switch语句的功能和特性。 #include void main() int reply; while(1) printf(“ Enter a value between 1 and 10,0 to exit:“); scanf(“d“,&reply);,switch(reply) case 0: exit(0); case 1: case 2: case 3: case 4: case 5: printf(“ You entered 5 or below . n“); break;,case 6: c

14、ase 7: case 8: case 9: case 10: printf(“ You entered 6 or higher . n“); break; default: printf(“ Between 1 and 10,please ! n“); break; /* end of switch */ /* end of while */ ,4.7 while语句,C语言提供了三种循环语句,即:while、for和do- while。 while语句的语法形式如下: while(表达式)语句,例4-8:利用参考级数 可以求出的近似值。很显然,如果要求的精度越高,则计算的项数越多。我们可以

15、指定一个精度要求,如10-7。当最后一项的绝对值小于该精度时,就认为达到要求了。 /* Evaluating the PI with while */ #include #include ,void main() int sign; double pi,n,temp; n1.0; temp1; sign1; pi0;,while(fabs(temp)1e7) pi temp; n 2; signsign; tempsign/n; pi *4; printf(“PIfn“,pi); ,在使用while语句时要注意: 循环条件设置要合理 构成while无限循环的最简单形式是: while(1) 如果循环体的动作是由多个语句完成的,那么,要用花括号把它们括起来,以复合语句的形式出现。,4.8 for 语 句,for语句的一般语法形式是: for(表达式1;表达式2;表达式3) 语句,for语句等价于下列形式的while结构: 表达式1; while(表达式2) 语句 表达式3; ,例4-10:求一个等差数列前n项的和。等差数列的一般形式是: a1,a2,an 其中,ai1aid (i1,2 ,n1) d称为公差。 求前n项和的基本办法是逐项

展开阅读全文
相关资源
相关搜索

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

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