C语言程序设计实例教程(第2版)丁爱萍第3章简单程序设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章简单程序设计第3章简单程序设计3.1顺序结构程序设计的概念3.2赋值语句3.3数据输出3.4数据输入3.5复合语句和空语句习题3第3章简单程序设计3.1顺序结构程序设计的概念顺序结构的程序设计是最简单的程序设计,它由一组顺序执行的程序块组成。最简单的程序块是由若干顺序执行的语句所构成的。这些语句可以是赋值语句,输入输出语句等。顺序结构是一种线性结构,其特点是:在该结构中,各操作块(简称块,它所对应的计算机语言表述形式是程序段)按照各自出现的先后顺序,依次逐块执行。它是计算机科学用以描述客观世界顺序现象的重要手段,是任何从简单到复杂的程序的主体基本结构,因为选择结构与循环结构的组成,也离不开顺序结构(即作为它们的子结构)。第3章简单程序设计一个程序通常可分为3个部分:输入、处理和输出。顺序结构用“结构化程序流程图(N-S图)”表示为如图3.1所示。程序名称标识符{程序名称描述部分}开始{程序开始操作标志块}a块{给定问题初始化处理操作块}b块第3章简单程序设计{所论问题中心处理操作块}c块{给定问题善后化处理操作块}结束{程序结束操作标志块}第3章简单程序设计图3.1顺序结构流程图程序名称标识符{程序名称描述部分}开始{程序开始操作标志块}a块{给定问题初始化处理操作块}b块{所论问题中心处理操作块}c块{给定问题善后化处理操作块}结束{程序结束操作标志块}第3章简单程序设计3.2赋值语句赋值语句由赋值表达式加上一个分号构成。赋值语句比较简单,但是使用比较普遍。赋值语句是由赋值表达式加上一个分号构成,其一般格式为变量=〈表达式〉;例如:student_number=50;score=math+ph+ch;第3章简单程序设计说明如下。(1)在C语言中符号“=”是一个运算符,其优先级别和结合性以及赋值时数据的转换在第2章中已经作了详细的说明。(2)在赋值语句中,首先计算“=”右边的表达式的值,然后将其值赋给左边的变量。如果右边的表达式的类型与左边变量的类型不一致,系统将自动把“=”右边的表达式的值转换为与左边变量相同的类型,然后再赋值。第3章简单程序设计(3)在C语言中有赋值表达式的概念,赋值表达式可以包括在其他表达式中,但是赋值语句一般不能出现在表达式中。例如:if((a=b)50)m=0.1;如果写成if((a=b;)50)m=0.1;就错了,因为在if的条件中不能出现赋值语句,而只能是表达式。第3章简单程序设计3.3数据输出大部分的计算机程序需要与用户进行交互,以便进行数据交流。所以,每一种语言都有完备的输入输出功能,有的是以标准的输入输出语句实现的,而C语言是通过调用系统提供的标准库函数实现的。由于不同的C编译系统以及C编译系统的不同版本提供的C函数库是不同的,因此其提供的输入输出函数也是不相同的(包括函数名和函数调用参数)。不过它们一般都提供像printf和scanf等一些标准函数,使用方法大体相同。第3章简单程序设计在使用库函数中的输入输出函数时,要用编译预处理命令“#include”将有关的“头文件”包含到用户源程序中。例如,在使用标准输入输出库函数时,要用到“stdio.h”文件,因此要将此文件包含进来,文件开头应使用下面的编译预处理命令:#includestdio.h或#includestdio.h由于printf函数和scanf函数的使用比较频繁,因此,在使用这两个函数时可以不使用“#include”命令。第3章简单程序设计数据的输出是指将数据输出到标准输出设备上(例如显示器和打印机)。一般的C编译系统均提供很多的标准输出函数,在这节中介绍使用最常用的两个输出函数printf函数和putchar函数。3.3.1printf函数printf函数是向屏幕格式化输出变量、常量或表达式的值。在C语言中printf函数是最常用的输出函数。1.printf函数的一般格式printf函数的一般格式为printf(格式控制,输出项1,输出项2,…)该函数按照指定的格式,将输出项列表中的各项输出到标准输出文件中。第3章简单程序设计如果在printf函数调用之后加上分号,就构成了输出语句。其中,输出项可以是常量、变量或表达式。格式控制有普通的字符、转义字符和输出格式说明,需要将格式控制用双引号括起来。一个格式说明必须由一个“%”开头,后面跟一个类型字符构成。【例3-1】向屏幕输出变量、常量和表达式的值,并且控制光标的移动。#includestdio.hmain(){intx,y;x=21;y=10;第3章简单程序设计printf(%d\t,123);/*向屏幕输出常量123的值*/printf(\x=%d,y=%d\,x,y);/*输出变量x和y的值*/printf(\n);/*光标到下一行的行首*/printf(x%%y=%d,x%y);/*输出x%y的值*/}第3章简单程序设计运行结果:123x=21,y=10x%y=1其中,123可以直接输出,双引号中的字符(例如“x=”)按原样输出,\、\t和\n是转义字符,x和y为变量,x%y为表达式。“%”后面的d为格式控制符。为了在结果中输出“%”,必须使用“%%”。第3章简单程序设计2.printf函数中的格式控制说明每个格式控制说明必须用“%”开头,以一个格式控制字符结束,在格式控制字符的前面还可以插入“宽度说明”、左对齐符号“-”、前导零符号“0”等附加字符。1)格式控制字符常用的格式控制字符和它们的功能见表3-1。使用时要注意区分大小写。第3章简单程序设计表3-1printf函数的格式控制字符格式控制字符说明d,i输出带符号的十进制整型数(正数不输出符号)o输出无符号八进制整型数x或X输出无符号十六进制整型数(用x时输出a~f,用X时输出A~F)u输出无符号十进制整型数c输出一个字符格式控制字符说明s输出字符串f以小数形式输出浮点数(隐含输出6位小数)e或E以指数形式输出浮点数,数字部分小数位数隐含输出6位g或G选用%f和%e格式中输出宽度较短的一种格式p输出变量或数组的地址第3章简单程序设计2)附加格式说明字符为了使程序的输出结果更加整齐美观,可以在控制字符的前面加上附加格式说明字符,见表3-2。第3章简单程序设计表3-2printf函数的附加格式说明符字符说明字母l用于长整型数据,可加在格式控制符d、o、x、u的前面m(正整数)数据最小宽度n(正整数)对于浮点数,表示输出n位小数;对于字符串,表示截取的字符个数;对于整数,指定必须输出的数字个数,若输出的数字少于指定的个数,则前面补0,否则按原样输出-输出的数字或字符向左对齐+输出的结果总是带有“+”号或“-”号0在输出数据前加0第3章简单程序设计【例3-2】输出数据,并且控制数据的对齐形式、小数点后数字位数、八进制形式输出、字符串输出宽度等。#includestdio.hmain(){inta=32,b=57;floatx=7.876543,y=-345.123;charc='a';longl=1234567;printf(%d%d\n,a,b);printf(%-3d%3d\n,a,b);/*左对齐输出a的值,右对齐输出b的值*/第3章简单程序设计printf(%8.2f,%8.2f,%.4f,%.4f\n,x,y,x,y);/*数据x占8位,小数点后取两位,右对齐等*/printf(%e,%10.2e\n,x,y);/*按指数形式输出x的值等*/printf(%c,%d,%o,%x\n,c,c,c,c);/*输出字符'a',字符'a'的ASCII码等*/printf(%ld,%lo,%x,%d\n,l,l,l,l);printf(%s,%5.3s\n,CHINESE,CHINESE);/*输出CHINESE和其前3个字符*/}第3章简单程序设计运行结果:325732577.88,-345.12,7.8765,-345.12307.87654e+00,-3.5e+02a,97,141,611234567,4553207,d687,18CHINESE,CHI第3章简单程序设计从上面的例子可以看出,输出的格式控制是很复杂的,除了可以控制数据按十进制、八进制、十六进制整型输出,或者按浮点型、字符型输出外,还可以控制数据输出对齐的方式(左对齐或右对齐)和实数输出的格式等。3.3.2putchar函数putchar函数是向屏幕终端输出一个字符。格式为putchar(ch);其中,ch可以是字符型常量、变量或整型变量。另外,在使用本函数时,程序首行要有“#includestdio.h”预编译命令。第3章简单程序设计【例3-3】输出字符。#includestdio.hmain(){chara,b,c;a='C';b='A';c='T';putchar(a);putchar(b);putchar(c);putchar('\n');putchar('\101');putchar('B');putchar('c');}运行结果:CATABc第3章简单程序设计3.4数据输入3.4.1scanf函数scanf函数的作用是接收从键盘输入的数据,格式化后赋给变量。scanf函数的格式为scanf(格式控制,地址1,地址2,…);说明如下。(1)格式控制的含义同前。(2)“地址n”是变量的地址。它既可以是简单变量的地址也可以是数组的地址。简单变量的地址用变量名前面加取地址运算符“&”表示,数组的地址用数组名表示。第3章简单程序设计例如,有如下变量说明。intday,year;charmonth[10];如果需要给变量day赋值为25,month赋值为Dec,year赋值为1996,则可以用下面的语句表示。scanf(%d%s%d,&day,&month,&year);数据输入时,应用空格隔开,按以下方式输入变量的值,即25Dec1996或者,数值型数据与字符型中间的空格省略,即25Dec1996第3章简单程序设计但字符型数据与数值型数据之间的空格不能省略,上例不能输入为25Dec1996(month得到了Dec1996)(3)输入字符时不加单引号,输入字符串时不加双引号。(4)当scanf的格式字符串包含有普通字符时,在输入流中相应位置必须有相同的字符与之匹配。格式串中的一个空白字符可以与输入流中0个或多个连续的空白字符匹配。例如:第3章简单程序设计main(){intx,y;printf(pleaseinputxandy:);scanf(%d,%d,&x,&y);}如果将23赋给变量x,将42赋给变量y,因为在格式字符串中包含了“,”,所以,数据输入时,输入数据间也应用“,”分隔,则数据的输入形式为“23,42”,而不能用空格或其他符号分隔,如“2342”。第3章简单程序设计(5)在TurboC环境下输入long型整数时,在“%”和“d”之间必须加“l”;输入double型数时,在“%”和“f”或“e”之间必须加“l”,否则得不到正确的数据。在scanf函数中的格式字符前可以用一个整数指定输入数据所占宽度,但不可对实型数指定小数位的宽度。例如:inti,j;scanf(%3d%d,&i,&j);若执行时输入:12345678则变量i的值为123,变量j的值为5678。第3章简单程序设计(6)在格式控制时,格式说明的个数应该与输入项的个数相同。若格式说明的个数少于输入项的个数时,scanf函数结束输入,多余的数据项并没有被接收;若格式说明的个数多于输入项的个数时,scanf函数同样也结束输入。例如,有下面的变量说明。inti,j;floatx,y;scanf(%d%d,&i,&j,&x);scanf(%f,&y);若执行时输入:123456.789则执行后,变量i的值为12,j的值为34,x未被赋值,y得到浮点数56.7。第3章简单程序设计【例3-4】使用scanf函数输入整型、浮点型、字符型数据分别赋给整型、浮点型、字符型变量。#includestdio.hmain(){intx;floaty;charch;prin

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功