第03章-顺序结构程序设计_第1页
第03章-顺序结构程序设计_第2页
第03章-顺序结构程序设计_第3页
第03章-顺序结构程序设计_第4页
第03章-顺序结构程序设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-3-31第第3 3章章 顺序结构程序设计顺序结构程序设计数据处理的一般过程是:输入输入 处理 输出输出。在C语言中,输入输出操作是由编译系统提供的库函数库函数来实现。教学目的教学目的:掌握掌握printf() 、scanf()函数,以及顺序结构程序设计。2022-3-32教学内容教学内容:3.1* 格式化输出格式化输出printf()函数函数3.2* 格式化输入格式化输入scanf()函数函数3.3 顺序结构程序设计顺序结构程序设计本章要点本章要点本章作业与上机实践本章作业与上机实践2022-3-333.13.1* * 格式化输出格式化输出printfprintf()()函数函数3.

2、1.1 printf()函数的一般格式函数的一般格式 案例案例3.1 3.1 已知圆半径已知圆半径radius=1.5radius=1.5,求圆周长,求圆周长(2r)(2r)和圆面积和圆面积(r(r2 2) ) 。2022-3-34#include “stdio.h”#include “conio.h”void main( ) float radius = 1.5, length, area, pi=3.14; length = 2 * pi * radius; area = pi * radius * radius; printf(“radius = %fnradius = %fn”, ra

3、dius); printf(“lengthlength = %7.2f, area=%7.2fn = %7.2f, area=%7.2fn”, length, area); getch(); radius = 1.500000length = 9.42, area = 7.072022-3-35printfprintf()()函数的一般格式:函数的一般格式: printfprintf(格式字符串格式字符串 ,输出项表,输出项表);1 1格式字符串格式字符串(1)格式指示符格式指示符: % % 标志标志宽度宽度.精度精度F|N|h|LF|N|h|L类型类型例如,%7.2f%7.2f。各类常用指示

4、符,参见表3-1至表3-5。2022-3-36在表在表3-1中,最常用的中,最常用的标志标志字符是字符是“-” :左对齐左对齐,右端补空格。缺省时为右对齐,左端补空格。右端补空格。缺省时为右对齐,左端补空格。在表在表3-2中,最常用宽度字符中,最常用宽度字符“n”:指定输出域:指定输出域的的宽度宽度。若超长,则按实际宽度输出;若不足,则。若超长,则按实际宽度输出;若不足,则补空格。补空格。在表在表3-3中,最常用精度字符中,最常用精度字符“ .n”:指定保留:指定保留的的小数位数小数位数(实数,超长则实数,超长则4舍舍5入入),或截取左起的,或截取左起的前前n个字符个字符(字符串字符串)。在表

5、在表3-4中,最常用的长度字符中,最常用的长度字符“l”:长长整型。整型。2022-3-37在表在表3-5 中,最常用的数据中,最常用的数据类型类型转换字符如下表转换字符如下表所示:所示: 数据类型数据类型类型转换字符类型转换字符功功 能能整 数d 带符号十进制整数十进制整数实 数f十进制小数十进制小数形式(默认6位小数)字 符c输出1个字符字符s输出1个字符串字符串2022-3-38(2)转义字符。转义字符。特点:通常是产生一个控制操作。特点:通常是产生一个控制操作。例如,转义字符例如,转义字符n,输出时产生一个,输出时产生一个“换行换行”操作。操作。 (3)普通字符普通字符除格式指示符和转

6、义字符之外的除格式指示符和转义字符之外的其它字符。其它字符。特点:特点:原样输出原样输出。例如,例如,“radius=”、“length=”、“area=”、“,”。2022-3-392输出项表输出项表如果不止如果不止1个,则相邻个,则相邻2个之间用个之间用逗号逗号分开。分开。下面的用法都是合法的:下面的用法都是合法的:(1)printf(I am a student.n);(2)printf(%d,3+2);(3)printf(a=%f b=%5dn, a, a+3);2022-3-3103.1.2 常用的类型转换字符常用的类型转换字符输出不同类型数据,要使用不同类型转换字符。输出不同类型数

7、据,要使用不同类型转换字符。2022-3-3111类型转换字符类型转换字符d以带符号的以带符号的十进制整数十进制整数形式输出。形式输出。 案例案例3.2 3.2 类型转换字符类型转换字符d d的使用。的使用。#include “stdio.h”#include “conio.h”void main() int num1=123; long num2=123456; printf(num1=%d,num1=%5d,num1=%-5d,num1=%2dn, num1,num1,num1,num1); printf(num2=%ld,num2=%8ld,num2=%5ldn, num2,num2,n

8、um2); printf(num1=%ldn,num1); getch(); 2022-3-312程序运行结果如下:程序运行结果如下:num1=123,num1=123,num1=123,num1=123num2=123456,num2=123456,num2=123456num1=16908411(1)格式指示符,必须与输出项的数据类型一致,否则会引起输出错误。(2)对于整数整数,还可用%o%o(八进制无符号形式)、 %x%x(十六进制无符号形式)、 %u%u(十进制无符号形式)输出。类型匹配错误,输出结果是随机的。2022-3-3132类型转换字符类型转换字符f以以小数形式小数形式输出实数

9、。输出实数。 案例案例3.3 3.3 类型转换字符类型转换字符f f的使用。的使用。#include “stdio.h”#include “conio.h”void main( ) float f = 123.456; double d1,d2; d1 = 1111111111111.111111111; d2 = 2222222222222.222222222; printf(%f, %12f, %12.2f, %-12.2f, %.2fn, f, f, f, f, f ) ; printf(d1 + d2 = %fn, d1 + d2); getch(); 2022-3-314程序运行结果

10、如下:程序运行结果如下:123.456001,123.456001,123.46,123.46,123.46d1+d2=3333333333333.333010提示提示:对于实数:对于实数也可使用也可使用%e%e,以,以标准指数形式标准指数形式输出;输出;或使用或使用%g%g,让,让系统系统根据数值的大小,根据数值的大小,自动选择自动选择%f或或%e格式、且不输出无意义的零。格式、且不输出无意义的零。2022-3-3153 3类型转换字符类型转换字符c c输出输出1 1个个字符字符( (占占1 1列宽度列宽度) ) 案例案例3.4 3.4 类型转换字符类型转换字符c c的使用。的使用。#inc

11、lude “stdio.h”#include “conio.h”void main() char c=A; int i=65; printf(c= %c, %5c, %dn, c, c, c ); printf(i = %d, %c, i, i); getch(); 程序运行结果如下: c = A, A, 65 I = 65, A2022-3-3164类型转换字符类型转换字符s输出一个输出一个字符串字符串。 案例案例3.5 3.5 类型转换字符类型转换字符s s的使用。的使用。#include “stdio.h”#include “conio.h”void main() printf(%s,

12、%5s, %-10s,Internet,Internet,Internet); printf(%10.5s, %-10.5s, %4.5sn,Internet,Internet,Internet); getch(); 程序运行结果如下:程序运行结果如下:Internet,Internet,Internet,Inter,Inter,Inter 注意注意:系统输出字符(串),不输出单引号和双引号。2022-3-3173.1.3 使用说明使用说明1格式指示符格式指示符,必须按从左到右的顺序,与输出,必须按从左到右的顺序,与输出项表中的每个项表中的每个数据数据一一对应,否则出错。一一对应,否则出错。例

13、如,例如,printf(str = %s, f = %d, i = %fn, Internet, 1.0 / 2, 3 + 5, CHINA);是错误的。是错误的。2类型转换字符的类型转换字符的紧前字符紧前字符不是不是“%”时,将作时,将作普通字符处理普通字符处理(原样输出原样输出)。例如,例如,“printf(”c = %c, f = %fn“, c, f);”中的第中的第一个一个c和和f,都是普通字符。,都是普通字符。2022-3-3183类型转换字符类型转换字符x、e、g,大小写均可。大写时,大小写均可。大写时,输出数据中包含的字母也大写。输出数据中包含的字母也大写。其它类型转换字符,必

14、须小写。例如,其它类型转换字符,必须小写。例如,%f不能不能写成写成%F。返回返回2022-3-3193.23.2* * 格式化输入格式化输入scanfscanf()()函数函数3.2.1 一般格式一般格式 案例案例3.63.6 已知圆柱体的底半径已知圆柱体的底半径radius=1.5,高,高high = 2.0 ,求其体积,求其体积(r2 h) 。2022-3-320#include “stdio.h”#include “conio.h”void main() float radius, high, pi=3.14159, vol; radius=1.5; high=2.0; vol = p

15、i * radius * radius * high; printf(“vol = %7.2fn”, vol); getch(); 思考:使用赋值语句给出初值的方式的局限性?思考:使用赋值语句给出初值的方式的局限性?2022-3-321 案例案例3.7 3.7 已知圆柱体的底半径为已知圆柱体的底半径为radiusradius、高为、高为highhigh,求其体积。,求其体积。#include “stdio.h”#include “conio.h”void main() float radius, high, vol, pi=3.1415926; printf(Please input radi

16、us & high: ); scanf(scanf(%f%f%f%f , , &radius, &high&radius, &high);); vol = pi * radius * radius * high; printf(radius=%7.2f, high=%7.2f, vol=%7.2fn, radius, high, vol); getch(); Please input radius & high: 1.52.0radius=1.50,high=2.00,vol=14.142022-3-322给计算机提供数据,可以使用:给计算机提供

17、数据,可以使用:(1)赋值语句。赋值语句。只能解决只能解决1 1个个特定的问题。例如,特定的问题。例如,案例案例3.6。(2)输入函数输入函数scanf() 。能解决能解决1 1类类特定的问题。例如,特定的问题。例如,案例案例3.7。显然,采用显然,采用scanfscanf( )( )函数函数,使得程序具有更好,使得程序具有更好的的适应性适应性。2022-3-323scanf( )函数的一般格式:函数的一般格式: scanfscanf(格式字符串格式字符串, , 输入项首地址表输入项首地址表););(1)格式字符串格式字符串 格式指示符格式指示符:与printf()函数的相似; 普通字符普通字

18、符:必须原样输入。2022-3-324(2)输入项首地址表输入项首地址表可以是变量首地址变量首地址、数组名数组名,或者指针变量指针变量。变量首地址的表示: & &变量名变量名相邻2个输入项首地址,用逗号分开。地址运算符2022-3-3253.2.2 数据输入操作数据输入操作(假设num1=12、num2=36)1默认分隔符默认分隔符空格、空格、 Tab键、回车键、回车如果不指定分隔符(例如逗号、冒号),则使用默认分隔符。例如,scanf(%d%d,&num1,&num2);正确的输入操作为: 1236 或者:12 362022-3-3262普通字符普通字符务必原

19、样输入。务必原样输入。(1) scanf(%d , ,%d,&num1,&num2); 正确的输入操作为:12 , 36(2) scanf(num1=%d , num2=%dn,&num1,&num2); 正确的输入操作为: num1=12 ,num2=36n 提示提示:scanf()格式字符串中,没有转义字符转义字符概念。比较(1)、(2)两种设计方式的优缺点?2022-3-327比较比较(1)(1)、(2)(2)两种设计方式的优缺点?两种设计方式的优缺点?(1) 仅输入数据,输入量小,但人机交互性差(用户不知道该输入什么,以及输入给谁)。(2) 同时输入说明

20、和数据,人机交互友好性好,但输入量大。思考思考:如何改进设计,既保持良好的人机交互性,又不增加输入量?2022-3-328提高人机交互性的设计思路提高人机交互性的设计思路:先用先用printf()函数输出提示信息,再用函数输出提示信息,再用scanf()函数函数进行数据输入。进行数据输入。scanf(num1=%d,num2=%dn,&num1,&num2);printf(num1=); scanf(%d,&num1);printf(num2=); scanf(%d,&num2);2022-3-3293使用使用 “%c”输入时,输入时,空格空格和和转义字符转义字

21、符均作为有效字符均作为有效字符被输入。被输入。例如:例如:scanf(%c%c%c,&ch1,&ch2,&ch3);printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3);思考:假设输入思考:假设输入“A AB BC”C”,printfprintf()()输出的内容是什输出的内容是什么?么?输出结果输出结果:ch1= A,ch2=,ch3= B返回返回2022-3-3303.3 3.3 顺序结构程序设计顺序结构程序设计顺序结构程序一般包括两部分:顺序结构程序一般包括两部分:1程序开头的程序开头的编译预处理命令编译预处理命令。如果要在程序中使用

22、标准库函数,则必须使用编如果要在程序中使用标准库函数,则必须使用编译预处理命令译预处理命令#include,将相应的头文件包含进来。,将相应的头文件包含进来。2022-3-3312函数体主要包括:函数体主要包括:(1)变量定义语句;变量定义语句;(2)输入语句;输入语句;(3)运算语句;运算语句;(4)输出语句。输出语句。 3 执行流程执行流程:各语句是按照各语句是按照物理位置物理位置次序,被次序,被顺序执行,且每个语句都会被执行到。顺序执行,且每个语句都会被执行到。2022-3-332 案例案例 输入输入3 3个整数,求它们的和及平均值。个整数,求它们的和及平均值。#include “std

23、io.h”#include “conio.h”void main() int num1,num2,num3,sum; float aver; printf(Please input three numbers:); scanf(%d, %d, %d, &num1, &num2, &num3); sum = num1 + num2 + num3;/*求累计和求累计和*/ aver = sum / 3.0; /*求平均值求平均值*/ printf(num1=%d,num2=%d,num3=%dn, num1, num2, num3); printf(sum=%d, aver

24、=%7.2fn,sum, aver); getch(); 2022-3-333 案例案例3.11 3.11 设计一个进行加、减、乘、除和设计一个进行加、减、乘、除和求余数运算练习的程序。求余数运算练习的程序。对程序功能的基本要求如下:对程序功能的基本要求如下:(1) 使用菜单驱动;使用菜单驱动;(2) 随机产生运算所需的随机产生运算所需的2个操作数(个操作数(0-99););(3) 程序自动判断用户的计算结果是否正确。程序自动判断用户的计算结果是否正确。由于所学内容的限制,本案例的设计要求将在由于所学内容的限制,本案例的设计要求将在本章,以及随后的第本章,以及随后的第4 第第7章中分阶段逐步实

25、现并章中分阶段逐步实现并完善。完善。本案例首先实现设计要求本案例首先实现设计要求(1) 。 2022-3-334/*功能:菜单程序段功能:菜单程序段*/#include stdio.h#include conio.hvoid main() char options; clrscr( );/*清屏。函数原型在清屏。函数原型在conio.h中中*/2022-3-335 printf( 加、减、乘、除和求余数运算练习程序加、减、乘、除和求余数运算练习程序 n); printf(n); printf( + (Addition) + / a n); printf( - (Subtraction) - / s n); printf( * (Multiplication) * / m n); printf( / (Division) / / d n); printf( % (Remainder) % / r n); printf( E x i t e n); printf(

温馨提示

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

评论

0/150

提交评论