顺序结构程序设计-2

上传人:san****019 文档编号:68322420 上传时间:2019-01-10 格式:PPT 页数:45 大小:216.95KB
返回 下载 相关 举报
顺序结构程序设计-2_第1页
第1页 / 共45页
顺序结构程序设计-2_第2页
第2页 / 共45页
顺序结构程序设计-2_第3页
第3页 / 共45页
顺序结构程序设计-2_第4页
第4页 / 共45页
顺序结构程序设计-2_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《顺序结构程序设计-2》由会员分享,可在线阅读,更多相关《顺序结构程序设计-2(45页珍藏版)》请在金锄头文库上搜索。

1、3 顺序结构程序设计,本章重点: C语言基本语句的分类 字符数据输入输出函数 格式化输入输出函数 本章难点 格式化输入输出函数的格式控制字符串 从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、选择结构、循环结构。这三种基本结构可以组成所有的各种复杂程序,C语言提供了相应的语句。本章介绍C语言中构成顺序结构的一些语句,使读者对C程序有一个初步的认识,为后面各章的学习打下基础。,3.1 C语言语句概述,C语言的语句可分为说明语句和可执行语句两大类。说明语句包括变量定义或说明、数据类型定义、函数声明等语句;可执行语句用来向计算机发出操作指令,一条可执行语句编译后可产生若干条机器指令。在函

2、数或复合语句内的说明语句必须在可执行语句的前面。本节介绍的是可执行语句,主要分为简单语句和复合语句,简单语句主要包括表达式语句、函数调用语句、控制语句和空语句等 。,3.1.1 简单语句,(1) 表达式语句 表达式语句由表达式加上分号“;”组成,其一般形式为: 表达式; 执行表达式语句就是计算表达式的值。例如: i=i+1; /*将i+1的结果存入变量i中*/ x+y; /*加法运算语句,但计算结果不能保留,无实际意义*/ i+; /*i值增1*/ (2) 函数调用语句 由函数调用加上分号“;”组成。例如: printf(“C Program“);/*调用库函数,输出字符串*/,(3) 控制语

3、句 控制语句用于控制程序的流程,C语言有九种控制语句,可分成以下三类: 1) 条件判断语句:if语句、switch语句等; 2) 循环执行语句:do-while语句、while语句、for语句; 3) 转向语句:break语句、goto语句、continue语句、return语句。 (4) 空语句 只有分号“;”组成的语句称为空语句。程序执行时不产生任何动作。程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号也会导致逻辑上的错误,需要慎用。 例如: while(getchar()!=n); 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。,3.1.2

4、复合句,把多个语句用括号“”括起来组成的一个语句称复合语句。复合语句也称为“语句块”,复合语句的语句形式如下: 语句1; 语句2; ; 语句n; 一个复合语句在语法上视为一条语句,在括号“”内的语句数量不限。例如: x=y+z; a=b+c; printf(“%d%d“,x,a); ,3.2 字符数据的输入输出,所谓输入输出是以计算机主机为主体而言的。从计算机向外部输出设备(如显示器、打印机、磁盘等)输出数据称为“输出”,从输入设备(如键盘、磁盘、光盘、扫描仪等)向计算机输入数据称为“输入”。本章所述的输入输出设备主要指的是键盘和显示器。 与其他高级语言有所不同,C语言没有提供输入输出语句,数

5、据输入输出是由函数来实现的,在调用输入输出函数之前,应使用下面预编译命令对头文件“stdio.h”(stdio是standard input/output的缩写) 进行文件包含说明。 #include 输入输出函数主要包括字符数据的输入输出函数及格式化输入输出函数。本节介绍字符数据的输入输出函数。,3.2.1 字符输出函数(putchar),putchar 函数是字符输出函数,其功能是在默认输出终端(一般为显示器)上输出单个字符。其一般形式为: putchar(ch) 其中ch可以是一个字符变量或常量,也可以是一个转义字符。 例3-1 输出单个字符。 #include main() char

6、ch=B; putchar(ch); /*输出变量的值字符B*/ putchar(n); /*输出一个换行符*/ putchar(B); /*直接输出字符B*/ putchar(n); /*输出一个换行符*/ putchar(0x42); /*使用ASCII值输出字符B*/ putchar(n); /*输出一个换行符*/ 程序运行结果如下: B B B,3.2.2 字符输入函数(getchar),getchar函数是字符输入函数,其功能是从系统默认的输入终端(一般为键盘)输入一个字符,可以是字母字符、数字字符和其他字符等。其一般形式为: getchar(); 要注意的是,getchar函数等待

7、输入直到按回车才结束,回车前所输入的全部字符都会在在屏幕上显示,但只有第一个字符作为函数的返回值。 例3-2 输入单个字符。 #include main() char c; c=getchar(); putchar(c); 程序运行结果如下: abc a,另外,getchar函数得到的字符可以赋给字符变量或整型变量,也可以不赋给任何变量,而作为表达式的一部分。例3-2可以写成: #include main() putchar(getchar(); ,.3 格式化输入输出函数,3.3.1 格式输出函数(printf) (1) printf函数的一般调用形式 printf函数是C语言提供的标准输出

8、函数,它的作用是将数据在终端设备(或系统默认的输出设备上)按指定格式输出。 printf函数调用的一般形式为: printf(“格式控制字符串“,输出表列); 其中,输出表列是以逗号隔开的表达式,格式控制字符串的作用如下: 1) 为各输出项提供输出格式 输出格式的作用是将要输出的数据转换为指定的格式输出。它总是由“%”符号开始,紧跟其后的是格式描述符,说明输出数据的类型、形式、长度、小数位数等。 2) 原样输出普通字符,在程序运行过程中起提示作用。,例3-3 程序示例 #include main() int i=3314; float a=2.1454; printf(“i=%d,a=%f,a

9、*10=%en“,i,a,a*10); 程序运行结果为: i=3314,a=2.145400,a*10=2.145400e+001 在上面printf的格式控制串中,“i=”按原样输出,在“%d”的位置上输出变量i的值,接着输出一个逗号“,”和“a=”,在“%f”的位置上输出变量a的值, 又输出一个逗号“,”和“a*10=”,在“%e”的位置上输出a*10的值,最后输出一个换行符,(2) printf函数中常用的输出格式 在Turbo C中,printf函数的输出格式的一般形式为: %标志宽度指示符.精度指示符长度修正符格式字符 其中,方括号中的项为可选项。 1) 格式字符:格式字符用以表示输

10、出数据的类型,格式字符如表3-1所示。 表3-1 格式字符表,2) 宽度指示符:用来指定输出数据项的最小字段宽度,通常用十进制表示。省略宽度指示符时,按实际位数输出;若实际位数大于定义的宽度,也按实际位数输出;若实际位数小于定义的宽度,数据右对齐,左边补以空格。如表3-2所示。 表3-2 未指定宽度和指定输出宽度时的输出结果,3) 精度指示符:精度指示符以“.”开头,后跟十进制整数。精度指示符通常与宽度指示符结合使用,格式为“m.n”,其中“m”表示输出数据所占总的宽度,“n”表示输出数据的精度。 对于浮点数,“n”表示输出数据的小数的位数,当输出数据的小数位数大于“n”时,截去右边多余的小数

11、,并对截去的第一位小数做四舍五入;当输出数据的小数位数小于“n”时,在小数的最右边添0。 也可以省略“m.n”中的m,用“.n”表示小数的位数,并对截去的第一位小数进行四舍五入,这时输出数据的宽度由系统决定。若指定“%.0f”,则不输出小数部分,但要对第一位小数进行四舍五入。 对于g或G,“.n”表示输出的有效数字,并对截去的第一位进行四舍五入,整数部分并不丢失,隐含的输出有效数字为6位有效数字。 对于字符串,“.n”则表示要输出字符的个数;如果实际位数大于所定义的精度时,则截去超过的部分。表3-3列举了一些指定精度的例子。,表3-3 指定精度时的输出结果,4) 标志:标志字符为-、+、#、空

12、格四种,其意义如表3-4所示。表3-5列举了一些使用标志的例子。 表3-4 标志及其意义,表3-5 标志的用法,5) 长度:长度格式符为h、l两种,%hd表示按短整型输出,%ld表示按长整型输出,%lf按双精度输出。 例3-4 程序示例 #include main() int a=15; float b=123.1234567;double c=12345678.1234567; char d=p; printf(“a=%d,%5d,%o,%xn“,a,a,a,a); printf(“b=%f,%lf,%5.4lf,%en“,b,b,b,b); printf(“c=%lf,%f,%8.4lfn

13、“,c,c,c); printf(“d=%c,%8cn“,d,d); 程序运行结果如下: a=15,15,17,f b=123.123459,123.123459,123.1235,1.231235e+002 c=12345678.123457,12345678.123457,12345678.1235 d=p,p,注意:在例3-4中,b是单精度实数,只能保证7位有效数字,因此b=123.123459中,123.1234是准确的,后面几位是不准确的。而c是双精度实数,能保证16位有效数字,因此结果每一位都是准确的。 (3) 调用printf函数时的注意事项 1) 输出表列中的各输出项要用逗号隔

14、开,输出项可以是合法的常量、变量或表达式。格式控制字符串中的格式描述符与输出列表的输出项在数量和类型上应该一一对应。如果格式控制字符串中的格式描述符少于输出项的个数,多余的输出项不予输出;如果格式控制字符串中的格式描述符多于输出项的个数,则对于多余的格式将输出不定值(或0值)。 2) 如果格式控制字符串中的格式描述符与对应的输出项类型不匹配,将导致数据不能正确输出,这时系统并不报错,例如在输出长整型数据时,一定要使用%ld格式说明,如果使用%d,将输出错误的数据。,例3-5程序示例 #include main() long a=80000; printf(“x=%dn“,a); 程序运行后的输

15、出结果是 x=14464 3) 在格式控制字符串中,除了合法的格式说明外,可以包含任意的合法字符(包括转义字符),这些字符在输出时将原样输出。 4) 如果需要输出百分号%,则应该在格式控制字符串中用连续的百分号“%”来表示。 5) printf函数的返回值通常是本次调用中输出项的个数。 6) 在输出时,先对输出表列的各项求值,然后再输出。输出顺序是从左到右,而求值顺序,有的编译系统是从左到右,有的是从右到左,Turbo C是按从右到左进行的,例3-6程序示例 #include main() int i=8; printf(“%dt%dn“,i,i+); 输出结果为: 9 8 在Turbo C中

16、运行该程序时,对printf函数的各输出项按自右至左的顺序求值,即先对“i+”求值,结果为8;再对i求值,此时i为9。然后按自左至右输出,得上述结果。,3.3.2 格式输入函数(scanf) (1) scanf函数的一般调用形式 scanf函数是C语言提供的标准输入函数,它的作用是从终端设备(或系统默认的输入设备)上输入数据。 scanf函数的一般调用形式如下: scanf(“格式控制字符串“,地址列表); 例如: scanf(“%d%d“, 其中scanf是函数名,“%d%d”为格式控制字符串; &a,&b组成地址列表,表示两个输入项。 1) 格式控制字符串的作用是指定输入数据的格式,由“%”符号开始,其后是格式描述符。 2) 各输入项只能是合法的地址表达式,例如&a,&b。“&”是C语言中求地址运算符,&a就是取变量a的地址, &b就是取变量b的地址,也就是说各输

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号