基本数据类型与运算符讲稿.ppt

上传人:石*** 文档编号:84151657 上传时间:2023-04-02 格式:PPT 页数:63 大小:2.94MB
返回 下载 相关 举报
基本数据类型与运算符讲稿.ppt_第1页
第1页 / 共63页
基本数据类型与运算符讲稿.ppt_第2页
第2页 / 共63页
点击查看更多>>
资源描述

《基本数据类型与运算符讲稿.ppt》由会员分享,可在线阅读,更多相关《基本数据类型与运算符讲稿.ppt(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基本数据类型与运算符第一页,讲稿共六十三页哦2.1数据类型和取值范围 2.1.1数据类型和取值范围1.类型修饰长度修饰:short,long符号修饰:signed,unsigned2.取值范围与机器类型、编译环境有关.如:int在16位系统中为2字节,取值范围为10000000,00000000011111111,11111111即-215215-1(-3276832767)不带符号的int在16位系统中取值范围为00000000,0000000011111111,11111111即0216-1(065535)第二页,讲稿共六十三页哦int在32位系统中为4字节,取值范围为10000000,0

2、0000000,00000000,00000000011111111,11111111,11111111,11111111即-231231-1不带符号的int在32位系统中取值范围为00000000,00000000,00000000,00000000111111111,11111111,11111111,11111111即0232-1.不同数据类型取值范围见表2-1。第三页,讲稿共六十三页哦类型别名长度范围精度charsigned char1-2727-1unsigned char028-1intlong int 4-231231-1signed intsigned long intunsi

3、gned intunsigned0232-1unsigned long intshortshort int2-215215-1signed shortsigned short intunsigned shortunsigned short int0216-1float410-3710386double810-3071030815第四页,讲稿共六十三页哦常量:是指在程序运行过程中数值不发生变化的量,如:5,a,Hello,world;变量:是指程序运行过程中,可以发生变化的量,如:a,Hello等。2变量的定义变量的定义定义格式为:存储类型存储类型 数据类型数据类型 变量名;变量名;如:inta

4、,a5,_a;float_a5,A5;变量类型可以是表2.1中的任何数据类型。第五页,讲稿共六十三页哦变量命名遵守C标识符命名规则:(1)第1个字符必须是字母或下划线;(2)其余字符可以是字母、下划线、数字;(3)标识符有长度限制,如C规定标识符长度不能超过32个字符;(4)字母区分大小写;(5)用户自定义标识符不能与C语言的保留字或预定义标识符同名,并应尽量做到“见名知意”,以增加程序的可读性。C语言保留字请参见附录2,预定义标符指预定义库函数。变量没有赋初值时,变量中存放的是一随机值。变量定义时可同时赋初值,称之为变量的初始化,如:inta=1,a5=10;第六页,讲稿共六十三页哦定义变量

5、包括两个方面的含义:一是给变量分配了存储空间和规定了变量的取值范围;二是规定了其允许的操作,如实数可进行加减乘除运算,但不能进行求余运算。第七页,讲稿共六十三页哦2.1.22.1.2整型常量整型常量1。整型常量按进制划分有:十进制、八进制(前缀为数字0)、十六进制(前缀为数字0X或0 x)三种。数据377按这三种进制的格式可分别表示为:377、0571、0 x179(或0X179)。2。常量按长度划分为两种:短整型和长整型(后缀为小写字母l或大写字母L),其中默认为短整型。如-377是一个短整型数,而-377l或-377L表示-377是长整型数。3。长度和进制可进行组合如:377L、0571L

6、、0 x179L分别表示十进制、八进制、十六进制长整型数。第八页,讲稿共六十三页哦2.1.32.1.3实型常量实型常量实型常量有两种表示方法:一类是标准计数方法,如PI值表示为3.1415926另一类可以采用科学计数法,科学计数法的一般形式为:尾数E阶码或尾数e阶码如PI值可以表示为如下形式:3.14159E03.14159e00.314159E131.4159e-1。第九页,讲稿共六十三页哦2.1.42.1.4字符常量字符常量字符常量用一对单引号包围如5、a、A、等每个字符占一个字节,在计算机中,字符按ASII值存放,见附录1,对应的3个字符ASCII值为53、97、65、32等,因此字符也

7、可以参加整型运算。由于字符用单引号包围,单引号字符不好表示,在C中这些不好表示的字符可在字符前面加反斜杠区分,称之为转义字符,如表示单引号。常用转义字符见表2.2。第十页,讲稿共六十三页哦表2.2 常用转义字符表 码意义ASCII码意义ASCIIb退格8单引号39f换页12反斜杠92n新行10v直制表11r回车13a响铃7t水平制表9?问号63”双引号34%百分号37第十一页,讲稿共六十三页哦字符也可用八进进或十六进制形式表示:八进制ooo十六进制xhh如:101、x41均表示大写字母A。注意3与3的区别:前者为字符常量,占一个字节,后者为整型常量,占两个字节;前者数值为51,后者为3;两个数

8、据都可以参加四则运算。第十二页,讲稿共六十三页哦例例2.1转义字符与字符运算举例,分析下列程序运行结果#includemain()charc=a;c=c+1;printf(“n%cn”,c);printf(“ThetokenofRMBis:ntttYb=”在打印机上的输出结果为:bThetokenofRMBis:在屏幕上的输出结果为:bThetokenofRMBis:=第十三页,讲稿共六十三页哦2.1.52.1.5字符串类型字符串类型字符串常量是用一对双引号包围的字符数组,如:”Hello,world!”,在内存中是按照每个字符的ASCII码连续存放的,并在结尾处添加了一结束标志0,对应的AS

9、CII值为0,这样n个字符组成的字符串需占用n+1个字节。12个字符组成字符串”Hello,world!”在内存中占用13个字节,其存储形式如图2.1示。(a)十进制存储表示(b)ASCII码存储形式 图2.1字符串“Hello,world!”存储表示72101 108 10811139119111114108 100330DC00 DC01 DC02 DC03 DC04 DC05 DC06 DC07 DC08 DC09 DC0A DC0B DC0CHello,world!0DC00 DC01 DC02 DC03 DC04 DC05 DC06 DC07 DC08 DC09 DC0A DC0B

10、DC0C第十四页,讲稿共六十三页哦值得注意的是:(1)字符串中包含有双引号时字符时,字符双引号必须用转义字符表示(2)一个字符串需占用两行时,需采用两对双引号分别连续表示,参看下列。例例2.2字符串常量分两行表示的实例。#includemain()printf(“Isay:n”“Hello,worlx64!”);程序运行结果如下:Isay:“Hello,world!”第十五页,讲稿共六十三页哦注意A与“A”的区别:前者为字符常量,占一个字节;后者为字符串常量,占两个字节,其中第一个字节存放字符A,第二个字节存放字符串结束标志0。小结1.数据类型与取值范围2.定义变量的含义3.字符与字符串的表示

11、4.字符3与3、A与”A”的区别第十六页,讲稿共六十三页哦2.2运算符 2.2.12.2.1优先级与结合规则优先级与结合规则1。运算优先级优先级别:不同级别时,先算优先级别高的运算符;结合规则:在同一级别运算时,按某种运算规则进行;优先级别和结合规则见表2.32。单元运算、双元运算、三元运算双元运算:只允许带左右两个运算数的运算符称为二元运算符(或二目运算符、双元运算符),如算术运算。单元运算:只允许有一个运算数的称为单元运算符(或单目运算符、一元运算符),如负号运算符(-)。三元运算符,即条件运算符,它允许带三个运算数。第十七页,讲稿共六十三页哦优先级运算符结合规则1()-2!+*&size

12、of (type)从右至左3*/%4+56 =7=!=8&910|11&12|13?:从右至左14=+=*=/=%=&=|=从右至左15,第十八页,讲稿共六十三页哦3。运算规则(1)不同级别的运算符按运算符的优先级别确定计算顺序,优先级别高(优先级别数小)的运算符先计算,优先级别低(优先级别数大)的运算符后计算。(2)相同级别的运算顺序按结合规则确定计算顺序。如表达式3+4*(12-6)/(1+2)的计算顺序为:左边括号运算(12-6),值为6,右边括号运算(1+2),值为3,左边乘法运算4*6,值为24,右边除法运算24/3,值为8,加法运算3+8,值为11。第十九页,讲稿共六十三页哦2.2

13、.22.2.2赋值运算与连续赋值赋值运算与连续赋值一般形式为变量=表达式其功能是将一个表达式的值赋给变量。如下表达式a=b+c其本意是改写变量a的值。注意:与数学上的关系运算符等于运算符的区别:如数学上,表达式a=a+5看作错误的表达式在C语言中这是正确的合法表达式。赋值运算符的级别14级,右结合规则。表达式x=y=z=1是连续赋值表达式,相当于如下表达式x=(y=(z=1)第二十页,讲稿共六十三页哦2.2.32.2.3算术运算算术运算+、-1。算术运算符 算术运算符有:加“+”、减“”、乘“*”、除“/”、求余(模)“%”、“+”、“”等。其中+、运算符级别为4级,*、/、%运算符级别为3级

14、,它们都满足左结合性,都是二元运算符,+、*、/都能对整数或实数进行运算。求余运算符%只能对整型数据进行,如5%2的值为1,5%3值为2。如果计算:a%b 时,a、b中至少有一个为负数,此时运算结果如何呢?C语言中规定,其结果:余数与a的符号相同,而绝对值不变。因此表达式7%3、7%-3、-7%3、-7%-3的值分别为1、1、-1、-1。第二十一页,讲稿共六十三页哦2。自加+、自减运算符一元运算符,级别为2级,满足右结合性,整型变量。表达式+a或a+表示a的值自增1,而-a或a-表示a的值自减1。例如若有定义:inta=5;则执行a+或+a后,a的值为6;执行a-或-a后a的值为4。第二十二页

15、,讲稿共六十三页哦3。前缀运算、后缀运算写在变量的前面称为前缀(或前置)运算符,写在变量的后面称为后缀(或后置)运算符。前缀运算与后缀运算时,注意如下两点:(1)+a与a+单独构成表达式时,两者使用时没有区别。(2)+a与a+不是单独构成表达式时,前缀运算表示先加后用,后缀运算表示先用后加。先用后加指的是先读取a的数据使用,当表达式中比逗号运算符高的运算符都执行完后,a再进行自加运算。先加后用指的是先对a进行自加运算,然后再读取a进行其它运算。上面我们仅以+为例进行说明,对于运算也有相似的规则:前缀表示先减后用,后缀表示先用后减。第二十三页,讲稿共六十三页哦例例2.32.3分析下列程序运行结果

16、#includemain()inta,b;a=3;b=a+;printf(“a=%db=%dn”,a,b);a=3;b=+a;printf(“a=%db=%dn”,a,b);a=3;b=+a*+a;printf(“a=%db=%dn”,a,b);a=3;b=+a*a+;printf(“a=%db=%dn”,a,b);a=3;b=a+*+a;printf(“a=%db=%dn”,a,b);a=3;b=a+*a+;printf(“a=%db=%dn”,a,b);a=3;printf(“+a=%da+=%dn”,+a,a+);运行结果为a=4 b=3a=4 b=4a=5 b=25a=5 b=16a=

17、5 b=16a=5 b=9+a=5 a+=3第二十四页,讲稿共六十三页哦2.2.42.2.4关系运算关系运算比较大小运算,有:、=、=、35=3 53532在是恒成立的。但在C语言中,上式却不成立。若将上式改写为条件表达式53&32后,则与数学上的的连续比较含意相符,表达式也是成立的。3。逻辑优化逻辑与优化:从逻辑与运算a&b的真值表中,我们可以看出,只要a值为0,不管b值如何,其运算结果都为0,因此,在进行逻辑与运算时,只要计算a值为0,我们不需计算b值,这种情况,我们称之为逻辑与优化。逻辑或优化:同样,对于逻辑或运算a|b,只要a值为1,不需计算b值,此时表达式值恒为1,这种情况称之为逻辑

18、或优化。第二十七页,讲稿共六十三页哦程序运行结果为程序运行结果为x=1 y=0 z=0 x=1 y=0 z=0 x=1 y=1 z=0 x=1 y=1 z=0 x=1 y=1 z=1x=1 y=1 z=1x=1 y=0 z=0 x=1 y=0 z=0 例例2.4逻辑运算#includemain()intx,y,z;x=y=z=0;+x|+y|+z;printf(“x=%dy=%dz=%dn”,x,y,z);x=y=z=0;+x&+y|+z;printf(“x=%dy=%dz=%dn”,x,y,z);x=y=z=0;+x&+y&+z;printf(“x=%dy=%dz=%dn”,x,y,z);x

19、=y=z=0;+x|+y&+z;printf(“x=%dy=%dz=%dn”,x,y,z);第二十八页,讲稿共六十三页哦2.2.62.2.6位运算位运算1位运算操作符位运算操作符位运算符有:&、|、右移位aba向右移b位5左左移位aba向左移b位5左第二十九页,讲稿共六十三页哦2异或运算异或运算异或运算真值表见表2.6,即对应位相同时为0,不同时为1。表2.6异或运算真值表abab1101010110003移位运算移位运算左移位运算ab,右边移出部分将丢弃,左边空出高位部分填补方法根据a是否为带符号数分为两种:a为带符号数,左边空出高位部分用符号位填补;a为不带符号数,高位部分用0填补。第三十

20、页,讲稿共六十三页哦例例2.5位运算main()chara=-25,b=93,c;unsignedchard=-25;c=a&b;printf(“%dn”,c);c=a|b;printf(“%dn”,c);c=ab;printf(“%dn”,c);c=a;printf(“%dn”,c);b=3;c=ab;printf(“%dn”,c);c=db;printf(“%dn”,c);a=25;c=ab;printf(“%dn”,c);c=a:11111100a:11100111b:01011101&01000101|:11111111d:11100111:00011100a:00011001:000

21、00011:11001000第三十一页,讲稿共六十三页哦2.2.72.2.7条件运算?:条件运算?:唯一的三元运算符,用符号?:表示,有三个操作数,优先级为13级,结合规则为右结合,其书写一般形式为a?b:c其计算方法是先计算a,若a非0,则选择b作为表达式值,否则若a为0,则选择c作为表达式值,条件运算又称为三项条件运算或选择运算。例例2.6条件运算输入两个整数,选择其中较大的数输出#includemain()inta,b,c;scanf(“%d%d”,&a,&b);c=ab?a:b;printf(“%d”,c);程序运行结果为:35(箭头表示从键盘输入)5第三十二页,讲稿共六十三页哦2.2

22、.82.2.8复合赋值运算复合赋值运算同赋值运算一样,也是二元运算符,14级,右结合。含义见表2.7。表达式:a/=b+c*d相当于表达式a=a/(b+c*d)表2.7复合赋值运算符运算举例意义运算举例意义+=a+=ba=a+b&=a&=ba=a&b-=a-=ba=a-b=a=ba=ab*=a*=ba=a*b|=a|=ba=a|b/=a/=ba=a/b=a=ba=ab%=a%=ba=a%b=a=ba=ab第三十三页,讲稿共六十三页哦2.2.92.2.9逗号运算,逗号运算,15级,左结合。其一般形式如下:e1,e2,e3,en其功能为先计算表达式e1,然后计算表达式e2,再计算表达式e3,最后计

23、算表达式en,其中表达式en的值为整个表达式的值。例2.7逗号表达式#includemain()inta=5,b=3,c,d;d=(c=a+,c+,b*=a*c,b/=a*c);printf(“%dn”,d);printf(“a=%db=%dc=%dn”,a,b,c);输出结果为3a=6b=3c=6第三十四页,讲稿共六十三页哦2.2.102.2.10其它运算其它运算sizeof sizeof 计算变量或表达式占用的存储空间大小,即字节数,2级,右结合。sizeof计算类型占用字节数的形式为sizeof(类型)sizeof计算变量占用字节数的形式有两种sizeof(变量)或sizeof变量如有i

24、nta,b;则sizeof(int)sizeofasizeof(a)都是合法的表达式,其值都为4。第三十五页,讲稿共六十三页哦2.2.112.2.11类型转换与类型转换规则类型转换与类型转换规则 1算术运算类型转换算术运算类型转换算术运算中,当两个运算数类型相同时,运算结果类型与原类型相同,当两个运算数类型不同时,运算结果类型为级别较高的数据类型。类型级别高低按下述规则进行:低 高char int long float doubleunsigned signed因此表达式:5/2+3*4.5+25/2+3*4.5+2的运算结果为17.5,而不是18.第三十六页,讲稿共六十三页哦表达式改写为:5

25、/2.0+3*4.5+25/2.0+3*4.5+2此时,其运算结果为18.0,而不是17.5,请读者自行分析第三十七页,讲稿共六十三页哦2赋值转换赋值转换执行赋值运算变量a=表达式b时,若a、b类型相同,则直接将b赋给a即可,若a、b类型不同,则需先将b的类型转换为a的类型后再赋值,这种类型转换,我们称之为赋值类型转换。赋值类型转换分为如下几种情况:第三十八页,讲稿共六十三页哦(1)不带符号整型数向带符号整型数转换不带符号整型数向带符号整型数转换最高位为1时,当作符号位即负号来处理。如unsignedshorta=65535;shortb;b=a;此时b的值为多少呢?将a赋给b后,b的存储形式

26、与a相同,但最高位是符号位,表示b为负数,即b值为-1(补码)。1111111111111111第三十九页,讲稿共六十三页哦(2)带符号整型数向不带符号整型转换带符号整型数向不带符号整型转换带符号的整型数向不带符号整型转换时,此时将最高位(符号位)也作为数值进行处理,因此若有:unsignedshorta;shortb=-1;a=b;因为此时b占两字节,二进制补码形式为16个1,赋给a后,a的16个位也都为1,因此a的值为655351111111111111111第四十页,讲稿共六十三页哦(3)短型向长型转换短型向长型转换对于短整型向长整型转换时,扩展位部分补符号位。对于浮点型向双精度型转换时

27、,不丢失精度。例例2.8符号位的扩展#includemain()shorta=-1;longb;unsignedlongc;b=a;c=a;printf(a=%db=%ldc=%lun,a,b,c);程序运行结果为a=-1b=-1c=4294967295111111111111111111111111111111111111111111111111第四十一页,讲稿共六十三页哦(4)长型向短型转换长型向短型转换长整型数据占4个字节,短整型数据只占2个字节,数据取值范围小,长整型数据赋给短整型数据转换时,只保留长整型数据的低16位部分,可能会引起数据的丢失。例例2.9长型数据向短型数据转换#inc

28、ludemain()longa=65537;shortb;b=a;printf(a=%ldb=%dn,a,b);程序输出结果为a=65537b=1000000010000000000000001000000000000000000000001ab图2.2长整型赋给短整型第四十二页,讲稿共六十三页哦(5)浮点型向双精度型转换浮点型向双精度型转换-等值转换。(6)双精度型向浮点型转换双精度型向浮点型转换由于双精度数据精度为16位,浮点型数据精度为7位,超过精度范围的部分将按四舍五入处理,超出浮点型数据范围的部分将引起溢出错误。例例2.10双精度数据转换为浮点型数据#includemain()dou

29、blea=1.234567890123456789e18;floatb=a;printf(b=%.20len,a);printf(b=%.20len,b);如果双精度数据范围超过浮点型数据取值范围1038,将引起数据的丢失,产生错误的输出结果。程序输出结果a=1.2345789012345780000e18b=1.2345683955060940000e18第四十三页,讲稿共六十三页哦3强制类型转换强制类型转换强制类型转换的一般格式为:(目标类型)表达式(目标类型)表达式其功能是将表达式类型转换为目标类型,其转换方法同赋值转换。如:floata=3.8;inti;i=(int)a;则i的值为3

30、。4输入输入/输出类型转换输出类型转换输入/输出类型转换,我们将在下一节输入输出函数中讲述。第四十四页,讲稿共六十三页哦复习复习1.1.优先级与结合规则优先级与结合规则2.2.自加运算中的前置与后置的区别自加运算中的前置与后置的区别3.3.逻辑运算逻辑运算4.4.位运算位运算5.5.条件运算条件运算6.6.类型转换类型转换2.3输入输出函数 第四十五页,讲稿共六十三页哦2.3.12.3.1格式化输出函数格式化输出函数printfprintfprintf(“格式字符串格式字符串”,表达式表达式1,表达式表达式2,表达式表达式n);其中格式字符串由两类项目组成:第一类是显示到屏幕上的字符,第二类是

31、对应每个输出表达式的格式说明符(formatspecifier)。格式说明符以%开始,以类型代码结束,其一般格式为:%flags width.precisionF|N|h|l type1类型代码(类型代码(type)类型代码type意义如表2.8所示。例例2.11先初始化不同类型数据,然后输出数据。#include第四十六页,讲稿共六十三页哦表2.8type类型代码表type意义type意义c字符s字符串d带符号10进制整u无符10进制整数i带符号10进制整x无符16进制小写xf10进制浮点数X无符16进制大写Xe用e表示指数部分p指针E用E表示指数部分n已输出的字符数ge或f中选择短格%输出

32、%号GE或f中选择短格aC99标准o无符号8进制整AC99标准第四十七页,讲稿共六十三页哦main()shorta,b;unsignedc;chard=A;floatf;doublee;a=3;b=-3;c=-5;f=3.14259;e=12.3e10;printf(Character:ASCIIcoded=%cASCIIvalued=%dn,d,d);printf(Decimal:a=%db=%dc=%dn,a,b,c);printf(Unsigned:a=%ub=%uc=%un,a,b,c);printf(Octor:a=%ob=%oc=%on,a,b,c);printf(Hexdecim

33、al:a=%xb=%xc=%xn,a,b,c);printf(Hexdecimal:a=%Xb=%Xc=%Xn,a,b,c);printf(formatf:f=%fe=%fn,f,e);printf(formate:f=%ee=%en,f,e);printf(formatg:f=%ge=%gn,f,e);第四十八页,讲稿共六十三页哦程序运行结果为Character:ASCIIcoded=AASCIIvalued=65Decimal:a=3b=-3c=-5Unsigned:a=3b=65533c=65531Octor:a=3b=177775c=177773Hexdecimal:a=3b=fffd

34、c=fffbHexdecimal:a=3b=FFFDc=FFFBformatf:f=3.142590e=123000000000.000000formate:f=3.14259e+00e=1.23000e+11formatg:f=3.14259e=1.23e+11第三行:由于b为-3,补码为1111111111111101,无符号数为65533(216=65536=65533+3);c为-5,补码为1111111111111011,无符号数为65531(216=65536=65531+5)。值得注意的是八进制、十六进制形式是不带符号的。十六进制形式输出有大写%X和小写%x两种形式。第四十九页,

35、讲稿共六十三页哦2宽度(宽度(width)宽度n:表达式输出时至少占用n位。宽度0n时,其中的数字0表示左边空位用0填补。3精度(精度(precision)对于不同类型的输出表达式,精度表示不同的含义。说明符%e、%E、%f作用于浮点数,精度表示小数点后最多显示的位数,如果未指定精度,精度默认值为6。如%10.4f显示的数据至少占10位,其中小数至多4位。当精度作用于%g或%G时,指的是有效位数目。当精度作用于字符串时,精度符限制最大字符串位数。如%5.7s显示的字符串至少占5位,最多占7位(超长部分截除)。作用于整数时,精度决定必须显示的最小位数,不足时补前导0。第五十页,讲稿共六十三页哦例

36、例2.12数据精度#includemain()printf(%.4fn,123.1234567);printf(%3.8dn,1234);printf(%10.15sn,Thisisasimpletest);程序运行结果为123.123500001234Thisisasimpl第五十一页,讲稿共六十三页哦4标志(标志(flags)对齐标志flags为-时,表示左对齐;为+(默认)时,表示右对齐;为0或0+时,左边空位用0填补;为0-时,此时0被忽略;为#时,若为o、X、x格式,则在输出项前显示0、0X、0 x,若为E、e、F、f、G、g,则每个输出项都带小数点。5处理其它类型的修饰说明符(处理

37、其它类型的修饰说明符(F|N|h|l)h、l(小写字母)可用于修饰%d、%o、%u、%x,h修饰时表示输出短整数,l修饰时表示输出长整数。l可修饰%e、%f、%g,表示输出double(C99标准)。第五十二页,讲稿共六十三页哦2.3.22.3.2格式化输入函数格式化输入函数scanfscanfscanf函数使用的格式为scanf(“格式字符串格式字符串”,地址项,地址项1,地址项,地址项2,地址项,地址项n););格式字符串由两类项目组成:指定数据分隔字符,格式说明符(formatspecifier)。格式说明符数量必须与输入数据地址项数量严格一致,且按从左到右的方式依次匹配。变量地址项为变

38、量名前加&,如&x、&y、&a等。格式说明符的一般格式如下%*width h|l type其每个项的含义与printf基本相同,不同的是输入格式串没有精度项,其中*用于跳读输入的数据项。第五十三页,讲稿共六十三页哦例例2.13计算圆柱体体积。#includemain()intr,h;floatv;scanf(%d%*d%d,&r,&h);v=3.14159*r*r*h;printf(Thevolumeis:%.5fn,v);程序运行结果为:354(箭头表示前面的数从键盘输入)Thevolumeis:113.09724r=3h=4v=113.09724第五十四页,讲稿共六十三页哦数据流的分隔方式

39、数据流的分隔方式1(隐含方式)用空白符号分隔数据流(隐含方式)用空白符号分隔数据流分隔数据流的空白符可以为空格(Space)、制表符(Tab)、回车符(Enter)等。如上面程序的数据输入可以为:354注意:若输入的下一数据项为字符时,不能采用空白符分隔,因为空白符会被当作有效的输入字符,此时可采用其它数据流分隔方式进行。第五十五页,讲稿共六十三页哦2指定数据输入宽度分隔数据流指定数据输入宽度分隔数据流width用于指定每个输入数据项的最大宽度。实际输入数据的宽度可以小于指定的宽度width,此时可采用空白符方式或其它方式分隔数据流。如上面程序改写为:#includemain()intr,h;

40、floatv;scanf(%2d%*3d%2d,&r,&h);printf(r=%dh=%dn,r,h);v=3.14159*r*r*h;printf(Thevolumeis:%.5fn,v);r=12h=67v=30310.06055第五十六页,讲稿共六十三页哦程序结果为12345678r=12h=67Thevolumeis:30310.06055输入数据小于指定宽度时,可采用空白符分隔。如上面程序输入数据为r=3,h=5,则程序运行结果为:345r=3h=5Thevolumeis:141.37155r=3h=5v=141.37155第五十七页,讲稿共六十三页哦3用指定的符号分隔数据用指定的

41、符号分隔数据若将上面程序输入语句改写为:scanf(r=%dh=%2d,&r,&h);则数据输入格式必须为:r=3h=4初学者在输入数据时往往遗漏r=和h=,这样往往产生错误的运行结果。r=3h=4v=113.09724第五十八页,讲稿共六十三页哦4根据数据含义分隔数据流根据数据含义分隔数据流数据流输入时,scanf函数能根据数据类型的匹配与否进行数据流的分隔,如输入十进制整型数时,不可能出现字母。#includemain()intr,h;charc;floatv;scanf(%d%d%c,&r,&h,&c);printf(r=%dh=%dn,r,h);printf(Inputcharacte

42、ris:%cn,c);v=3.14159*r*r*h;printf(Thevolumeis:%.5fn,v);程序运行结果为35rr=3h=5Inputcharacteris:rThevolumeis:113.09724r=3h=5v=141.37155c=r第五十九页,讲稿共六十三页哦2.3.3字符输入输出函数 2.3.32.3.3字符输入输出函数字符输入输出函数字符输入函数getchar的使用格式:字符变量字符变量=getchar();上述语句的功能是在键盘上读取一个字符,并将读取的字符赋给字符变量。字符输出函数putchar的使用格式为:putchar(整型表达式整型表达式);上述语句的

43、功能是向控制台(如:显示器)输出与整型表达式对应的ASCII字符。在程序中使用字符输入输出函数时,必须在程序首部加上包含语句:#include第六十页,讲稿共六十三页哦例例2.14字符输入输出函数。#includemain()charc1,c2,c3;c1=getchar();c2=getchar();c3=getchar();putchar(c1+32);putchar(c2+32);putchar(c3+32);程序中输入数据和输出数据如下:ABCabc第六十一页,讲稿共六十三页哦上述程序是将大写字母变换为小写字母,上述字符算术运算加减数据量如果不是32而是其它数,则可实现简单的西文字符加密与解密。作业:P261(1,4,8,9,15),2(4),3(1)内容小结1.数据类型2.运算符与类型转换3.格式化输入输出函数,字符输入输出函数第六十二页,讲稿共六十三页哦国贸上机时间:第3周第12周,星期三,5,6节课第6周第10周,星期五,7,8节课第六十三页,讲稿共六十三页哦

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁