《C 基本數據類型與表達式.ppt》由会员分享,可在线阅读,更多相关《C 基本數據類型與表達式.ppt(71页珍藏版)》请在三一文库上搜索。
1、第2章 基本数据类型及表达式,本 章 导 读 数据是程序中必不可少的重要组成部分,C+语言提供了丰富的数据类型,以便能准确地描述现实世界中的各种问题。为了能方便有效地对数据进行加工处理,C+语言提供了相当丰富的运算符和表达式。本章我们主要介绍C+语言的基本元素、数据和数据类型、运算符和表达式。 本章教学目标: 理解和掌握C+语言基本数据类型的应用; 理解和掌握常量和变量的定义与应用; 理解和掌握C+语言的运算符和表达式的应用; 了解运算符的优先级和数据类型转换。,准备知识 C+基本数据类型 C+常量与变量 C+运算符与表达式 C+类型转换 实例分析 小结,第二章 基本数据类型及表达式,作业,准
2、备知识 常用进位计数制,1十进制 代码:用0十个不同的符号来表示即基数为10 运算规则:逢十进一,借一当十,2二进制 代码:只有两个代码“0”和“1”,基数为二 运算规则:逢二进一,借一当二。,4十六进制 代码:采用09和A、B、C、D、E、F 运算规则: 逢十六进一,借一当十六。,3八进制 代码:只有两个代码“0”,基数为八 运算规则:逢八进一,借一当八。,1 0 1 0 +0 1 1 1,1 0 0 0 1,0AH+07H =11H,准备知识 不同进制之间的转换,1其它进制与十进制的相互转换按权展开 例1(11101.011)2 =124+123+122+021+120+02-1 +12-
3、2+12-3 =(29.375)10 例2 (35.3)8=381+580+38-1=(29.375)10 例3 (1D.6)16=1161+13160+616-1 =(29.375)10,表1-1 不同数制各位的权数(用十进制数表示),2. 十进制数据转换成其它进制 整数部分采用的是倒除法,即“除基数取余”的方法。小数部分采用“乘基数取整”法。 【例2】将(236)D转换成二进制。转换过程如下所示。,将二进制数转变成十六进制数 由于16=24,所以在将二进制数转换成十六进制数时,从小数点向两边,每四位二进制数划为一组,用一位十六进制数代替,也称为“以四换一”;十六进制数转换成二进制数时正好相
4、反,一位十六进制数用四位二进制数来替换,也称“以一换四”。 同理二进制转换为八进制采用“以一换三”。,例1 11001011101.011B=(0110 0101 1101.0110)2= 例2 11001011101.011B=(011 001 011 101.011)2=,练习:11010010.01B=( )8=( )16,3二进制数与十六进制数的相互转换,65D6H,3135.3o,322.2,D2.4,表 : 将二进制数转变成十六和八进制数,二进制 八进制 十六进制,准备知识 计算机中数据的表示方法,1原码(机器数) 一个二进制数同时包含符号和数值两部分, 用最高位表示符号,其余位表
5、示数值,这种表示带符号数的方法为原码表示法。 2反码 反码是另一种表示有符号数的方法。 对于正数,其反码与原码相同; 对于负数,在求反码的时候,除了符号位外,其余各位按位取反,即“1”都换成“0”,“0”都换成“1”。 3补码 补码是表示带符号数的最直接方法。 对于正数,其补码与原码相同; 对于负数,则其补码为反码加1。,返回本节目录,2.1 C+的基本数据类型,短整型(short) 整型(int) 长整型(long),布尔型(bool) 字符类型(char) 整型(int) 实型(浮点型),数组类型 指针类型 构造类型 类类型(class) 空类型(void),基本基本类型 自定义 数据类型
6、,数据 类型,单精度型(float) 双精度型(double),结构体类型struct) 联合体类型(union) 枚举类型,数据类型的描述确定了数据在内存所占空间大小,也确定了表示范围及对该类型数据所进行的操作,P29表2-5是32位机上各种基本数据类型的类型名、存储空间即表示范围。 注:整型数据、字符型数据又可加修饰符signed 有符号型,unsigned表示无符号型。,附:数据的输入与输出,在C+中,将数据从一个对象到另一个对象的流动抽象为“流”,输入和输出是由I/O流来实现的。 使用cin、cout进行数据的输入/输出时,无论处理的是什么类型的数据,都能够自动按照正确的默认格式处理。
7、如果需要设置特殊的格式,就要使用I/O流类库提供的一些格式控制操纵符。,1. 输入与输出,1)输入 在C+中,键盘输入格式如下: cin变量变量; 例如: int a,b,c; cinabc; 若输入 1 2 3 a=?,b=?,c=?,2)输出 在C+中,键盘输出格式如下: cout表达式表达式; 例如: int a(1),b(1),c(1); cout”a=“a“b=“b“c=“cendl; 输出为:a=1b=1c=1,2. 简单的I/O控制格式 C+常用的I/O流类库操纵符见P27 表2-3,注意:要包含头文件 #include或,返回本节目录,在程序中,数据通常以两种形式存在:常量和变
8、量。 2.2.1 常量 在程序执行过程中值不能被改变的量称为常量。C+提供了:整型常量、浮点型常量、字符常量、字符串常量、符号常量以及枚举常量和指针常量等。,2.2 常量与变量,1)整形常量的表示: a)十进制表示,第一个数字不能是0,如:123,-108,0等。 b)八进制表示由数字0打头,如:0123,-011等。 c)十六进制表示由0x或0X打头,如:-0x1a2c,0xff等。 可在整型常量的后面加上l或L,表示长整型常量,如:32765L;也可在整型常量的后面加上u或U,表示无符号整型常量,如:4352U;也可以在整型常量的后面同时加上u(U)和l(L),表示无符号长整型常量,如:4
9、1152UL或41152LU。 如果整型常量后面既没有l(L),又没有u(U),则为int型。,1.整型常量-正整数、负整数和零,2).整型变量的定义 例: int x ,y; short a ,b; unsigned long z;,3). 整型数据的存储,C+标准没有具体规定各类数据存储的字节数, 一般以一个机器字(Word)存放1个int数据, 16位机上int数据存储用两个字节。32位机上int数据存储用4个字节。以2字节为例:,int x=10;,无符号整数 : 最高位与其他位一起表示数值, 只能存放正数。 范围是: 0000 0000 0000 0000 - 1111 1111 1
10、111 1111 即 0 - 65535 (216-1),(2) 带符号整数 : 存储时最高位表示符号, 0为正, 1为负 正数的补码为其二进制数 (以short int 型为例),(计算 215-1=32767),16位有符号整数取值范围-32768+32767(-215215-1),- 215-1最后得 -32768,215-1(32767),求补(- 215 -1 ),4).整型数据的溢出 例: int a,b; a=32767; b=a+4;,5). 拓展整型,为拓展数据处理的范围, C语言通过类型修饰符来改变基本数据类型的含义, 使之精确适合于不同应用场合。拓展后的整型有短整型、长整
11、型及无符号整型。,拓展整型数据类型、存储及表示范围,请回答下列问题: (1)指出1234、123.0、1.23E+2、10、1.23*102、-9这些数中哪些是非法的十进制整常数。 (2)指出123、01777、010、029、032767这些数中哪些是非法的八进制整常数。 (3)指出Ox10、12、0x2f、Oxgf、Oxa、20H这些数中哪些是非法的十六进制整常数。 答案,基本数据类型测试,(1)123.0、1.23E+2、1.23*102 (2)123、029 (3)12、Oxgf、20H,实型数据分为单精度和双精度和长双精度三种类型。 1、实型数据的书写:定点和浮点形式两种书写方法。
12、定点形式又称小数表示法, 是一种常规形式, 由整数部分、 小数点、小数部分三部分组成。 C+语言中的实数可以没有小数部分或没有整数部分, 如 20. , .375 浮点形式:由尾数、指数符号e或E、指数三部分组成, 尾数是一般形式的实数。注:尾数不能少。 指数形式适于表示较大或较小的实数。 如2.34e10、2.34e-10, 相应于数学中2.341010、2.3410-10。,2. 实型常量,2、实型数据的存储,3、实型数据的类型及存储格式,注1:对于一个定点数或浮点数,C+默认双精度,若后跟一个F或f,则按单精度数存储。也可在后面加上L(l)表示long double型。,字符数据简称字符
13、, 取值为ASCII码字符集中的字符。长度为一个字节,字符常量有两种类型: char 取值范围(-128-127) unsigned char 取值范围(0-255)。 字符数据用单引号作界定符, 如a、 +、 %、 :、 1、 2。 注意: 单引号字符本身及双引号、反斜杠字符由于有特定的含义, 不能如此表示, 数字字符与数字不同。 ,3.字符常量,转义表示:通过反斜杠后跟ASCII码描述。可采用 3位八进制数: ddd 2位十六进制数: xhh(位数不够, 加0补位), 如字符A可表示为A、 101、 x41。 详见ASCII码表,对一些特殊的字符只能用转义表示,如图形字符的表示376, 单
14、引号、双引号、反斜杠可表示成047、042、 134。 对一些常用的特殊字符, C语言还提供特定的字符来转义表示: n: 回车换行 : 反斜杠字符详见P25表2-1 : 单引号字符 “: 双引号字符 a: 响铃报警 b: 退格 f: 走纸换行 r : 回车 t: 横向跳格 u: 竖向跳格 字符数据和整数在一定范围内互相通用 例如:,/li2_2_2.cpp #include void main( ) char ch; ch=a; coutch“ “int(ch) “n“; ,输出结果: a 97,(2)字符数据与整数进行算术运算,/li2_2_3.cpp #include void main(
15、 ) char ch; int x; ch=A; x=ch+32; coutchar(x)“ “x“n“; ,输出结果: a 97,(1)字符数据用整数形式输出,1). 字串表示 字串数据用双引号作界定符, 如: chinaone、computer、$123.45、 nabc、 %d%f 2). 字串存储 字串数据存储除存储构成字符串的字符序列本身外, 还必须附加存储字串的结束标志空操作字符0。 存储一个字串的字节数等于字符个数加1, 即字串长度再加1。,“a”,注:a和“a”的含义是不同的。,4. 字符串常量,null,在程序中用标识符代表的常数,对应一个存储空间。可以用define、con
16、st等命令定义。 使用符号常量的优点: (1) 含义清楚 (2) 修改方便,5. 符号常量,1) 使用#define命令定义符号常量 格式: define 标识符 常量 如:#define PI 3.14159 由用户命名的标识符是符号常量名。一般大写。 一旦定义, 在程序中凡是出现常量的地方均可用符号常量名来代替。 对使用了符号常量的程序在编译前会以实际常量替代符号常量。 如在主函数中出现:float x=PI*10*10,则编译时变为 float x=3.14159*10*10. 注 :注意宏替换后的优先顺序。例如: #define A1 2+5 int x=A1*A1;,int x=2+
17、5*2+5;,2)、符号常量定义语句 形式:const 数据类型 符号常量=表达式; 如:const float PI=3.14159; 注1:符号常量习惯上用大写字母表示。 注2:符号常量定义时必须初始化,且以后在程序中不能修改。 注3 符号常量定义中的表达式,只能是常量表达式, (运算结果为常量,表达式中允许变量)。 注4:使用const语句定义的符号常量带有数据类型,以便系统进行类型检查。且可计算初值表达式。故比define命令优越。,结果:77,41,#include int x=6; #define NU1 x+5 /末尾不加; const int NU2=x+5; void mai
18、n() coutNU2*7 , NU1*7endl; ,C语言规定, 0作为逻辑数据代表假, 非0的数作为逻辑数据代表真。 C+用保留字bool表示逻辑类型,还定义了两个符号常量false和 true,分别对应逻辑值0和1。 C语言同时规定, 逻辑数据真为1, 逻辑数据假为0。 如: 23为假, 表达式的值为0。,6. 逻辑数据,枚举是一种构造数据类型,具有这种数据类型的量称为枚举量。枚举量实际上是一个int型常量。 定义格式: enum 类型名枚举常量1,枚举常量2,枚举常量3,.; 例:enum COLOR RED, BLUE, GREEN, WHITE, BLACK; 在定义枚举类型时,
19、还确定了枚举表中每个枚举常量的取值。默认情况下,其数值从0开始,依次加1。如例中RED赋以0,BLUE赋以1,以此类推。,7. 枚举常量,因此可看出,枚举类型名不是变量名,不占内存空间,枚举常量是一种符号常量,表示各个枚举值,在内存中表示为整型数。 另外,枚举常量的值还可以在定义时显式赋值,如没有显式赋值,仍为前面的值加1。 如: enum COLOR RED=100, BLUE=200, GREEN, WHITE=400 ; 定义了枚举类型后,可以定义该枚举类型的变量。变量的取值只能取枚举定义时规定的值,不能用整数值赋给枚举变量。 如: COLOR x=RED, y=GREEN, z; /r
20、ight z=200; /error coutx“ “y“n“; 运行结果为:,100 201,说明: 不同计算机,同一数据类型占用空间不同。如int(16位机2字节,32位机4字节)。 不同类型数据占用空间大小,决定其存储范围。 计算机对内存存放同样信息的解释会因其所表示的数据类型不同而不同。 如:(01000001)2 ,int型 65,char型为 A,变量是其值可以被改变的量。每一个变量都属于一种数据类型,用来表示(即存储)该类型中的一个值。,2.2.2 变量,变量名、变量类型和存储单元是变量的三要素。进行变量声明后,计算机系统会为声明的变量分配存储空间,用以存放数据. 变量名实际上是
21、一个符号地址。在程序中对变量的赋值和取值操作实际上是通过变量名找到相应的内存地址,然后从对应的存储空间中读取数据。,如 int x=3;,int a; float x, y; char ch; int x=4 ,y=21 ; /声明时初始化 char ch=A ;,1. 变量的声明 格式: 数据类型 变量名列表 ;,2. 变量的赋值 格式: 变量 = 表达式;,x = 6 ; y = x+2 ; a = sqrt(b) ; y = x = x+2 ;,注1. 赋值号是 = , 而等于号是 = = 注2. 赋值运算符为右结合性, 先计算赋值号右边的表达式的值, 再将值赋给左边的变量, 最后一个式
22、子等价于 y = ( x = x+2) ; 注3. 表达式包括 常量, 变量, 函数, 其他合法 的C语言表达式,注4.C+中所有变量必须“先定义,后使用”。“先存值后取值”,返回本节目录,运算符又称操作符, 是一个符号, 它指示在一个或多个操作数上完成某种运算操作或动作。 用运算符将操作对象连接起来就构成了表达式。 C语言中, 除了输入、 输出及程序流程控制操作以外的所有基本操作都作为运算处理。 如, 赋值运算符“=”、 逗号运算符“, ”、 括号运算符“( )”。 常用的运算符有算术运算符、关系运算符、逻辑运算符、赋值运算符、逗号运算符等。详见P44表2-19,2.3 运算符与表达式,一、
23、单目、双目、三目运算符 单目:一般位于操作数前面。如-x,!x 双目:位于两个操作数之间。如a+b 三目:只有一个即条件运算符。如(ab)?a:b 二、运算符优先级 C语言将运算符的优先级划分为15级,优先级顺序为。,2.3.1 运算符的说明,(1) 初等运算( )、 - (2) 单目运算!、 +、 -、 -、 (类型)、* 、 &、 sizeof (3) 算术运算+、-、 *、 /、% (4) 关系运算、 =、 =、 ! =等,(5) 逻辑运算&、 |、条件运算式?: (6)赋值运算=、 +=、 -=等 (7)逗号运算优先级最低 (8)位运算优先级比较分散。,三、运算符的结合性 运算符的结合
24、性是指, 优先级相同的运算从左到右进行(左结合性)还是从右至左进行(右结合性), 左结合性是人们习惯的计算顺序。 C语言中, 只有单目运算(!、 、 +、 -、 -、 *、 &)、条件运算(?: )、赋值运算(=、 +=、 -=、 *=、 /=、 %=)的结合性是右结合, 其余运算为左结合。,1. 算术运算符与表达式(P35表2-9) 1)单目运算符: -,+,+,-; 2)双目运算符: +,-,*,/,%。 注1:双目运算符一般要求两个相同类型的操作数,如果不同,则进行转换,精度低的往精度高的转。 注2:-、+、%只用于int和char类型数据。 注3:两个整数相除得到的商是它们的整数商,两
25、个整数取余得到的是整余数。如:9/2=4,9.0/2=4.5 注4:自增运算符: +和自减运算符: - 自增运算与自减运算一样都是单目运算, 操作数也只能是整型变量。有前置、后置两种方式,自增、自减运算比等价的赋值语句生成的目标代码更高效。 ,2.3.2 运算符的种类, +i: 在使用i 之前, 先使i 的值增加1, 俗称先增后用。 i+: 先使用i 的值, 然后使i 的值增加1, 俗称先用后增。 -i : 在使用i 之前 , 先使i 的值减1, 俗称先减后用。 i- : 先使用i 的值, 然后使i 的值减1, 俗称先用后减。 如:i=1999; j=+ i; /* i=2000,j=2000
26、 */ j=i+; /* i=2000 ,j=1999 */ 如: i=2000; j=-i; /* i =1999,j=1999 */ j=i-; /* i=1999, j=2000 */ 自增运算和自减运算的优先级处于第2级,右结合性。,2. 关系运算符与表达式(P37表2-10) 关系运算符是双目运算符: , =, b) x=a; else x=b;,3. 逻辑运算符(P38表2-10表2-11 ) 单目逻辑运算符: !(逻辑求反); 双目逻辑运算符: /结果为false,4. 位运算符(P39表2-13) 一般的高级语言处理数据的最小单位只能是字节,C语言能处理到二进制的位,当然C+也
27、可以。在C+中有6个位运算符。、 、 |、 、 &,例如:3&5,3: 0 0 0 0 0 0 1 1 5: 0 0 0 0 0 1 0 1 3&5: 0 0 0 0 0 0 0 1,例如:3|5,例如:35,例如:3,例如:52 注: 左边的操作数是需要移位的数值,右边的操作数是左移或右移的位数。,00000111,00000110,11111100,00010100,5. 赋值运算符(P35表2-9) 是双目运算符: =、 +=、 =、 *=、 /=、 %= 含义:先计算右边操作数的值,然后把计算结果赋给(保存到)左边的变量中。 注1:在C+中,赋值是一种运算,该运算将改变第一个(左边)操
28、作数的值,运算结果为左边的操作数。 如:(a=b+c)*d 是合法的。 注2:如果用#代表复合运算符,则a#=b表示a=a#b.,6.条件运算符 三目运算符 ? : d1?d2:d3; /d1为真,则表达式的值为d2,否则为d3. 7.逗号运算符 是双目运算符,它的优先级最低。 该运算符的功能是用来将多个表达式连成一个表达式,起到一个表达式的作用。 含义:先计算第一个式子,再计算第二个式子,整个计算式的结果为最后一个计算式的结果。 如:x=a+b,y=c+d,z=x+y; 等价于:z=a+b+c+d;,8. sizeof运算符 测试类型名所表示类型长度,或表达式所占用字节数。 sizeof(类
29、型说明符/表达式) int a; sizeof(a)=4; sizeof(100)=4; sizeof(a)=1; sizeof(double)=8;,9.其他运算符 取地址(用以定义指针变量。 成员选择符: .运算符和-运算符 其它运算符有 ( )、 等,2.3.3 C+ 表达式,用运算符将操作对象连接起来就构成了表达式。表达式总是有值的。 操作数是运算符的操作对象, 可以是常量、变量、函数与表达式。 常量、变量、函数本身就是简单表达式, 从一般意义上讲, C语言中所有操作数都是表达式。复杂表达式由运算符连接简单表达式形成。 当一个表达式出现各种运算符时,要考虑运算符的优先级和结合性。运算符
30、的结合性体现了运算符对其操作数进行运算的方向。,C语言的表达式虽然来源于数学表达式, 是数学表达式在计算机中的表示, 但在书写时应该注意遵循C语言表达式书写的原则: (1) C语言的表达式只能采用线性的形式书写。 例如: 应写成 1.0/3+i+j*j*j。 应写成(a+b)/(c+d)*e+f。,C+ 表达式书写,(2) C语言的表达式只能使用C语言中合法的运算符和操作数, 对有些操作必须调用库函数完成, 而且运算符不能省略。例如: r2 应写成 3.14159*r*r。 应写成 1.0/2*a*b*sin(alph)。 |xy| 应写成 fabs(xy)。 y+2X 应写成 y+pow(2
31、, x)。,注: C+ 常用数学函数,C+函数包括系统函数和用户函数两种,系统函数由系统定义并由相应的头文件提供函数原型。 1. 常用函数说明 常用数学函数: math.h 包括:绝对值函数;三角函数;指数对数函数;幂函数;取整函数。 随机函数和终止运行函数 stdlib.h rand( ) 返回0-32767之间的一个整数; srand(s) 让系统建立一个与s值对应的随机数序列; exit(1) 执行时结束程序执行,返回C+主操作界面窗口,2. 函数调用,格式: 函数名 ( 实参表 ) 例:求指数函数原型为 double pow(double x, double y); 调用格式:pow(
32、3, 2), pow(3*2, 3), pow(x, y+1) 一个函数可以单独作为一个表达式,也可以作为表达式中的一个数据项存在。 如:coutsqrt(x)+1endl; 函数调用时,函数运算具有最高的优先级。 如:y=a*sqrt(abs(b)-1)+c; /若 a,b,c分别为10,50,12.y=? 函数调用时,注意参数的类型及取值范围。 如: cos(x), 求x的余弦, x的单位必须为弧度。,例1:若a=10,b= -20,x=3.6,y= -4.3,求下列函数的返回值。 abs(b)= fabs(y)= sin(30*3.14159/180)= sqrt(36)= log(16
33、)= log10(1e-5)= pow(a,ceil(y)= floor(y)=,3. 函数应用举例,20,4.3,0.5,6,2.77259,-5,-5,0.0001,例2:取一个数的若干位小数,假定x=3.74265. floor(x*100)/100= floor(x*1000+0.5)/1000= floor(x*10+0.5)/10= 例3:随机函数的应用 rand()%100 /返回099 10+rand()%90 /得到10,99区间内的一个随机整数 a+rand()%b /得到a,a+b-1区间内的一个随机整数 rand()%90/10.0+1 /得到1.0,9.9区间内含一位
34、小数的实数,3.74,3.743,3.7,返回本节目录,一般讲相应的运算只有相应类型的数据才能进行, 不同类型数据进行运算时, 要进行类型转换。类型转换有自动转换(又称隐含转换)与强制转换两种方式。 1、隐式转换。 一般算术转换 隐式转换由系统自动完成, 在不同类型数值型数据间的混合运算时完成。 目的: 将短的数扩展为机器处理的长度,使运算符 两端有相同的类型。转换的规则见45页。,int usigned long double short,char float,例 float x =1.3; int a=10 ; coutx/a;,2.4 类型转换,int-float,由低向高转换, 这种转
35、换是一种保值映射, 在转换中数据的精度不受损失。 赋值表达式中,右值表达式的类型隐式转换为左值的类型。(具有强制性) 在被调用函数带有返回值时,将return后面的表达式类型转换为函数类型 注:后两种转换是不安全的,因为数据的精度受到损失。,如: int a; double d=12.3; a=d; a=?,12,2. 显式转换 将一个类型的变量强制转换为另一种类型。 一般形式 : ( 类型标识符) 表达式 或 类型说明符 (表达式) 含义: 将表达式的类型强制转换成类型名指定的类型。 double d=21.83; int a; a=(int)d; / 或 a=int(d);将表达式d的值强
36、制转换成整型, a=? /取d的整数部分,d依然为双精度 注:强制类型转换在将高类型转换为低类型时, 数据精度受损。对一个变量进行强制转换后, 原变量的类型不变 , 只是得到一个新类型的临时数据,例: 表达式计算。 (1) float x=2.5, y=4.7; int a=7; 计算x + a%3*(int)(x+y)%2/4 a%3等于1。 x+y等于7.2。 (int)(x+y)等于7 。 a%3*(int)(x+y)等于7。 a%3*(int)(x+y)%2等于1。 a%3*(int)(x+y)%2/4等于0。 x+a%3*(int)(x+y)%2/4等于2.5+0, 结果为2.5。,
37、(2) int a=2, b=3; float x=3.5, y=2.5; 计算(float)(a+b)/2 +(int)x%(int)y a+b等于5。 (float)(a+b)等于5.0, 强制转换成float型。 (float)(a+b)/2等于5.0/2.0, 结果为2.5。 (int)x等于3, 强制转换成int型。 (int)y等于2, 强制转换成int型。 (int)x%(int)y等于1。 (float)(a+b)/2+(int)x%(int)y等于2.5+1.0, 结果 为3.5(单精度型)。,返回本节目录,2.5 C+ 实例分析,#include “iostream.h“
38、void main() int a; a=123+3.2e2-3.6/6-6/8; coutaendl; double b; b=123+3.2e2-3.6/6-6/8; coutbendl; int c=7,d=4; a=c-+d; coutc,d,aendl; ,例1,输出结果: 442 442.4 6,5,2,例2:,#include “iostream.h“ void main() char c1(k),c2(p); int n=c1c2; coutnendl; n=c1-1=c2; coutn+1endl; n=u=v-1; coutnendl; cout(a=A)+(812)+(c
39、2-c1!=0)endl; ,输出结果: 0 2 1 2,例3:,#include “iostream.h“ void main() int a, b, c; a=b=c=8; cout(!a ,在组成逻辑表达式的多个操作数中,只要有一个操作数表达式的值可以确定整个表达式的值时,则其余的操作数表达式就不再计算。,输出结果: 0 8,8,8 1 8,8,8,例4:,#include “iostream.h“ void main() int i(8),j(4),k; k=ij?i:d)j?i:d)“,“sizeof(double)endl; 条件表达式的类型是冒号两端两个表达式中类型高的表达式的类
40、型。,8,5,5 8,5,8 8 8,8,例5,#include “iostream.h“ void main() int i, j, k; i=8, j=4, k=i+j+4; coutj?+i:+j); couti“,“j“,“kendl; cout(i=9,j=6,i ,/逗号表达式的值为最后一个表达式值,返回本节目录,8,4,16 2,2,4 3,6,6 1 9,6,6,数据类型有3种主要用途: 指明对该类型的数据应分配多大的内存空间; 定义能用于该类型数据的操作; 防止数据类型不相匹配。 C+语言自定义数据类型有:结构体类型、联合体类型、枚举类型、数组类型、指针类型以及类类型等。 C
41、+语言的常量分为整型常量、浮点型常量、字符型常量、字符串常量和符号常量。字符型常量是用单引号括起来的一个字符,字符串常量是用一对双引号括起来的字符序列。 符号常量类似于变量,必须先声明,既改善了程序的可读性,又提高了程序的可维护性。,本章小结,在C+编程中,使用变量应该遵守“先声明、定义,后引用、使用”的原则。变量的命名应遵循一定的规则。 C+语言中定义了丰富的运算符,本章主要介绍了算术运算符与算术表达式、关系运算符与关系表达式、逻辑运算符与逻辑表达式、位运算符、赋值运算符与赋值表达式、条件运算符、逗号运算符以及sizeof运算符。 运算符具有优先级和结合性。当一个表达式中包含多个运算符时,先进行优先级高的运算,再进行优先级低的运算。 C+语言的数据类型转换可分为自动类型转换和强制类型转换,自动类型转换又分为表达式类型转换和赋值类型转换。,返回本节目录,选择填空题 P49 一、二、四 阅读程序题 P50 三 编程题 P51 四2,3 上机实验 实验二:C+简单程序设计实验 (参考实验指导书),本章习题,附表 7位ASCII码表,返回本节目录,
链接地址:https://www.31doc.com/p-1995390.html