您的位置: 网站首页 > 程序开发 > C语言程序设计 > 第3章 顺序结构程序设计 > 【3.2 顺序执行语句】

3.2 顺序执行语句

 

3.2  顺序执行语句

一个C程序是由若干语句组成的,每个语句以分号作为结束符。C语言的语句可以分为5类,它们是:控制语句、表达式语句、函数调用语句、空语句和复合语句。其中,除了控制语句外,其余4类都属于顺序执行语句,下面分别介绍。

1.表达式语句

在表达式的后面跟一个分号就构成了一个表达式语句,最常见的是赋值语句,它是由一个赋值表达式后跟一个分号形成,程序中的很多计算都由赋值语句完成。例如:

n=10;       /*10赋值给n变量*/

x=2*x;      /*将变量x的值乘以2的结果赋给变量x*/

实上,任何表达式都可以加上分号而成为语句,例如,经常在程序中出现如下的语句:

i++;        /*使i变量的值加1*/

任何表达式加上分号都可以构成语句,需要注意的是,有些写法虽然是合法的,但是它们没有保留计算结果,因而并没有实际意义。例如:

a-1;

i++-2;

2.函数调用语句

由函数调用加上分号组成,如:

printf("%f",a);             /*输出实型变量a之值*/

当然,函数是一段程序,这段程序可能存在于函数库中,也可能是由用户自己定义的,当调用函数时会转到该段程序执行。但函数调用以语句的形式出现,它与前后语句之间的关系是顺序执行的。

3.空语句

空语句是指只有一个分号的语句,即:

;

它也是一个语句,虽然不产生任何动作。在程序中,如果没有什么操作需要进行,但从语句的结构上来说必须有一个语句时,可以书写一个空语句。

4.复合语句

用大括号“{}”把一些语句括起来,对外视做一个语句,就构成了一个复合语句。

例如:

{

    a=2;

    b=10;

    c=sqrt(a*a+b*b);

}

复合语句可以出现在允许语句出现的任何地方,在选择结构和循环结构中都会看到复合语句的用途。

下边举一个例子来说明顺序结构的程序设计方法。

【程序3-1设变量x=10.2y=20.5,编程序实现两个变量的值互换。

3-4  程序流程图

 

怎样才能实现xy值的互换?若用程序段:x=y;y=x;执行x=y;后,x的值10.2已经丢失,由y的值20.5取而代之。再执行y=x;时,赋给y的不是x原来的值10.2,而是x的新值20.5,执行后xy的值均为20.5。这里失败的原因在于一开始x值的丢失,为此,应该先把x的值保存在另一变量t中,即t=x;执行x=y;时,虽然x的值被y的值取代,但x的值事先已经保存在另一变量t中,用y=t;就可以把原x的值赋给y,从而实现xy值的互换。其程序流程如图3-4所示。

/* 文件名:chap03_1.cpp */

#include <stdio.h>

 

void main()

{

    double x,y,t;

    printf("Enter x and y:\n");

    scanf("%lf%lf",&x,&y);

    t=x;

    x=y;

    y=t;

    printf("x=%f,y=%f\n",x,y);

}

运行程序:

Enter x and y:

输入:12.3434.12↙(↙表示回车,□表示空格)

输出:x=34.120000y=12.340000

第一个printf函数输出的是提示信息,提醒用户输入xy的值;xy值交换后用%f格式输出xy的值(输出double型数据可以用%f格式,但输入double型数据必须用%lf%le格式)。在格式字符串中用"x=""y="是为了对输出的数据进行说明,使输出数据更明确。