第2章C++基本数据类型与表达式
第2章 c语言基本数据类型、运算符和表达式
1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,C语言引入了“转义字符”。
C语言基础知识第二章概述
2019/3/14
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
12
例如:字符A的ASCII码为: 65D(十进制)=41H(十六进制)=101Q(八 进制) ∴字符A可以表示为‘A’、’\x41’、’\101’。 2、分类: char 和 unsigned char; 3、值域: 每个字符型数据在内存中占一个字节;包括 ASCII字符表中的所有字符(可显示字符和非显 示字符)。
– 例如: 某计算机允许表示具有七位有效数字的十进制数,计算 333.3333+0.0002222222,若计算时没有位数的限制,则结果应当 是3.3335222222。 计算机由于字长位数的限制,只能表示七位有 效数字,于是只得将小数点后的七个数字全部删掉,而仅保留其 整数部分,得到和值333.3335。 (4)根据实际要求选择单精度或双精度。
2019/3/14
C语言程序设计教程
13
• 注意: • • • • (1)字符常量只能用单引号括起来,不能用双引号 或其他括号。 (2)字符常量只能是单个字符, 不能是字符串。 ‘ab’ 不是字符常量 (3)字符可以是字符集中任意字符,但数字被定义为 字符型之后就以ASCII码值参与数值运算。 如,‘6’和6是不同的,‘6’是字符常量,而6是整型 常量。
注意
‘a’与“a”的区别。
2019/3/14
C语言程序设计教程
15
• 字符常量与字符串常量的区别:
– ⑴ 定界符不同。 – 字符常量使用单引号,而字符串常量使用双引号。 – ⑵ 长度不同。 – 字符常量的长度固定为1,而字符串常量的长度可以是0,也可以 是某个整数。 – ⑶ 存储要求不同。 – 字符常量存储的是字符的ASCII码值,而字符串常量除了要存储 字符串常量的有效字符外,还要存储一个字符串结束标志‘\0’。
C语言教程课件第二章 数据类型、运算符和表达式
例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
电大C语言程序设计 第2章 基本数据类型和表达式
第2章 基本数据类型和表达式 章 2.2.3 枚举常量
枚举常量是枚举类型中的值,即枚举值。 枚举常量是枚举类型中的值,即枚举值。 枚举类型定义: 枚举类型定义: enum <枚举类型名 枚举类型名>{<枚举表 ; 枚举表>}; 枚举类型名 枚举表 (1)enum color{red,yellow,blue}; (2)enum day{Sun,Mon,Tues,Wed,Thur,Fri,Sat};
第2章 基本数据类型和表达式 章 2.2.5 地址常量 指针类型的值域范围: 指针类型的值域范围:0~(232-1),每一个整数 , 代表内存空间中一个对应单元的存储地址。 代表内存空间中一个对应单元的存储地址。 用户可以直接使用整数0作为地址常量 作为地址常量, 用户可以直接使用整数 作为地址常量,称为 空地址常量,对应的符号号常量在stdio.h中定义,其值为整数 。 中定义, 号常量在 中定义 其值为整数0。
第2章 基本数据类型和表达式 章 2.3 变量 变量是用标识符表示的、 变量是用标识符表示的、其值可以被改变的 量。 1.变量定义语句 变量定义语句 <类型关键字 <变量名 [=<初值表达式 类型关键字> 变量名> 初值表达式>],…; 类型关键字 变量名 初值表达式
第2章 基本数据类型和表达式 章 2.3 变量 2.语句格式举例 语句格式举例 (1)int a,b; (2)char ch1=‘a’,ch2=‘A’; (3)int x=a+2*b; (4)double d1,d2=0.0,d3=3.14159; 3.语句应用举例 见circle.c 语句应用举例
第2章 基本数据类型和表达式 章 2.2.3 枚举常量
(1)enum color c1,c2,c3; (2)enum day today,workday; (3)c1=red; (4)workday=Wed; enum day {Sun=7,Mon=1,Tues,Wed,Thur,Fri,Sat};
C语言基本数据类型
3.实型数据的舍入误差
实型变量是由有限的存储单元组成的, 因此提供的有效数字总是有限的。在有 效位以外的数字将被舍去。由此可能会 产生一些误差。
【例2-6】实型数据的舍入误差。
/*exam2_6*/ main()
{
float x,y; x=123456.789e5;
y=x+20;
printf("x=%f,y=%f\n",x,y); }
[Return]
2.2.2 变量
在程序运行时其值可以改变的量称为变量。
变量是由变量名、变量值和存储单元组成的。
1.变量名的命名规则:
变量名用标识符表示。在C语言中,用来对变 量、符号常量、函数、数组等数据对象命名 的有效字符序列统称为标识符。
C语言规定标识符只能由字母、数字和下划线 3种字符组成,且第一个字符必须是字母或下 划线。
long 长 short 短 signed 有符号 unsigned 无符号
这些修饰符与int可以组合成以下6种 整型变量。即:
有符号的基本整型 无符号的基本整型 有符号的短整型 无符号的短整型 有符号的长整型 无符号的长整型
[signed] int unsigned int [signed] short [int] unsigned short [int] [signed] long [int] unsigned long [int]
程序运行结果:
sum=8
[演示]
4.整型数据的溢出
一个int型变量的最大允许值为32767,如果 再加1,那么结果会是什么样的呢?我们看 下面这个例子。
【例2-4】整型数据的溢出。
/*exam2_4*/
main( ) { int a, b ; a=32767 ; b=a+1 ; printf("\na=%d, a+1=%d\n", a, b) ; a=-32768 ; b=a-1 ; printf("\na=%d, a-1=%d\n", a, b) ; }
C语言程序设计 第2章 数据类型
2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
C语言第02章 数据类型、运算符与表达式
回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
2 C语言 第二章数据类型、表达式
说明
在整型常量尾部加上字母1或 时 在整型常量尾部加上字母 或L时,则 表示长整型常量.比如: 表示长整型常量.比如:18L或18l 或 整型(int)常量的值在 32768~32767之间 常量的值在 整型 之间 长整型(long int)常量的值在 长整型 常量的值在 2147483648 ~ 2147483647之间 之间
三位八进制 001 000 001 二进制 ( (用十进制表示为65) 65)
A' 如 \ 101 –– 表示字符'A' 又: \ x hh
用1到2位16进制数表示的 到 位 进制数表示的 进制数表示的ASCII码对应的字符 码对应的字符
如 \ x 41–– 表示字符'A'
0100 0001 二进制 (用十进制表示为65)
注意: 注意: 实型变量的有效数字的长度视机器而定 例如: 例如: pc机, 单精度一般为7位, 双精度15位 于是: float a; a=123456.789 则实际赋值a←123456.7 单精度表数范围: 单精度表数范围 10–38~1038 双精度表数范围: 双精度表数范围 10–308~10308 实数可以赋给float或double型变量.
对于较大或较小的数,可用指数形式 0.0000126 1260000 1.26E –5 1.26E+6 或1.26E6
' E ', 'e ' 均可, 表示以10为基数.E或e之前必须要 有数字,称为尾数部分或数码部分.规范化的尾数是将 小数点固定在第一位有效数字之后.ddd称为指数,指数 最多可达3位整数.
2.4.2 实型变量
分为单精度型 双精度型 单精度型与双精度型 单精度型 双精度型. 例如: 例如: float x, y, z ; 定义x, y, z为单精度变量. double a, b, c ; 定义a, b, c为双精度变量. 一般地: 单精度占4字节内存单元 字节内存单元; 一般地 单精度占 字节内存单元 双精度占8字节内存单元 双精度占 字节内存单元. 字节内存单元
第2章 C语言,数据类型、运算符和表达式
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言数据类型ppt课件
2.2 常量与变量
(3)整型数据在内存中的存放形式
int x; x=10; 则变量x的值10在内存中的存放形式:
int x;
x=-10; 则变量x的值10在内存中的存放形式:
22
2.2 常量与变量
(4)整型数据的溢出
例2-2 整型数据的溢出问题
#include <stdio.h>
int main()
\r
<
\a
\‘
回车 响铃 单引号
\ddd 3位8进制数代表的字符
转义字符 \t \b \f \\ \“ \xhh
含义 水平制表 退格 换页 反斜线 双引号 2位16进制数代表的字符
12
2.2 常量与变量
如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\060’ -----------’0’
unsigned short。 ⅲ. 无符号长整型:类型说明符为
unsigned long。
20
2.2 常量与变量
(2)整型变量的定义与使用
例2-1 整型变量的使用
#include <stdio.h> int main() {
int x,y,z; x=10;y=20; z=x+y; printf(“x+y=%d\n”,z); return 0; } 输出结果:x+y=30
说明:数据类型所占字节数随机器硬件不同而不同, 上表以IBM PC机为例。
4
2.2 常量与变量
• 数据是程序的处理对象 • C语言将数据分为常量与变量
C语言--ch2--数据类型和表达式
2.3 运算符和表达式
3.算术表达式 1)用算术运算符和括号的式子,称为算术 表达式.例如: a*b/c-1.5+'a' 1+3-4*5-a*a+b*b 2)算术表达式的值: 任何表达式都有值 3*4-5/2*2%3 11
2.3 运算符
4, 注意: 1)C语言算术表达式的乘号(*)不能省略.例如: 数学式b2-4ac,相应的C表达式应该写成: b*b-4*a*c 2)C语言表达式中只能出现已经定义的标识符. 例如,数学πr2相应的C表达式应该写成: # define PI 3.14 int r; PI*r*r (或者 3.14*r*r) 3)C语言可以使用多层圆括号,此时左右括号必 须配对,运算时从内层括号开始,由内向外依 次计算表达式的值 .例如: (((3+4)*5)-9)*2-5
2.3 运算符和表达式
5,运算符的优先级与结合性 1)优先级见教科书 2)在表达式求值时,先按运算符的"优 先级别"高低次序执行 ,例如: a-b*c 等价于 a-(b*c), 3)结合性:左结合,即如果在一个运算 对象两侧的运算符的优先级别相同时,先 与左面的运算符结合,例如: a-b+c等价于(a-b)+c
2.2 常量和变量
4, 变量的作用:保存数据. 保存数据. 保存数据 例:求圆柱体的底面积,表面积,体积 5,变量在任意一个时刻都只能保存一个值. 例:int i; i=12;/*变量i的值这时为12*/ i=i+3;/*i=12+3, i的值这时为15*/ i=4;/* i的值这时为4*/
2.2 常量和变量
课堂练习:判断以下常量是否合法? 课堂练习:判断以下常量是否合法?
12e3; e3; 12.3e; 0.45E1.2
C语言教程第2章数据类型、运算符与表达式
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
第2章C语言的基本数据类型与表达式
2.5 + 97(int)
思考 int a=1,b=2; 表达式a/b+3的结果是多少?
99.5 + 5 104.5(double)
int a=10000,b=30000; 表达式a+b的结果是多少? 如何修改?
3、自增与自减运算符 (++ 、--) ++i,--i:使用之前使i的值增1(或减1); i++,i--:使用之后使i的值增1(或减1);
int a,b,c; a=b=c=3; √
例2-1: main( ) { int x,y,z,w; /*定义x,y,z,w为整型变量*/
unsigned int k; /*定义k为无符号整型变量*/ x=10;y=-20;k=30; z=x+k;w=y+k; printf(“x+k=%d,y+k=%d\n”,z,w); } 程序运行结果为:
例如:int a,b,c ; float x,y;
自己设定,满足 标识符的规定。
;不可省
char c1,c2; 或 int c1,c2;
定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。
2、变量初始化 在定义变量的同时给变量一个初始值。
int a=5, b=3; √
注意
int a=b=c=3;
还使用英文字母a~ f (或A~ F)表示10~15。 如:0x1e √
2、整型变量的分类:
根据数据所占的存储长度的不同分为:int、short、long;
同样存储长度的数据又分unsigned、signed;
故可组合出六种类型。
思考:int a=20000,b=20000,c;
C课件第2章基本数据类型与表达式
说明: 1) 类型修饰符可以修饰除void、bool类型以外的 其他类型; 2) 上述修饰符均可用于整型和字符型; 3) long修饰符还适用于双精度浮点数;
2006-04-01
《C++程序设计》
2.2 C++的基本数据类型
类型名 bool char signed char unsigned char short [int] signed short [int] unsigned short [int] int signed [int] unsigned [int] long [int] signed long [int] unsigned long [int] float double long double
含义 响铃 换行符 回车符 水平制表符(tab 键) 退格符(backspace 键) 反斜线 单引号 双引号 空字符
2006-04-01
《C++程序设计》
4.字符串常量
一对双引号括起的字符序列,字符序列可 以包含空格、转义序列或任何其他字符, 这些字符不一定是C++字符集中的字符, 只要C++编译器支持即可. 例如:“This is a string;”
+(加法运算符,或正值运算符,如1+2,+3) - (减法运算符,或负值运算符,如1-2,-3) *(乘法运算符,如1*2) / (除法运算符,如1/2) 两整数相除,结果取整。
如:5/2结果为2;1/2为0 浮点数参与除法运算,结果是浮点数。
如:5.0/2.0结果为2.5; 1.0/2.0为 0.5 %(模运算符或称求余运算符,如7%3=1)
C语言第2章基本数据类型与表达式
整型数据有:十进制整数、八进制整数和十六进制三种形式。 整型数据有:十进制整数、八进制整数和十六进制三种形式。
(1)十进制整数的表示与数学上的表示相同,如: 十进制整数的表示与数学上的表示相同, 十进制整数的表示与数学上的表示相同 256,-321,0 , , (2)八进制整数的表示以数字 开头,如: 八进制整数的表示以数字0开头 八进制整数的表示以数字 开头, 0234表示八进制整数 表示八进制整数(234)8,所对应的十进制数 表示八进制整数 , 2×82+3×81+4×80=156。 为 × × × 。 (3)十六进制整数的表示以 开头,如: 十六进制整数的表示以0x开头 十六进制整数的表示以 开头, 0x234表示十六进制整数 表示十六进制整数(234)16 表示十六进制整数 (注意:十六进制数前导字符 ,x前面是数字 注意: 前面是数字0) 注意 十六进制数前导字符0x, 前面是数字 在一个整型数据后面加一个字母l或 , 在一个整型数据后面加一个字母 或L,则认 为是long int型量 长整型 。如342L、0L、78L等。 型量(长整型 为是 型量 长整型)。 、 、 等
2.2.3 实数类型
• 实数类型的数据即实型数据,又称之为浮点型数据。 实数类型的数据即实型数据,又称之为浮点型数据。 Turbo C的实型数据又分为单精度型 的实型数据又分为单精度型(float)和双精 的实型数据又分为单精度型 和双精 度型(double)两种,它们所占内存字节数及取值范 两种, 度型 两种 围见表2.1。 围见表 。 • 在C语言程序设计中,实型数据有两种表达形式: 语言程序设计中, 语言程序设计中 实型数据有两种表达形式: (1)十进制数形式。如: 十进制数形式。 十进制数形式 5.734、0.273、8、224等。 、 、 、 等 (2)指数形式。如: 指数形式。 指数形式 546E+3或546E3都代表 都代表546×103。 或 都代表 × 。 • 在一般系统中,一个 在一般系统中,一个float型数据在内存中占 个字 型数据在内存中占4个字 型数据在内存中占 一个double型数据占 个字节。单精度实数提 型数据占8个字节 节,一个 型数据占 个字节。 供了7位有效数字 双精度实数提供15位有效数字 位有效数字, 位有效数字。 供了 位有效数字,双精度实数提供 位有效数字。
C语言知识点:第2章 数据类型、运算符与表达式
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
2 C语言的基本数据类型与表达式
float:单精度浮点型,近似表示实数,在MS DOS 上,每个浮点型变量分配 32 bit 存储空间。浮点型 都是有符号的,可表示数值范围分为三段:-1038 至 -10-38, 0, 10-38 至 1038。数值都先化成指数,再用 二进制存储。6 - 7 位有效数字。 例如:float x, y; 等。 double:双精度型,近似表示更大实数,在MS DOS 上,每个浮点型变量分配 64 bit 存储空间。双精度 型都是有符号的,可表示数值范围分为三段:-10308 至 -10-308, 0, 10-308 至 10308。数值都先化成指数, 再用二进制存储。15 - 16 位有效数字。 例如:double x, y; 等。
设a=10,b=4,c=5 x+=5 x=x+5 90 求:a*=b+c x*=y+8 x=x*(y+8) x%=3 a*=b x=x%3 a=a*b
(2009.3) 14.设有定义:int x=2;,以下表达式中, 值不为6的是 D A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x,x+=2
例2.4 整型变量定义及赋初值
void main() { int x,y,z,w; unsigned int k; x=10; y=-20; k=30; z=x+k; w=y+k; printf("x+k=%d,y+k=%d\n",z,w); }
例2.5 字符型变量定义及赋初值
void main() { char c1,c2; c1='a'; c2='b'; c1=c1-32; c2=c2-32; printf("%c %c",c1,c2); }
第2章 数据类型、运算符、表达式
第二章 数据类型、运算符、表达式一、数据类型C 语言中的数据类型比别的语言丰富。
基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。
1、常量与符号常量常量:在程序执行过程中,其值不发生改变的量称为常量。
常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a ’,‘b ’,‘c ’则为字符常量。
常量即为常数,一般从其字面即可判别。
符号常量:有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。
如:#define PI 3.142、变量变量:程序执行过程中其值可以改变的量。
定义方法定义形式:数据类型 变量名1,变量名2,……变量名n ;整型(int )数据类型 基本类型 整型 单精度型(float )字符型(char )长整型(long )短整型(short )实型 双精度型(double )枚举类型(enum )共用体类型(union )构造类型结构体类型(struct )数组类型空类型(void )指针类型(*)如:char ch1, ch2; /* ch1,ch2为变量*/float x, y; /* x ,y 为实型变量*/int a, b, c; /* a,b,c 为整型变量*/在书写变量说明时,应注意以下几点:(1) 允许在一个类型说明符后,说明多个相同类型的变量。
各变量名之间用逗号间隔。
类型说明符与变量名之间至少用一个空格间隔。
(2) 最后一个变量名之后必须以“;”号结尾。
(3) 变量说明必须放在变量使用之前。
一般放在函数体的开头部分。
另外,也可在说明变量为整型的同时,给出变量的初值。
其格式为:类型说明符 变量名标识符1=初值1,变量名标识符2=初值2,...;3、数据在内存中的表示整型数据:以二进制的形式表示(1) int 类型正数: 如 123 (+123)用 16 位二进制(二个字节)表示原码 反码(原码同) 补码(原码同)最大正整数 215-1=214+213+212+211+210+29+2827+26+25+24+23+22+21+20=32767负数:如 –123原码补码(补码加 1)1取反加1 最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215 而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16最大数215+214+213+2122+21+20=65535最小数 0 (3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short 用16 位二进制(二个字节)表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• • •
符号常量
• 在程序中使用常量时,除了采用字面常量形式外,还可 以首先通过常量定义给常量取一个名字并指定一个类型; 然后,在程序中通过常量名来使用这些常量。 • 符号常量的定义格式为:
const <类型名> <常量名>=<值>; 或 #define <常量名> <值>
C + + 数据类型
基本数据类型 构造数据类型 抽象数据类型
整数类型 实数类型 字符类型 逻辑类型 空值类型 枚举类型 数组类型 结构与联合类型 指针类型 引用类型 类 派生类
第二章 基本数据类型与表达式
主要内容
• • • • • 数据类型的概念 C++基本数据类型 常量与变量 操作符 表达式
数据类型的概念
• 数据为何要分类
– 现实需要:数字和非数字、小数和整数 – 节约内存需要:范围大小、精度高低
• 如何把握一种数据类型
– 值集:描述了该数据类型包含哪些值(包括这些 值的结构); – 操作(运算)集:描述了对值集中的值能实施哪 些运算。 – 整数类型就是一种数据类型,它的值集就是由整 数所组成的集合,它的操作集包括:加、减、乘、 除、取余数等运算。
实数类型
• 实数类型又称浮点型,用于描述带小数点的数。 包括:
– float (单精度型) – double (双精度型) – long double(长双精度型) “float”的范围和精度 < “double” ≤ “long double”
实数类型的内部表示
• 十进制数的科学计数法:a×10b, a:纯小数(尾数),b:整数(指数) • 对应二进制为:a×2b,a、b均为二进制 • 内存空间中存储的是尾数和指数两部分 • 有些十进制小数是不能精确表示成二进制小数的。 例如,十进制小数0.1就无法精确地用二进制表示。
– 正整数原码:‘0’+对应二进制数(指定长度) – 例: (+12)原=(0 0001100) – 负整数原码:‘1’+相反数的二进制数(指定长度) – 例: (-12)原=(1 0001100)
原码和补码
• 补码
– 正整数的补码=原码; – 负整数的补码=相反数原码各位取反后加1 – 例: (-12)补=(1 1110011)+1=(1 1110100)
• 整数在计算机内部用补码表示
– 转化方便:补码求补即为原码 – 统一加减运算:[X+(-)Y]补= [X]补+[(-)Y]补 – 例:00000101 (5)补 00000010 (2)补 + 11111110 (-2)补 +11111000 (-8)补 100000011 (3)补 11111010 (-6)补
整数类型
• 整数类型用于描述通常的整数。包括:
– int – short int或short – long int或long
“short int”的范围 ≤ “int”的范围 ≤ “long int”的范围
– unsigned int或unsigned – unsigned short int或unsigned short – unsigned long int或unsigned long • unsigned(无符号)整数类型只能表示正整数,它们所 占的内存大小与相应的有符号整数类型相同,但所表示 的最大正整数比相应的有符号整数类型所表示的最大正 整数要大(约一倍)。
• C++允许把字符类型的数据(字符的编码)当作 整数类型数值进行算术运算。
常用的字符集及其编码
• ASCII字符集
– 一个字节编码,最多表示256个字符,包括
• • • 10个数字 26个英文字母(包括大、小写) 其它一些常用符号(如标点符号、数学运算符等)
– 0~9十个数字、26个大写英文字母以及26个小写 英文字母的编码各自是连续的 – ASCII编码表(附录) – 字符编码组成的文件称为文本文件。
•
注意:
– 反斜杠(\)应写成:'\\' – 单引号(')应写成:'\'' – 双引号(")可写成:'\"'或 '"'
字符串字面常量
字符串常量是由两个双引号(")括起来的字 符序列构成,其中的字符的写法与字符类型常量基 本相同,即可以是字符本身和转义序列。如: "This is a string." "I'm a student." "Please enter \’Y\’ or \’N\’:" "This is two-line \nmessage!"
– 小数表示法:由整数部分、小数点“.”和小数部分构成, 如:456.78, -0.0057,5.,.5。 – 科学表示法:在小数表示法后加上一个指数部分,指数部 分由E(或e)和一个整数类型数构成,表示基数为10的指数, 如:4.5678E2, -5.7e-3等。
实数类型常量为double型。可以在实数类型常量后面加 上F(f)以表示float型,如:5.6F。也可在实数类型常量后 面加上L(l)表示long double型,如5.6L。
– 增加程序的易读性 – 提高程序对常量使用的一致性 – 增强程序的易维护性
常量和变量
• 常量:在程序执行过程中不变(或不能被改 变)的数据,如:圆周率π、一个星期的天数 等。 • 变量:在程序执行过程中值可变的数据,如: 2*PI*r中的r。
常量的表示形式
• 字面常量:在程序中通过直接写出常量值来使用 的常量,通常又称为直接量(literal)。 • 符号常量(命名常量):通过常量定义给常量取 一个名字并指定一个类型,在程序中通过常量名来 使用这些常量。
空值类型
在C++中提供了一种值集为空的类型:空值型 (void),用以表示: • 没有返回值的函数的返回类型 • 通用指针类型(void *)
数据所占内存长度
在不同规格的计算机上,各种数据类型的数据 的取值范围可能不一样。 • 可以通过“sizeof(类型名)”或“sizeof(变量名)”来 计算各种数据类型的数据所占的内存空间大小(字 节数) 。 • 标准库的头文件climits(或limits.h)定义了所有 整型的取值范围, • 标准库的头文件cfloat(或float.h)定义了所有实 数类型的取值范围。
常用的字符集及其编码(续)
• Unicode(国际通用字符集)
– – – – – – – – – 大部分语言中的字符 2~4个字节 用wchar_t描述 2个字节 用2个unsigned char描述 2个字节 用2个unsigned char描述 2个字节 用2个unsigned char描述
• GB2312(简体中文)
字符类型字面常量
• 字符常量是由两个单引号(')括起来的一个字 符构成,其中的字符写法可以是:
– 字符本身,如:'A' – 转义序列,由\打头的一串符号
• 字符的编码
– 八进制:'\ddd',如:'\101' – 十六进制:'\xhh',如:'\x41'
•
特殊表示,如:'\n'(换行符)、'\r'(回车符)、'\t' (横向制表符)、'\b'(退格符)等
二进制与其他进制的转换
• 二-十进制的转换
– 整数二转十:设二进制数 应十进制数为 – 例:
(11101)2=1×24+1×23+1×22+0×21+1×20=29
,则对
二进制与其他进制的转换
• 二-十进制的转换
– 整数十转二:“除二取余,余数逆转” – 例:29=(11101)2
二进制与其他进制的转换
C++数据类型
– 基本数据类型 是C++语言预先定义好的数据类型,常常又称 为标准数据类型或内置数据类型(built-in types), 它们都是简单类型。 – 构造数据类型 是指由用户利用语言提供的类型构造机制从其 它类型构造出来的数据类型。 – 抽象数据类型(面向对象) 是指由用户利用数据抽象机制把数据与相应的 操作作为一个整体来描述的数据类型。
• 二-十进制的转换
– 小数二转十:设二进制数 十进制数为 – 例:(0.1101)2=1×2-1+1×2-2+0×2-3+1×2-4
=0.8125
,则对应
二进制与其他进制的转换
• 二-十进制的转换
– 小数十转二:“乘2取整” – 例:0.8125 =(0.1101)2
八、十六进制
• 八、十六进制
• Big5(繁体中文)
• Shift-JIS(日文)
逻辑类型
• 逻辑类型用于描述“真”和“假”这样的逻辑值, 它们为条件表达式的计算结果,分别表示条件的满 足和不满足。 • 在C++中,逻辑类型用bool表示,它的值只有两 true false 个:true和false,分别对应“真”和“假”。 • 在C++中,逻辑值也可以参与算术运算,此时它 们作为整数类型值,true对应1、false对应0。 • 在C++中,整型和浮点数也可以看作逻辑类型的 值,规则是:非0为真、0为假
例如: const double PI=3.1415926; 或, #define PI 3.1415926