第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语言的标准库函数是分类存放在不同的文件中,在使用输入输出标准库函数前,应该包含#includestdio.h或#includestdio.h命令行。3.3.1scanf格式输入函数的使用scanf函数调用的形式:scanf(格式控制字符串,输入项表)在该函数调用时,在其后面加上“;”分号,就构成了格式输入语句。例如:a为已定义的int类型变量,x为已定义的float类型变量,则:scanf(%d%f,&a,&x);语句可以实现通过键盘分别向变量a和变量x输入整型数据和实型数据。3.3.2getchar字符输入函数的使用getchar函数的形式为:getchar()调用该函数时,也需在调用之前加命令行:#includestdio.h或#includestdio.h此函数不需任何参数,它的作用是从键盘读入一个字符作为函数的返回值。例如:charc1;c1=getchar();当程序执行到getchar函数调用语句时,将等待输入,只有当用户输入字符,并按Enter键后,字符才被送到内存的缓冲区,准备赋给指定的变量。并且对空格符、制表符(Tab键)和回车符(Enter键)都被当作有效字符读入。例如:#includestdio.hmain(){charc1,c2;c1=getchar();c2=getchar();……}若运行上述程序时,输入:a↙则变量c1得到了输入字符a,而变量c2中存放的是换行符。3.4数据输出语句3.4.1printf格式输出函数的使用printf函数调用的形式:printf(格式控制字符串,输出项表)或printf(字符串)在该函数调用时,在其后面加上分号,就构成了格式输出语句。例如:printf(i=%d,m=%f\n,i,m);其中:i为已定义的int类型变量,m为已定义的float类型变量。执行此语句后,可将变量i的值和变量m的值显示在屏幕上。3.4.2putchar字符输出函数的应用putchar函数的形式为:putchar(ch)其中:参数ch可以是字符型常量或字符型变量,也可以是代表一个字符的ASCII代码的整型常量或整型变量。函数的功能是输出参数所代表的字符。若在函数调用后加上一个分号,就成为一条字符输出语句。例如:charc1='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。源程序如下:#includemath.hmain(){intn,m;floatr=0.0198,total;printf(pleaseentern&m:);/*提示语,请用户输入n和m的数值*/scanf(%d%d,&n,&m);total=m*pow(1+r,n);printf(total=%f\n,total);}程序的运行情况如下:pleaseentern&m:1500↙total=511.2500003.6复合语句和空语句3.6.1复合语句复合语句是由一些语句组成,它们放在一对大括号中。其语句形式如下:{语句1语句2……语句n}在形式上看,一对大括号中含有多条语句,但在C语言语法规则上是作为一条语句来处理,所以称为复合语句。例如:{t=a;a=b;b=t;}这是一条复合语句,语句功能是实现两个变量中的数据交换。在后面将要介绍的分支语句和循环语句中,这种复合语句得到了广泛应用。3.6.2空语句根据语句的构成规则,分号“;”是C语句的结束标志,因此,一个单独的分号“;”也可以构成一条语句,我们称为空语句。空语句没有任何执行结果,那么这种空语句有何实际意义呢?一般常用于在程序设计初期,表示某一部分有语句存在,有待后面进一步完成。例如:主函数中要调用一些用户自编的函数(模块),在未设计完成的模块中,暂时只放一条空语句。例如:main()mysub(){intx;{;}x=mysub();……}等到对程序进行细化处理时,再完成mysub()函数中的具体功能。