第 3章 顺序结构的程序设计
3.1 顺序结构问题的提出
3.2 赋 值 语 句
3.3 数据输入语句
3.4 数据输出语句
3.5 顺序结构程序设计举例
3.6 复合语句和空语句
3.1 顺序结构问题的提出顺序结构是结构化程序设计中三种结构之一,是一种最简单、最常见的程序结构,其特点是:按照语句的前后次序,自前向后顺序逐条执行。尽管这种结构简单,
但也蕴含着一定的算法,它是按次序顺序执行,中间没有跳跃,也不允许“逆行”。
3.2 赋 值 语 句在赋值表达式的尾部添加一个,;,
号 ( 语句结束标志 ),就构成了赋值语句 。
赋值语句具有双重功能:计算和赋值 。 首先对赋值号右侧的表达式进行计算,然后将结果赋给赋值号左侧的变量进行存储 。
由于自加,自减表达式具有赋值功能,
因此同样也可以构成赋值语句 。
例如,a = 5;
b = a+3;
i++;
j = (a =2 )+(b =3 );
x*= 5;
以上语句均属赋值语句。 C语言中有形式多样的赋值语句,用法灵活,因此读者只有首先掌握好赋值表达式的运算规律,
才能用好赋值语句,并能正确地推算出赋值语句的结果。
3.3 数据输入语句数据输入是指通过键盘 ( 也可由其他方式 ) 将数据送入计算机的内存 。
C语言本身没有提供用于输入或输出数据的语句,所有需要进行输入或输出数据的操作都是通过调用标准库函数 ( 由系统提供 ) 来实现的 。
例如:用于按格式输入的 scanf函数和用于字符输入的 getchar函数 。
C语言的标准库函数是分类存放在不同的文件中,在使用输入输出标准库函数前,应该包含 # include "stdio.h" 或
#include <stdio.h>命令行 。
3.3.1 scanf格式输入函数的使用
scanf函数调用的形式:
scanf( 格式控制字符串,输入项表)
在该函数调用时,在其后面加上“;”
分号,就构成了格式输入语句。例如,a为已定义的 int类型变量,x为已定义的 float类型变量,则,scanf ("%d%f",&a,&x); 语句可以实现通过键盘分别向变量 a和变量 x
输入整型数据和实型数据。
3.3.2 getchar字符输入函数的使用
getchar函数的形式为,getchar ( )
调用该函数时,也需在调用之前加命令行,# include "stdio.h" 或 # include
<stdio.h>
此函数不需任何参数,它的作用是从键盘读入一个字符作为函数的返回值 。
例如,char c1;
c1=getchar ( ) ;
当程序执行到 getchar函数调用语句时,
将等待输入,只有当用户输入字符,并按
Enter键后,字符才被送到内存的缓冲区,
准备赋给指定的变量。并且对空格符、制表符( Tab键)和回车符( Enter键)都被当作有效字符读入。
例如,# include "stdio.h"
main()
{ char c1,c2 ;
c1=getchar ( ) ;
c2=getchar ( ) ;
……
}
若运行上述程序时,输入,a↙
则变量 c1得到了输入字符 a,而变量 c2
中存放的是换行符。
3.4 数据输出语句
3.4.1 printf格式输出函数的使用
printf函数调用的形式:
printf (格式控制字符串,输出项表 )
或 printf (字符串 )
在该函数调用时,在其后面加上分号,
就构成了格式输出语句 。
例如,printf (" i=%d,m=%f\n",i,
m) ; 其中,i为已定义的 int类型变量,m为已定义的 float类型变量。
执行此语句后,可将变量 i的值和变量
m的值显示在屏幕上。
3.4.2 putchar字符输出函数的应用
putchar函数的形式为,putchar (ch)
其中:参数 ch可以是字符型常量或字符型变量,也可以是代表一个字符的 ASCII代码的整型常量或整型变量 。
函数的功能是输出参数所代表的字符。
若在函数调用后加上一个分号,就成为一条字符输出语句。
例如,char c1='a' ;
putchar (c1) ;
/* 在屏幕上显示输出字母 a */
putchar (65) ;
/* 在屏幕上显示输出字母 A */
putchar ('\n') ;
/* 输出换行符,即光标换行 */
3.5 顺序结构程序设计举例例 3.1 计算银行利率 。 设银行定期一年期的存款年利率 r为 1.98%,若存款年数为 n,存款额为 m,则利用公式 m (1+r) n可计算存款到期后的本利之和 total= m (1+r) n。
源程序如下:
# include "math.h"
main ()
{ int n,m ;
float r =0.0198,total ;
printf ("please enter n & m," ) ;
/* 提示语,请用户输入 n和 m 的数值 */
scanf ("%d%d ",&n,&m ) ;
total=m*pow ( 1+r,n ) ;
printf (" total=%f\n",total ) ;
}
程序的运行情况如下:
please enter n & m,1 500↙
total=511.250000
3.6 复合语句和空语句
3.6.1 复合语句复合语句是由一些语句组成,它们放在一对大括号中 。 其语句形式如下:
{语句 1 语句 2 …… 语句 n}
在形式上看,一对大括号中含有多条语句,但在 C语言语法规则上是作为一条语句来处理,所以称为复合语句。例如:
{t=a; a=b; b=t; }这是一条复合语句,语句功能是实现两个变量中的数据交换。
在后面将要介绍的分支语句和循环语句中,这种复合语句得到了广泛应用。
3.6.2 空语句根据语句的构成规则,分号“;”是
C语句的结束标志,因此,一个单独的分号“;”也可以构成一条语句,我们称为空语句。空语句没有任何执行结果,那么这种空语句有何实际意义呢?
一般常用于在程序设计初期,表示某一部分有语句存在,有待后面进一步完成。
例如:主函数中要调用一些用户自编的函数(模块),在未设计完成的模块中,
暂时只放一条空语句。例如:
main ( ) mysub ( )
{ int x ; { ; }
x=mysub ( ) ;
……
}
等到对程序进行细化处理时,再完成
mysub ( ) 函数中的具体功能。