【教学课件】第三章数据类型、运算符与表达式.ppt

上传人:小飞机 文档编号:5660843 上传时间:2023-08-07 格式:PPT 页数:28 大小:239KB
返回 下载 相关 举报
【教学课件】第三章数据类型、运算符与表达式.ppt_第1页
第1页 / 共28页
【教学课件】第三章数据类型、运算符与表达式.ppt_第2页
第2页 / 共28页
【教学课件】第三章数据类型、运算符与表达式.ppt_第3页
第3页 / 共28页
【教学课件】第三章数据类型、运算符与表达式.ppt_第4页
第4页 / 共28页
【教学课件】第三章数据类型、运算符与表达式.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《【教学课件】第三章数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三章数据类型、运算符与表达式.ppt(28页珍藏版)》请在三一办公上搜索。

1、第三章 数据类型、运算符与表达式,3.1 C的数据类型,3.2 常量与变量,3.2.1 常量(Constant)与符号常量常量:在程序运行过程中,其值不能被改变的量符号常量:代表常量的标识符(符号)。符号常量通常用大写字母表示。定义格式:#define NUMBER 60,例3.1,#define PRICE 30 main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);,#define语句定义一个符号常量PRICE,其值等于30。该值在程序运行过程中不能被改变。符号常量通常用大写字母表示。编译程序在翻译源程序文件时,

2、符号常量PRICE用其值30替换。程序运行结果是:total=300,以下哪些变量定义是合法的:1.sum 2.7average 3.student_name 4._above5.lotus_1_2_3,3.2.2 变量(Variable),变量:其值可以被改变的量。变量用标识符表示,以字母、数字、下划线组成,且第一个字符必须为字母或下划线。注意:大写字母和小写字母被认为是两个不同的字符。建议:变量名的长度不超过8个字符。C语言规定:所有的变量都应作强制定义,做到“先定义,后使用”。,一个变量应该有一个名字,在内存中占据一定的存储单元,在该单元中存放变量的值。int totaltotal=80

3、,3.3 整 型 数 据,3.3.1 整型常量C语言中数值常量的表达方式:3种1、十进制整数 123 十进制:表示十进制数1232、八进制整数(0开头):0123:八进制数,表示十进制数83 3、十六进制整数(0 x开头):0 x123:十六进制数,表示十进制数291,3.3.2 整型变量,一、整型变量的分类基本型(整型)int 2字节 短整型 short 或 short int 2字节 长整型 long 或 long int 4字节 无符号整型:unsigned 2字节无符号短整型:unsigned short 2字节 无符号长整型:unsigned long 4字节 实际上C语言的整型变量

4、在计算机内存中所占的字节数与具体的机器和操作系统有关。,二、整型变量的定义,main()int a,b,c,d;unsigned int u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(a+u=%d,b+u=%dn,c,d);程序运行显示:a+u=22,b+u=-14 int变量的数值范围为-3276832767。Unsignde int变量的数值范围为065535。,3.4 实型数据,3.4.1 实型常量 实数(real)又称为浮点数(float),有两种表达方式:1、十进制数形式 0.123、.123、123.、0.0(必须有小数点)2、指数形式 123e3或12

5、3E3代表:123103 123E2.5、E3,E 都不合法。(注意:e或E前面要有数字,后面要是整数。),3.4.2 实型变量,单精度:float 4字节(32位)双精度:double 8字节(64位)长双精度:long double 16字节(128位)例1:float x,y;/*指定x、y为单精度实型变量*/double z;/*指定z为双精度实型变量*/实型常量不分float和double。例2:float a;a=123456.711 float型变量只能接受7位 有效数字,最后两位数字不起作用。double 型变量能接受16位 有效数字。,3.5 字符型数据,3.5.1 字符常量

6、字符常量:用单引号(撇号)括起来的一个字符。如:a、x、?、$。注意,a和A是不同的字符常量。a:ASCII码:97 01100001 A:ASCII码:65 01100010,实际上,一个字符常量在内存中的存储并不是把该字符本身放进去,而是存放其对应的 ASCII码值,即仍以二进制补码的形式存储。一个字符常量占据一个字节(8位)。,常用的ASCII码值:0 48+43 SP 32A 65-45 LF 10A 97*42 Del 127/47,如果定义的是 signed char,则取值范围是-128127;如果定义的是 unsigned char,则取值范围是 0255。,转义字符(P48)

7、,main()printf(“ab ct derf tgn”);printf(“htibbj k”);,输出结果应该是:,f _ _ _ _ _ _ _ gdeh _ _ _ _ _ _ j _ k,t 跳到下一个tab位置r 将光标移到本行首n 将光标移到下行首b 退格,光标前移一列,ddd 1到3位8进制数所代表的字符xhh 1到2位16进制数所代表的字符,3.5.2 字符变量,字符变量用来存放一个字符常量.字符变量在内存中占一字节。变量赋初值:例1:char c1,c2;/*定义c1、c2为字符变量*/c1=a;c2=b;例2:char c1=a;等效:char c1;c1=a;,例3m

8、ain()char c1,c2;c1=97;c2=98;printf(%c%c,c1,c2);,相当于:c1=a;c2=b;因为:字符以ASCII码存放,a的ASCII码为97,b的ASCII码为98。,字符以 ASCII码存储,其存储方式与整数类似。从而,C 语言允许字符和整数之间进行运算。,输出结果是:a b,例3.7:大小写字母的转换:,main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c,%c”,c1,c2);,运行结果为:A B,3.5.4 字符串常量,字 符常量:单引号括起来的一个字符。字符串常量:双引号括起来的字符序列.字

9、符串常量在内存中的存放:每一个字符均以其ASCII码存放,且最后添加一个结束符“0”.例:How do you do.,CHINA“CHINA”存放在内存中的长度是6个字节而不是5个字节。C H I N A 0 最后一个字符,3.1 指出下面哪些是合法的变量名:123 abc a+b a_b pad?12 Li_Li*P3.2 a在内存中占 个字节,“a”在在内存中占 个字节.3.3 写出下面程序的运行结果:main()char ch;ch=B;/*B的ASCII码值为66*/printf(“%c,%dn”,ch,ch),1 2B 66,课堂练习:,3.6 变量赋初值,在定义变量的同时指定其初

10、值。例、int a=3;float f=3.56;char c=a;int a,b,c=5;注意:多个变量指定相同初值的方法:int a=b=c=3;int a=3,b=3,c=3;,3.7 各类数据混合运算,整型、实型(包括单、双精度)、字符型数据可以混合运算。例:10+a+1.5-8765.1234*b混合运算时,先将各数转换成同一种类型,然后进行运算。转换规则如下图。,高 double float long unsigned低 int char,short,所以,该例的结果为实型。,例:int i;float f;double d;long e;10+a+i*f-d/e,整型,单精度,上

11、述转换过程是由系统自动进行的。所以结果为双精度double型。,3.8 算术运算符和算术表达式,3.8.1 算术运算符和算术表达式一、基本的算术运算符+加法运算符,如3+5 正值运算符,如+3-减法运算符,如5-2 负值运算符,如-3*乘法运算符,如3*5/除法运算符,如5/3%模运算符(求余运算符),如7%4=3(求余的运算对象必须是整数。),二、强制类型转换运算符两侧的数据类型不同时,先自动进行类型转换,再运算。程序员可以强制进行某种转换。强制类型转换的一般形式是:(类型名)(表达式)(int)a;,例、(double)a;/*将a转换为double类型*/(int)(x+y);/*将x+

12、y的值转换为int类型*/(float)(5%3);/*将5%3的值转换为float类型*/注意:(int)(x+y);/*将x+y的值转换为int类型*/(int)x+y;/*将x的值转换为int类型,再与y相加*/(int)(x);(int)x;/*表达式仅为一个变量时,括号可以省略*/int(x);/*变量x的类型不发生变化*/说明:强制类型转换时,得到一个所需类型的中间变量,原来变量的类型不发生变化。例3.8(P56),三、自增自减运算符,自增:使变量的值加1;自减:使变量的值减1。+i;/*在使用i之前使i加1*/-i;/*在使用i之前使i减1*/i+;/*在使用i之后使i加1*/i-;/*在使用i之后使i减1*/自增自减运算符特点:右结合性且只能用于变量。如:5+和(a+b)+都是错的!,例:i=3;j=+i;/*先使i加1,再赋给j。*/执行后:j=4,i=4 i=3;j=i+;/*先把i赋给j,再使i加1。*/执行后:j=3,i=4注意:尽量不要写成j+i形式,避免歧义的产生。,例main()int a;a=3;printf(%d,a+);printf(%d,a);,运行结果是:3 4,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号