第2章基本数据类型、运算符及表达式经典

上传人:小** 文档编号:45551164 上传时间:2018-06-17 格式:PPT 页数:43 大小:371.02KB
返回 下载 相关 举报
第2章基本数据类型、运算符及表达式经典_第1页
第1页 / 共43页
第2章基本数据类型、运算符及表达式经典_第2页
第2页 / 共43页
第2章基本数据类型、运算符及表达式经典_第3页
第3页 / 共43页
第2章基本数据类型、运算符及表达式经典_第4页
第4页 / 共43页
第2章基本数据类型、运算符及表达式经典_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第2章基本数据类型、运算符及表达式经典》由会员分享,可在线阅读,更多相关《第2章基本数据类型、运算符及表达式经典(43页珍藏版)》请在金锄头文库上搜索。

1、第2章 基本数据类型、运算符及表达式2.1 的基本数据类型数 据 类 型基本类型构造类型指针类型 空类型 void数值类型字符类型 char 枚举类型 enum整 型浮点型单精度型 float 双精度型 double短整型 short长整型 long整型 int数组类型 结构体类型 struct 共用体类型 union2.2 常量与变量常量 程序运行的过程中,值不能被改变的量。含义:分类:字面常量和符号常量。其中,字面常量又分为:整型常量、实型常量、 字符型常量(字符常量和字符串常量)字面常量 整型常量形式: (1)十进制整型常量:由0至9的数字组成,没有前缀,不能以0起头。(2)八进制整型常

2、量:以0(数字0)为前缀,其后由0到7的数字组成,没有小数部分。 (3)十六进制整型常量:以0x或0X为前缀,其后由0到9的数字和A到F(大小写均可)字母组成,没有小数部分整型常量中的长整型数据可用L(或小写字母l)作后缀表示。十进制、八进制和十六进制三种形式字面常量 实型常量构成: 由整数部分和小数部分组成的,只有十进制方式。 形式:(1)定点数形式: 它由数字和小数点组成。整数和小数部分可以省 去一个,但不可两者都省,而且小数点不能省。 如:1.234,.123,123.,0.0等。 (2)指数形式(或称科学表示法): 它是用整数或定点数后加e(或E)和指数来表示; 指数可正可负必须为整数

3、, 字母e之前必须有数字。 如: 1.234e3, 12.34e2 均合法表示 1.234*103; 而 e3,1e2.3,.e3,e 均不合法。 实型常量的后缀用F/f 表示单精度型。用L/l表示长双精度型。例:下列四个选项中,均是合法的实型常量的是A、+2e-1 -3e4.5 5e3B、-.91 .2e-0 -7.e8C、123e+1 4567 +2e-1D、8e-4 -5e+2 -e3B字面常量 字符型常量分类:字符常量和字符串常量两类。1. 字符常量:用一对单引号括起来的一个字符。 如:a、A、3、?等。 特殊的转义字符常量: 是将反斜扛( )后面的字符转换成另外的意思。转义字符及其含

4、义转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符2. 字符串常量: 用一对双引号括起来的字符序列。如:“The C Programming Language“ 字符串中可以是任一字符,包括转义字符。 当字符串本身包括双引号时,必须用转义字符 “表示 ,从而防止二义性的解释。字面常量 字符型常量如:“ “UNIX SYSTEM “ “字符串常量用连续的存储单元存储,每个字符占一个 字节,且在末尾自动加一个字符串结束符 0。 注意:a 和 “a“的差别 例:下列不合法的字符常量是A、n B、a

5、b C、101 D、0B符号常量 用符号常量标识符来代表一个常量。 如: 用PI代表圆周率,即 3.1415926。优点: 含义清楚,增加可读性。 在需要改变一个常量是能做到“一改全改”,增强了可维护性。 用编译预处理命令中的宏定义来定义符号常量。 宏定义格式:#define 标识符 字符序列 每行定义一个宏定义, 句末无分号。 符号常量定义格式: #define 符号常量标识符 常量 如: #define PI 3.1415926变量含义:程序运行过程中可以改变的量基本要素:变量名、类型、值。变量名: 用标识符来表示。变量的定义格式: 变量类型 变量名表列; 变量类型: 存储数据的类型声明基

6、本类型的关键字有:int 、float、char、double 可进行修饰扩充的有:short、long、unsigned定义类型有三个含义: 1、数学类型 2、存储空间 3、取值范围类型位 范围 char8-128 127 (-27 27-1) unsigned char80 255 ( 0 28-1 ) short int16-32768 32767 (-215 215-1) unsigned short int 160 to 65535 ( 0 216-1 ) int32-2147483648 2147483647 (-215 215-1) unsigned int320 4294967

7、295 ( 0 232-1 ) long int64 (-263-1 263-1 ) unsigned long int640 18446744073709551615 ( 0 264-1 ) float32 -3.41038 3.41038 (7 位有效数字 ) double64 -1.710308 1.710308 (15 位有效数字 )例:下面四个选项中,不正确的变量说明是_A. unsigned int ui; B. short int g; C. double int A; D. int p,j,k;C变量名表列: 为同一类型变量名的列表,各变量名之间用逗号隔开。int m, M,

8、n;/* 定义m,M,n为存放整型数据的整型变量 */ float a, b, c;/* 定义a,b,c为存放单精度型数据的实型变量 */ char c1,c2;/* 定义c1,c2为存放字符型数据的字符型变量 */注意: 1. 变量必须是先定义,后使用; 2. 定义变量的声明语句必须放在本程序任何可执行语句之前或所在函数的可执行语句之前;3. 在同一函数内,不能定义同名变量,而在不同函数中可以定义同名变量,互不影响。4. 变量除了具有数据类型外,还有存储类型,变量的作用域与生存期等。变量的值含义: 存储的数据值。给变量赋值的途径: 1、用赋值运算符“”给变量赋初值 a、在定义变量的同时直接赋

9、值; 如:int a=3;float f=3.56; b、先定义变量,再赋值;如:int a;float f;a=3;f=3.45;c、可以给变量部分赋值如:int a,b,c=3;2、用scanf( )从键盘读入数据;如:int i; scanf(“%d”, 3、在程序执行中,用赋值语句动态的改变变量的值。如:int i=9;int j;j=i-1;j=j+1;注意: 若对变量只定义而没有赋值, 则该变量的值是随机的。2.4 运算符及表达式1、按功能分为:(1) 算术运算符 + - * / % + - (2) 关系运算符 = int i=5,j,k;c2=c1+;c3=+c1;j=i- -;

10、k= - -i;printf(“c1=%c,c2=%c,c3=%cn“,c1,c2,c3);printf(“i=%d,j=%d,k=%dn“,i,j,k); 结果: c1=C, c2=A, c3=Ci=3, j=5, k=3 2、算术表达式用算术运算符将运算对象连接起来,符合 语法规则,并能说明运算过程的式子。赋值运算符与赋值表达式赋值运算符: = 一般形式: 变量 = 表达式含义:将赋值号右边表达式的值赋给左边的变量。 如: x=3; y=(x+2)*3; 注意:(1)先计算赋值运算符右侧表达式,再赋值。 (2)赋值运算符的左侧必须是一个变量。 如: 3=x; (x+y)= 5; /* 都错

11、误 */复合赋值运算符一般形式:变量 = 变量 运算符 表达式 ; 缩写式:变量 运算符 = 表达式; 如:x = x + y;x += y; x = x * (y + z);x *= y + z; 复合赋值运算符共有10种:+=(加赋值) -=(减赋值) *=(乘赋值) /=(除赋值)%=(求余赋值) float b;a*=a/=(a=7)-(b=4.5);printf(“a=%d, b=%fn“,a, b); 结果:a=4,b=4.500000例: int m=7,n=12; 则能得到值为3的表达式是_A. n%=(m%=5)B. n%=(m-m%5)C. n%=m-m%5D. (n%=m

12、)-(m%=5)D逗号运算符和逗号表达式一般形式:表达式1,表达式2,表达式n例:z=(y=(x=4*5,x*5),x+25)结果: x=20,y=100,z=45综合例题:int k=7; float a=2.5,b=4.7; 则表达式 a+k%3*(int)(a+b)%2/4的值_A. 2.5 B. 2.75 C. 3.5 D. 0.0 A各类数值型数据间的混合运算与类型转换语言规定: 相同类型数据直接进行运算,运算结果是原数据类型; 不同类型的数据先转换成同一类型,然后才可进行运算。两种转换形式:(1)隐含转换(隐式转换); (2)强制转换(显式转换)隐含转换1、运算转换不同类型数据混合

13、运算时2、赋值转换把一个值赋给与其类型不同的变量时3、输出转换输出时转换成指定的输出格式4、函数调用转换实参与形参类型不一致时转换由语言系统自动完成的doublefloatlongunsignedintchar,short低高转换规则:注意:(1) 转换按箭头方向不是逐步进行, 而是一步到位。 (2) 类型转换只影响表达式结果,不改变原变量的类型。例 char ch;int i;float f;double d;ch / i + f * d - ( f + i )intdoubledoubledoubledouble例:以下表达式结果为整数的是_(设int i;char c;float f;)

14、A. i+f B. i*cC. c+f D. i+c+fB强制转换通过强制类型转换运算符将表达式值转换为指定类型。 一般形式: (类型标识符)表达式 如: (int)(a+b*c-d/e)%f 例: main() float x1,x2;x1=5.1/1.7;x2=5.1/(int)1.7;printf(“x1=%f,x2=%f”,x1,x2);结果:x1=3.000000,x2=5.100000注意:1、类型表示符两侧的括号不能省略;2、转换时,得到的是一个所需类型的中间变量,原变量的类型未发生变化。作 业1、阅读程序,写出输出结果。main() int x,y,z;x=y=2;z=3;y=x+1;printf(”%d,%dt”,x,y);y=+x1; printf(”%d,%dt”,x,y);y=z- -+1; printf(”%d,%dt”,z,y);y= - -z+1; printf(”%d,%dt”,z,y); 2、计算下列表达式的值。(

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

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

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