顺序结构程序设计(1).ppt_第1页
顺序结构程序设计(1).ppt_第2页
顺序结构程序设计(1).ppt_第3页
顺序结构程序设计(1).ppt_第4页
顺序结构程序设计(1).ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

2019/5/20,1,第3章 顺序结构程序设计,数据处理的一般过程是:输入 处理 输出。 在C语言中,输入输出操作是由编译系统提供的库函数来实现。 教学目的: 掌握printf() 、scanf()函数,以及顺序结构程序设计。,2019/5/20,2,教学内容: 3.1* 格式化输出printf()函数 3.2* 格式化输入scanf()函数 3.3 顺序结构程序设计 本章要点 本章作业与上机实践,2019/5/20,3,3.1* 格式化输出printf()函数,3.1.1 printf()函数的一般格式 案例3.1 已知圆半径radius=1.5,求圆周长(2r)和圆面积(r2) 。,2019/5/20,4,#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 = %fn”, radius); printf(“length = %7.2f, area=%7.2fn”, length, area); getch(); ,2019/5/20,5,程序运行结果如下: radius = 1.500000 length = 9.42, area = 7.07,2019/5/20,6,printf()函数的一般格式: printf(“格式字符串“ ,输出项表); 1格式字符串 (1)格式指示符: %标志宽度.精度F|N|h|L类型 例如,%7.2f。 常用各类指示符,参见表3-1至表3-5。,2019/5/20,7,在表3-1中,最常用的标志字符是“-” :左对齐,右端补空格。缺省时为右对齐,左端补空格。 在表3-2中,最常用宽度字符“n”:指定输出域的宽度。若超长,则按实际宽度输出;若不足,则补空格。 在表3-3中,最常用精度字符“ .n”:指定保留的小数位数(实数,超长则4舍5入),或截取左起的前n个字符(字符串)。 在表3-4中,最常用的长度字符“l”:长整型。,2019/5/20,8,在表3-5 中,最常用的数据类型转换字符如下表所示:,2019/5/20,9,(2)转义字符。 特点:通常是产生一个控制操作。 例如,转义字符n,输出时产生一个“换行”操作。 (3)普通字符除格式指示符和转义字符之外的其它字符。 特点:原样输出。 例如,“radius=”、“length=”、“area=”、“,”。,2019/5/20,10,2输出项表 如果不止1个,则相邻2个之间用逗号分开。 下面的用法都是合法的: (1)printf(“I am a student.n“); (2)printf(“%d“,3+2); (3)printf(“a=%f b=%5dn“, a, a+3);,2019/5/20,11,3.1.2 常用的类型转换字符 输出不同类型数据,要使用不同类型转换字符。,2019/5/20,12,1类型转换字符d以带符号的十进制整数形式输出。 案例3.2 类型转换字符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,num2); printf(“num1=%ldn“,num1); getch(); ,2019/5/20,13,程序运行结果如下: num1=123,num1=123,num1=123,num1=123 num2=123456,num2=123456,num2=123456 num1=16908411 注意: (1)格式指示符,必须与输出项的数据类型一致,否则会引起输出错误。 (2)对于整数,还可用%o(八进制无符号形式)、 %x(十六进制无符号形式)、 %u(十进制无符号形式)输出。,类型匹配错误,输出结果是随机的。,2019/5/20,14,2类型转换字符f以小数形式输出实数。 案例3.3 类型转换字符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(); ,2019/5/20,15,程序运行结果如下: 123.456001,123.456001,123.46,123.46,123.46 d1+d2=3333333333333.333010 提示:对于实数 也可使用%e,以标准指数形式输出; 或使用%g,让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。,2019/5/20,16,3类型转换字符c输出1个字符(占1列宽度) 案例3.4 类型转换字符c的使用。 #include “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, A,2019/5/20,17,4类型转换字符s输出一个字符串。 案例3.5 类型转换字符s的使用。 #include “stdio.h” #include “conio.h” void main() printf(“%s, %5s, %-10s“,“Internet“,“Internet“,“Internet“); printf(“%10.5s, %-10.5s, %4.5sn“,“Internet“,“Internet“,“Internet“); getch(); 程序运行结果如下: Internet,Internet,Internet,Inter,Inter,Inter 注意:系统输出字符(串),不输出单引号和双引号。,2019/5/20,18,3.1.3 使用说明 1格式指示符,必须按从左到右的顺序,与输出项表中的每个数据一一对应,否则出错。 例如,printf(“str = %s, f = %d, i = %fn“, “Internet“, 1.0 / 2, 3 + 5, “CHINA“);是错误的。 2类型转换字符的紧前字符不是“%”时,将作普通字符处理(原样输出)。 例如,“printf(”c = %c, f = %fn“, c, f);”中的第一个c和f,都是普通字符。,2019/5/20,19,3类型转换字符x、e、g,大小写均可。大写时,输出数据中包含的字母也大写。 其它类型转换字符,必须小写。例如,%f不能写成%F。 返回,2019/5/20,20,3.2* 格式化输入scanf()函数,3.2.1 一般格式 案例3.6 已知圆柱体的底半径radius=1.5,高high = 2.0 ,求其体积(r2 h) 。,2019/5/20,21,#include “stdio.h” #include “conio.h” void main() float radius, high, pi=3.14159, vol; radius=1.5; high=2.0; vol = pi * radius * radius * high; printf(“vol = %7.2fn”, vol); getch(); 思考:使用赋值语句给出初值的方式的局限性?,2019/5/20,22,案例3.7 已知圆柱体的底半径为radius、高为high,求其体积。 #include “stdio.h” #include “conio.h” void main() float radius, high, vol, pi=3.1415926; printf(“Please input radius ,2019/5/20,23,程序运行结果如下: Please input radius & high: 1.52.0 radius=1.50,high=2.00,vol=14.14,2019/5/20,24,给计算机提供数据,可以使用: (1)赋值语句。 只能解决1个特定的问题。例如,案例3.6。 (2)输入函数scanf() 。 能解决1类特定的问题。例如,案例3.7。 显然,采用scanf( )函数,使得程序具有更好的适应性。,2019/5/20,25,scanf( )函数的一般格式: scanf(“格式字符串“, 输入项首地址表); (1)格式字符串 格式指示符:与printf()函数的相似; 普通字符:必须原样输入。,2019/5/20,26,(2)输入项首地址表 可以是变量首地址、数组名,或者指针变量。 变量首地址的表示: &变量名 相邻2个输入项首地址,用逗号分开。,地址运算符,2019/5/20,27,3.2.2 数据输入操作(假设num1=12、num2=36) 1默认分隔符空格、 Tab键、回车 如果不指定分隔符(例如逗号、冒号),则使用默认分隔符。 例如,scanf(“%d%d“, 正确的输入操作为: 1236 或者:12 36,2019/5/20,28,2普通字符务必原样输入。 (1) scanf(“%d ,%d“, 正确的输入操作为: num1=12 ,num2=36n 提示:scanf()格式字符串中,没有转义字符概念。 比较(1)、(2)两种设计方式的优缺点?,2019/5/20,29,比较(1)、(2)两种设计方式的优缺点? (1) 仅输入数据,输入量小,但人机交互性差(用户不知道该输入什么,以及输入给谁)。 (2) 同时输入说明和数据,人机交互友好性好,但输入量大。 思考:如何改进设计,既保持良好的人机交互性,又不增加输入量?,2019/5/20,30,提高人机交互性的设计思路: 先用printf()函数输出提示信息,再用scanf()函数进行数据输入。 scanf(“num1=%d,num2=%dn“,2019/5/20,31,3使用 “%c”输入时,空格和转义字符均作为有效字符被输入。 例如: scanf(“%c%c%c“, 思考:假设输入“ABC”,printf()输出的内容是什么? 输出结果:ch1= A,ch2=,ch3= B 返回,2019/5/20,32,3.3 顺序结构程序设计,顺序结构程序一般包括两部分: 1程序开头的编译预处理命令。 如果要在程序中使用标准库函数,则必须使用编译预处理命令#include,将相应的头文件包含进来。,2019/5/20,33,2函数体主要包括: (1)变量定义语句; (2)输入语句; (3)运算语句; (4)输出语句。 3 执行流程:各语句是按照物理位置次序,被顺序执行,且每个语句都会被执行到。,2019/5/20,34,案例 输入3个整数,求它们的和及平均值。 #include “stdio.h” #include “conio.h” void main() int num1,num2,num3,sum; float aver; printf(“Please input three numbers:“); scanf(“%d, %d, %d“, ,2019/5/20,35,案例3.11 设计一个进行加、减、乘、除和求余数运算练习的程序。 对程序功能的基本要求如下: (1) 使用菜单驱动; (2) 随机产生运算所需的2个操作数(0-99); (3) 程序自动判断用户的计算结果是否正确。 由于所学内容的限制,本案例的设计要求将在本章,以及随后的第4 第7章中分阶段逐步实现并完善。 本案例首先实现设计要求(1) 。,2019/5/20,36,/*功能:菜单程序段*/ #include “stdio.h“ #include “conio.h“ void main() char options; clrscr( ); /*清屏。函数原型在“conio.h“中*/,2019/5/20,37,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(“n“); printf(“ Please choose one op

温馨提示

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

评论

0/150

提交评论