ITEEDU

第四章 最简单的C程序设计—顺序程序设计

从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。 本章介绍这些基本语句及其在顺序结构中的应用,使读者对C程序有一个初步的认识, 为后面各章的学习打下基础。

4.1C语句概述

C程序的结构:

C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。

C语句可分为以下五类:

  1)表达式语句
  2)函数调用语句
  3)控制语句
  4)复合语句
  5)空语句
1.表达式语句:表达式语句由表达式加上分号“;”组成。

其一般形式为:

表达式;

执行表达式语句就是计算表达式的值。

例如:

x=y+z; 赋值语句;
y+z; 加法运算语句,但计算结果不能保留,无实际意义;
i++; 自增1语句,i值增1。
2.函数调用语句:由函数名、实际参数加上分号“;”组成。

其一般形式为:

函数名(实际参数表);

执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值 (在后面函数中再详细介绍) 。

例如:

printf("C Program");调用库函数,输出字符串。

3.控制语句:控制语句用于控制程序的流程, 以实现程序的各种结构方式。它们由特定的语句定义符组成。C语言有九种控制语句。可分成以下三类:
  1)条件判断语句:if语句、switch语句;
  2)循环执行语句:do while语句、while语句、for语句;
  3)转向语句:break语句、goto语句、continue语句、return语句。
4.复合语句:把多个语句用括号{}括起来组成的一个语句称复合语句。

在程序中应把复合语句看成是单条语句,而不是多条语句。

例如:

{ x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}

是一条复合语句。

复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。

5 空语句:只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。

例如

 while(getchar()!='\n');

本语句的功能是,只要从键盘输入的字符不是回车则重新输入。

这里的循环体为空语句。

4.2赋值语句

赋值语句是由赋值表达式再加上分号构成的表达式语句。

其一般形式为:

变量=表达式;

赋值语句的功能和特点都与赋值表达式相同。 它是程序中使用最多的语句之一。

在赋值语句的使用中需要注意以下几点:

1.由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,

因此,下述形式

变量=(变量=表达式);

是成立的,从而形成嵌套的情形。

其展开之后的一般形式为:

变量=变量=…=表达式;

例如:

 a=b=c=d=e=5;

按照赋值运算符的右接合性,因此实际上等效于:

e=5;
d=e;
c=d;
b=c;
a=b;
2.注意在变量说明中给变量赋初值和赋值语句的区别。

给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。

例如:

 int a=5,b,c;
3.在变量说明中,不允许连续给多个变量赋初值。

如下述说明是错误的:

 int a=b=c=5

必须写为

 int a=5,b=5,c=5;

而赋值语句允许连续赋值。

4.注意赋值表达式和赋值语句的区别。

赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。

下述语句是合法的:

 if((x=y+5)>0) z=x;

语句的功能是,若表达式x=y+5大于0则z=x。

下述语句是非法的:

 if((x=y+5;)>0) z=x;

因为x=y+5;是语句,不能出现在表达式中。