基本数据类型及运算.ppt

上传人:pu****.1 文档编号:569986023 上传时间:2024-08-01 格式:PPT 页数:58 大小:1.26MB
返回 下载 相关 举报
基本数据类型及运算.ppt_第1页
第1页 / 共58页
基本数据类型及运算.ppt_第2页
第2页 / 共58页
基本数据类型及运算.ppt_第3页
第3页 / 共58页
基本数据类型及运算.ppt_第4页
第4页 / 共58页
基本数据类型及运算.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《基本数据类型及运算.ppt》由会员分享,可在线阅读,更多相关《基本数据类型及运算.ppt(58页珍藏版)》请在金锄头文库上搜索。

1、第二章 基本数据类型及运算 n数据描述数据描述n数据类型数据类型n常量常量n变量变量n类型转换类型转换n运算符与表达式运算符与表达式n数据数据输入与入与输出出C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型*空类型空类型void自定义类型自定义类型typedef数值类型数值类型字符类型字符类型char整型整型实型实型单精度型单精度型float双精度型双精度型double短整型短整型short长整型长整型long整型整型int数组数组结构结构struct联合联合union数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 允许的操作基本数据类型例基本数据类型例类型类

2、型符号符号关键字关键字数的表示范围数的表示范围所占位数所占位数整整型型字字符符型型实实型型有有无无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsignedint0655353204294967295unsignedlongunsignedshort16065535有有float32-3.4e383.4e38有有double64-1.7e3081.7e308有有char8-128127无无unsigned char80255需要注意的是,标准需要注意的是,标准C没

3、有具体规定以上各整型没有具体规定以上各整型数据所占内存数据所占内存字节数。只要求字节数。只要求long型数据长度不短于型数据长度不短于int型,型,short型不长于型不长于int型。具体如何实现,由各计算机系统和编译系统决定。型。具体如何实现,由各计算机系统和编译系统决定。如:在如:在VisualC+6.0中,一个中,一个short型数据占用型数据占用2个字节的内个字节的内存空间,一个存空间,一个int型数据和一个型数据和一个long型数据分别占用型数据分别占用4个字节的个字节的内存空间。内存空间。n一般用大写字母一般用大写字母n是宏定义预处理命令,不是是宏定义预处理命令,不是C C语句语句

4、n直接常量直接常量: :n整型常量整型常量 n实型常量实型常量 n字符常量字符常量 n字符串常量字符串常量n常量常量n定义:程序运行时其值不能改变的量(即常数)定义:程序运行时其值不能改变的量(即常数)n分类分类: :n符号常量符号常量: :用标识符代表常用标识符代表常n定义格式:定义格式: #define符号常量符号常量常量常量例例符号常量举例符号常量举例#definePRICE30main()intnum,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:运行结果:total=300&整型常量(整常数)整型常量(整常数)n三种

5、形式:三种形式:n十进制整数:由数字十进制整数:由数字09和正负号表示。如和正负号表示。如12,-456,0n八进制整数:由数字八进制整数:由数字0开头开头,后跟数字后跟数字07表示。如表示。如0123,011n十六进制整数:由十六进制整数:由0x开头开头,后跟后跟09,af,AF表示。表示。如如0x123,0xff例例12与与12L例例30000为为int型型65536为为longint型型n整型常量的类型整型常量的类型n根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型n常量后加字母常量后加字母l或或L,就成为,就成为longint型常量型常量问题:问题:0123=()100x1

6、23=()100xff=()1083291255问题:问题:0123=()100x123=()100xff=()10&实型常量(实数或浮点数)实型常量(实数或浮点数)n表示形式:表示形式:n十进制数形式:(必须有小数点)十进制数形式:(必须有小数点)如如0.123,.123,123.0,0.0,123.n指数形式:(指数形式:(e或或E之前必须有数字;指数必须为之前必须有数字;指数必须为整数)如整数)如12.3e3,123E2,1.23e4,e-5,1.2E-3.5n实型常量的类型实型常量的类型n默认默认double型型n在在实型常量后加字母实型常量后加字母f或或F,为为float型型n在在实

7、型常量后加字母实型常量后加字母l或或L,为为longdouble型型&字符常量字符常量n定义:用定义:用单引号单引号括起来的单个括起来的单个普通字符普通字符或或转义字符转义字符. n字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值值 = = = !=4 4逻辑运算符逻辑运算符 ! |5 5位运算符位运算符 | & | &6 6条件运算符条件运算符 ? :? :7 7逗号运算符逗号运算符 ,8 8指针运算符指针运算符 * * & &9 9求字节数运算符求字节数运算符 sizeofsizeof10. 10. 分量运算符分量运算符 1111下标运算符下标运算符 1212其它其它

8、 如函数调用运算符()如函数调用运算符()优先级优先级结合性结合性1515 ( ) - . ( ) - . 左左右右1414 ! ! - - + - & * ( + - & * (类型名类型名) sizeof) sizeof右右左左1313 * * / %/ %左左右右1212 + + - -左左右右1111 左左右右1010 = = 左左右右9 9 = = != = !=左左右右8 8 & &左左右右7 7 左左右右6 6 | |左左右右5 5 &左左右右4 4 |左左右右3 3 ?:?:右右左左2 2= *= /= += = *= /= += = =右右左左1 1 , ,左左右右注:有些教

9、材最高优先级是注:有些教材最高优先级是15,有些最高优先级是,有些最高优先级是1。学习运算符应注意:学习运算符应注意:(1)掌握运算符的功能;)掌握运算符的功能;(2)搞清运算符与运算量间的关系:)搞清运算符与运算量间的关系:n要求运算量个数要求运算量个数n要求运算量类型要求运算量类型(3)清楚运算的优先级;)清楚运算的优先级;(4)明确结合方向(在一个运算量的两侧有两)明确结合方向(在一个运算量的两侧有两个相同优先级别的运算符,则按结合方向顺序个相同优先级别的运算符,则按结合方向顺序处理);处理);(5)明白结果的类型(即表达式的类型)。)明白结果的类型(即表达式的类型)。算术运算符和表达式

10、算术运算符和表达式n基本算术运算符:基本算术运算符:+ + - - * / % * / %n结合方向:从左向右结合方向:从左向右n优先级:优先级: - - - -* / %* / % - - + - + - 说明:说明:n“- -”可为可为单目单目运算符时运算符时, ,右结合性右结合性n两整数相除,结果为整数两整数相除,结果为整数n“% %”要求两侧均为整型数据要求两侧均为整型数据例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ( )算术运算符和表达式(续)算术运算符和表达式(续)n自增、自减运算符自增、自减运

11、算符 + -+ -n作用:使变量值加作用:使变量值加1 1或减或减1 1n种类:种类:n前置前置 +i, -i (+i, -i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)n后置后置 i+,i- (i+,i- (先使用先使用i i值值,再执行再执行i i+1+1或或i-1i-1)例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /*k=4,j=4*/*k=3,j=4*/*4*/*3*/*c=20,a=4*/*c

12、=15,a=4*/n说明:说明:n+ - + - 不能用于常量和表达式不能用于常量和表达式, ,如如5+5+,( (a+b)+a+b)+n+ -+ -结合方向:结合方向: 自右向左自右向左n优先级:优先级:- + - -* / % -+ - + - -* / % -+ - n注意注意+、- - -的副作用的副作用(p.4849)例例 -i+-(i+)i=3;printf(“%d”,-i+);/*-3*/j=3;printf(“%d,%d”,j,j+);/*4,3or3,3*/例例 -i+?i=3;printf(“%d”,-i+);j=3;printf(“%d,%d”,j,j+);算术运算符和表

13、达式(续)算术运算符和表达式(续)位运算符位运算符n位运算是以二进制位位运算是以二进制位(bit)为基本单位进行的运算为基本单位进行的运算n语言提供了六种位运算符:语言提供了六种位运算符:按位取反按位取反单目单目&按位与按位与双目双目 |按位或按位或双目双目按位异或按位异或双目双目右移右移双目双目n不同长度的数据进行位运算:不同长度的数据进行位运算:n将操作数右端对齐,将操作数右端对齐,n左端补零(无符号数)左端补零(无符号数)n或补符号位(有符号数)或补符号位(有符号数)按位与运算符按位与运算符& n0&0=0;1&0=0;0&1=0;1&1=1n用途:用途:n清零清零n保留某些位保留某些位

14、例:例:inti;i&0x00FF/*lowbyte*/i&0x8000/*themosthighbit*/按位或运算符按位或运算符| n0|0=0;1|0=1;0|1=1;1|1=1n用途:用途:n置置1n取指定位值取指定位值例:例:inta=9,b=5,c;c=a|b;printf(a=%d,b=%d,c=%dn,a,b,c);/*9,5,13*/按位异或运算符按位异或运算符 n00=0;10=1;01=1;11=0n用途:用途:n使特定位翻转使特定位翻转n交换变量值,不用临时变量交换变量值,不用临时变量例:例:inta,b,t;t=a;a=b;b=t;/*needtemporaryvar

15、iable*/a+=b;b=a-b;a-=b;/*possibilityofoverflow*/a=b;b=a;a=b;按位取反运算符按位取反运算符 n0=1;1=0n用途:用途:n特定位清零特定位清零charc;inti;c&0xFD/*11111101*/i&0xFFFD/*1111111111111101*/考虑移植性,可用:考虑移植性,可用:c&0x02i&0x02/*2byteintor4byteint*/左移运算符左移运算符 n功能:功能: 把把左边的运算数的各二进位全部左移若干位,由左边的运算数的各二进位全部左移若干位,由右边的数指定移动的位数,高位丢弃,低位补右边的数指定移动的

16、位数,高位丢弃,低位补0。n用途:用途: 无溢出时,左移无溢出时,左移1位相当于乘位相当于乘2,但快得多。,但快得多。例:例:inti=15;/*00001111*/i n功能:功能:把把左边的运算数的各二进位全部右移若干位,由左边的运算数的各二进位全部右移若干位,由右右边的数指定移动的位数。边的数指定移动的位数。n有符号数右移:有符号数右移:当为正数时,当为正数时,最高位补最高位补0;而为负数时,符号位为;而为负数时,符号位为1,最,最高位是补高位是补0或是补或是补1取决于编译系统的规定。取决于编译系统的规定。n用途:用途:右移右移1位相当于除以位相当于除以2,但快得多。,但快得多。unsi

17、gnedcharc=241;/*11110001*/c2;/*00111100=60=241/4*/n简单赋值运算符简单赋值运算符n符号:符号: = =n格式:格式: 变量标识符变量标识符= =表达式表达式n作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量n复合赋值运算符复合赋值运算符n种类种类:+=-=*=/=%=&=|=n含义:含义: exp1op=exp2exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2;赋值运算符和表达式赋值运算符和表达式n说明:说明:n结

18、合方向:结合方向:自右向左自右向左n优先级:优先级:n左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式n赋值转换赋值转换规则:使赋值号右边表达式值规则:使赋值号右边表达式值自动自动转换转换成其左边变量的类型成其左边变量的类型错误:错误: 3=x-2*y;a+b=3;例例 floatf;inti;i=10;f=i;则则f=10.0例例 inti;i=2.56; 结果结果i=2;赋值运算符和表达式(续)赋值运算符和表达式(续)例例: :a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)/*表达式值为表达式值为5,a,b,c值为值

19、为5*/*b=5,a=5*/*表达式值表达式值11,c=6,a=11*/*表达式值表达式值10,a=10,b=4,c=6*/*表达式值表达式值5,a=5,b=10,c=2*/n赋值表达式的值与变量值相等,且可嵌套赋值表达式的值与变量值相等,且可嵌套赋值运算符和表达式(续)赋值运算符和表达式(续)赋值运算符和表达式(续)赋值运算符和表达式(续)n赋值类运算符的副作用及限制赋值类运算符的副作用及限制 语言允许在一个表达式中使用一个以上赋值运算符。语言允许在一个表达式中使用一个以上赋值运算符。 对人的影响和副作用,易造成误解。对人的影响和副作用,易造成误解。 .程序尽可能写得明了易懂一些;程序尽可能

20、写得明了易懂一些;.加上一些不必要的括号。加上一些不必要的括号。 对机器的副作用,不定解。对机器的副作用,不定解。 交换律不再适用。交换律不再适用。例例: : a=12;a+=a-=a*a;/*/*a=-264 等价于等价于a=a+(a=a-(a*a)*/*/ 赋值运算时的类型转换赋值运算时的类型转换“=”两侧类型不一致时,要进行类型转换:两侧类型不一致时,要进行类型转换:n整整实:截掉小数部分实:截掉小数部分n实(单、双精度)实(单、双精度)整:数值不变,存为浮点整:数值不变,存为浮点n整整char:整型低:整型低8位位char整型高整型高8位位0或符号位扩展或符号位扩展(因机器而不同因机器

21、而不同)nlongintint:符号位扩展:符号位扩展nintlongint:intlong低低16位位nlongintunsignedint:高位补:高位补0n整型整型(字节数相同的字节数相同的)unsigned整型:原样送入。整型:原样送入。若超过整型表示范围,会出错。若超过整型表示范围,会出错。nunsigned(字节数相同的字节数相同的)非非unsigned整型:整型:原样送入,符号位也作为有效数值。原样送入,符号位也作为有效数值。Page 36赋值语句赋值语句n格式:格式:赋值表达式;赋值表达式;n赋值语句与赋值表达式的区别:赋值语句与赋值表达式的区别:赋值表达式可以包含在其它表达式

22、中,赋值表达式可以包含在其它表达式中,而赋值语句不可。而赋值语句不可。例:例:if(a=b)0)t=a;不可写为:不可写为:if(a=b;)0)t=a;Page 38n形式:形式:表达式表达式1,表达式表达式2,表达式表达式nn结合性:从左向右结合性:从左向右n优先级:优先级:最低最低n逗号表达式逗号表达式的值:等于表达式的值:等于表达式n的值的值n用途:用途:常用于循环常用于循环for语句中语句中例例a=3*5,a*4a=3*5,a*4,a+5例例x=(a=3,6*3)x=a=3,6*a例例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,

23、%d”,(a,b,c),b,c);/*a=15,表达式值表达式值60*/*a=15,表达式值表达式值20*/*赋值表达式,表达式值赋值表达式,表达式值18,x=18*/*逗号表达式逗号表达式,表达式值表达式值18,x=3*/*1,2,3*/*3,2,3*/逗号运算符和表达式逗号运算符和表达式计算字节运算符计算字节运算符sizeofnsizeof是一个是一个单目的目的编译状状态运算符,运算符,可可计算出算出变量量或或类型型的字的字节长度。度。例:例:floatf;printf(”%d”,sizeof(f);printf(”%d”,sizeof(int);TurboC输出出结果果为4和和2。n使使

24、用用sizeof可可以以增增强强程程序序的的可可移移植植性性,使使之之不受不受计算机固有的数据算机固有的数据类型型长度限制。度限制。运算符与表达式小结运算符与表达式小结n运算符优先级和结合性运算符优先级和结合性 一般而言,单目运算符优先级较高,赋值一般而言,单目运算符优先级较高,赋值运算符优先级低;算术运算符优先级较高,关运算符优先级低;算术运算符优先级较高,关系和逻辑运算符优先级较低。系和逻辑运算符优先级较低。 多数运算符具多数运算符具有左结合性,单目运算符、三目运算符、有左结合性,单目运算符、三目运算符、 赋赋值运算符具有右结合性。值运算符具有右结合性。n表达式表达式 表达式是由运算符连接

25、常量、变量、函数表达式是由运算符连接常量、变量、函数所组成的式子。所组成的式子。 每个表达式都有一个值和类每个表达式都有一个值和类型。型。 表达式求值按运算符的优先级和结合性表达式求值按运算符的优先级和结合性所规定的顺序进行。所规定的顺序进行。格式:格式:putchar(c)参数:参数:c为字符常量、变量或表达式为字符常量、变量或表达式功能:把字符功能:把字符 c输出到显示器上输出到显示器上返值:正常,返回显示的代码值;出错,返回返值:正常,返回显示的代码值;出错,返回EOF(-1)数据数据输入与入与输出出nC语言无语言无I/O语句,语句,I/O操作由函数实现操作由函数实现n#include一

26、、数据输出一、数据输出n字符输出函数字符输出函数#includemain()intc;chara;c=65;a=B;putchar(c);putchar(n);putchar(a);运行结果:运行结果:AB例:例:格式:格式:printf(“格式控制串格式控制串”,输出表,输出表)功能:按指定格式向显示器输出数据功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回返值:正常,返回输出字节数;出错,返回EOF(-1)n格式输出函数格式输出函数v输出表:要输出的数据(可以没有,多个时以输出表:要输出的数据(可以没有,多个时以“,”分分隔)隔)v格式控制串:包含两种信息格式控制串:

27、包含两种信息格式说明:格式说明:%修饰符修饰符格式字符格式字符,用于指定输出格式,用于指定输出格式普通字符或转义序列:原样输出普通字符或转义序列:原样输出v格式字符:格式字符:d,ix,Xoucse,Efg,G%十六进制无符号整数十六进制无符号整数不带符号十进制整数不带符号十进制整数十进制整数十进制整数指数形式浮点小数指数形式浮点小数单一字符单一字符字符串字符串八进制无符号整数八进制无符号整数小数形式浮点小数小数形式浮点小数e和和f中较短一种中较短一种百分号本身百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf

28、(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%l说明说明u格式字符除格式字符除 X E G X E G 外均应用小写外均应用小写u格式字符与输出项个数应相同,按先后顺序一一对应格式字符与输出项个数应相

29、同,按先后顺序一一对应u格式字符与输出项类型不一致时,输出可能出错格式字符与输出项类型不一致时,输出可能出错例例 main()unsignedintu=65535;printf(”u=%dn,u); 输出结果:输出结果:u=-1例例inta=3,b=4;printf(“%d%dn”,a,b);printf(“a=%d,b=%dn”,a,b);输出结果输出结果: :34a=3,b=4n附加格式说明符(修饰符)附加格式说明符(修饰符).n对实数对实数,指定小数点后位数指定小数点后位数(四舍五入四舍五入)对字符串对字符串,指定实际输出位数指定实际输出位数修饰符修饰符功功能能m输出数据域宽输出数据域宽

30、,数据长度数据长度m,左补空格左补空格;否则按实际输出否则按实际输出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐)-指定在有符号数指定在有符号数的正数前显示正号的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导在八进制和十六进制数前显示前导0,0x#在在d,o,x,u前,指定输出精度为前,指定输出精度为long型型在在e,f,g前,指定输出精度为前,指定输出精度为double型型l例例inta=1234;floatf=123.456;charch=a;printf(“%8d,%2dn”,a,

31、a);printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f);printf(“%3cn”,ch);运行运行1234,1234结果:结果:123.456000,123.456000,123.5,123.46,1.23e+02 a例例staticchara=“Hello,world!”printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);运行结果:运行结果:Hello,world!Hello,world!HelloHelloHel例:例:inta=1234;floatf=123.456;staticcharc=“Hello,w

32、orld!”;printf(“%8d,%-8dn”,a,a);printf(“%10.2f,%-10.1fn”,f,f);printf(“%10.5s,%-10.3sn”,c,c);运行结果:运行结果: 1234,1234123.46,123.5Hello,Hel例例inta=1234;floatf=123.456;printf(“%08dn”,a);printf(“%010.2fn”,f);printf(“%0+8dn”,a);printf(“0+10.2fn”,f);例例inta=123;printf(“%o,%#o,%X,%#Xn”,a,a,a,a);例例longa=65536;prin

33、tf(“%d,%8ldn”,a,a);00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00/*00001234*/*0000123.46*/*000+1234*/*000+123.56*/*173,0173,7B,0X7B*/*0,65536*/格式:格式:getchar()功能:从键盘读一字符功能:从键盘读一字符返值:正常,返回读取的代码值;出错返值:正常,返回读取的代码值;出错, ,返回返回EOF(-1)二、数据输入二、数据输入n字符输入函数字符输入函数 #includemain()intc;printf(Enteracharacter:);c=g

34、etchar();printf(%c-hex%xn,c,c);运行结果:运行结果:Enteracharacter:A A-hex41n格式输入函数格式输入函数格式:格式:scanf(“格式控制串格式控制串”,地址表,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中存储单元中, ,并按回车键结束并按回车键结束返值:正常,返回输入数据个数返值:正常,返回输入数据个数v地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符&v格式字符:格式字符:d,i,o,x,u,c,s,f,e例例scanf(“%d”,&a);输入

35、:输入:10 则则a=10例例scanf(“%x”,&a);输入:输入:11 则则a=17n附加格式说明符(修饰符)附加格式说明符(修饰符)l修饰符修饰符功功能能hm*用于用于d,o,x前,指定输入为前,指定输入为short型整数型整数用于用于d,o,x前,指定输入为前,指定输入为long型整数型整数用于用于e,f前,指定输入为前,指定输入为double型实数型实数指定输入数据宽度,遇空格或不可转换字符则结束指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量抑制符,指定输入项读入后不赋给变量例例scanf(“%4d%2d%2d”,&y,&m,&d);输入输入1999

36、1015 则则1999y,10m,15d例例scanf(“%3d%*4d%f”,&k,&f);输入输入12345678765.43 则则123k,8765.43f例例scanf(“%2d %*3d %2d”,&a,&b);输入输入12 345 67 则则12a,67b例例scanf(“%3c%2c”,&c1,&c2);输入输入abcde 则则ac1,dc2n输入分隔符的指定输入分隔符的指定n一般以空格、一般以空格、TAB或回车键作为分隔符或回车键作为分隔符n其它字符做分隔符:格式串中两个格式符间字符其它字符做分隔符:格式串中两个格式符间字符例例scanf(“%d%o%x”,&a,&b,&c);

37、printf(“a=%d,b=%d,c=%dn”,a,b,c);输入输入123123123 输出输出a=123,b=83,c=291例例scanf(“%d:%d:%d”,&h,&m,&s);输入输入12:30:45 则则12h,30m,45s例例scanf(“%d,%d”,&a,&b)输入输入3,4 则则3a,4b例例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入输入a=12,b=24,c=36 n说明:说明:n用用“%c”格式符时,空格和转义字符作为有格式符时,空格和转义字符作为有效字符输入效字符输入如如scanf(“%c%c%c”,&c1,&c2,&c3);若输入若

38、输入a b c 则则ac1, c2,bc3n输入数据时,遇以下情况认为该数据结束:输入数据时,遇以下情况认为该数据结束:v遇空格、遇空格、TAB、回车回车v遇宽度结束遇宽度结束v遇非法输入遇非法输入如 scanf(“%d%c%f”,&a,&b,&c);若输入若输入1234a123o.26 则则1234a,ab,123c例例intx;charch;scanf(“%d”,&x);ch=getchar();printf(“x=%d,ch=%dn”,x,ch);执行:执行:123 输出:输出:x=123,ch=10n注意输入函数留下的注意输入函数留下的“垃圾垃圾”n程序举例程序举例#include#i

39、ncludemain()floata,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);printf(area=%7.2fn,area);例例:输入三角形边长,求面积:输入三角形边长,求面积输入:输入:3,4,6 输出:输出:a=3.00,b=4.00,c=6.00s=6.50area=5.33文件包含预处理命令文件包含预处理命令变量定义变量定义输入数据输入数据输出数据输出数据例例:从

40、键盘输入大写字母,输出大写和小写字母:从键盘输入大写字母,输出大写和小写字母#includemain()charc1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);输入:输入:A 输出:输出:A,65a,97输入和输出小结输入和输出小结 语言中没有提供专门的输入输出语句,语言中没有提供专门的输入输出语句,所有所有的输入输出都是由调用标准库函数中的输入输的输入输出都是由调用标准库函数中的输入输出函数来实现的。出函数来实现的。-scanf和和getchar函数是输入函数,接收来自键盘的输入函数是输入函数,接收来自键盘的输入数据。数据。scanf是格式输入函数,是格式输入函数,可按指定的格式输入任意类可按指定的格式输入任意类型数据。型数据。getchar函数是字符输入函数,函数是字符输入函数,只能接收单个字符。只能接收单个字符。-printf和和putchar函数是输出函数,向显示器屏幕输出函数是输出函数,向显示器屏幕输出数据。数据。printf是格式输出函数,可按指定的格式显示任意类是格式输出函数,可按指定的格式显示任意类型的数据。型的数据。putchar是字符显示函数,只能显示单个字符。是字符显示函数,只能显示单个字符。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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