第三章总结
3.2 C语言的语句
在C语言中,语句是以分号结尾的字符序列,是程序最基本的执行单位,分号是C语句
的必要组成部分。书写程序代码时,一行可以写几个语句,一个语句也可以写在多行上。C
语句包含多种形式。
1.说明语句
说明语句用于定义程序所使用的变量与类型。例如:
inta,b;
/定义两个整型变量/
char ch;
/定义一个字符型变量
2.表达式语句
表达式语句由表达式加上分号“;”组成。其一般形式如下:
表达式;
例如:
c=a+b
是一个赋值表达式,而
c=a+b;
则是一个表达式语句。
3.分支语句
分支语句实现分支控制过程,根据条件成立与否执行不同的语句。有两种分支结构,即
双分支if一else语句与多分支的switch语句。例如,下面是一个双分支if一else语句:
if(x>y)
Z=x;
else
z=y;
该语句首先判断if后面的表达式(x>y),如果条件成立执行“z=x;”,否则执行“z=y;”,f语句执行后,变量z中存放的是变量x与y中较大的值,
4.循环语句
C语言中实现循环控制的语句有3种,即for语句、while i语句和do一while语句。如要
求计算1+3+5+7+…+99的和,采用whilet语句的代码如下:
sum=0;
/
累加变量sum赋初值04/
i=1;
/变量i赋初值1/
while(i<=99)
/条件满足就循环/
{
sum=sum+i:
/×累加到sum中*/
i=i+2;
/累加值加2/
上述代码中,首先将存放累加和的变量sum初始化为O,存放累加项的变量i初始化为
1。其中<=99是循环执行的条件,只要这个条件成立,一对大括号(}中的循环体就被反复
执行。由于循环体每执行一次,i被加2(=i十2),所以,当循环到一定的时候,i的值就会超
过99,从而循环条件<=99不成立。此时,循环结束。
5.转向语句
转向语句有break语句、goto语句、continue语句、return语句。
6.复合语句
用一对大括号{}将若干语句顺序组合在一起所形成的语句称为复合语句。C语言中,
除复合语句外的其他所有语句都以分号结束。如
sum=sum+i;
/关累加到sum中*/
i=i+2;
/累加值加2/
即为复合语句。
7.空语句
空语句只由一个分号构成。如
空语句一般用在程序的某个位置上,在功能上并不执行任何实际操作。如空语句用于
循环语句中的循环体时,可以实现延时功能。
8,函数定义与调用
函数是完成特定功能的小模块,是C语言中唯一的一种子程序,常常在一个C程序中包
含若干个函数,复杂的任务通过调用这些函数来完成。如函数:
int max(intx,inty)
/求最大值的函数/
/定义临时变量z/
intz;
if(x>y)
z=x;
/x>y时,z的值等于x/
else
z=y;
/x
/为结束函数,返回z*/
return z;
其中,int maxt(ntx,nty)为函数定义的头部,由函数的返回值类型、函数名、参数表组成;花括号{}中的部分称为函数体,函数体由数据表达与流程控制语句组成。
函数定义后,可以在别的函数中调用该函数。例如,在main()函数中可以有c=max(a,
b),当程序执行到这里时,首先调用函数max(),并把实际参数a和b的值分别传递给函数
定义中的形式参数x和y;然后,开始执行函数max()所定义的语句;当执行到“return z;”
时,函数结束运行并把z的值作为返回值,返回到函数调用的位置。函数定义与调用介绍见
第7章。
9、输入与输出
C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的
有关函数(如scanf()和printf()函数)来实现的。
3.3
数据的输入和输出
C语言本身没有提供输入输出语句,所有的数据输入输出功能都是由系统提供的库函
数完成的。程序中用到的标准输入输出库函数主要有printf()、scanf()等。使用标准输人
输出库函数时要用到“stdio.h”文件,因此在源文件开头需要用预处理命令#include<
stdio.h>或#include"stdio.h"将头文件stdio.h包括到源文件中。
3.3.1输出函数(printf())和输入函数(scanf())
1.printf()函数
printf()函数是系统提供的用于在标准输出设备(屏幕)输出数据的库函数,其一般调用
格式为:
printf(“格式控制字符串”,输出项表列)
格式控制字符串用双引号括起来,表示输出的格式;而输出项表列则是要输出的数据,
这些数据可以是常量、变量或表达式。
格式控制字符串中包含两种信息,格式控制说明和普通字符。
(1)格式控制说明:按指定的格式输出数据,其格式为以%开头的格式控制字符,不同类
型的数据采用不同的格式控制字符,以说明输出数据的类型、形式、长度、小数位数等。例
如,int型数据采用%d,float型和double型数据都采用%f。
(2)普通字符:在输出数据时,需要原样输出的字符。
【例3.3】按指定格式输出整型数据示例。
#include
int main()
{inta=1,b=2,c=3;
printf(“a=%d,b=%d,c=%dn”,a,b,c);
return0;
运行结果:
a=1,b=2,c=3
输出语句中除了3个%d外的都是普通字符。第1个格式控制字符%d对应的位置输出变量a的值,第2个格式控制字符%d对应的位置输出变量b的值,第3个格式控制字
符%d对应的位置输出变量c的值
使用printf()函数进行数据输出时需注意:
(1)格式字符与输出项的类型要一一对应,不同类型的数据所使用的格式字符不同。
(2)一般情况下,格式字符与输出项的个数应相同。如果格式字符的个数多于输出项的
个数,则多余的格式将输出不确定的值:如果格式字符的个数少于输出项的个数,则多余的
输出项将不能输出。
(3)printf(函数中可以没有输出项,此时printfo(函数只用来输出一个字符串;也可以
有多个输出项,多个输出项之间使用逗号进行分隔。若输出项是表达式时,printf()函数将
按从右到左的顺序计算出其值后输出。
(4)若要在printfo(函数中输出字符“%”,则应在格式控制字符串中使用连续两个“%”
2.scanf()函数
scanf(函数是系统提供的用于由标准输入设备(键盘)输人数据的库函数,使用该函数
时,由键盘输入数据的值。其一般调用格式为:
scanf(“格式控制字符串”,输入项表列)
格式控制字符串用双引号括起来,表示输入的格式;而输入项表列指出各变量的地址
(变量名前加&.)。
格式控制字符串中包含两种信息,格式控制说明和普通字符。
(1)格式控制说明:按指定的格式输入数据,其格式为以%开头的格式控制字符,不同类
型的数据采用不同的格式控制字符。例如,int型数据采用%d,float型数据采用%f,而
double型数据采用%lf(%lf,其中的1是long的首字母,不是数字1)。
(2)普通字符:在输入数据时,需要原样输入的字符。
注意scanf()函数的输人参数必须和格式控制字符串中的格式控制说明相对应,并且它
们的类型、个数和位置都要一一对应。若程序中有多个scanf函数时,程序会等待用户输人
并依次赋给相应变量。
例如,语句“scanf("%d",&.x);”中的格式字符串“%d”指明了要输入数据的类型为十进
制整型,输入项“8.x”表明从键盘输入的数据将赋值给整型变量x。
使用scanf()函数进行数据输入时需注意;
(1)格式字符与输入项的类型、个数要一对应;输人项必须是地址,不能是变量名。
(2)格式字符可以指定输人数据所占的列数,系统会截取相应列数的数据。
(3)在输入数据时遇到以下情况则认为数据输入结束:空格、Tab键、回车键、非法输人、
指定宽度。用户也可以自己指定其他字符作为输入间隔。



