C语言程序设计基础(第二版)课件:顺序结构实现语句-顺序 结构程序设计_第1页
C语言程序设计基础(第二版)课件:顺序结构实现语句-顺序 结构程序设计_第2页
C语言程序设计基础(第二版)课件:顺序结构实现语句-顺序 结构程序设计_第3页
C语言程序设计基础(第二版)课件:顺序结构实现语句-顺序 结构程序设计_第4页
C语言程序设计基础(第二版)课件:顺序结构实现语句-顺序 结构程序设计_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

顺序结构实现语句

——顺序结构程序设计3.1简单的顺序结构语句3.2数据的输入/输出3.3顺序结构程序设计实操训练课外练习

何谓顺序结构?计算机怎样执行顺序结构程序?

顺序处理是人们处理问题最基本的思维方式,也是程序的基本结构。所谓顺序处理,就是按照一定的逻辑或时间顺序一步一步地执行,程序的顺序结构由顺序执行语句组成,如图3.1所示。

顺序结构是一种最简单的程序结构。顺序结构语句是无条件被执行的语句,每一个程序必包含顺序结构语句。从程序的功能上看,顺序结构语句一般包括提供基本数据的语句、简单数据处理语句和数据输出语句。本章从最简单程序设计出发,介绍一些顺序结构实现语句与程序设计方法。图3.1顺序结构

3.1简单的顺序结构语句

简单的顺序结构中包含哪些语句?顺序结构语句中,有些语句比较复杂,需要深入学习才能正确使用,而有些语句比较简单,很容易使用。本节先介绍一些简单的顺序结构语句。

1.变量定义语句

在第2章已经介绍了变量的作用、意义以及变量的定义语句。变量定义语句的一般格式为

类型符变量名;

从程序结构上看,变量定义语句基本上是一个程序必有的语句。因为程序中的基本数据都是通过变量来存储的,所以成为基本的数据对象。变量定义语句一般出现在程序的

开始。

2.表达式语句

一个表达式末尾加上“;”就构成表达式语句。从C语法规定来讲,任何一个表达式加上“;”都可以构成C语句。从功能作用上讲,有些表达式能构成有意义的语句,而有些表达式构成的语句是没有意义的。

3.函数调用语句与返回函数值语句

C语言中的函数是实现相对独立功能模块的基本结构,相当于其他高级语言中的子程序或过程。函数调用语句用来引用函数的功能。函数调用语句的一般格式为

函数名(实参列表);

函数调用的功能是将程序执行转到被调用函数处。通过实参列表向被调用函数传递所需要的初始数据。例如:

printf("ThisisaCstatement.");

这是一个输出库函数的调用语句,传递的参数是一个字符串常量,实现的功能是输出所传递的字符串。

如果调用一个函数要求有一个返回值,要通过返回语句来实现。返回语句的一般格

式为

return(返回数据);

返回语句的功能是将括号中的数据从被调函数带回主调函数。括号中的“返回数据”一般是一个变量或表达式。返回语句一般用在函数体的末尾。

main()函数无返回值,但C99提倡在函数末尾加“return0;”语句,表示函数正常返回。如果不加,则编译系统自动添加,程序也能编译运行。

4.空语句

空语句是指程序语句行只有“;”。“;”是C语句的唯一标识,只要出现一个“;”就认为是一条语句。因分号前无内容,所以称为空语句。从形式上看,空语句好像没有什么意义,但还是有其用途的。如用程序实现一段延时,延时中不要求做什么,只是耗费一段时间,就可以采用空语句来实现。

5.复合语句

C语言中,把用{}界定的一个语句集合称为复合语句。例如:

{

z=x+y;

t=z/100;

printf("%f",t);

}

这是一个复合语句。复合语句中包含若干个C语句,也可能包含非顺序语句,但作为一个语句看,它仍属于顺序语句。

3.2数据的输入/输出

何谓数据的输入/输出?C语言中怎样实现数据的输入/输出?数据的输入和输出是一个程序具有的基本功能。输入是用户把数据通过计算机输入设备提供给程序。输出是将程序的处理结果通过计算机输出设备传送给用户。数据在计算机内部是以二进制形式进行存储与处理的。用户在输入设备上输入的数据都是人们熟悉的十进制数或字符。

用户从输出设备上得到的数据不仅要求是人们熟悉的数据形式,而且需要满足一定的格式要求。输入/输出是一个计算机与外部设备接口间传输数据的复杂过程。高级编程语言中提供简单的输入/输出实现语句,复杂的硬件接口间的数据传送、数据形式转换、数据格式控制等都在系统内部来完成。C语言提供了一些输入/输出库函数来实现这些功能。在程序中只要通过规定格式的函数调用语句就可以实现数据的输入/输出。本节主要介绍常用的输入/输出库函数的调用方法。

3.2.1数据格式输出函数(printf)

输出函数的调用格式是什么?怎样控制数据的输出格式?

数据的格式输出可通过调用库函数中的printf格式输出函数来实现。该函数可以将数据以不同的形式并按用户所要求的格式输出。

1.调用格式

printf函数调用的一般格式为

printf("格式控制字符串",输出数据列表);

其中,printf是库函数名,作为系统使用的关键字,调用语句必须严格使用此函数名,否则不能实现调用。

格式控制字符串是用双撇号界定的一个字符序列,用于控制输出数据的形式和数据的格式。格式控制字符串一般包含格式字符、非格式字符和转义字符三部分。

(1)格式字符用于控制所对应输出对象的数据形式。C语言中常用的格式字符见表3.1。格式字符必须以“%”开始,如%d、%i、%u、%o、%x、%X、%c、%s、%f、%e、%E、%g、%G。

(2)非格式字符指需要照原样输出的字符,如“printf("helloworld!");”,则输出“helloworld!”字符串。

(3)转义字符用于控制输出数据的格式。例如:“\n”表示回车换行;“\t”表示输出跳到下一个制表位。其他转义字符见表2.1。

输出数据列表是用逗号分隔的变量、常量、表达式、函数等,每个输出项依次与格式控制符匹配。

例如:

printf("a=%d,b=%f,c=%c\n",a,b,c);

按照格式字符和输出项从左到右的次序对应匹配,即%d控制a以十进制整数形式输出,%f控制b以十进制小数形式输出,%c控制c以字符形式输出,\n控制光标或打印头停在输出数据行的下一行首(即换行)。格式控制字符串中的其他字符照原样输出。

分析:

(1)格式控制字符串于开始使用\t,使数据从行首的第2个制表位置输出,即行首空8个字符位。第1个printf函数的控制符使用\n\n,使两行数据之间有一个空行。其他非格式字符按出现顺序原样输出。

(2)定义a为无符号整型变量,分别以%d、%o、%X、%u格式输出,按照数据实际值分别以十进制、八进制、十六进制、无符号数的形式输出。

(3)定义b为带符号整型变量,在计算机内部以二进制补码形式存储,存储结构如图3.2所示。以%d控制b以十进制整数值形式输出,即把内部的二进制补码转换成二进制原码,再转换成十进制数值输出;以%o、%X、%u分别控制b以八进制、十六进制和十进制无符号数形式输出,也就是把机内存储补码的符号位作数值位,分别转换为八进制、十六进制和十进制数输出。图3.2变量b值的原码与补码

分析:从运行结果可以看出,%f控制符使实型数据的整数部分按实际数位输出,小数部分采用系统默认的6位有效数字,第6位小数位是系统对小数第7位按四舍五入处理后的数值。%e、%E控制符输出的实数形式是一样的,仅是底数的表示字母不同而已,小数部分采用规范化形式,默认6位有效数字,指数部分符号占一位,指数占3位。%g、%G控制符输出的实数形式也是一样的,以最小宽度输出实型数据。

分析:

%s控制输出对象以字符串的形式输出,要求输出对象是一个字符串,按字符串的实际长度输出。%c控制输出对象以字符的形式输出,输出对象可以是字符型数据,也可以是整型数据。输出对象是整型数据,则看作字符的ASCII码,取值范围是0~255。

从本例又可以看出,字符型数据与整型数据可以通用。字符型数据可以用%d格式输出,则输出的是字符的ASCII码。整型数据(0~255)可以用%c格式输出,则输出的是十进制整数ASCII码所表示的字符。

2.附加说明符的使用

格式字符前可以插入附加说明符或加上一个数字,控制宽度以及小数位数,以说明输出数据的类型、形式、长度、小数位数等。常用的附加说明符见表3.2。

下面对表3.1中所列的格式字符作进一步说明。

(1) %d表示按十进制整型数据的实际长度输出,对long型数据,应当用%ld或%Ld格式。还可以在%与格式字符之间插入一个数字,来控制数据的输出长度,如%md、%mld、%mLd、%-md、%-mld、%-mLd等。

分析:从程序的执行结果可以看出,在格式控制符中插入数字“10”,使输出数据占10列宽度。不加对齐格式符(或加“+”),数据在输出域内右对齐。加对齐格式符“-”,数据在输出域内左对齐。

(2) %f格式使实数的整数部分全部输出,小数部分输出6位有效数字。还可以在%与f之间插入“m.n”,来控制数据的输出长度及小数点位数。其中,m表示数据所占列数(包括符号和小数点),n表示小数部分所占位数(不包括小数点),如果数据长度小于m,则左补空格。还可以加对齐方式字符。也可以只规定数据宽度m,或只规定小数位数n。例如%m.nf、%-m.nf、%mf、%-mf、%.nf、%-.nf等。

分析:

%f控制整数部分按实际位数输出,系统默认输出6位小数,与实际小数不一样,是由系统在内存中的存储误差引起的。

%10.2f控制输出数据占10个字符位、两位小数,并按默认方式右对齐,规定的两位小数系统按第3位小数四舍五入处理后输出,因实际的数据位数小于设定的数据宽度,所以左补空格。

%-10.2f控制的输出数据,其宽度、小数点位数同%10.2f,但要求左对齐,因实际的数据位数小于设定的数据宽度,所以右补空格。

%10f只设定输出数据的宽度,因整数和小数点占4个字符位,剩下6位则作小数的输出位数。

%.2f只设定输出小数部分的宽度,整数部分则按实际数位输出。

(3) %e或%E格式下,系统默认6位小数,指数部分占5位(如e+003),“e”占一位,指数符号占一位,指数占3位,数值按标准化指数输出。可以在%与e(E)之间插入“m.n”,来控制数据的输出长度及小数点位数。其作用及使用方式同%f。也可以加对齐方式字符。

(4) %s格式下,输出字符串的实际字符。可以在%与s之间插入“m.n”,其作用是:输出的字符串占m列,但只截取字符串中左端n个字符输出。如字符串本身长度大于m,即突破m的限制,将字符串全部输出。若串长小于m,则左补空格。也可以插入对齐方式字符。例如,%m.ns、%-m.ns、%ms、%-ms。

分析:

%s控制字符串按实际长度输出。

%15s控制字符串占15个字符位,默认右对齐;因字符串的实际长度小于15,所以左补空格。

%15.3s控制字符串占15个字符位,只截取前3个字符输出,默认右对齐,左补12个空格。

%-15.3s同%15.3s,要求左对齐,右补12个空格。

3.2.2数据格式输入函数(scanf)

输入函数的调用格式是什么?怎样设定输入数据的格式?

数据的格式输入是通过调用库函数中的格式输入函数scanf来实现的。该函数可以实现任何类型的多个数据的输入。

1.调用格式

scanf函数调用的一般格式为

scanf("格式控制符",地址列表);

scanf是库函数名,作为系统使用的关键字,调用语句必须严格使用此函数名,否则不能实现调用。

格式控制字符串是用双撇号界定的一个字符序列,用于控制输入数据的形式和格式。格式控制字符串一般包含格式字符、非格式字符两部分。

(1)格式字符用于指定输入数据的形式。常用的格式字符见表3.3。格式字符以“%”开始,在%和格式字符之间也可以插入附加说明符。常用的附加说明符见表3.4。

(2)在格式控制字符串中出现非格式字符时,在输入数据时要照样输入。

地址列表是存放输入数据变量的地址。

例如:

scanf("%d%d%d",&a,&b,&c);

2.调用执行与数据输入

调用执行scanf函数时,光标停留在一个位置闪烁,等待输入数据。用户应按格式控制字符串中设定的格式和地址列表中变量的顺序依次输入数据。如果格式控制字符串中没有插入非格式字符,每输入一个数据,应按结束键,计算机每取得一个数据就赋给对应变量,直到地址列表中所有变量都取得数据,则scanf函数调用结束。结束一个数据的按键有回车键、空格键、Tab键。

如果格式控制字符串中插入非格式字符,作为数据的间隔符号,则每输入一个数据应输入设定的间隔符号,输入完毕则按“回车键”。如执行“scanf("%d,%d,%d",&a,&b,&c);”时,则应按如下形式输入:

12,34,56↙

即格式控制字符串中插入的非格式字符必须照原样输入。

分析:3个scanf函数调用语句前都用了一个printf,输出一个字符串信息,提示输入数据,这是为了提高界面的“友好”性;输入数据的类型要与格式控制符对应;非格式字符要照原样输入;系统按输入数据的顺序将其依次赋给scanf中的变量。

3.关于scanf函数的几点说明

(1)可以指定输入数据的长度,系统按指定长度截取数据,赋给对应变量。例如:

scanf("%3d%3d",&a,&b);

输入

123456789↙

系统将123赋给a,456赋给b。

(2)插入“*”附加说明符,表示系统给变量赋值要跳过一个数据。例如:

scanf("%d%*3d%2d",&a,&b);

输入

12└┘345└┘67↙

系统将12赋给a,跳过345,将67赋给b。

(3)格式控制字符串中若包含非格式字符,这些字符要按出现顺序照原样输入。例如:

scanf("%d:%d:%d",&h,&m,&s);

应输入

12:23:38↙

3.2.3字符输出函数(putchar)

C语言库函数中提供了一个用于字符输出的函数。其调用的一般形式为

putchar(ch);

其中,ch是输出的字符型数据对象,可以是字符常量、字符变量、整型常量和整型变量。

3.2.4字符输入函数(getchar)

C语言库函数中提供了一个用于字符输入的函数。其调用的一般形式为

getchar();

调用执行该函数时,光标停留在一个位置闪烁,等待输入字符,从键盘上输入一字符后按回车键,则将得到的字符作为返回值。

3.3顺序结构程序设计

简单顺序结构程序设计应考虑哪些问题?顺序结构程序是最简单的程序,设计时,只需把解决问题的步骤按顺序列出,再写出实现每一步的C语句。一般来说,一个程序要包含存放数据的变量定义、数据处理和输出结果三个部分。解决问题的步骤称为算法。编程之前,算法应用流程图描述出来。流程图是按约定的图形符号绘制的。

例3.11输入三角形的三边长,求三角形面积。

编程思路:已知三边,求解三角形面积的数学公式为

算法用流程图表示,如图3.3所示。C语言库函数中提供了一个求平方根的函数sqrt(floatx)。程序中要调用输入/输出函数和数学公式计算库函数,所以在程序开头应使用预处理命令将stdio.h和math.h头文件包含进来。

分析:根据程序中处理的数据,定义实型变量a、b、c,用于存放三角形三边数据,定义实型变量s、area,用于存放中间计算结果和三角形面积。程序按顺序先输入三角形三边数据,再计算三边之和的二分之一,按公式计算面积,最后将结果输出。

例3.12从键盘输入一个大写字母,要求转换成小写字母并输出。

编程思路:查ASCII码表可知,大写字母与小写字母的ASCII码值相差32。所以,只要将大写字母ASCII码值加32,即转换为小写字母的ASCII码值。

分析:定义字符变量c1、c2,getchar函数从键盘接收一大写字母并转换成ASCII码,赋给变量c1,然后按字符型和实型ASCII码输出,再进行转换计算,将结果赋给c2,最后把转换的小写字母按字符型和实型ASCII码输出。

实操训练

实训任务三熟悉格式输入/输出和顺序程序设计

实训项目设计程序,实现单一功能计算器,输入/输出界面可参照图3.4所示。图3.4实训项目输入/输出界面式样

实训指导

1.设计程序

(1)根据所处理的数据定义变量。

(2)调用格式输出函数,在屏幕上显示数据输入的提示信息。

(3)调用格式输入函数,输入运算数。

(4)调用格式输出函数,设置格式控制字符串,输出算式。

2.调式运行程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论