第2章数据类型--2010.ppt

上传人:本田雅阁 文档编号:2252383 上传时间:2019-03-11 格式:PPT 页数:57 大小:971.51KB
返回 下载 相关 举报
第2章数据类型--2010.ppt_第1页
第1页 / 共57页
第2章数据类型--2010.ppt_第2页
第2页 / 共57页
第2章数据类型--2010.ppt_第3页
第3页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第2章数据类型--2010.ppt》由会员分享,可在线阅读,更多相关《第2章数据类型--2010.ppt(57页珍藏版)》请在三一文库上搜索。

1、1,语法知识回顾,C语言的程序结构 一个可执行的C程序是由一个主函数main( )和若干个其它函数组成。这些函数可以放在一个文件中,也可以放在若干个文件中。 C程序的执行是从主函数main( )的左开始,到它的右为止。程序中的其它函数要想起作用,必须直接或间接被主函数使用。 一个可执行的C程序,必须有一个主函数main( ) ,且只能有一个。,2,算法及算法描述 算法就是解决问题的方法和步骤。 算法描述有: 人类语言描述 图形描述:1)流程图2)N-S图3)PDA图 编程语言描述:1)伪代码2)真代码,语法知识回顾,3,第2章 数据类型、数据的输出与输入,2.1 C语言的数据类型 2.2 常量

2、和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 数据的输出与输入,4,2.1 C语言的数据类型,C语言提供的数据结构,是以数据类型形式出现的。具体分类如下: 1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。 2.构造类型 分为数组类型、结构类型和共用类型三种。 3.指针类型。在第8章中介绍。 4.空类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。 本章将介绍基本类型中的整型、实型和字符型三种数据。,5,在程序中对用到的 所有数据都必须指 定其数据类型.,?,不同类型的数据,所占 内存的字节数不同, 对 应的操作也不相同。,数据类型概述,

3、6,2.2 常量和变量,一、 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量 5,87 (2)实型常量 6.23,1.86e+6 (3)字符常量。 a , ? , 9 (4)符号常量。#define PI 2.1415926 常量的类型,可通过书写形式来判别。 二、 变量 1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素,7,(1)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。 3.标识符命名规则

4、 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前个字符相同,有的系统认为这两个变量,是一回事而不加区别。 C语言使用四类字符构成语法成分:数字字符09,大小写字母,可打印字符(!%”.?/ |,空白符(空格、换行、制表符),8,(3)C语言的关键字不能用作变量名。 注意:C语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。 习惯上,变量名和函数名中的英文字母用小写,以增加可读性。 思考:在C语言中,变量名

5、total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗? 标识符命名的良好习惯见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。 例如,name/xm(姓名)、gender/xb(性别)、age/nl(年龄)、salary/gz(工资)。,9,4.变量的定义与初始化 在语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。 (1)变量定义的一般格式 数据类型 变量名, 变量名2; 例如,float radius, length, area; (

6、2)变量初始化的一般格式 数据类型 变量名=初值, 变量名2=初值2; 例如,float radius=2.5, length, area; 5.变量的赋值-改变变量取值的有效办法 例如:length=2*PI*radius; area=PI*radius*radius; 一般格式:变量=表达式;,10,变量的存储实现: C 程序的变量功能怎样实现?当一个变量被定义时,系统将为它确定一个存储值的位置,这个存储位置所占存储器单元的数目由变量的类型确定,也就是说,由变量所要存储的数据值的大小决定。例如,在许多系统里,一个双精度类型变量常被分配一块8 个字节大小的存储位置,其中正好能放下一个双精度值

7、。一个字符类型的变量通常分配一个1 字节的存储位置。其他类型也一样,由编译系统根据数据类型为变量分配存储。,11,另外,不同系统也采用不同分配方式。例如在一些微机C 语言系统里整型变量被分配2 个字节的存储位置,在另一些系统里的int 变量被分配4 个字节。当程序中给变量赋值的时候,这个值就被存入变量所占的存储单元。当需要使用某个变量的值时,就从相应存储位置中取出值来用。总之,一般是不同类型占用不同数目的存储单元,同一类型在不同编译系统也可能占用不同数目的存储单元。 假如有变量定义: double x1=35.70;,12,13,常量 常量可以直接出现在程序中,也可以先给常量起个名字,程序中用

8、常量的名字;#define PI 2.1415926 变量必须先定义后使用。定义就是给变量按标识符命名规则起个名字,然后说明变量能放什么类型的数据。变量的初始化是指在定义变量的同时给它一个原始值: int a=9; 程序中通过变量的名使用变量的值时,必须确保它已经有确定的值;除初始化外,也可以使用赋值操作使变量有确定的值。格式为: 变量名=表达式; 如:int a; a=8;,语法知识回顾,14,2.3 整型数据,一、 整型变量 1.分类 根据占用内存字节数的不同,整型变量又分为类: (1)基本整型(类型关键字为int)。 (2)短整型(类型关键字为short int)。 (3)长整型(类型关

9、键字为long int)。 (4)无符号整型。无符号型又分为无符号基本整型(unsigned int)、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整数。 2.占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。在32位操作系统中,一般用4字节表示一个int型变量,且long型int型short型。有些系统根本不区分它们。在VC中,long与int都是4字节,short是2字节。,15,显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1(2n*8-1-1);

10、无符号整型变量的值域为:0(2n*8-1)。 使用方法:int 变量名表; 例如:int a,b,c; 二、 整型常量 .三种表示形式 整型常量即整常数,在语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字开头)。例如012。 (3)十六进制(以数字+小写字母x开头)。例如0x36。,16,.分类 (1)基本整型。在32位机中,用4字节存储,其数据范围与int型变量一样。 (2)长整型(在数值后面加“L(l)”)。对超出基本整型值域的整型常量,可使用长整型常量表示,其取值范围可达-(-)。例如,123l、315等。 3.类型匹配规则 类型匹配规则为:一个整型常量,可

11、以赋给能容纳下其值的整型变量。 例如,其值在-(-)的整型常量,可以赋给int型变量和long int型变量;其值在-(-)的整型常量,就只能赋给long int型变量。 注意:常量无unsigned型。但一个非负整型常量,只要它的值不超过相应变量的值域(即取值范围),也可以赋给unsigned型变量。,超出取值范围会怎样?,假定int的范围是-3276832767 给它一个超出范围的数会如何? 现场编程测验,小蛇能吞下大象吗?,17,3_Overflow,关于整数的表达范围,19,2.4实型数据,一、 实型变量 语言的实型变量,分为两种: (1)单精度型。类型关键字为float,一般占字节(

12、位)、提供位有效数字。 (2)双精度型。类型关键字为double,一般占个字节、提供1516位有效数字。 使用方法:float 变量名表; 例如:float x,y,z; 二、 实型常量 .表示形式 实型常量即实数,在语言中又称浮点数,其值有两种表达形式: (1)十进制形式。例如2.14、9.8。 (2)指数形式:E(e)。例如2.0+5等。 .关于类型 实型常量不分float型和double型。一个实型常量,可以赋给一个实型变量(float型或double型),应会的语法知识点,#include “stdio.h“ int main( ) int m=6,n; float a=1.68,b;

13、 double x=6.18,y=1.3e-6; return 0; ,21,2.5 字符型数据,一、 字符常量 1.字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,A、等。 2.转义字符(见P23表2.2) 语言还允许使用一种特殊形式的字符常量,就是以反斜杠“ ”开头的转义字符。 注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:、。 案例2.1 用转义字符输出可打印字符和不可打印字符。 /*案例代码文件名:AL2_1.C*/ /*程序功能:用转义字符输出可打印字符和不可打印字符*/,22,#include “stdio.h“ int main( ) print

14、f(“x4Fx4Bx21n”); /* 等价于printf(“OK!n”); */ printf(“x15 xABn”); return 0; 程序运行结果如下: ! 二、 字符变量 字符变量的类型关键字为char,一般占用1字节内存单元。 1.变量值的存储 字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。 例如, char ch1, ch2; /*定义两个字符变量:ch1,ch2*/ ch1=a; ch2=b; /*给字符变量赋值*/,23,2.特性 字符数据在内存中存储的是字符的ASCII码 一个无符号整数,其形

15、式与整数的存储形式一样,所以语言允许字符型数据与整型数据之间通用。 (1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。 案例2.2 字符变量的字符形式输出和整数形式输出。 /*案例代码文件名:AL2_2.C*/ /*程序功能:用字符形式和整数形式输出字符变量*/ #include “stdio.h“ int main( ) char ch1,ch2; ch1=a; ch2=b; printf(“ch1=%c,ch2=%cn”,ch1,ch2); printf(“ch1=%d,ch2=%dn”,ch1,ch2); return 0; 程序运行结果: ch1=a,ch2=b ch1=9

16、7,ch2=98,应会的语法知识点,#include “stdio.h“ int main( ) int m=6,n; float a=1.68,b; char ch1=$,ch2; double x=6.18,y=1.3e-6; return 0; ,25,(2)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。 案例2.3 字符数据的算术运算。 /*案例代码文件名:AL2_3.C*/ /*程序功能:字符数据的算术运算*/ #include “stdio.h“ int main( ) char ch1,ch2; ch1=a; ch2=B; /*字母的大小写转换*/ pr

17、intf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32); /*用字符形式输出一个大于256的数值*/ printf(“ch1+200=%dn“, ch1+200); printf(“ch1+200=%cn“, ch1+200); printf(“ch1+256=%dn“, ch1+256); printf(“ch1+256=%cn“, ch1+256); return 0; ,26,程序运行结果: ch1=A,ch2=b ch1+200=297 ch1+200=) ch1+256=353 ch1+256=a 思考题:用字符形式输出一个大于256的数值,会得到什么结果? 三、

18、字符串常量 1.字符串常量的概念和字符串长度 字符串常量是用一对双引号括起来的若干字符序列。 字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串, “ “表示一对紧连的双引号。,27,例如,“How do you do.”、“Good morning.”等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。 如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。 例如:(1)C:msdosv6.22 “C:msdosv6.22“ (2)I say:“Goodbye!“ “I say:“Goodbye!“ 2.字符串的存储 C语言规定:在存储

19、字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。 注意:在源程序中书写字符串常量时,不必加结束字符0,否则画蛇添足。 如果有一个字符串为“CHINA”,则它在内存中的实际存储如下所示: 最后一个字符0是系统自动加上的,它占用字节而非字节内存空间。,28,综上所述,字符常量A与字符串常量“A“是两回事: (1)定界符不同:字符常量使用单引号,而字符串常量使用双引号; (2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数; (3)存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。,

20、29,char型与int型之间的关系,小写字母转换为大写字母,#include “stdio.h“ int main() char ch = b; ch = b - 32; printf(“%c, %dn“, ch, ch); return 0; ,#include “stdio.h“ int main() char ch = b; ch = b - (a - A) ; printf(“%c, %dn“, ch, ch); return 0; ,29,30,2.6数据的输出与输入,格式化输出printf( )函数 格式化输入scanf( )函数 单个字符输入输出getchar( )和putch

21、ar( )函数 简单程序设计,31,为了让计算机处理各种数据,首先就应该把原始数据输入到计算机中;计算机处理结束后,再将结果数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现,而不是由C语言本身提供。 输入与输出函数在标准库stdio.h中进行定义,故使用它们时要在程序开始使用预处理#include “stdio.h”行。,32,格式化输出printf( )函数,printf( )函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。 一、 printf( ) 函数的一般格式 案例2.4 已知圆半径radius=1.

22、5,求圆周长和圆面积。 /*案例代码文件名:AL2_4.C。*/ #include “stdio.h“ int main( ) float radius,length,area,pi=2.1415926; radius=1.5; length=2*pi*radius; /*求圆周长*/ area=pi*radius*radius; /*求圆面积*/ printf(“radius=%fn”,radius); /*输出圆半径*/ printf(“length=%7.2f,area=%7.2fn”,length,area); /*输出圆周长、面积*/ return 0; ,33,程序运行结果如下:

23、radius=1.500000 length= 9.42,area= 7.07 printf( )函数的一般格式如下: printf(“格式字符串“ ,输出项表); 1格式字符串。“格式字符串”也称“转换控制字符串”,可以包含三种字符: (1)格式指示符。格式指示符的常用形式如下: %字母 这里,字母可以是P28表2.3所示的字母,表示对应的输出项输出时的格式。%与字母之间不可以有空格,但可以有整数数字(字母为d或c)或下列形式的实数数字m.n(字母为f或s),其中m和n都是整数。数字表示输出项占的宽度最小值 。,34,(2)转义字符 例如,案例2.4中printf( )函数中的n就是转义字符

24、,输出时产生一个“换行”操作。 (3)普通字符除格式指示符和转义字符之外的其它字符。格式字符串中的普通字符,原样输出。 例如,案例2.4中“printf(“radius=%fn“, radius);”语句中的“radius=”,“printf(“length=%7.2f,area=%7.2fn“, length,area);”语句中的“length=”、“area=”等都是普通字符。 2输出项表 输出项表是可选的。如果要输出的数据不止1个,相邻2个之间用逗号分开。下面的printf( )函数都是合法的: (1)printf(“I am a student.n”); /屏幕显示:I am a s

25、tudent. (2)printf(“%d”,3+2); /屏幕显示:5 (3)printf(“WelcomentonBeijing!n“);/屏幕显示: Welcome to Beijing! 必须强调:“格式字符串”中的格式指示符,必须与“输出项表”中、输出项的数据类型一致,个数相同,否则会引起输出错误。,35,二、 格式指示符 输出不同类型的数据,要使用不同的类型转换字符。 1类型转换字符d以带符号的十进制整数形式输出。 案例2.5 类型转换字符d的使用。 /*案例代码文件名:AL2_5.C。*/ #include “stdio.h“ int main( ) int num1=123;

26、long num2=123456; /*用3种不同格式,输出int型数据num1的值*/ printf(“num1=%d,num1=%5d,num1=%-5d,num1=%2dn“, num1,num1,num1,num1); /*用3种不同格式,输出long型数据num2的值*/ printf(“num2=%ld,num2=%8ld,num2=%5ldn“,num2,num2,num2); printf(“num1=%ldn“,num1); return 0; ,36,程序运行结果如下: num1=123,num1=123,num1=123,num1=123 num2=123456,num2

27、=123456,num2=123456 num1=16908411 对于整数,还可用八进制、无符号形式(%o(小写字母o))和十六进制、无符号形式(%x)输出。对于unsigned型数据,也可用%u格式符,以十进制、无符号形式输出。 所谓无符号形式是指,不论正数还是负数,系统一律当作无符号整数来输出。例如,printf(“%d,%o,%xn“,-1,-1,-1);,37,2类型转换字符f以小数形式、按系统默认的宽度,输出单精度和双精度实数。 案例2.6 类型转换字符f的使用。 /*案例代码文件名:AL2_6.C。*/ #include “stdio.h“ int main( ) float f

28、=122.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); return 0; 程序运行结果如下: 122.456001,122.456001,122.46,122.46,122.46 d1+d2=3333333333332.333010,38,本案例程序的输出结果中,数据122.456001和3333333333332.333010中的001

29、和010都是无意义的,因为它们超出了有效数字的范围。 对于实数,也可使用格式符%e,以标准指数形式输出:尾数中的整数部分大于等于1、小于10,小数点占一位,尾数中的小数部分占5位;指数部分占4位(如e-03),其中e占一位,指数符号占一位,指数占2位,共计11位。 也可使用格式符%g,让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。,39,浮点数的陷阱,#include int main() float f; f = 122.456; if (f = 122.456) printf(“f确实等于122.456“); else printf(“实际上,f等于%fn“, f);

30、return 0; 运行结果会是什么?,3_FloatTrap,39,40,3.类型转换字符c输出一个字符(只占一列宽度)。 案例2.7 类型转换字符c的使用。 /*案例代码文件名:AL2_7.C。*/ #include “stdio.h“ int main( ) char c=A; int i=65; printf(“c=%c,%5c,%dn“,c,c,c); printf(“i=%d,%c“,i,i); return 0; 程序运行结果如下: c=A,A,65 i=65,A 需要强调的是:在C语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。将整数用字符形式输出时,系统首先求该

31、数与256的余数,然后将余数作为ASCII码,转换成相应的字符输出。,41,4类型转换字符s输出一个字符串。 案例2.8 类型转换字符s的使用。 /*案例代码文件名:AL2_8.C。*/ #include “stdio.h“ int main( ) printf(“%s,%5s,%-10s“,“Internet“,“Internet“,“Internet“); printf(“%10.5s,%-10.5s,%4.5sn“,“Internet“,“Internet“,“Internet“); return 0; 程序运行结果如下: Internet,Internet,Internet,Inter

32、,Inter,Inter 注意:系统输出字符和字符串时,不输出单引号和双引号。,42,三、 使用说明 (1)printf( )可以输出常量、变量和表达式的值。但格式控制中的格式说明符,必须按从左到右的顺序,与输出项表中的每个数据一一对应,否则出错。 例如,printf(“str=%s, f=%d, i=%fn“, “Internet“, 1.0 / 2.0, 3 + 5, “CHINA“);是错误的。 (2)格式字符x、e、g可以用小写字母,也可以用大写字母。使用大写字母时,输出数据中包含的字母也大写。除了x、e、g格式字符外,其它格式字符必须用小写字母。 例如,%f不能写成%F。 (3)格式

33、字符紧跟在“%”后面就作为格式字符,否则将作为普通字符使用(原样输出)。 例如,“printf(”c=%c, f=%fn“, c, f);”中的第一个c和f,都是普通字符。,43,目前应掌握的C语法,程序结构 变量声明 各种类型数据输出,44,格式化输入scanf( )函数,scanf( )函数是用来从外部输入设备向计算机主机输入数据的。 一、 scanf( )函数的一般格式 案例2.9 已知圆柱体的底半径radius=1.5,高high=2.0,求其体积。 /*案例代码文件名:AL2_9.C。*/ #include “stdio.h“ int main( ) float radius=1.5

34、, high=2.0, pi=2.14159, vol; vol=pi*radius*radius*high; /*求体积*/ printf(“vol=%7.2fn”,vol); /*输出求出的体积*/ return 0; 案例2.10 已知圆柱体的底半径为radius,高为high,求其体积。 /*案例代码文件名:AL2_10.C。*/ /*功能:说明函数scanf( )的格式及作用。*/,45,#include “stdio.h“ int main( ) float radius,high,vol,pi=2.1415926; printf(“Please input radius 程序运行

35、结果如下: Please input radius & high: 1.52.0 radius=1.50,high=2.00,vol=14.14,46,在程序中给计算机提供数据,可以用赋值语句,也可以用输入函数。在C语言中,可使用scanf( )函数,通过键盘输入,给计算机同时提供多个、任意的数据。 1. scanf( )函数的一般格式 scanf(“格式字符串“, 输入项首地址表); (1)格式字符串。格式字符串可以包含3种类型的字符:格式指示符、空白字符(空格、Tab键和回车键)和非空白字符(又称普通字符)。 格式指示符与printf( )函数的相似,空白字符作为相邻2个输入数据的缺省分隔

36、符,非空白字符在输入有效数据时,必须原样一起输入。,47,(2)输入项首地址表由若干个输入项首地址组成,相邻2个输入项首地址之间,用逗号分开。 输入项首地址表中的地址,可以是变量的首地址,也可以是字符数组名或指针变量。 变量首地址的表示方法: &变量名 其中“&”是地址运算符。例如,案例2.10中的“&radius”是指变量radius在内存中的首地址。 2scanf( )函数的功能:从键盘上接收格式化输入。 运行案例2.10的程序时,从键盘上输入2个实数,分别存入&radius、&high起始的存储单元中,即输入两个实数分别赋给radius和high。,48,二、 格式指示符 格式指示符的一

37、般形式为: % * 宽度 F|N h|l 类型字符 1类型字符 类型字符如p83表4-3所示。例如,在案例2.10的scanf()函数语句中,格式字符串“%f%f”。 2宽度n 指定该项输入数据所占列数为n。 换句话说,读取输入数据中相应的n位,但按需要的位数赋给相应的变量,多余部分被舍弃。 例如,scanf(“%3c%3c“, 假设输入“abcdefg”,则系统将读取的“abc”中的“a”赋给变量ch1;将读取的“def”中的“d”赋给变量ch2,所以printf()函数的输出结果为:ch1=a,ch2=d。,49,3.赋值抑制字符* 表示本输入项对应的数据读入后,不赋给相应的变量(该变量由

38、下一个格式指示符输入)。 例如,scanf(“%2d%*2d%3d“, 假设输入“123456789”,则系统将读取“12”并赋值给num1;读取“34”、但舍弃掉(“*”的作用);读取“567”并赋值给num2。所以,printf( )函数的输出结果为:num1=12,num2=567。 4类型修饰符F、N、h、l。 其含义与printf( )中的一样,分别为远指针、近指针、短整型和长整型。,50,三、 数据输入操作 1如果相邻2个格式指示符之间,不指定数据分隔符(如逗号、冒号等),则相应的2个输入数据之间,至少用一个空格分开,或者用Tab键分开,或者输入1个数据后,按回车,然后再输入下1个

39、数据。 例如,scanf(“%d%d“, 假设给num1输入12,给num2输入36,则正确的输入操作为:1236 或者:12 36 注:使用“”符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。,51,2“格式字符串”中出现的普通字符(包括转义字符形式的字符),务必原样输入。 例如,scanf(“%d,%d“, 假设给num1输入12,给num2输入36,正确的输入操作为: num1=12,num2=36n,52,提高人机交互性建议:为改善人机交互性,同时简化输入操作,在设计输入操作时,一般先用printf()函数输出一个提示信息,再用scanf()函数进行数据输入。 例

40、如,将scanf(“num1=%d,num2=%dn“, 3.输入数据时,遇到以下情况,系统认为该数据结束: (1)遇到空格,或者回车键,或者Tab键。 (2)遇到输入域宽度结束。例如“%3d”,只取3列。 (3)遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号(数值符号仅由数字字符0-9、小数点和正负号构成)。,53,4使用格式说明符“%c”输入单个字符时,空格和转义字符均作为有效字符被输入。 例如,scanf(“%c%c%c“, 假设输入:ABC,则系统将字母A赋值给ch1,空格赋值给ch2,字母B赋值给ch3。,54,单个字符输入输出getchar( )和putchar( )函

41、数,一、 单个字符的输出putchar( )函数 案例2.11 putchar( ) 函数的格式和使用方法。 /*案例代码文件名:AL2_11.C*/ /*功能:说明putchar( )函数的格式和使用方法。*/ #include “stdio.h“ /*编译预处理命令:文件包含*/ int main( ) char ch1=N, ch2=E, ch3=W; putchar(ch1); putchar(ch2); putchar(ch3); /*输出*/ putchar(n); putchar(ch1); putchar(n); /*输出ch1的值,并换行*/ putchar(E); putc

42、har(n); /*输出字符E,并换行*/ putchar(ch3); putchar(n); return 0; ,55,程序运行结果如下: NEW N E W 1putchar( )函数的格式: putchar(ch); 其中ch可以是一个字符变量或常量,也可以是一个转义字符。 2putchar( )函数的作用:向终端输出一个字符。 (1)putchar( )函数只能用于单个字符的输出,且一次只能输出一个字符。另外,从功能角度来看,printf( )函数可以完全代替putchar( )函数。 (2)在程序中使用putchar( )函数,务必牢记:在程序(或文件)的开头加上编译预处理命令(也

43、称包含命令),即: #include “stdio.h“ 表示要使用的函数,包含在标准输入输出(stdio)头文件(.h)中。,56,二、 单个字符的输入getchar( )函数 案例2.12 说明getchar( )函数的格式和作用。 /*案例代码文件名:AL2_12.C*/ /*功能:说明getchar( )函数的格式和作用。*/ #include “stdio.h“ /*文件包含*/ int main( ) char ch; printf(“Please input two character: “); ch=getchar( ); /*输入1个字符并赋给ch */ putchar(ch

44、);putchar(n); putchar(getchar( ); /*输入一个字符并输出*/ putchar(n); return 0; ,57,程序运行情况如下: Please input two characters: ab a b 1getchar( )函数的格式:getchar(); 2getchar( )函数的作用:从系统隐含的输入设备(如键盘)输入一个字符。另外,从功能角度来看,scanf( )函数可以完全代替getchar()函数。 (1)getchar( )函数只能用于单个字符的输入,一次输入一个字符。 (2)程序中要使用getchar( )函数,必须在程序(或文件)的开头加上编译预处理命令: #include “stdio.h “,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1