基本输入输出和顺序程序设计课件

上传人:我*** 文档编号:145738136 上传时间:2020-09-22 格式:PPT 页数:36 大小:656KB
返回 下载 相关 举报
基本输入输出和顺序程序设计课件_第1页
第1页 / 共36页
基本输入输出和顺序程序设计课件_第2页
第2页 / 共36页
基本输入输出和顺序程序设计课件_第3页
第3页 / 共36页
基本输入输出和顺序程序设计课件_第4页
第4页 / 共36页
基本输入输出和顺序程序设计课件_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《基本输入输出和顺序程序设计课件》由会员分享,可在线阅读,更多相关《基本输入输出和顺序程序设计课件(36页珍藏版)》请在金锄头文库上搜索。

1、程序的结构: 写文章有文章的结构 建房子有房子的结构 制造机械产品由机械产品的结构 那么编写程序是否有程序的结构呢?,学习的意义,YES!,本章讨论,第5章讨论,第6章讨论,格式化输出printf 格式化输入scanf 字符数据的非格式化输入、输出 程序的控制结构 顺序程序设计举例 本章小结,学习目标,掌握各种类型数据的格式化输入输出方法; 掌握字符数据的非格式化输入输出方法; 理解三种程序控制结构的流程图; 学会简单顺序程序的设计; 养成良好的程序设计习惯;,学习内容,4.1 格式化输出printf,一般格式,printf (格式控制字符串,表达式1,表达式2,表达式n);,功能,按照“格式

2、控制字符串”的要求,将表达式1,表达式2,表达式n的值显示在计算机屏幕上。,说明,格式控制字符串用于指定输出格式。它包含两类字符: 常规字符:包括可显示字符和用转义字符表示的字符。 格式控制符:以%开头的一个或多个字符,以说明输出数据的类型、形式、长度、小数位数等。其格式为:,%修饰符格式转换字符,例: long int x = 0 x8AB6; printf (“The Value of x is %ldn”, x);,常规字符,常规字符 (转义符),格式控制符 (修饰符),格式控制符 (格式转换符),printf使用时的注意事项,(1) 格式控制字符串可以不包含任何格式控制符。 (2) 当

3、格式控制字符串中既含有常规字符,又包含有格式控制符时,则表达式的个数应与格式控制符的个数一致。此时,常规字符原样输出,而格式控制符的位置上输出对应的表达式的值,其对应的顺序是:从左到右的格式控制符对应从左到右的表达式。 (3) 如果格式控制字符串中格式控制符的个数多于表达式的个数,则余下的格式控制符的值将是不确定的。 (4) 不同类型的表达式要使用不同的格式转换符,同一表达式如果按照不同的格式转换符来输出,其结果可能是不一样的。,printf (“how are you?n”); /只有一个字符串参数, 输出为:how are you? printf (“how old are you?n”,

4、 20); /带有两个参数,20没有意义, 输出为:how old are you?,char ch = A; printf (ch = %c, ch); /输出结果:ch = A (以字符形式输出) printf (ch = %d, ch); /输出结果:ch = 65 (以A字符的ASCII码形式输出),printf函数中的格式转换字符及其含义,printf函数中的格式转换字符及其含义,【例】有符号整数的格式化输出,#include void main ( ) int a = 123; long L = 65537; printf ( 12345678901234567890n); pri

5、ntf (a=%d-(a=%d)n, a); printf (a=%6d-(a=%6d)n, a); printf (a=%-6d-(a=%-6d)n, a); printf (L=%ld-(L=%ld)n, L); printf (L=%hd-(L=%hd)n, L); ,12345678901234567890 a=123-(a=%d) a= 123-(a=%6d) a=123 -(a=%-6d) L=65537-(L=%ld) L=1-(L=%hd),运行结果:,L是一长整型数65537,其值为十六进制0X00010001,所以要将其转换成短整型,即取低16位0 x0001,将其输出,故

6、输出为1。,Why?,%d格式:按十进制输出有符号整数(-231231-1)。 %ld格式:按十进制输出有符号整数(-231231-1)。 %5d格式:按十进制输出有符号整数(- 231231-1)至少占5位,右对齐。 %-5d格式:按十进制输出有符号整数(-231231-1)至少占5位,左对齐。 %8ld格式:按十进制输出(- 231-231-1)之间的长整型整数,至少占8位,右对齐,超过8位时按实际位数。,【例】实数的格式化输出,#include void main ( ) double f = 2.5e5; printf ( 12345678901234567890n); printf

7、(f=%15f-(f=%15f)n, f); printf (f=%-15.0f-(f=%-15.0f)n, f); printf (f=%15.4f-(f=%15.4f)n, f); printf (f=%15.4E-(f=%15.4E)n, f); ,12345678901234567890 f= 250000.000000-(f=%15f) f=250000 -(f=%-15.0f) f= 250000.0000-(f=%15.4f) f= 2.5000E+005-(f=%15.4E),运行结果:,%f 格式:按十进制输出实数,保留6位小数。 %e 格式:按指数形式输出实数,尾数部分保留

8、6位有效数字。 %.3f 格式:按十进制输出实数,保留3位小数。 %8.3f 格式:按十进制输出实数,保留3位小数,至少占8位,超过8位时按实际位数。 %8.3e 格式:按指数形式输出实数,尾数部分保留3位有效数字,至少占8位,超过8位时按实际位数。 %g格式:按%e和%f中较短的一种格式输出实数。,提示:对于实数也可使用%e,以标准指数形式输出; %e,不指定输出数据所占的宽度和数字部分小数位数,由系统自动指定给出6位小数,指数部分占5位(如e+002),其中e占1位,指数符号占1位,指数占3位,数值按规范化指数形式输出(即小数点前必须有而且只有1位非零数字)。 例: 8列 5列 或使用%g

9、,让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。,【例】字符及字符串的格式化输出,#include void main ( ) char ch = A; printf ( 12345678901234567890n); printf (ch=%c-(ch=%c)n, ch); printf (ch=%4c-(ch=%4c)n, ch); printf (ch=%-4c-(ch=%-4c)n, ch); printf (st=%s-(st=%s)n, CCNU); printf (st=%6s-(st=%6s)n, CCNU); printf (st=%6.3s-(st=%6

10、.3s)n, CCNU); ,12345678901234567890 ch=A-(ch=%c) ch= A-(ch=%4c) ch=A -(ch=%-4c) st=CCNU-(st=%s) st= CCNU-(st=%6s) st= CCN-(st=%6.3s),运行结果:,%c 格式:按字符输出一个字符,但不输出单引号。 %d 格式:按数值输出,输出该字符相应的ASCII码值 %3c格式:按字符输出一个字符,占3位,右对齐。 %-8c格式:按字符输出一个字符,占8位,左对齐。 %s格式:输出一个字符串。 %6s格式:输出一个字符串,至少占6位,右对齐,超过6位,按实际位数。 %-6s格式:

11、输出一个字符串,至少占6位,左对齐,超过6位,按实际位数。,Scanf()函数,一般格式,scanf (“格式控制字符串”,变量1的地址,变量2的地址, ,变量n的地址);,功能,第一个参数格式控制字符串的控制下,接受用户的键盘输入,并将输入的数据依此存放在变量1、变量2、变量n中 。,格式控制符与后续参数中的变量地址的对应关系,取地址运算符 scanf(“%ld”, 输入 12345 则12345a,例 scanf(“%3c%2c”, 输入 abcde 则ac1, d c2,格式控制字符串: 包含两种信息: 1 普通字符:原样输入 2 格式说明:由%修饰符和格式字符组成 ,用于指定输入格式;

12、格式字符:d, f, c , o , x , u , s , e,scanf函数的格式控制符,例 scanf(“%d,%d”, 输入:10 ,6 则 a=10 b=6,例 scanf(“a=%f”, 输入:a=1.5 则 a=1.5,使用scanf函数注意事项,(1) 如果相邻两个格式控制符之间,不指定数据分隔符(如逗号、冒号等),则相应的两个输入数据之间,至少用一个空格分隔,或者用Tab键分隔,或者输入一个数据后,按回车,然后再输入下一个数据。 (2) 格式控制字符串中出现的常规字符(包括转义字符),务必原样输入。 (3) 为改善人机交互性,同时简化输入操作,在设计输入操作时,一般先用pri

13、ntf( )函数输出一个提示信息,再用scanf( )函数进行数据输入 。 (4) 当格式控制字符串中指定了输入数据的域宽时,将读取输入数据中相应的位,但按需要的位数赋给相应的变量,多余部分被舍弃。,例如: scanf (%d%d, 假设给num1输入12,给num2输入36,则正确的输入操作为: 1236 或者 12 36 使用“”符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。,例如: scanf (%d:%d:%d, 假设给h输入12,给m输入30,给s输入10,正确的输入操作为: 12:30:10,例如: scanf (num1=%d, num2=%dn, 假设给

14、num1输入12,给num2输入36,正确的输入操作为: num1=12,num2=36n,例如: 将scanf (num1=%d, num2=%dn, ,例如: scanf (%3c%3c, 假设输入abcdefg,则系统将读取的“abc”中的a赋给变量ch1;将读取的def中的d赋给变量ch2。,使用scanf函数注意事项,(5) 当格式控制字符串中含有抑制符*时,表示本输入项对应的数据读入后,不赋给相应的变量(该变量由下一个格式指示符输入)。 (6) 使用格式控制符%c输入单个字符时,空格和转义字符均作为有效字符被输入。 (7) 输入数据时,遇到以下情况,系统认为该数据结束: 遇到空格,

15、或者回车键,或者Tab键。 遇到输入域宽度结束。例如“%3d”,只取3列。 遇到非法输入。比方说,在输入数值数据时,遇到字母等非数值符号。 (8) 当一次scanf调用需要输入多个数据项时,如果前面数据的输入遇到非法字符,并且输入的非法字符不是格式控制字符串中的常规字符,那么,这种非法输入将影响后面数据的输入,导致数据输入失败。,例如: scanf (%2d%*2d%3d, 假设输入123456789 输出结果为:num1=12, num2=567。,例如: scanf (%c%c%c, 假设输入:ABC,则系统将字母A赋值给ch1,空格赋值给ch2,字母B赋值给ch3。,例如: scanf (%d, 如果输入为:12a3,a的值将是12。,例如: scanf (%d,%d, 如果输入为:12a34,那么a的值将是12,b的值将无法预测。 正确的输入是:12,34,#include stdio.h void main( ) int a; scanf(%dn, ,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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