




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 基本数据类型和运算学习和解题要点1. 数据类型C 语言中的数据类型比别的语言丰富。要学好这部分内容,首先要掌握C 语言的数据在内存中的表示。整型数据:以二进制的形式表示 (1) int 类型正数: 如 123 (+123)用 16 位二进制(二个字节)表示0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 符号位0表示正 原码 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 反码(原码同)0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 补码(原码同)0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 最大正整数 215-1=214
2、+213+212+211+210+29+2827+26+25+24+23+22+21+20=327671 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 符号位1表示负 负数:如 123 原码 反码(符号位不动,其它取反) 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 补码(补码加 1) 已知补码求原负数 符号位不动,其它取反加 11 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 取反 加1 最大负整数 -215=32768
3、 因为 -215 -(215-1) 所以用 -215 而不用 -(215-1) (2) unsigned (int) 类型 称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16 位二进制都用来表示数,因此1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 最大数 215+214+213+212+211+210+29+2827+26+25+24+23+22+21+20=655350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 最小数 0 (3) long (int)
4、类型 用 32 位二进制(四个字节)表示,其他同 int 型 (4) short 类型 有的计算机(小型、中型、大型机)int 即是 long ,而short用16 位二进制(二个字节)表示。因此C语言中,short一定是短整型,long一定是长整型,而int因不同的系统而不同。PC 586 机int即short,所以一般不用short 。(5) 在C语言中,整型常量有三种形式的写法: 十进制整数(0 - 9)表示。通常整数的写法。 八进制整数(0 - 7)表示。在整数的前面加数字0。 十六进制整数(0 - f)表示。在整数的前面加0x。长整型常量表示方法:在整数的后面加L或 l。字符型数据:
5、以二进制的形式表示char 型 用 8位二进制(一个字节)表示 如 a ,在程序中要用单引号表示,输出时无单引号,内存中表示为0 1 1 0 0 0 0 1本0 26+25+20=97 即ASCII 码 97实型数据:以二进制的形式表示 (1) float 类型 如 123.45 (+123.45)用 32 位二进制(四个字节)表示为 0.123451030 .12345 的二进制表示0 3的二进制表示数符 小数部分 指数符 指数+ 0.12345 + 10332位32-n位n位不同的系统,n的位数有不同,n长,精度高,但可表示的指数小,能表示的数的范围小。反之,则能表示的数的范围大,但精度低
6、。float 类型又称为“浮点” 类型,把实数的小数点都看成在第一位,而用指数位“浮动”小数点。 (2) double 类型与float同只不过用 64 位二进制(八个字节)表示。因此精度高,称双精度。2 变量的概念C语言中的变量可以理解成计算机内存的一个空间,它必须有一个名字(标识符),可放什么样的数据类型(如定义时前面加int 、float 、char 等),它是开辟在内存的一般数据区(又称静态数据区)还是开辟在内存的堆栈区(又称动态数据区),这可由程序中用static或auto(可缺省)来规定。同时,一个变量有它的有效的使用范围,称之为作用域。最后,每个变量都有地址,这在指针类型时要用到
7、。变量可以一边定义一边赋初值,在程序运行时可以使它发生变化,因此称之为变量。3 运算符的注意事项(1) 双目运算符 % 的两边一定是要整数,运算结果是整除后的余数,也是整数,注意 2%5 得2而不是 0。(2) 双目运算符 / 的两边如果是整数,则结果也是整数,5/2 结果为 2而不是 2.5 ,即使是 float x; x=1/2; x 中也只有 0.0 , 要人为的写成 x=1/2.0 或 x=1.0/2 ,x中才是0.5 。(3) 单目运算符 + - 放在运算对象的前面时,称为“先加(减) 1,后使用”,这一般不会搞错。当放在运算对象的后面时,称为“先使用,后加(减) 1”,这时要注意什
8、么时候“使用”。 如 i=3; (i+)+(i+)+(i+) 结果是9而不是12,这里,三个i相加是“使用”,使用后才三次加1,i成为6,“使用”是以整个表达式为准。而 i=3; (+i)+(+i)+(+i) 结果是18而不是15,这里,三个i依次加1 成为6,然后再“使用”。也是以整个表达式为准。又如 i=1; if(i-) printf(“%d”,i); 输出是0而不是1。这是因为if()中i- 是整个表达式,先用i为1,用于“判断”成立,这算“使用”了,然后i减1成为0,输出时i已为0。同理 char c=A; switch(c+) case A: printf(“%c”,c);brea
9、k;,输出为B。(4). 算术自反赋值运算符中,注意 = 赋值号右边是一个整体,如 c%=a-3 是c=c%(a-3)而不是 c=c%a-3。(5). 关系运算符中,注意等于比较运算符 “=” 与赋值运算符 “= ”容易疏忽,二者是绝然不同的,不然会引起很大的错误。如:i=0; if(i=1) 判断得结果应该是不成立,若写成:if(i=1) 则变成给i赋予1,赋值表达式的结果也是1,判断结果是成立的。(6). 应该熟记运算符及其优先级汇总表,熟记运算符之间的运算次序及结合方向。4 表达式注意的问题(1). 在算术表达式中应注意各类数值型数据间的混合运算问题,如下: double float f
10、loat 型一定先转换成double型参加运算。 long 运算对象不同时转换方向。 unsigned int char, short char, short型一定先转换成int型参加运算。(2). C语言无“真假值”,判断成立则结果为1,不成立则结果为0。而当表达式的值为非0则认为“真”,当表达式的值为0则认为“假”。(3). 关系表达式中,数学上的 0x10 不能写成 0x10 而应写成 0x & x10,不然会引起很大的错误。如:当 x=20 时,数学上0x10是不符合的,但在C程序中认为成立。这是因为C程序从左向右判别,0x成立,则结果为1,1b)&(n=ab)”后,m,n的值是( )
11、。A. , B. , C. , D. ,13设a为2,执行下列语句后,b的值不为0.5的是( )。A. b=1.0/a B. b=(float)(1/a)C. b=1/(float)a D. b=1/(a*1.0)14设a为5,执行下列语句后,b的值不为2的是( )。A. b=a/2 B. b=6-(-a)C. b=a%2 D. b=a3?2:215. 执行语句“x=(a=3,b=a-)”后,x,a,b的值依次为( )。A. 3,3,2 B. 3,2,2 C. 3,2,3 D. 2,3,216. int b=0,x=1; 执行语句“if(x+) b=x+1;”后,x,b的值依次为( )。A.
12、2,3 B. 2,0 C. 3,0 D. 3,217.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( )。A. B. C. 9 D. 1218.设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a的值是( )。A. B. C. 9 D. 1219. int a=4,b=3,c=-2,d=2; 逻辑表达式a0&b&c0的值是( )。 A. 1 B. C. -1 D. 出错20.在以下一组运算符中,优先级最高的运算符是( )。 A. = B. = C. % D. &21.设整型变量i的值为,则计算表达式i-i后表达式的值为( )。 A. B. C.
13、D. 表达式出错22.设整型变量i,j=3; 则计算表达式i=j+j后i,j的值为( )。 A. 4,4 B. 6,6 C. 4,6 D. 6,423.设整型变量a,b,c均为,表达式a+b+c+的结果是( )。A. B. C. D. 表达式出错24.设整型变量i值为,表达式(+i)+(+i)+(+i)的结果是( )。A. B. 12 C. 15 D. 表达式出错25.设整型变量i,j值均为3,执行了“j=i+,j+,+i”后,i,j的值是( )。 A. 3,3B. 5,4C. 4,5D. 6,626.若已定义x和y为double类型,则表达式;x=1,y=x+3/2的值是( )。A. B.
14、C. 2.0 D. 2.527.sizeof(double)的结果值是( )。 A8B. 4C. 2D. 出错28. 表达式“1?(0?3:2):(10?1:0)” 的值是( )。 A. 3B. 2C. 1D. 029.设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果为( )。A. 4 B. 3 C. 2 D. 130.设a为整型变量,不能正确表达数学关系:10a15的语言表达式是( )。A. 10a10&a15 D. !(a=15)31.int a=0; if(a=1) a+=10; 结果的值是( )。 A. 0B. 11C. 10D. 出错32.下列表达式中符合语言
15、语法的赋值表达式是( )。A. a=7+b+c=a+7 B. a=7+b+=a+7 C. a=(7+b,b+,a+7) D. a=7+b,c=a+733.设f是实型变量,下列表达式中不是逗号表达式的是( )。A. f=3.2,1.0 B. f0,f0 D. f=(3.2,1.0)34.下列表达式中,不正确的表达式是( )。 A. a=1,b=1B. y=int(x)C. a=b=5D. i+35.若有以下定义:char a、int b、float c、double d,则表达式a*b+d-c值的类型是( )。A. float B. int C. char D. n;
16、float f=13.8; 执行“n=(int)f)%3”后,n的值是( )。 A. 1B. 4C. 4.D. 4.637.用十进制数表示表达式“12|012”的运算结果是( )。 A. B. C. D. 38.设有整型变量a=35,表达式“(x&15)&(x|15)” 的值是( )。 A. 0 B. 1C. 15 D. 3539.设字符型变量a=3,b=6,计算表达式c=(ab)2后c的二进制值是( )。A. B. C. D. 40.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为的是( )。A. a&b B. a=b C. a|b+c&b-c D. !(a=A&
17、ch=Z)?(ch+32):chA. B. a C. Z D. z44.设有整型变量i、j、k,i值为3,j值为6。计算表达式“k=ij3;”后,k的值是( )。A. 06 B. C. 066 D. 46.设有无符号短整型变量a值为331, 计算表达式“a=(a4)&(04)”后,a的值是( )。A. 0 B. 15 C. 015 D. 017二、填充题1在内存中存储“A”要占用 个字节,存储A要占用 个字节。2C语言中的逻辑值“真”是用 表示的,逻辑值“假”是用 表示。逻辑表达式值为“真”是用 表示的,逻辑表达式值为“假”是用 表示的。3符号常量的定义方法是 。4说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。5无符号基本整型的数据类型符为 ,双精度实型数据类型符为 ,字符型数据类型符为 。6定义变量的完整语句格式是 。7变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。8从变量的存储类型来说, 变量不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智慧城市员工合作协议书
- 2025年度银行资金监管与体育产业合作协议
- 二零二五年度油罐租赁与仓储物流服务合同
- 二零二五年度学校临时教师聘用合同书-体育专项技能培养
- 2025年度生物科技企业劳动合同年签生物技术成果转化合同
- 二零二五年度出租车品牌使用权及运营权转让协议
- 二零二五年度广州商铺租赁合作协议
- 2025年度诊所与信息技术人员劳动合同
- CPMM学习的循序渐进方法试题及答案
- 消防设施日常维护基础知识试题及答案
- 消防应急疏散演练课件
- hsk5-成语学习知识
- GB/T 16799-2018家具用皮革
- 南京市2018小升初简历
- 重症感染与抗生素的选择课件
- 截流式合流制管道系统的特点与使用条件课件
- 应急管理工作检查记录表
- 四年级下册英语课件:Unit 4 There are seven days in a week-Lesson 19人教精通版
- 千分尺公开课教案
- 加油站承重罐区安全风险及管理
- 箱变施工安全文明保证措施
评论
0/150
提交评论