第2章数据类型和表达式答案.ppt
《第2章数据类型和表达式答案.ppt》由会员分享,可在线阅读,更多相关《第2章数据类型和表达式答案.ppt(96页珍藏版)》请在三一文库上搜索。
1、主讲教师:贾澎涛 ,C/C+语言程序设计,第二章 数据类型和表达式,本章主要内容,本章介绍C语言的基础,包括: 数据类型 运算符和表达式 均是程序设计的基本知识 为什么讨论这些知识?,2,通常程序要对数据进行操作处理: 处理的对象是数据 通过运算符和表达式进行操作,第2章 数据类型和表达式,2.1 词法构成 字符集 标识符 关键字 注释符,3,重点,ANSI C标准规定的C语言关键字共32个,所有C关键字都必须小写 标识符由132个字符组成,第一个字符必须是字母或下画线,标识符不能与C关键字相同,并区分大小写。 C语句以分号结尾,分号是C语句的组成部分。C语句包括简单语句(即表达式语句)、复合
2、语句和空语句。,4,例题解析,1.下列四个叙述中,正确的是。 A) C程序中的所有字母都必须小写 B) C程序中的关键字必须小写,其他标识符不区分大小写 C) C程序中的所有字母都不区分大小写 D) C语言中的所有关键字必须小写 2.下面属于C语言保留字的是_。 A) Int B) typedef C)ENUM D)unien,5,你能回答下面问题吗?,3.以下叙述正确的是_ A) 可以把define和if定义为用户标识符 B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把出define定义为用户标识符 D) define和if都
3、不能定义为用户标识符 4. 以下选项中合法的用户标识符是。 A) long B) _2Test C) 3Dmax D) A.dat,6,5.下列标识符中正确的一组是_ A) name, char, _abc, A$ B) abc.c, 5bytes, _USA, _54321 C) print, const, type, define D) include, integer, Double, short_int 6.下面的单词中属于C语言保留字的是_ A) Long B) break C) For D) struction,7,数据类型,基本类型,构造类型,指针类型(),空类型(void),字
4、符型(char),数值类型,枚举类型(enum),数组类型( ),结构体类型(struct),共用体类型(union),整型(short,int,long,unsigbed),实型,单精度型(float),双精度型(double),2.2数据类型,8,重点,C语言提供了五种基本数据类型,即char, int, float,double和void。 数据类型决定了内存的分配模式,即不同的数据类型所占的内存字节数是不同的。内存分配模式不是C语言本身的规定,而是由宿主机硬件决定的。 不同的数据类型允许的数值范围也是不同的,超出了允许的数值范围,就会得到错误的结果。C编译系统不具检查此类错误的能力。
5、C语言对整型和字符型不区分,可以混合使用。,9,例题解析,1. C语言中允许的基本数据类型包括。 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型 2. C语言中能用八进制数表示的数据类型为 A) 字符型、整型 B)整型、实型 C) 字符型、实型、双精度型 D) 字符型、整型、实型、双精度型,10,你能回答下面问题吗?,2.3常量与变量,2.3.1常量 常量 程序运行过程中不能被改变的量。 整数在计算机中是准确表示的,可以用十进制、八进制和十六进制数表示。当用八进制数表示时,第一位数字前面必须加0;当用十六进制数表示时,第一位数字
6、前而必须加0x:无符号整数的末尾必须加字母u或U;长整数的末尾必颁加字母I或L。 字符型常数是用单引号括住的单个字符。用转义字符表示不可显示字符。转义字符以“”开头,后跟一个特定的字母或八进制数或十六进制数表示的ASCII代码值。,11,用八进制时,前面可以也可以不加数字0;用十六进制数时,前面必须加字母x。 字符串常数是用双引号括住的一串字符。当两个双引号连写时表示零字符串。 C语言将所有的实数都视为双精度型数。双精度数只能用十进制数表示。在计算机中是近似表示的。双精度数用定点数形式表示时,小数点不可缺少;用浮点数形式表示时,E前面必须有数字(带不带小数点均可),E后面只能是整数,不能带小数
7、点。,12,符号常数是用标识符表示的常数,它具有变量的外表和常量的内涵。 用#define定义的符号常数没有类型和值的含义。在预编译时由编译系统将宏名用宏体替换。 define是编译预处理命令,不属于C语言关键字。 用const定义的符号常数既有值又有类型的含义。该定义是在编译阶段完成的。,13,例题解析,1. 下列属于C语言合法的字符常量是_ A)97 B)“A“ C)t D)”0”,14,你能回答下面问题吗?,2.3.2 变量,1. 变量的有关概念 在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为变量名。 变量必须“先定义后使用” 系统为变量分配存储单元,存储变量的值。
8、编写程序时通过变量名来存、取变量值。,15,例如: 有变量a 它的值是510,2. 变量定义,变量定义的一般格式: 【类型修饰符】数据类型说明符 变量列表; 例如:int i, j; long k, m; float x,y; char ch1,ch2;,16,必须使用合法的标识符作变量名 不能使用关键字为变量命名,3. 变量的初始化,允许在说明变量的时候对变量赋初值。 例如:int a=5,b=10+2; double x=23.568,y ; char ch1=a,ch2=66,ch3=142; 表示定义变量并对变量存储单元赋值。 错误的初始化: int a=3+b,b=5; float
9、m=n=23.16;,17,例题解析,1. 若有以下定义和语句: int u=010,v=0x10,w=10; printf(“%d,%d,%dn”,u,v,w); 则输出结果是: A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,10,18,你能回答下面问题吗?,2.4 指针和指针变量,main() float x; int y; ,19,2.4.1 指针和指针变量的概念,变量的两个物理意义,变量的内容,变量的地址,19,2.4.1指针和指针变量的概念,main() int a,b,c; a=5; b=3; c=a +b; ,20,2000 2001 2002 200
10、3 2004 2005,a b c,8,利用变量名存取数据的方式称为“直接存取”方式。,20,C 语言还提供了对内存单元的“间接存取”方式,21,5,3,2004,a和b相加的结果(*p=a+b)存放到变量p所指向的内存单元中去。此时c称为指针变量p的目标变量。,p=&c,8,main() int a=5,b=3,c,*p; p = ,变量的地址称为变量的指针 存放地址的变量称为指针变量,21,2.4.2指针变量的定义,main() int a,*p= ,22,2004,2000,指针变量初始化,22,2.5 运算符和表达式,主要内容: 算术运算符和算术表达式 赋值运算符和赋值表达式 关系运算
11、符和关系表达式 逻辑运算符和逻辑表达式 位运算符和位运算表达式 条件运算符和条件表达式 逗号运算符和逗号表达式 其他运算符及其运算,23,运算符的有关概念,作用: 对运算对象完成规定的操作运算 类型: 按运算对象分: 单目、双目、三目 按功能分: 算术、赋值、关系、逻辑 条件、逗号、位、其他,24,运算符的优先级和结合性,优先级 指各种运算符号的运算优先顺序 例如:算术运算优先于关系运算 算术运算中先 * / 后 + -,25,结合性 指运算符号和运算对象的结合方向 分为:从左向右(左结合)和从右向左(右结合) 例如:算术运算符为左结合 a-b+4 赋值运算符为右结合 a= b = 5 ( )
12、,本章涉及的运算符,+ - * / % + - + - = += -= *= /= %= &= |= = = = ?: , & sizeof (数据类型标识符),26,表达式的有关概念,什么是表达式 由运算符将运算对象连接成的式子,它描述了一个具体的求值运算过程。 计算表达式的值 按照运算符的运算规则求值 求值时注意运算符的优先级和结合性 表达式值的类型 自动转换 强制转换,27,例如:,表达式: 150+b*212.456 b=(+a)-2 a /= a *= (a = 2) f=abc -a |+b&c+ max=ab ? a : b a=3,a+=3,a*a 1/(float)a+6,2
13、8,算术运算,算术运算符的优先级,29,没有乘方运算符,要计算a3要写作 a*a*a 的连乘,或用标准库函数 pow(a, 3) “/”的运算对象可为各种类型数据,但是当进行两个整型数据相除时,运算结果也是整型数据 “%”要求运算对象必须是整型数据,功能是求两数相除的余数,余数的符号与被除数的符号相同。,自增自减运算,+ -是单目运算符 有前缀和后缀两种形式 前缀形式: 先自增(自减)再引用; 后缀形式: 先引用再自增(自减); 功能: 前缀形式 + a 等价于 a = a + 1 - a 等价于 a = a 1 后缀形式 a + 等价于 a = a + 1 a - 等价于 a = a 1,3
14、1,例如:,当 a5 时 +a 表达式的值为 6,且 a6 a+ 表达式的值为5 ,且 a6 b=+a 等价于 a=a+1; b=a 表达式的值为6,且 a=6, b=6 b=a+ 等价于 b=a; a=a+1 表达式的值为5,且 a=6, b=5,32,说明:,+ 和 - 的运算对象只能是变量(或运算结果是变量的表达式), 不能是常量(或运算结果是数值的表达式)。 例如: 5+、(a+2)+ 不合法。 具有右结合性,结合方向为从右到左。 例如: a+ 等价于 -(a+) 如果有多个运算符连续出现时,C系统尽可能多的从左到右将字符组合成一个运算符 例如: i + j 等价于 ( i+)+j -
15、i+-j 等价于 -(i+)+(-j),33,赋值运算,赋值运算符(右结合) = += -= *= /= %= &= |= = = = 赋值表达式 将表达式的值存入变量对应的内存单元中 m=12 b=(+a)-2 m%=3+n 等价于 m=m%(3+n) x *= (x = 5),34,说明:,赋值号左边必须是变量,右边可以是C语言任意合法的表达式 例如:n= t +210 等价于:a= (b=( (b*c)10) ) 赋值号与数学中的等号含义不同 例如:数学中 a=b 等价于 b=a C语言中 a=b 不等价于 b=a,35,关系运算,关系运算符 (左结合) = =c 等价于 a = ( b
16、=c ) 与 (a=b)=c 不等价 关系运算符优先于赋值,低于算术,36,说明:,关系运算的结果应该是逻辑值。C语言用数值用 1 表示逻辑真, 0 表示逻辑假 例如: 75 的值是 1,57 的值是 0 ab的值是 0, ab 的值是1 即关系表达式的值:0 或1 实型数可进行大于或小于比较,但通常不进行 = 或 != 的关系运算,37,逻辑运算符,逻辑运算符 & | ! 逻辑运算符的运算规则,38,逻辑表达式,逻辑表达式 用逻辑运算符将运算对象连接成的式子 例如:0&b a &b | c&d a | b-5 | c/4 !x+y = z 逻辑运算符的优先级 和结合性: !是单目运算符,右结
17、合,高于算术 & 和 | 是双目运算符,左结合,高于赋值运算符,低于关系运算符,39,逻辑运算规则,从左到右依次进行逻辑计算 运算对象为非0表示逻辑真 运算对象为 0 表示逻辑假 逻辑运算的结果为 0 或 1 例如设:a=15,b=0,c=-2 a & b & c 结果为0 a | b | c 结果为1 (a+c) | b & c 结果为1,40,逻辑运算规则(续),运算按照从左至右的顺序进行,一旦能够确定逻辑表达式的值,就立即结束运算 逻辑运算的短路性质 例如设:a=1,b=0,c=-2 a & b & c,41,(a+) | + b& -c,为 0,运算终止,表达式值为 0,为非0,运算终
18、止,表达式值为 1 且a为2,b为0,c为-2 (b,c保持原值),关系与逻辑运算符的应用,表示数学公式abc 判断a, b, c三条线段能否组成一个三角形 a, b不同时为负,42,a+bc & a+cb & b+ca,a=0 | b=0 !(a=0)|(a=0&b=0&b=0),ab & bc,条件表达式运算,条件运算符:? : 条件表达式的一般形式 表达式1 ? 表达式2 : 表达式3 例如:m=10 & b20 ? a : b x=3+a5 ? 100 : 200,43,C语言中唯一的三目运算符,要正确区分用 ?和 :分隔的表达式 涉及条件运算符的优先级与结合性,条件运算符优先级,条件
19、运算符优先级高于赋值、逗号运算符,低于其他运算符 例如: m=10 & b20 ? a : b x=3+a5 ? 100 : 200,44,等价于:(mn) ?(x) :(a+3),等价于:(a+=10 & b20) ? a : b,等价于:x= ( 3+a5 ) ? 100 : 200 ),条件运算符的结合性,条件运算符具有右结合性 当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。,45,例如:wx ? x+w : xy ? x : y 与 wx ? x+w : ( xy ? x : y) 等价 与 (wx ? x+
20、w : xy) ? x : y 不等价,逗号表达式运算,逗号表达式的一般形式 表达式1,表达式2,表达式n 逗号表达式的值 从左向右,依次对表达式求值,最后得到表达式n 的值就是逗号表达式的值,46,例如: a=5, a+, a* 3 表达式值为 18,且a=6 t=1, t+5, t+ 表达式值为 1,且t=2 x=(a=3*5, a*4 ) 赋值表达式的值为60,且x=60, a=15,位运算符, & | ,47,位运算符的运算对象只能是整型数据或字符型数据,不能是实型数据 运算对象一律按二进制补码参加运算,并按位进行运算 位运算的结果是一个整型数据,低于单目、算术运算符,高于其他运算符,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 表达式 答案
链接地址:https://www.31doc.com/p-2252561.html