c语言基础教程第四章语句免费版.docx

上传人:b****5 文档编号:2775261 上传时间:2022-11-15 格式:DOCX 页数:28 大小:68.31KB
下载 相关 举报
c语言基础教程第四章语句免费版.docx_第1页
第1页 / 共28页
c语言基础教程第四章语句免费版.docx_第2页
第2页 / 共28页
c语言基础教程第四章语句免费版.docx_第3页
第3页 / 共28页
c语言基础教程第四章语句免费版.docx_第4页
第4页 / 共28页
c语言基础教程第四章语句免费版.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

c语言基础教程第四章语句免费版.docx

《c语言基础教程第四章语句免费版.docx》由会员分享,可在线阅读,更多相关《c语言基础教程第四章语句免费版.docx(28页珍藏版)》请在冰豆网上搜索。

c语言基础教程第四章语句免费版.docx

c语言基础教程第四章语句免费版

完全免费版

第四章       语句

 4.1.1表达式语句

   表达式语句是指任何一种表达式末尾加上分号〔;)所组成的语句。

在C语言程序中,表达式语句出现得最多,因此,有人说C语言是表达式语言。

   表达式语句与表达式之间虽然只差一个分号(;),但二者是截然不同的。

在程序中,有的地方需要用表达式,则不能写成表达式语句。

例如,在if语句或循环语句的条件中,要求用表达式作为条件,如果写成表达式语句(即末尾加了分号),则是错误的。

同样,在要求用表达式语句的地方,写成表达式(即少写一个分号),也是错误的。

所以,读者一定要搞清楚何时用表达式,何时用表达式语句,二者不要搞混了。

   例如,

   b=a+3

   是一个表达式;而

   b=a十3;

   便是一个表达式语句,这是一个赋值表达式语句。

类似地,表达式语句还有:

   ++i;            (算术表达式语句)

   m>n7m:

n;        (条件表达式语句)

   b==5            (比较表达式语句)

   x&&++y||Z;      (逻辑表达式语);

   printf("0n!

\n") (函数调用也是表达式语句)

   i=a,j=5,k=7;    (逗号表达式语句)

   等等。

   有些表达式语句虽然是合法的,例如,

   m>n?

m;n;

   但是,它并没有实际意义,需要将其表达式的值赋给某个变量才有意义。

例如,

   x=m>n?

m:

n;

   这是一个有意义的表达式语句,它将一个表达式m>n?

m;n的值赋给了变量x.

   虽然任何一个表达式加上分号都构成表达式语句,但在程序中要出现的是有意义的表达式语句。

 4.1.2空语句

   空语句是一种只有分号而没有表达式的特殊语句。

空语句是c语句中最简单的语句,因为它只由一个分号(;)组成。

   空语句是一种不执行任何操作的语句。

说它是特殊语句是指它是一种"不做事情"的语句。

   空语句在编程中也是有用的,它主要被用在需要一条不做事情的语句的地方。

例如,它可用来作循环体,则该循环是空循环。

下面是一个为了延迟一段时间的循环,其循环体可用空语句。

   for

i<1000;i++)

   空语句还可以用在goto.语句中语句标号的后面,即需要goto语句转向一条什么事情都不做的语句,那么在该语句标号的后面可用空语句。

 4.2.1复合语句

  复合语句是指由两条或两条以上语句用花括号({})括起来的语句序列。

   C语句中的语句简单地划分为单条语句和复合语句两类。

单条语句是指只有一条语句,而复合语句是指多条语句的总称,但是,多条语句用花括号括起来才称复合语句。

没有用花括号括起的若干条单条语句只能称为语句序列。

所以,复合语句是一种特殊的语句序列,它被一对花括号括起来,它在程序中被看作是一条语句。

一般地说,凡是可以出现一条语句的地方都可以出现复合语句。

   复合语句是C语言程序中常用的语句形式之一。

在复合语句内部还可以包含有复合语句,即复合语句可以嵌套。

例如,

   上述便是复合语句嵌套的一种形式。

复合语句常用作if语句的if体、else体和elseif体以及循环语句的循环体等。

   复合语句和函数体虽然都是用一对花括号({})来定界的,但是两者间是有区别的。

复合语句是由两条或两条以上语句序列组成的,而函数体内可以是多条语句的语句序列,也可以只有单条语句,还可以没有语句,即为空。

另外,函数体内可以包含若干个复合语句,而复合语句内不能包含函数体,只能包含复合语句。

 4.2.2分程序

   分程序又称程序块。

分程序是一种花括号内含有说明语句的复合语句。

分程序是一种复合语句,但是复合语句不一定是分程序,只有包含说明语句的复合语句才是分程序。

因此,复合语句包含了分程序,分程序是复合语句的一种。

具有下列格式的复合语句是分程序:

   (说明语句序列)

   (执行语句序列)

   }

   在分程序中,说明语句序列一定要放在执行语句序列的前边。

   在分程序内可以定义或说明变量,也可以对已定义过的变量进行重新定义。

在分程序中定义的变量都是属于局部变量,它的作用域仅在定义它的分程序内。

有关这方面的详细情况在讲述存储类时再做详细描述。

4.3.1条件语句

  条件语句是一种根据指定的条件来决定执行不同的程序段的语句。

条件语句又称if语句。

   1.条件语句的格式和功能

   条件语句的格式如下:

   if(条件i>)

   (语句1)

   elseif((条件2))

   (语句2>

   elseif((条件3))

   (语句3)

   elseif((条件N))

   (语句N)

   else

   (语句N+1>

   这是if语句的完整的格式,其中,if和。

lse都是关键字。

(条件1)至<条件N)都是任一表达式,用来指出条件的表达式多是关系表达式和逻辑表达式,也可用其他表达式。

<语句1)至(语句N-}})都是单条语句或复合语句。

   在if语句中,至少要有一个if短语,最简单的if语句格式如下:

   if(条件))

   (语句)

   在if语句中,除了至少要有一个if短语之外,可以有一个(只能有一个)else短语,或者没有else短语。

elseif短语在if语句中可以没有,也可以有一个或多个。

一般在多路分支的间题中,需要用到多个elseif短语。

具有一个else短语而无elseif短语的if语句格式如下:

   if(条件1))

   (语句1)

   else

   (语句2)

   if语句的功能描述如下:

   先计算(条件1)中表达式的值,如果其值为非零,则执行(语句1),然后执行该if语句后边语句,如果其值为非零,则不执行(语句1>,接着计算《条件2)中表达式的值。

如果其值为非零,则执行(语句2),然后执行该if语句后边语句;如果其值为零,则不执行<语句2),接,计算<条件3)中表达式的值,再判断,依次类推。

如果N个条件对应的表达式的值全都为零,则执行<语句N+1)然后执行该if语句后边的语句。

如果N个条件对应的表达式中某个值不为零,则执行该条件后边的语句,然后退出if语句,即执行该if语句后边的语句。

   if语句的功能可用下图所示:

  2.if语句的应用

   if语句在具体应用中要注意:

一个if语句中只能有一个。

Ise短语,也可以没有。

lse短语,而且在多重嵌套的if语句中,else短语总是与它前面最近的if相匹配的。

   下面通过]L个具体例子说明if语句的使用。

   [例4.1]输入两个整数,按其值由大到小顺序输出这两个数。

   Main()

   {

   inta,b,t,

   pcintf("Inputa,b;"),

   scanf("%d%d"&a,&b),

   if(a

   {

   t=a

   a=b,

   b=t,

   }

   printf(%d,"d\n,",a,b);

   }

   执行该程序后,屏幕显示如下提示信息:

   Inputa,b, 3u5

   输入3和5后,按回车键3与5之间用空格符分隔,屏幕显示如下结果:

   5.3

   说明:

该程序中使用了最简单的if语句的格式。

仅有if短语和一个if体,该if体用一个复合语句,它由3条斌值表达式语句组成,其功能是实现变量a和b之间的内容的交换。

交换方法是通过第3个变量t,先将a的值斌给t,再将b的值赋给a,最后将t的值赋给b.其关系如下所示:

   通过上述方法使得变量a和b的值进行了交换。

这是一种有用的算法,以后还会用到。

   如果要求将两个整数按由小到大的顺序输出时,只需将程序中

   if(a

   改写为

   ifb)

   其余不变。

这时上例中输出结果如下:

   3,5

   〔例4.幻假设有一个物品其价格规定如下:

低于5公斤(含5公斤),每公斤a元,大于5公斤不足10公斤,每公斤b元,IO公斤以上(含10公斤),每公斤。

元。

编程计算该物品为m公斤的价格。

   main()

   {

   floatx,p,a,b,c;

   printf("Inputweightx:

");

   scant("%f",&x)

   prints("Inputpricea,b,c:

"),

   scanf("%f%f%f%f",&a,&b,&c);

   if(x<=5)

   p=a*x;

   elseif(x>5&&x<10)

   P=b*x;

   else

   p=c*x;

   printf("%.2f\n".p);

   }

   程序中变量x是该物品的重量,P是该物品的价格。

该程序中使用了一个if语句,该语句含有一个。

lseif短语和一个else短语句。

这是一个简单的多路分支程序。

如果分支再多时,可以再多用几个elseif短语。

  [例4.3]较两个整型数的大小。

   main()

   (

   inta,b;

   printf("Inputa,b:

");

   scanf("%d%d",&a,&b);

   if(a1=b)

   if(a>b)

   printf("a}b\n");

   else

   printf("a

   else

   printf("a=b\n};

   }

   执行该程序输入两个lilt型数:

   Inputa,b:

-35

   a

   说明:

本例程序中,用了一个if-else语句,该语句的if体又是一个if-else语句,这是if语句嵌套。

当从键盘输入两个int型数以后,程序中a和b获取了值。

如,a为一3,b为5,显然,这时a!

=b为非零,接着执行if体,这又是一个if-else语句,先判断a>b为。

,则执行printf("a

   此例中使用的if语句还有其他形式。

例如,

   if(a==b)'

   printf("a=b\n"),

   else

   if(a>b)

   printf("a>b\n").

   else

   printf("a,b\n}}

   还可以写成如下形式,

   if(a==b)

   printf("a=b\n");

   elseif(a>b)

   printf("a>b\n");

   ease

   printf("a

   还可以写成如卜形式:

   if(a>=b)

   if(a=b>

   prinrf("a=b\n");

   e1Se

   printf("a>b\n");

   else

   printf("a

   还有很多其他的等价写法,这里不再一一列举。

   在if语句嵌套时,如果if体或elseif体或else体是一个if语句时,则应该被完全包含在体内。

一般形式如下:

   if((条

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1