C语言程序设计_3_第4章__语句和控制流

上传人:woxinch****an2018 文档编号:44724077 上传时间:2018-06-14 格式:PPT 页数:77 大小:175.50KB
返回 下载 相关 举报
C语言程序设计_3_第4章__语句和控制流_第1页
第1页 / 共77页
C语言程序设计_3_第4章__语句和控制流_第2页
第2页 / 共77页
C语言程序设计_3_第4章__语句和控制流_第3页
第3页 / 共77页
C语言程序设计_3_第4章__语句和控制流_第4页
第4页 / 共77页
C语言程序设计_3_第4章__语句和控制流_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《C语言程序设计_3_第4章__语句和控制流》由会员分享,可在线阅读,更多相关《C语言程序设计_3_第4章__语句和控制流(77页珍藏版)》请在金锄头文库上搜索。

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

2、回 语 句 4.4 复 合 语 句 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(“ Totald n

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

5、rmnumber13;if ( rm0 )printf(“Its true. n“);elseprintf(“Its false.n“); 4.5.2 if语句的嵌套形式在if语句中又包含一个或多个if 语句的情况,称作if语句的嵌套。1“语句1”是if-else结构if ( 表达式1)if ( 表达式2)语句1else 语句2else 语句3if ( score60 )if ( score90 )printf(“Excellent!n“);else printf(“Fair.n“);elseprintf(“Failure!n“);如果一般形式中的“语句1”是if语句的简化形式,就出现了如下式

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

7、f子句中的语句又是嵌套的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,则可利用求根公式计算:#include #include void main()double a,b,c; /*方程的系

8、数*/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(“Two roots:x1ftx2fn“,0.0,b/a) ;else reb/(2.0*a);dscpow(b,2.0)4.0*a*c;i

9、msqrt(fabs(dsc)/(2.0*a);if(dsc0.0)printf(“Two roots:x1=%ftx2=%fn“,reim,re im);else printf(“Two complex roots:n“);printf(“x1ffitx2ffin“,re,im, re,im);4.6 switch语句switch语句的简单语法结构形式如下:switch(表达式) 语句switch是关键字,紧跟其后的“表达式”的值必须是整型的一般来说,switch语句的语法结构如下:switch(表达式)case 常量表达式1:语句1case 常量表达式2:语句2case 常量表达式n:语句

10、ndefault:语句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“);break;case :if( v2 !0)printf (“dn“,v1v2 ); else printf (“Modulus by zero. n“);break;default:printf

11、 ( “Unknown operator. n“ );break;对switch语句的特性和使用还要说明以下几点: 执行该语句时,先计算switch后的表达式,其结果必须是整型量。它依次与每一个case之后的常量表达式比较,如果出现匹配,就转去执行相应的语句。 case后面必须是整数或一个字符常量(也是整型量),或者是可以得到整型量的一个常量表达式。不允许这种常量表达式中包含有变量或函数调用。 在一个switch语句中不允许出现两个或更多的情况常量具有同样的值。 如果有关键字default,那么,在给定表达式的 值与所有case之后的情况常量都不匹配的情况下,就 转去执行default 之后的

12、语句。 但应强调两点:第一,default不一定出现在switch 结构的最后,其实,它可以出现在中间,甚至出现在 所有case之前。第二,如果没有default这一部分,也 没有出现与情况常量相匹配的情况,那么,这个switch 语句实际上就成了一个空语句,什么也不做。 case及后面的常量表达式,实际仅起标号作用 。表达式的值与某个情况常量一旦匹配,那么,在执 行下面语句的过程中,只要不遇到break语句,就一直 执行下去,而不再判别与别的情况常量是否匹配。下面是一个例子,用于说明switch语句的功能和特性。 #include void main() int reply;while(1)

13、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:case 7:case 8:case 9:case 10: printf(“ You entered 6 or higher . n“);break;default: printf(“ Between 1 and 10,pl

14、ease ! n“) ;break; /* end of switch */ /* end of while */ 4.7 while语句C语言提供了三种循环语句,即:while、for和do- while。while语句的语法形式如下:while(表达式)语句例4-8:利用参考级数 可以求出的近似值。很显然,如果要求的精度越高,则计算的项数越多。我们可以指定一个精度要求,如10-7。当最后一项的绝对值小于该精度时,就认为达到要求了。/* Evaluating the PI with while */#include #include void main()int sign;double pi

15、,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项和的基本办法是逐项相加,即:sa1a2an 因为从第二项开始,每一项恰是前一项加上d。这样,知道第一项和d的值以及所求项数n,就可求出前n项的和

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

最新文档


当前位置:首页 > 中学教育 > 高中教育

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