第3章 输入输出程序设计(10_09_NIT_L)课件_第1页
第3章 输入输出程序设计(10_09_NIT_L)课件_第2页
第3章 输入输出程序设计(10_09_NIT_L)课件_第3页
第3章 输入输出程序设计(10_09_NIT_L)课件_第4页
第3章 输入输出程序设计(10_09_NIT_L)课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、1 第二章第二章 课后作业:课后作业:(一一). 完成课本完成课本P23上的上的“练习与实践练习与实践”中的中的: 一一 . 二二 . 三三 . 注注: 上机时把上机时把”C程序设计实验指导程序设计实验指导”一书与课本一书与课本一起带上一起带上.23相关知识相关知识: C语言的类型:语言的类型: 一个程序应包括两方面内容一个程序应包括两方面内容:(1). 对数据的描述对数据的描述. 要指定数据的要指定数据的类型类型和数据的组织形式和数据的组织形式, 即数据即数据 结构结构(data structure). (2). 对操作的描述对操作的描述, 操作步骤操作步骤,即算即算 法法(algorith

2、m).4C的数据类型的数据类型(P31) 基本类型基本类型 构造类型构造类型 指针类型指针类型 单精度单精度双精度双精度整型整型实型实型(浮点型)浮点型)字符型字符型数组类型数组类型结构体类型结构体类型 C中的常量、变量都归属以上类型中的常量、变量都归属以上类型.数据类型数据类型5常量与变量常量与变量:一一.常量常量: 在程序运行中,其值不改变的量,称为常量。在程序运行中,其值不改变的量,称为常量。 算术常量算术常量 常量常量 字符常量字符常量 符号常量符号常量整型常量整型常量实型常量实型常量十进制常量十进制常量长整型常量长整型常量八进制常量八进制常量 ( (无负数无负数) )十六进制常量十六

3、进制常量 ( (无负数无负数) )单个字符常量单个字符常量字符串常量字符串常量6例例: (1). 1,27,0 - 整型常量整型常量 (2). 4.6,-8.43 - 实型常量实型常量 (3). a, b - 字符常量字符常量 (4). “China” - 字符串常量字符串常量7 ( (5). 5). 符号常量符号常量 - - 用一个用一个标识符标识符代表一个常量代表一个常量. . 如如: : #define PRICE 180 此后程序中凡出现此后程序中凡出现PRICE都代表都代表180. 符号常量在程序中代表某一数值,并可参加运算符号常量在程序中代表某一数值,并可参加运算, ,习习 惯上符

4、号常量用大写,变量用小写。惯上符号常量用大写,变量用小写。#define是宏定义命令是宏定义命令. 属于属于C语言的语言的编译预处理命令编译预处理命令。 8二、二、变量变量: 其值可变化的量称为变量。每一个变量其值可变化的量称为变量。每一个变量有二个特性有二个特性: 有一个有一个名字和相应的类型名字和相应的类型, ,并在编译时分配相应的内存并在编译时分配相应的内存单元。变量名实际上是一个符号地址单元。变量名实际上是一个符号地址. . 5.6 y2变量值变量值存储单元存储单元变量名变量名910 选择题选择题: int a, b ; a = 800; b = 30; a = a + b; b =

5、a b; a = a b; Printf(“%d”, b); A. 30 B. 800 C. 770 D. 830思思 考考变量在什么情况下变量在什么情况下改变自己的值改变自己的值?变量只在赋值的情况下改变自己的值变量只在赋值的情况下改变自己的值. .11(1). (1). 标识符标识符(identifieridentifier):): 标识符用来标识变量名标识符用来标识变量名, ,函数名函数名, ,类型名类型名, ,文件名文件名, , 数组名等的有效的字符序列。数组名等的有效的字符序列。 简而言之,简而言之,标识符就是一个名字。标识符就是一个名字。规定规定: 规定标识符只能由规定标识符只能由

6、字母字母, ,数字数字, ,下划线三种字符组成下划线三种字符组成. . 且第一个字符必须为字母或下划线。如且第一个字符必须为字母或下划线。如: : total area_of_circle _name total area_of_circle _name 合法的标识符合法的标识符 2 2total area.circle #nametotal area.circle #name 非法非法的标识符的标识符12(2). 大、小写字母被视为是两个不同的字符大、小写字母被视为是两个不同的字符. 因此,因此,name 和和 Name ,main 和和 MAIN是两个不同的标是两个不同的标 识符。识符。(

7、3). 在在 C中,对于变量都是中,对于变量都是 “先定义,后使用先定义,后使用”.先确定先确定 变量名,数据类型,后在运行时分配相应的内存空间变量名,数据类型,后在运行时分配相应的内存空间.(4). 取名要统一规范取名要统一规范, 见名知意见名知意. 不使用用具有特殊含意的不使用用具有特殊含意的关键字关键字(保留字保留字)作标识符作标识符.13( (5)5). .尽量避免用容易混淆的字符尽量避免用容易混淆的字符, , 如如0 0和和o, o, 1 1和和l,Zl,Z和和2 2等等 例例: : _ _ 是合法的用户定义标识符是合法的用户定义标识符: : A. b-b A. b-b B. flo

8、at B. float C. C. D D. _isw. _isw14三三. . 整型数据整型数据: :( (不带小数点的数不带小数点的数)( (一一) )、整型常量:、整型常量: 整型常量也分类型。整型常量也分类型。1. 1. 十进制整数十进制整数: : 一般占一般占2 2或或4 4个字节长个字节长 2 2字节取值范围:字节取值范围: -32768 -32768 - 32767- 327672. 2. 长整型常数长整型常数: : 一般占一般占4 4个字节长个字节长(32 (32 bit)bit) 取值范围:取值范围:-2147483648 - 2147483647-2147483648 -

9、2147483647 注注: 在在c+环境下环境下,占占4个字节长个字节长. 取值范围:取值范围: -2147483648 2147483647153. 3. 八进制常量八进制常量: : 以数字以数字0 0开头开头 0 0123123(83)(83) 0 05 5(5)(5) 0 0100100(64)(64) 0 03272732727(13783)(13783) ( (注注: :由此可见由此可见, ,在表示十进制时就不能在前面加在表示十进制时就不能在前面加0 0了了) )4. 4. 十六进制常数十六进制常数: : 以数字以数字0 0和字母和字母x(0 x)x(0 x)开头开头 0 0 x

10、x1f1f(31)(31) 0 x0 x1A1A(26)(26) 0 x0 x2020(32)(32) 0 x0 x1010(16)(16)16( (二)二)整型数据在内存中的存放形式整型数据在内存中的存放形式: 数据在内存中都是以二进制形式存放的数据在内存中都是以二进制形式存放的.如如: int i ; /* i 定义为整型变量定义为整型变量 */ i = 10; /* 给给 i 赋以整数赋以整数10 */ 10的二进制形式为的二进制形式为: 1010, 设每一个整数变量在内存中占设每一个整数变量在内存中占二个字节二个字节,在内存中的情况为在内存中的情况为: i : 0000 0000 00

11、00 101017( (三)三)整型变量的分类整型变量的分类: 1. 基本型基本型: : 用用 int 定义定义 (占占4个或个或2个个字节字节) 2. 短整型短整型: 用用 short 定义定义 ( 2个字节个字节) 3. 长整型长整型: : 用用 long 定义定义 ( (4个字节个字节) ) 注:注: 还有一种还有一种无符号无符号型型, 在在上面三种类型前面加上上面三种类型前面加上unsigned . 18四四. .实型数据实型数据: :( (带小数点的数)带小数点的数)( (一一) )、实型常量:、实型常量: 实数又叫实数又叫浮点数浮点数。实型常量有二种表示形式:。实型常量有二种表示形

12、式: . 十进制形式十进制形式:3.5 .85 546. 由数字与小数点组成由数字与小数点组成 (必须要有小数点必须要有小数点). . 指数形式指数形式 : 728e3,72.8e4 都表示:都表示:728103 注意注意:e(E)前必须要有数,指数必须是整数前必须要有数,指数必须是整数. 如:如:8.6e3.2 e4 .e2 ( 都有问题都有问题 )19(二二)、实型变量的分类实型变量的分类: 实型变量分:实型变量分: 1、单精度:用、单精度:用 float 定义定义. (范围范围: 1.0e -38 1.0e+38) 2、双精度:用、双精度:用 double 定义定义. (范围范围: 1.

13、0E-306 1.0E+306)C+系统:系统: float占用占用4个字节(个字节(48=32位位), 6位有效数字位有效数字 double占用占用8个字节(个字节(88=648=64位位),15),15位有效数字位有效数字20说明:说明:1. 实型常量不分实型常量不分float 和和 double型。处理时一律视为型。处理时一律视为double型。型。2. 整型数据和实型数据在内存中的存放形式不一样整型数据和实型数据在内存中的存放形式不一样: 整型类型格式整型类型格式 二进制数二进制数实型类型格式实型类型格式 尾数尾数 指数指数“数据类型数据类型”是一个很重要的概念是一个很重要的概念. 它

14、关系到数据范围它关系到数据范围,数据的精度数据的精度, 运算速度的快慢等问运算速度的快慢等问题题.21 除以上形式除以上形式, C还允许一种特殊形式的字符常量。即以还允许一种特殊形式的字符常量。即以一个一个 “ ” 开头的字符序列:开头的字符序列: 如:如:nn (为换行符)为换行符)。 称为称为“转义字符转义字符”或或“转码字符转码字符”。五五. .字符型数据字符型数据( (一一) )、字符常量:、字符常量: 字符常量表示为用单引号字符常量表示为用单引号(撇号撇号)括号起来的一个字符。括号起来的一个字符。 如:如: A,a,?, 9 , , n n 等等.转义字符转义字符22 因为存在一种非

15、显示字符,如因为存在一种非显示字符,如: 换行符换行符,响铃等响铃等是一种是一种控制字符控制字符, 难以用通常的形式来表示难以用通常的形式来表示. 故采用特殊方法故采用特殊方法(形式形式)表示:表示:转义字符转义字符 ASCII码值码值 字符字符 意义意义 n 0 x0A(10) LF 换行换行 a 0 x07(7) BEL 响铃响铃 r 0 x0D(13) CR 回车回车 t 0 x09(9) HT 水平制表水平制表(tab) “ 0 x22(34) “ 双引号双引号 23 转义字符的使用方法与其它字符一样转义字符的使用方法与其它字符一样 ,如如: ch=a; /* a 为为响铃响铃 */

16、printf(“%c”,ch); /* 计算机会发出一响声计算机会发出一响声 */如:如: 101 : A (1018 6510) 0 : null(空操作空操作)转义字符转义字符 ASCII码值码值 字符字符 意义意义 ddd ddd 任意字符任意字符 ddd ddd 为为1-31-3个个8 8进制数进制数 x xhh hh 任意字符任意字符 hh hh 为为1-21-2个十六进制个十六进制数数24( (二二) )、字符变量:、字符变量: 字符变量用来存放一个字符(不是一个字符串字符变量用来存放一个字符(不是一个字符串).). 字符变量用类型名字符变量用类型名char来定义:来定义: cha

17、r c1,c2char c1,c2 ; ; c1,c2 c1,c2 定义为字符变量定义为字符变量, ,c1,c2c1,c2可存放一个字符可存放一个字符, , 可以进行赋值:可以进行赋值: c1=Wc1=W,c2=b;c2=b; 一个字节存放一个字符,也即一个字符变量在一个字节存放一个字符,也即一个字符变量在 内存中占一个字节。内存中占一个字节。25 将一个字符常量放到一个变量中,实际上并不是把字将一个字符常量放到一个变量中,实际上并不是把字符放到内存中去,而是将该字符的符放到内存中去,而是将该字符的ASCASC码码值存入相应的值存入相应的单元单元, ,以二进制形式存放。以二进制形式存放。字符字

18、符 ASCIIASCII值值 机内码机内码 a 97 01100001b 98 01100010 由此可见,在内存中,字符数据的存储形式与整数形由此可见,在内存中,字符数据的存储形式与整数形式相类似式相类似。26说明:说明: “ASCII “ASCII字符集字符集”列出所有可用的字符列出所有可用的字符(共共256个个)和和其相应的其相应的ASCII 码值码值. 如如: 0-9 A-Z a-z 等等. 1 1. .ASCII字符集有如下特征字符集有如下特征(课本课本:P282附录附录A): (1). (1). 每个字符都有一个不同的每个字符都有一个不同的ASCIIASCII码值码值. . (2)

19、. (2). 数字数字0,1,2,390,1,2,39的次序连续排列的次序连续排列(48 - 57).(48 - 57). (3). (3). 小写字母小写字母a,b,cza,b,cz连续排列连续排列(97 - 122).(97 - 122). (4). (4). 大写字母大写字母A,B,CZA,B,CZ连续排列连续排列(65 - 90).(65 - 90). 27282. 每个小写字母与相应的大写字母每个小写字母与相应的大写字母ASC码值相差码值相差32. A=65 a=97 B=66 b=9829 3. 3. C C语言中的字符常量具有语言中的字符常量具有数值特征数值特征, ,其值就是该字

20、符的其值就是该字符的 ASCIIASCII码值码值, ,占有一个字节占有一个字节. . 比如对字符变量比如对字符变量 c3, 作赋值运算作赋值运算: char c3; c3 = B ; 实际上是将实际上是将B字符的字符的ASCII码值码值66赋予变量赋予变量 c3. 4. 字符既然有数字值字符既然有数字值,因此因此可以可以对字符数据进行简单的算对字符数据进行简单的算 术运算术运算,此时相当于它们的机内码,此时相当于它们的机内码(ASC(ASC码码) )进行算进行算 术运算术运算. . 30 又如又如: B + 1 其实是其实是B字符的字符的ASCII码值码值(66)加加1,得到,得到B字符的字

21、符的下一个字符下一个字符C. 字符运算在实际编程中是很有用的字符运算在实际编程中是很有用的. 5. 5. 一个字符数据既可以用一个字符数据既可以用字符形式字符形式输出输出, , 由输出格式:由输出格式:% %c c 指定指定. . 机器把存储单元中的机器把存储单元中的ASCIIASCII码转换成相应的字符输出码转换成相应的字符输出. . 也可以用也可以用整数形式整数形式输出,直接将机内码(输出,直接将机内码(ASCASC码码) ) 作为整数输出,由作为整数输出,由 % %d d 指定。指定。31卷题:卷题: 已知字符已知字符 a 的的ASCII码为码为 97 ,执行下列语句的输,执行下列语句的

22、输出是出是_。 printf (%d, %c, b, b+1 ) ; A、 98, b B、 语句不合法语句不合法 C、 98, 99 D、 98, c 进一步说明进一步说明: (1). 字符在书面表示时有单引号字符在书面表示时有单引号,如上例中的如上例中的: b . 但在输入和输出时并没有单引号但在输入和输出时并没有单引号,如答案如答案”D”中的中的c. (2). 要分清一般数值与字符数据的不同要分清一般数值与字符数据的不同. 如如: 1 和和 1 的不同的不同.32注意注意 : a与与 “a” 是不同的,一个为字符常量是不同的,一个为字符常量, ,一个为字符一个为字符 串常量串常量. .(

23、三三)、字符串常量、字符串常量 字符串常量表示为用一对字符串常量表示为用一对双引号双引号括起来的字符序列括起来的字符序列,如如: “How are you” “a” “$456.76” “浙江大学浙江大学” C语言规定语言规定, 在每一在每一个字符串常量的结尾加个字符串常量的结尾加了一个了一个“字符串结束标志字符串结束标志”, 以便系统判断以便系统判断字符串是否结束字符串是否结束. C规定以字符规定以字符0作为字符串结束标志作为字符串结束标志.33 0 0 ASCASC值为值为0 0的字符,的字符,不能显示不能显示, ,不产生动作不产生动作. . 如有一字符串如有一字符串“CHINA”,CHI

24、NA”,实际上在内存中是实际上在内存中是: : C H I N A 0 但在输出时不输出但在输出时不输出0, 如有如有: printf(“china”); 输出时一个一个字符输输出时一个一个字符输出出,直到直到0为至为至. 其长度不是其长度不是5个个,而是而是6个个, 0是系统自动加上去的是系统自动加上去的.34说明说明:没有字符串变量,以后字符串由没有字符串变量,以后字符串由一维字符数组一维字符数组来处理。来处理。 选择题选择题: _ 是不正确的字符常量是不正确的字符常量. A. n B. 1 C. “a” D. 10135 六六 变量赋初值变量赋初值 定义变量时,可对变量初始化定义变量时,

25、可对变量初始化. .例例: : int a=3; 相当于相当于 int a; a=3; float f=3.5; 相当于相当于 float f; f=3.5 char c=a; ; 相当于相当于 char c; c=a; 也可也可: int a,b,c=3; 相当于相当于: int a,b,c; c=3;36各类数值型数据间的混合运算各类数值型数据间的混合运算: :(基本类型)(基本类型) * * 整型,单精度型,双精度数据可以混合运算。整型,单精度型,双精度数据可以混合运算。 * * 整型与字符型数据可通用。整型与字符型数据可通用。 因此因此 , ,整型,字符型、实型可混合运算整型,字符型、

26、实型可混合运算. . 在运算时,不同类型的数据要在运算时,不同类型的数据要先转换成同一类型先转换成同一类型, , 然后再进行运算。然后再进行运算。37 转换规则:转换规则: 高高 double float double float 单精度单精度 long long 低低 int char, shortint char, short1). 横向向左的箭头表示必定转横向向左的箭头表示必定转换换,在运算中在运算中,char型必定转换成型必定转换成 int 型。型。 Float型必定转换成型必定转换成double 型。型。2). 如果当运算对象不同时,低类如果当运算对象不同时,低类型直接转换成高类型,

27、再进行运算型直接转换成高类型,再进行运算 . 系统会自动进行这种转换系统会自动进行这种转换.必然转换必然转换38 相关知识相关知识: C语言的语言的 数据的输出数据的输出,输入:输入:一、数据输出:一、数据输出: C语言本身并不提供输入、输出语句,输入输出的操作语言本身并不提供输入、输出语句,输入输出的操作任务由函数来实现任务由函数来实现,也就是对输入也就是对输入,输出实行函数化输出实行函数化. 如如printf( ), scanf( ) 函数,不是函数,不是C语言的输入语言的输入,输出语句输出语句. C编译版本都提供了许多函数,以编译版本都提供了许多函数,以函数库函数库的形式提供。的形式提供

28、。 我们可以采用一定的方法,把自己的源程序与需要的我们可以采用一定的方法,把自己的源程序与需要的库联起来,一起参加编译连接,最后形成一个可执行文件。库联起来,一起参加编译连接,最后形成一个可执行文件。39 各种版本提供的函数库数量多少不一致,函数名也可能各种版本提供的函数库数量多少不一致,函数名也可能不一定相同。不一定相同。 一般对库函数都进行分类:一般对库函数都进行分类: 如有如有: (1)标准输入、出函数库)标准输入、出函数库 (stdio.h) (2)数学函数库)数学函数库 (math.h) (3)系统时间函数库)系统时间函数库 (time.h) (4)图形函数库)图形函数库 (grap

29、hics.h) . 等等。等等。40(一一) putchar( )函数函数 字符输出函数字符输出函数功能:向屏幕功能:向屏幕(CRT)输出一个字符输出一个字符 . 例例:putchar(c2); c2可是字符变量,转义字符,整形变量,整形常量可是字符变量,转义字符,整形变量,整形常量. putchar( )是属于是属于标准标准 I/O 函数库函数库中一个函数中一个函数.例例: #include “stdio.h” main( ) char a, b, c; a=B ; b=O; c=Y; putchar(a); putchar(b); putchar(c); 输出:输出:BOY 41putch

30、ar( )也可输出也可输出转义字符转义字符:如如:putchar(116 ) 输出字符输出字符Nputchar( ) 输出单引号输出单引号putchar( 015) 15) 输出回车输出回车说明说明:a. a. 在使用标准在使用标准I/OI/O函数时,要使用编译预处理命令:函数时,要使用编译预处理命令: # #includeinclude将将stdio.hstdio.h文件包含到用户的源文件中去。文件包含到用户的源文件中去。 stdio.hstdio.h为一个为一个头文件头文件,在它里面包含了标准,在它里面包含了标准I/OI/O函函 数库中有关函数的一些信息:如常量的定义,函数数库中有关函数的

31、一些信息:如常量的定义,函数 原型的说明等信息。原型的说明等信息。42(二二) printf()函数函数(格式输出函数(格式输出函数) printf可以输出多种类型的数据可以输出多种类型的数据,多个数据多个数据.如如:1printf函数的一般格式为函数的一般格式为: printf(格式控制,输出表列)格式控制,输出表列) (“格式控制格式控制”是用双引号括起来的字符串是用双引号括起来的字符串).格式说明格式说明:由:由%和格式字符组成如和格式字符组成如:%d , %f;按指定的格式输出按指定的格式输出.普通字符普通字符:原样输出的字符:原样输出的字符.需要输出的数据需要输出的数据,可以是可以是

32、表达式表达式,变量变量.432 2格式字符:格式字符: 对于不同的数据类型输出,需要用不同的格式字符。对于不同的数据类型输出,需要用不同的格式字符。 ( a). d 格式符格式符 用来输出用来输出十进制十进制整数整数 %d 按实际长度输出按实际长度输出 . %md m为指定的输出字段的为指定的输出字段的宽度宽度. 若数据段若数据段m,按实际输出。按实际输出。 %ld 输出输出长整数长整数。对长整型数据,要用。对长整型数据,要用ld格式格式, 否则出错。否则出错。44(b). C格式符格式符 输出一个字符输出一个字符 : 如:如:char b=a; printf(“%c”, b); 字符可用整数

33、形式输出,整数也可用字符形式输出。字符可用整数形式输出,整数也可用字符形式输出。(c). S格式格式 输出一个字符串输出一个字符串: 如如 : printf(“%s” ,“CHINA”); (1). (1).%ms %ms 输出字符串占输出字符串占m m列,若列,若mmm串长度,串长度,右靠齐右靠齐,左边补空格。,左边补空格。 (2).(2).% %- -msms 若若mm串长度,串长度,左靠齐左靠齐,右边补空格,右边补空格. . 45(d d)f f格式符格式符输出实数(单、双精度)输出实数(单、双精度) (1).(1).%f%f 对于对于单精度单精度系统自动使整个数全部输出,系统自动使整个

34、数全部输出, 并带有并带有6 6位小数。位小数。 % %f f也可输出也可输出双精度双精度, ,有效位数共有效位数共1616位并带有位并带有 6 6位小数位小数.(.(输出双精度也可用输出双精度也可用: :% %lflf).). (2).(2).%m.nf%m.nf m m为数据占的列数为数据占的列数( (包括小数点包括小数点),),n n为小数为小数 位数。如果数值长度位数。如果数值长度 m ,m ,右对齐右对齐, ,左边补左边补 空格。空格。46思考题思考题:(卷例卷例)*写出语句写出语句 printf (“%d, %o, %x”, 0 x12, 12, 012); 的输出结果的输出结果。

35、 18, 14, A此外还有:此外还有: % %o o 8 8进制不带符号输出整数进制不带符号输出整数 % %x x 16 16进制不带符号输出整数进制不带符号输出整数 % %u u 10 10进制无符号形式输出整数进制无符号形式输出整数 % %e e 指数形式输出指数形式输出47二、二、数据输入数据输入: :( (一一). ). 字符输入函数字符输入函数 getchar() 功能:从键盘输入一个字符。功能:从键盘输入一个字符。 例例:#include “stdio.h” main( ) char c1; c1=getchar( ); /*运行到运行到 getchar( )时,等待输入时,等待

36、输入*/ putchar(c1); 输入:输入:a(回车回车). 48 用双引号括起来,用双引号括起来,表示输入的格式表示输入的格式. .变量地址变量地址. . & &为取地为取地址运算符址运算符. .49 普通字符:普通字符:要原样输入要原样输入,例如:例如: scanf(x=%f, &x);输入输入: x=2.5scanf(%f, &x);输入输入: :2.5 这里的这里的“lf”中的中的l是是long的首写字符的首写字符, 不是不是“1”. 没有必要没有必要画蛇添足!画蛇添足!50注注: 1. 输入时输入时,以空格以空格,回车回车,TAB键分隔键分隔,(不

37、能以逗号作为不能以逗号作为 分隔符分隔符.) 2scanf() 函数使用中函数使用中注意的问题注意的问题: 在格式控制字符串中在格式控制字符串中,除了格式说明以外除了格式说明以外(% + 附加格附加格 式说明符式说明符+格式字符格式字符),),还有其它字符还有其它字符,则在输入数,则在输入数 据时应照样输入。据时应照样输入。 调用调用scanf函数输入多个数据函数输入多个数据注意注意!51如:如:scanf(“%d,%d” , &a, &b) ; 应输入:应输入:8,4 又如又如:scanf(“%d%d”, &a, &b); 应输入:应输入:721 题例题例:

38、设变量定义为设变量定义为“int a, b;”,执行下列语句时执行下列语句时,输入输入 _ ,则则a 和和 b的值都是的值都是10. scanf(“a=%d,b=%d”,&a,&b); A. 10 10 B. 10,10 C. a=10 b=10 D. a=10,b=10 52题例题例: : scanf(“%d%d%d”,&k1,&k2,&k3);scanf(“%d%d%d”,&k1,&k2,&k3);_正确的输正确的输入入. . A. 203040 A. 203040 B. 20 30 40B. 20 30 40 C. 20,3

39、0 40 D. 20,30,40 C. 20,30 40 D. 20,30,40 53 3. 用用 %c 格式输入多个字符时,后面不必用空格符作为格式输入多个字符时,后面不必用空格符作为 分隔符。分隔符。 否则空格符都作为有效字符输入。否则空格符都作为有效字符输入。 如:如: scanf(“%c%c%c”, &c1, &c2, &c3); 如输入如输入:a b c(回车回车) 这样这样:a c1 c2 b c3 正确输入应是正确输入应是:abc(回车回车) 54 4. 输入函数留下的垃圾输入函数留下的垃圾: scanf ()函数和函数和getchar()getchar(

40、)函数在工作时会留下一些多余函数在工作时会留下一些多余的字符的字符,主要是主要是n字符字符 ,它将对后续的字符和字符串输入它将对后续的字符和字符串输入操作产生影响操作产生影响,应该适当处理应该适当处理. 例如例如: : scanf (“%d”,&x) ; c=getchar( ); 如果输入如果输入: :2020,那么变量那么变量x x和和c c分分别得到别得到2020和和n,n,其中的其中的nn即是即是scanf函数的遗留物函数的遗留物. 输入缓冲区概念55 请参阅请参阅“实验指导实验指导”一书的一书的P27的有关说明的有关说明. 又:又: 为了更安全一些为了更安全一些,可以在一次函

41、数调用后尝试可以在一次函数调用后尝试 加一条语句加一条语句: fflush(stdin); /* 调用调用fflush( )函数清空输入缓冲区函数清空输入缓冲区 */ 56其格式如下其格式如下:57例例3.1_1 在屏幕上显示在屏幕上显示”Hello,World”: (知识扩展知识扩展) #include int main() char stri 80= ”Hello,World”; printf(“%sn”, stri ); puts(stri); return 0; char stri 80表明定义了一个表明定义了一个名为名为stri 的数组的数组,是一是一char类型类型的的,数组长度为

42、数组长度为80.用用puts函数输出字符串函数输出字符串.Ch3_3_1.cstri 为数组名为数组名.58 说明说明: 字符串由若干字符组成字符串由若干字符组成,在内存中其未尾会自动添加在内存中其未尾会自动添加一个一个0, 作为字符串的结束符作为字符串的结束符. Ch3_3_1.c593.1.2 字符串的输入字符串的输入 在程序设计中通常需要从键盘输入字符串,通常用函在程序设计中通常需要从键盘输入字符串,通常用函数数scanf. 也可以用也可以用gets函数实现函数实现, 其格式如下其格式如下: gets(字符串数组名字符串数组名);例例3.2: 定义定义 一字符数组一字符数组,从键盘上输入

43、一个字符串从键盘上输入一个字符串,然后输出然后输出在屏幕上在屏幕上:60#includeint main() char string80; printf(请输入你的姓名:请输入你的姓名:n); scanf(%s,string); printf(你好你好!); puts(string); return 0;Ch3_3_2.c定义了一个名为定义了一个名为string 的的数组数组,是一是一char类型的类型的,数数组长度为组长度为80.C语言规定语言规定:数组名为该数组名为该数组在内存的首地址数组在内存的首地址.从键盘输入一字符串从键盘输入一字符串,以以回车结束回车结束.61/* 从键盘输入一字符串从键盘输入一字符串,然后输出字符然后输出字符*/#includeint main() char name20; printf(请输入你的姓名:请输入你的姓名:n); gets(name);

温馨提示

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

评论

0/150

提交评论