C语言2数据类型运算符表达式课件.ppt

上传人:wuy****n92 文档编号:70106960 上传时间:2023-01-16 格式:PPT 页数:81 大小:1.08MB
返回 下载 相关 举报
C语言2数据类型运算符表达式课件.ppt_第1页
第1页 / 共81页
C语言2数据类型运算符表达式课件.ppt_第2页
第2页 / 共81页
点击查看更多>>
资源描述

《C语言2数据类型运算符表达式课件.ppt》由会员分享,可在线阅读,更多相关《C语言2数据类型运算符表达式课件.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 2 章 数据类型、运算符与表达式1程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式1整型数的二进制表示整型数分为有符号的和无符号的两种;有符号的整型数的正负号由字节的最高位来表示:0表示正数,1表示负数。整型数占用的字节数可为8位、16位或者32位。整型数的取值范围:2.1 用二进制表示的数字节数有符号的无符号的最小值最大值最小值最大值1128+1270255232768+3276706553542147483648+2147483647042949672952程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类

2、型、运算符和表达式数据类型、运算符和表达式2浮点数的二进制表示浮点数分成单精度浮点数和双精度浮点数;单精度浮点数占32位(4个字节),双精度浮点数占64位(8个字节)。浮点型数据的一般表达式:(1)S2em e是实际的阶码值,代表浮点数的取值范围;m是尾数,代表浮点数的精度。2.1 用二进制表示的数3程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式(1)单精度浮点型数据的字节分配空间:2.1 用二进制表示的数S代表符号位,占1位。E称为“移码”,占8位。E的取值范围为0255,E=127+e 因此,e的取值范围为127+128);M

3、代表有效位数或称为“小数”,m2=(1.M)24程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式(2)双精度浮点型数据的字节分配空间:2.1 用二进制表示的数S代表符号位,占1位。E称为“移码”,占11位。E的取值范围为02047,E=1023+e 因此,e的取值范围为1023+1024);M代表有效位数或称为“小数”,m2=(1.M)25程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式浮点型数据的取值范围:2.1 用二进制表示的数数据类型字节数(位数)阶码(e)取值范围

4、最小值最大值单精度浮点数4字节(32位)1271285.87747210393.4028241038双精度浮点数8字节(64位)102310241.112537103081.797693103086程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式1.C语言提供5种基本数据类型。(1)字符型:用char表示。(2)整数型:用int表示。(3)单精度实数型:用float表示。(4)双精度实数型:用double表示。(5)空类型:用void表示。对整数型,有四种修饰:signed(有符号)unsigned(无符号)long(长型)shor

5、t(短型)数据类型决定了数据的大小、数据可执行的操作以及数据的取值范围。2.2 基本数据类型及取值范围基本数据类型及取值范围7程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式数据类型的长度和取值范围会随着机器的CPU类型和编译器的不同而不同。2.2 基本数据类型及取值范围基本数据类型及取值范围实现环境数据类型字节长度TurboCBorlandC+VisualC+DevC+GCCchar(字符型)11111shortint(短整型)22222int(整型)22444longint(长整型)44444float(单精度浮点型)44444

6、double(双精度浮点型)888888程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式例1:验证数据类型的字节长度。见【例2-1】所示的程序:example2_1.c不同字节长度的数据类型和取值范围:见表2-5和表2-62.2 基本数据类型及取值范围9程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式2.3常量与变量标识符:定义:用来标识变量、常量、函数等的字符序列组成:c 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线c 大小写敏感c 不能使用关键字c 长

7、度:最长32个字符命名原则:见名知意 不易混淆 如1、l与I,o与0例:判断下列标识符号合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3charab_above$123C语言使用常量和变量来表示程序中使用的数据10程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式常 量 一般用大写字母 是宏定义预处理命令,不是C语句c 直接常量:整型常量 实型常量 字符常量 字符串常量如#definePRICE30定义:程序运行时其值不能改变的量(即常数)v 分类:c 符号常量:用标识符代

8、表常量 定义格式:#define 符号常量 常量例符号常量举例#definePRICE30main()intnum,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:total=30011程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式变 量编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1,b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数概念:其值可以改变的量。数据及其存储空间的抽象。v 变量名与变量值v 变量定义的一般格式:数据类型

9、变量1,变量2,变量n;v变量初始化:定义时赋初值 例:inta,b,c;floatdata;决定分配字节数和数的表示范围合法标识符例:inta=2,b,c=4;floatdata=3.67;charch=A;intx=1,y=1,z=1;intx=y=z=1;例1 int student;stadent=19;/Undefined symbol stadent in function main v变量定义位置:一般放在函数开头main()inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句main()i

10、nta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%fn”,data);v变量的使用:先定义,后使用Error:expression syntax in function main 12程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式变量的赋值传送数据到变量所代表的存储单元。赋值操作用“=”表示,一般形式为:变量=表达式,如:a=1.0;/*把1.0传送给a*/a=a+1;/*把a的值加上1后传给a*/用赋值号连接变量和表达式的式子称为赋值表达式。赋值符号的运算方向为自右向左。赋值表

11、达式的值是被赋值后的变量的值。如:d=c=b=a=3+5赋值表达式13程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式&整型常量(整常数)v三种形式:e 十进制整数:由数字09和正负号表示.如 123,-456,0e 八进制整数:由数字0开头,后跟数字07表示.如0123,011e 十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff例12与12L例30000为int型65536为longint型v整型常量的类型e 根据其值所在范围确定其数据类型e 在整常量后加字母l或L,认为它是long int 型常量问

12、题:0123 =()100 x123=()100Xff =()1083291255问题:0123 =()100 x123=()100Xff =()1014程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式&整型变量分类:e 有符号数和无符号数。用关键字signed,unsigned指定。e 基本型、长整型和短整型。用关键字int,long,short指定。e 字节数和表示范围定义 形式:数据类型 变量名 例子:int x,y;/*定义x,y为整型数*/unsigned short m,n;/*定义m,n为无符号短整型数*/long a

13、;/*定义a为长整型数*/15程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式&整型数据的存储方式short int long最高位为符号位,0为正,1为负以二进制补码的形式存放 如:10 的补码 -10的补码00 00 00 00 00 00 10 1011 11 11 11 11 11 01 1016程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式例整型数据溢出includemain()inta,b;a=32767;b=a+1;printf(“%d,%dn,a,b);

14、运行结果:32767,-3276801 11 11 11 11 11 11 11a:最大:3276710 00 00 00 00 00 00 00最小:-32768b:说明计算机在运算时,出现数据溢出情况,达到最大值后,又从最小值算起。&整型数据的溢出17程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式字符类型 在计算机中字符以ASCII存放以及运算。其存储为1个字节 如:a的ASCII码为97,它在内存中的形式:字符型变量定义方式:char a;表示a为字符型,在内存中占用8位即1个字节0 1 1 0 0 0 0 1#includ

15、e main()int a=97;printf(“%c=%dn”,a,a);输出:a=9718程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式&字符常量定义:用单引号括起来的单个普通字符或转义字符.字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如101-A012-n376-x61-a60-0483-()例:A-101-x41-65如 A65,a97,048,n10如 a A?

16、n 101转义字符:反斜线后面跟一个字符或一个代码值表示例转义字符举例main()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);printf(TurboC);运行结果:(屏幕显示)A B CIsay:”How are you?”C ProgramTurbo C例main()printf(“Yb=n”);运行结果:屏幕显示:=19程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式字符常量与字符串常量不同&字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字

17、符串尾自动加一个 0 作为字符串结束标志aa0例a“a”例 空串 “”0例:charch;ch=“A”;例:charch;ch=A;hello0例 字符串“hello”在内存中1041011081081110没有字符串变量,用字符数组存放20程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式例/*字符可用于算术运算*/#definePRICE10main()intnum=3;inttotal;charch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%d,ch1=%cn”,tota

18、l,ch1);宏定义变量定义输出结果运行结果:total=30,ch1=d21程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式例/*转义字符的使用*/#includemain()printf(“abctderftgn”);printf(“htibbjkn”);12345678123456781234567812345678f g d e h j k abcdefghijk22程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式例/*转义字符的使用*/#includemain(

19、)printf(“ABbCDEFrGHn”);在屏幕上显示结果为:?GHDEF23程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式实数类型实数在C语言中又称为浮点数。浮点数有且只有两种表示形式:1、十进制形式。这种形式的数由整数部分、小数点和小数部分组成。如:1.24,0.345,.222,234.0,333.,0.0等。2、指数形式。这种形式用来表示一些比较大的数值,它们是实数部分、字母E或e、整数部分。表示形式:e要注意:1 字母E或e之前之后必须有数字 2 之后的数字必须为整数 3 没有八进制或十六进制实数表示法规范化浮点数:

20、在字母e(E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零数字。123.456=123.456e0=12.3456e1=1.23456e2=0.123456e31.234e4,0e3,1e,e2.344545e23,e4,2.3e4.224程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式&实型常量(实数或浮点数)c 表示形式:v 十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.v 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,e-5 ,c 实

21、型常量的类型v 默认double型v 在实型常量后加字母f或F,认为它是float 型&实型变量c 单精度(4字节,67位有效数字):float a;c 双精度(8字节,1516位有效数字):double a;25程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式程序清程序清单单 运行运行结结果果main()float x;x=7.1234567890;printf(%20.18f,x);7.123456954956054690_ x被赋值了一个有效位数为11位的数字。在printf语句中使用%20.18f指示printf语句在输出x

22、时总长度应为20位,小数点位数占18位。输出的结果表明float型的数据只接收7位有效数字。26程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式sizeof运算符用途:测定某一数据类型所占存储空间的长度。格式:sizeof(类型标识符)例子:#include main()short s;long l;float f;char c;printf(short is%d bytesn,sizeof(s);/*short is 2*/printf(long is%d bytesn,sizeof(l);/*long is 4*/printf(

23、float is%d bytesn,sizeof(f);/*float is 4*/printf(“char is%d bytesn,sizeof(c);/*char is 1*/27程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式2.4 运算符和表达式运算符(操作符)是表述最基本的运算形式的符号。表达式由运算符(操作符)和运算量(操作数)组成,用以描述对什么数据以什么顺序进行什么操作。任何有值的东西都可以称为表达式。28程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式C

24、语言中的运算符(13类)算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符 :|&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数 :sizeof强制类型转换:(类型)分量运算符:.-下标运算符:其它 :()29程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式学习运算符应注意:c与运算量关系v 要求运算量个数v 要求运算量类型c 运算符优先级别c 结合方向c 结果的类型30程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式1

25、算术运算符和表达式基本算术运算符:+-*/%结合方向:从左向右优先级:-高于*/%高于+-说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据+-*/中任意数类型为实型,结果均为实型例 5/2 =-5/2.0 =例 5%2 =-5%2 =1%10 =5%1 =5.5%2例 5/2 =2 -5/2.0=-2.5例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()int a,b,c;float d;a*b/c-1.5(a*b)/c*1.5 31程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、

26、运算符和表达式自增、自减运算符+-c作用:使变量值加1或减1 优先级与相同,右结合c种类:前置 +i,-i (先执行i+1或i-1,再使用i值相当于i=i+1)后置 i+,i-(先使用i值,再执行i+1或i-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=15,a=4说明:+-不能用于常量和表达式,如5+,(a+b)+-结合方向:自右向左优先级:-+-*/%-+-(2)(3)(4)例-i+

27、i=3;printf(“%d”,-i+);例-i+-(i+)i=3;printf(“%d”,-i+);/-3 32程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式2赋值运算符和表达式简单赋值运算符 符号:=格式:变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3;d=func();c=d+2;复合赋值运算符 种类:+=-=*=/=%=&=|=33程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算

28、符和表达式说明:结合方向:自右向左 优先级:2 左侧必须是变量,不能是常量或表达式例 3=x-2*y;a+b=3;例 int i;i=2.56;/结果i=2;例:a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=2 赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型 赋值表达式的值与变量值相等,且可嵌套例:a=12;a+=a-=a*a/a=-264 等价于a=a+(a=a-(a*a)34程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型

29、、运算符和表达式数据类型、运算符和表达式3逗号运算符和表达式形式:表达式1,表达式2,表达式n结合性:从左向右 优先级:1逗号表达式的值:等于表达式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,%d”,(a,b,c),b,c);/a=15,表达式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18/逗号表达式,表达式值18,x=3/1,2,3/3,2,3例:#includemai

30、n()intx,y=7;intz=4;x=(y=y+6,y/z);printf(x=%dn,x);运行结果:x=335程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式4关系运算符和表达式关系运算符 种类:=!=结合方向:自左向右 优先级别:9-10 运算结果为:1 或 0例 int a=3,b=2,c=1,d,f;ab;c=ab;b+cb;f=abc;/表达式值1/表达式值1/表达式值0/d=1/f=0=!=优先级(高)优先级(低)36程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运

31、算符和表达式关系运算注意事项:例若a=0;b=0.5;x=0.3;则a=x0结果为A100结果为10例注意区分“=”与“=”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);aequaltob(a=b)anotequaltob37程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式5逻辑运算符和表达式ab!a!ba&ba|b真假真假假假真真逻辑运算符种类:!&|逻辑运算真值表C语言中,运算量:0表示“假”,非0表示“真”,运算结果:0表示“假”,1表示“真”

32、,真假假假假假真真假假真真真假真真38程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式!&|高低例 a=x&xb&xya=b|x=y!a|abl优先级:14 5 4l结合方向:!:从右向左&:从左向右|:从左向右/*(a=x)&(xb)&(xy)*/*(a=b)|(x=y)*/*(!a)|(ab)*/例 a=4;b=5;!a a&b a|b !a|b 4&0|2 53&2|83)&2|(8(4-(!0)值为139程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式逻辑运算的短

33、路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符例a&b&c/*只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值*/例a|b|c/*只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值*/例a=1;b=2;c=3;d=4;m=1;n=1;(m=ab)&(n=cd)/*结果m=0,n=1*/40程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式6条件运算符与表达式一般形式:expr1?expr2 :expr3执行过程功能:相当于条件语句,但不能

34、取代一般if语句例 if(ab)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,ab?a:b);expr1取expr2值取expr3值非0=0条件运算符可嵌套 如 x0?1:(xb?a:cd?c:d ab?a:(cd?c:d)expr1、expr2、expr3类型可不同例 x?a:b /x=0,表达式值为b;x0,表达式值为a xy?1:1.5 /xy ,值为1.0;xy ,值为1.541程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式良好的源程序书写习惯良好的源程序书写习惯:表达式中,

35、在双目运算符的左右两侧各加一个空格,可增强程序的可读性。比较:“(x+y)/2 1”与“(x+y)/21”尽量把复杂的表达式分成多个表达式来写。尽量使用圆括号显式指明哪部分先运算,而不是依赖运算符的优先级。#includemain()intx,y=7;intz=4;x=(y=y+6,y/z);printf(x=%dn,x);#includemain()intx;inty=7;intz=4;y+=6;x=y/z;printf(x=%dn,x);知识提示知识提示:结合性是语言的独有概念。除单目单目运算符、赋赋值值运算符和条件条件运算符是右结合性外,其它运算符都是左结合性。42程序设计基础(程序设计

36、基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式不同类型数据间的转换三种形式 同一类型但长度不同的数据间的转换 如:int x=1;long y=50000;x+y=50001 定点方式与浮点方式间的转换 如:int x=1,float y=1.0;x+y=2.0 整型数中有符号数和无符号数间的转换 如:unsigned int x=1;int y=-2;x+y=?6553543程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式隐式转换 什么情况下发生运算转换-不同类型数据混合运算时赋值转换-把

37、一个值赋给与其类型不同的变量时输出转换-输出时转换成指定的输出格式函数调用转换-实参与形参类型不一致时转换 运算转换规则不同类型数据运算时先自动自动转换成同一类型,转换结果使表达式中只有5种类型,即:int,unsigned int,long,unsigned long,double“向高看齐”原则。45程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例charch;inti;floatf;doubled;ch/i+f*

38、d-(f+i)intintdoubledoubledoubledoubledoubledouble46程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式显式转换(强制转换)c 一般形式:(类型名)(表达式)例 (int)(x+y)(int)x+y (double)(3/2)(double)3/2 (int)3.6 c 说明:强制转换得到所需类型的中间变量,原变量类型不变 c优先级为15,右结合例main()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,

39、i=3精度损失问题较高类型向较低类型转换时可能发生47程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式1*-2+3/41*-2+3/4扫描方向-2-20-2Back48程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式(int)x+y(int)x+y扫描方向假设:x=-2.6y=3-2TC 规则:向零取整1Back49程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式-i+-i+扫描方向假设:i=11-1(1)表达

40、式的值:-1(2)i 的值:2Back50程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式i+ji+j扫描方向假设:i=1j=213(1)表达式的值:3(2)i 的值:2Back51程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式a+=a-=a*aa+=a-=a*a扫描方向4-2(1)表达式的值:-4(2)a 的值:-4-4假设:a=2注:a=-2Back52程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式pr

41、intf(“%d,%d”,i,i+);printf(“%d,%d”,i,i+);扫描方向假设:i=33注:i=44注:C 函数参数的传递方向函数参数的传递方向 自右向左自右向左printf(“%d,%d”,i,i=30);Back53程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式习题1、有两个整型变量a和b,下面a除以b的余数的表达式是()A.a/b B.a%b C.b%a D.a%=b2、若原a的值为3,b的值为2,则执行a+=b+后,a与b的值为()A.a的值为3,b的值为2 B.a的值为5,b的值为3C.a的值为5,b的值为

42、2 D.a的值为3,b的值为3 3、数学上的“abc”,用C语言的表达式是()A.ab and bc B.ab|bc C.abc D.ab&bc 4、将变量a与变量b中较大者的值存入变量c中,可以使用语句()A.c=ab?b:a C.c=ab?a:b D.以上都不对5、与表达式“a!=b|bc”等价的表达式是()A.!(a=b&bc)B.a=b&b=c)D.以上都不对!(a=b&b=c)54程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式6、设有说明:char w;int x;float y;double z;则表达式w*x+z-y

43、值的数据类型为()A.float B.char C.int D.Double7、设x和y都是int类型,且x=100,y=200,则printf(“%d”,(x,y);的输出结果是()A.200 B.100 C.100 200 D.输出格式符不够,输出值不确定8、设有以下变量均为int类型,则值不等于7的表达式()A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(x=6,y+1,x=y,x+1)9、在C语言中,要求运算符必须是整型的运算符是()A./B.+C.!=200 D.%10、下列运算符中优先级最低的是(),优先级最高的是()

44、A.?:B.&C.+D.!=11、以下关于运算符优先顺序的描述中正确的是()A.关系算术赋值逻辑 B.逻辑关系算术赋值C.赋值逻辑关系算术 D.算术关系赋值逻辑 55程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式数据的输入和输出5C语言中I/O操作由函数函数实现5#include 5 使用较多的函数:格式输出printfprintf()()格式格式输入scanfscanf()()字符输出函数putcharputchar()()字符输入函数getchargetchar()()字符串输出函数puts()puts()字符串输入函数get

45、s()gets()56程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式1 字符数据的输入和输出格式:putchar(c)putchar(c)参数:c为字符常量、变量或表达式,不能少功能:把字符c输出到显示器上(一个字符的输出一个字符的输出)#include#include#include#include 或或或或#include“stdio.h”#include“stdio.h”#include“stdio.h”#include“stdio.h”字符输出函数putchar(A);/*将大写字母将大写字母A输出到屏幕输出到屏幕*/pu

46、tchar(48);/*将将ASCII码为码为48的字符输出到屏幕的字符输出到屏幕*/putchar(x);/*将变量将变量X的值当成的值当成ASCII码值,并将此码值,并将此ASCII码码对应的字符输出到屏幕,这里对应的字符输出到屏幕,这里X可以是字符型或整型变量可以是字符型或整型变量*/57程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式#includemain()intc;chara;c=65;a=B;putchar(c);putchar(n);putchar(a);运行结果:AB例1 1)putcharputchar每次只能

47、输出每次只能输出1 1个字符;个字符;2 2)可以为字符变量、字符常量、转义字符)可以为字符变量、字符常量、转义字符3)在程序最前必须包含一条预编译指令:#include stdio.h“这条预编译指令的作用是告诉编译器,putchar()函数是在stdio.h这个头文件中进行了说明。如果不进行事先说明的话,一个函数是不会被编译器所识别的,除了printf()函数和scanf()函数。58程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式字符输入函数:格式:getchar()getchar()功能:从终端(键盘)读入一字符参数:无注意

48、:只接受一个字符,空格、回车符为有效字符需读入 读入操作终止于ENTER的键入。例#includemain()intc;printf(Enteracharacter:);c=getchar();printf(%c,c);运行结果:Enteracharacter:AAputchar(getchar();59程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式#includemain()intc;printf(Enteracharacter:);c=getchar();printf(%c-%dn,c,c);运行结果:Enteracharac

49、ter:AA-6560程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式2 格式输出函数格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:%修饰符格式字符 ,用于指定输出格式普通字符或转义序列:原样输出printf(%c-%dn,c,c);A-6561程序设计基础(程序设计基础(C C语言)语言)第第 2 章章 数据类型、运算符和表达式数据类型、运算符和表达式d,ix,Xoucse,Efg,G%格式字符:十六进制无符号整数不

50、带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身inta=65;printf(“%d”,a);inta=65;printf(“%x”,a);inta=65;printf(“%o”,a);inta=65;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(“%”);654110

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

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

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

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