基本数据类型与数值表达式
c语言的数据类型、运算符和表达式

数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
4数据类型及表达式

5.符号常量 在C语言中,可以用一个标识符来表示一
个常量,称之为符号常量。符号常量在使用之 前必须先定义,其一般形式为: #define 标识符 常量 其功能是把该标识符定义为其后的常量值。
整理课件
例4.2
#define PI 3.14159 /*定义符号常量PI*/
main()
{
float area,r;
整理课件
4.2.1 常量
1.整型常量 数据类型为整型的常量即为整型常量,又称整
常数。在C语言中,使用的整型常量有八进制、十 六进制和十进制3种。其中八进制、十六进制主要 用于表示整型常量在内存中的存储形式,也就是表 示某整型常量的机器码;十进制表示外部数据,其 值表示的是真值。
整理课件
(1)八进制整型常量 八进制整型常量必须以0开头,即以0作
\v
竖向跳格
\\
反斜线符"\"
\b
退格
\'
单引号符
\"
双引号
整理课件
4.字符串常量 字符串常量是由一对双引号括起的字符序
列,可以没有字符,也可以只有一个字符。例 如,"CHINA" ,"How are you ! ", "$12.5" ," ","A","\nc\234\\" 等都是合法的字符 串常量。
整理课件
(3)十进制整型常量
十进制整型常量没有前缀。
整型常量的几点说明如下。
① 常量的类型
常量的类型可以根据整型常量描述的数值 来确定其类型。
当整型常量的值为32768~32767时,可 以看作基本型整型常量。
5 数据类型和表达式

变量名举例
strArea Print1 Client_Name 1Base_Ball Base.1 _Base1 Base Base1 BASE Print Name Text Picture
变量名可以参照以下几点: 变量名可以参照以下几点:
尽量选择有意义的名字 可以将变量名各组成部分的开头字母大写, 或加下划线。 可在变量名的前面加一前缀来提示变量的 类型。53页表3 类型。53页表3-3。 strName intAge blnSex sngHeight
算术运算的一般形式 算术运算的一般形式为: 一般形式为 a Op b 或 OP b 其中Op表示运算符, 是左操作数, 是右操作数。 其中Op表示运算符,a是左操作数,b是右操作数。 表示运算符 例如: 例如:100 * 45 a和b也可以是一个表达式。 也可以是一个表达式。 例如: 例如:23 / 5 + 1.2 由数值型数据、算术运算符和圆括号 和圆括号构成的表 由数值型数据、算术运算符和圆括号构成的表 达式称为数值表达式。 算结果为数值型数据。 达式称为数值表达式。其运算结果为数值型数据。 例如: b+sqr(b^2 *a*c))/(2 例如:(-b+sqr(b^2-4*a*c))/(2*a) 特殊情况: 特殊情况 : 单个数值型常量或变量或函数也是 数值表达式。 数值表达式。 例如: 例如:0.5,Pi,a,sin(x)
(3)全局变量
全局变量的作用范围最大,对程序的所有 窗体和模块都有效。 声明时在模块窗口的通用/声明段,用Public 声明时在模块窗口的通用/声明段,用Public 或Global关键字。 Global关键字。
三、常量
顾名思义,常量的值在程序执行过程中保 持不变,不允许用户去改变它。 常量分文字常量和符号常量两种。 常数
C语言程序设计--第3章基本数据类型和表达式

2.实型变量
实型变量分为单精度(float型)和双精度(double型)。 如: float x,y; double z; / *定义x , y为单精度实数* / / *定义z为双精度实数* /
一个float型数据在内存中占4个字节(32位),提供7位有效数字 一个double型数据占8个字节(64位),双精度提供15 ~ 16位有 效数字 值得注意的是,实型常量是double型,当把一个实型常量赋给一 个float型变量时,系统会截取相应的有效位数。
§3.1 基本语法单位
任何一种语言都会根据自身的特点规定 它自己特定的一套基本符号。例如,英语的 基本符号是26个英文字母和一些标点符号。 C语言作为一种程序设计语言,也有它的基 本符号,程序就是由这些基本符号组成的。
§3.1.1 基本符号
程序中要对各种变量和各种函数起名,这些变量名、 函数名都是由语言的基本符号组成的。C的基本符号包 括: (1)数字10个(0~9); (2)英文字母大小写各26个(A~Z, a~z); (3)特殊符号,主要用来表示运算符,它通常是 由1~2个特殊符号组成。包括:
digits是一位或多位十进制数字(从0~9)。 1.575e9表示1.575×109
注意:
◆所有的实型常量均视为双精度类型。实型常量
的整数部分为0时可以省略,如下形式是允许的: .57,.0075e2,-.125,-.175E-2; 须为整数: 如e3,2.1e3.5,. e3,e等都是不合法的指数 形式。
不同的,而且取值范围与机器硬件有关,在 使用时请参阅有关手册。
◆需要指出的是:C语言没有提供布尔(逻辑)
类型,在逻辑运算中,它是以非零表示真 (TRUE),以数值0表示假(FALSE)。
电大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};
第03讲 Python基本数据类型、运算符及表达式

(2)多变量并行赋值 变量1,变量2,…,变量n=表达式1,表达式2, …,表达式n 变量个数要与表达式的个数一致,其过程为:首先计算表达式右边n
✓ 从左到右索引默认0开始的,最大范围是字符串长度少1 ✓ 从右到左索引默认-1开始的,最大范围是字符串开头
字符串操作示例: >>>
-----------------------------------------------------
Python列表
列表可以完成大多数集合类的数据结构实现。它支持字符,数字, 字符串甚至可以包含列表(即嵌套)。
str(x) 将x转换为字符串
chr(x) 将一个整数转换为一个字符,整数为字符的ASCII编码
ord(x) 将一个字符转换为它的ASCII编码的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
eval(x) 将字符串str当做有效表达式求值,并返回计算结果
算术运算符
运算符 +
-
* / // % **
含义 加法
减法
乘法 除法 取整除 取模 幂运算
优先级 这些运算符的优先级相 同,但比下面的运算符 优先级低
这些运算符的优先级相 同,但比上面的运算符 优先级高
结合性 左结合
Python中除法有两种:/和//,在Python3.x分别表示除法和整除运算。 >>> 3/5
>>> a = 5 >>> b = 8 >>> a = b 执行a=5和b=8之后a指向的是5,b指向的是8,当执行a = b的时候,b 把自己指向的地址(也就是8的内存地址)赋给了a,那么最后的结果就 是a和b同时指向了8。 3. 多变量赋值 (1)链式赋值
chap2 基本数据类型、操作符和表达式

The latter form takes more space, but is convenient for adding a comment to each declaration for subsequent modifications. — K&R:P39
2.2.2 整型变量
整型变量在计算机内存中一般占两个字节或四个 字节。我们可以用sizeof(int)来测试。 用以说明整型变量的关键字(也称为数据类型符) 为int。定义变量数据类型语句的一般格式为: 数据类型符 变量名1,变量名2,… C语言规定,每个变量在使用前,都必须先定义。 int a,b;
— K&R:P36
The value of an integer can be specified in octal or hexadecimal instead of decimal. A leading 0 (zero) on an integer constant means octal; a leading 0x or 0X means hexadecimal. For example, decimal 31 can be written as 037 in octal and 0x1f or 0x1F in hex. Octal and hexadecimal constants may also be followed by L to make them long and U to make them unsigned: 0XFUL is an unsigned long constant with value 15 decimal.
There are some restrictions on the names of variables and symbolic constants. Names are made up of letters and digits; the first character must be a letter. The underscore ``_'' counts as a letter; it is sometimes useful for improving the readability of long variable names. Don't begin variable names with underscore, however, since library routines often use such names. Upper and lower case letters are distinct, so x and X are two different names.
C语言第03章--数据类型和表达式

char int
ch = 'a'; i = 1;
17
变量的属性
例:
int sum=10; 类型
内存存放说明: 内存存放说明: 存放说明 变量名 1001 sum 10 变量值
存储单元的地址
二、 变量
命名规则 在C中变量名 函数名 文件名 数组名 等均称标识符 变量名, 函数名, 文件名, 数组名, 变量名 标识符 (identifier), 可由字母 数字 下划线 字母,数字 下划线组成,且第一个必 字母 数字和下划线 须为字母或下划线 字母或 字母 下划线,前8或32个有效。 注意: 字母大小写敏感; 注意 字母大小写敏感 不可用关键字; 不可用关键字 不可出现空格; 不可出现空格 见名知意; 见名知意 如: a1与A1为不同的变量名 如: int, for, if 等 如: stu 1, a 1等 如: sum, sort 等
e前必须有数 前必须有数 字,e后必须 后必须 有整数
合法:0.123、.123、123.0、123.、0.0 合法: 、 、 、 、 错误: 错误 - 2.0e2.5 e8
(3)字符常量 字符常量 —— 用单引号括起来的一个字符或转义字符 括起来的一个字符或转义字符 一个字符或转义字符. 例: ‘A’, ‘o’ , ‘1’, ‘#’, ‘a’ 等
float
必转
char, short long unsigned int 低
double 高
自动类型转换
34
例:
若:i 为 int , f为float ,d 为 double e 为long
字节数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本数据类型与数值表达式一、知识要点计算机的基本功能是进行数据处理。
在C++语言中,数据处理的基本对象是常量和变量。
运算是对各种形式的数据进行处理。
数据在内存中存放的情况由数据类型所决定。
数据的操作要通过运算符实现,而数据和运算符共同组成了表达式。
本章是对C++语言中的数据类型、运算符、表达式等内容的全面介绍,要正确理解其特点,并灵活运用,主要掌握以下的知识要点:1.掌握常量和变量的概念。
2.掌握整型数据和实型数据、字符型数据和字符串型数据的概念和区别。
3.掌握各种类型的变量说明及其初始化。
4.掌握算术运算、关系运算、逻辑运算、赋值运算、逗号运算、条件运算等概念。
5.掌握运算符的优先级、左结合和右结合规则。
6.掌握表达式求值时的自动转换和强制类型转换。
7.掌握自加、自减运算的规则。
8.掌握常用数学函数的功能。
二、例题分析与解答1.选择题例题1:运算符+、=、*、>=中,优先级最高的运算符是()。
A.+ B.= C.* D.>=答案:C分析:根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为=、>=、+、*。
例题2:下列说法正确的是()。
A.cout<<”\n”是一个语句,它能在屏幕上显示”\n”B.\68代表的是字符D。
C.1E+5的写法正确,它表示余割整型常量。
D.0x10相当于020。
答案:D分析:分号是语句的已部分,且\n是转义字符;\68代表了八进制的6、8,而八进制中没有数字8;1E+5是实型常量;十六进制的10相当于十进制的16,相当于八进制的20。
例题3:下列不合法的变量名为()。
A.int B.int1 C.name_1 D.name0答案:A分析:根据变量名命名要求,变量名只能由大小写字母、数字、下划线组成,且系统关键字不能作为变量名。
例题4:下面正确的为()。
A.4.1/2 B.3.2%3C.3/2==1 结果为1 D.7/2 结果为3.5答案:A分析:%运算符要求式整型;关系运算值为0;两个整数相除,商为为相除后的整数部分。
例题5:已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?++d:a<b”值为()。
A.9 B.6 C.8 D.0答案:D分析:此题是考察“++”运算符、逗号运算符、条件运算符及它们运算优先级的综合题,根据这些运算符的运算规则,得出表达式的运算结果。
例题6:已知i=5,j=0,下列各式中运算结果为j=6的表达式是()。
A.j=i+(++j) B.j=j+i++ C.j=++i+j D.j=j+++i答案:C分析:自增++、自减运算符在变量的前面或后面,其运算结果是不同的。
若++或—在变量前,则先将变量的值加1(或减1)后,再将变量的值参与运算;反之则先将变量的值参加运算,再将变量的值加1(或减1)。
自增++、自减运算符优先级高于算术运算符。
例题7:已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是()。
A.0 B.语法错 C.1 D.“假”分析:根据C++语言中运算符优先级的高低,“!”运算符最高,关系运算符高于逻辑运算符。
则上面的表达式转换为:1&&1&&1,结果为1。
答案:C。
2.填空题例题8:如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为____。
答案:1分析:%运算符是求余运算,得到的结果是相除后的余数。
表达式转换为6%2+(6+1)%2=0+7%2=1。
例题9:如果定义int a=2,b=3;float x=5.5,y=3.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_____。
答案:4.5分析:不同类型的数据混合运算时,可以使用强制类型转换符,强制将一种数据类型转换为另一种数据类型后再进行运算。
对表达式,先求表达式的值,再转换值的类型,本题的运算结果为4.5。
例题10:设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为____。
答案:9分析:逗号运算符是是将两个或多个表达式组合成一个表达式的运算符。
求解时从左至右依次计算每个表达式的值,整个表达式的值就是最右边的表达式的值。
本题的答案为9。
例题11:已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘4’的值为____。
答案:e分析:C++语言中,对字符数据进行算术运算,实际上就是对字符的ASCII码进行运算。
以字符形式输出时,再将ASCII码转换为相应的字符输出。
本题表达式为ch=97+8-4=101,101相应的ASCII为字符e。
3.编程题例题12:编写一个程序,从键盘输入半径和高,输出圆柱体的底面积和体积。
解:程序如下:#include<iostrean.h>void main(){double r, h, area, volume;cout<<”请输入半径:”;cin>>r;cout<<”请输入高:”;cin>>h;area=3.14*r*r;volume=area*h;cout<<”底面积是: ”<<area<<endl;cout<<”体积是: ”<<volume<<endl;}三、习题分析与解答1. C++语言中有哪些数据类型?分别说明它们的类型关键字、取值范围、类型长度。
答:C++语言中的数据类型有:整型(短整型,整型,长整型);字符型;逻辑型;枚举型;实型(单精度,双精度,长双精度);引用型(指针,引用);复合型(结构,联合);空类型。
2. 字符常量与字符串常量的区别是什么?答:字符常量与字符串常量的主要区别在于:(1)定界符不同。
字符常量使用单引号,而字符串常量使用双引号。
(2)长度不同。
字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数。
(3)存储要求不同。
字符常量存储的是字符的ASCII码值,而字符串常量除了要存储有效的字符外,还要存储一个结束标志’\0’。
3.说明下面的每个数据各属于哪一种(数值常量、字符常量、字符串、标识符、保留字、运算符、标点、非法数据)?25 18 -3.67 12.8 “4”‘4’x1 “x2”“1949.10” cin K_name3ab “float x ,y “ ; if +“\n” ? ;“sy1.cpp”‘\32’ \’答:数值常量有:25,18,-3.67, 12.8字符常量有:‘4’,\’,‘\32’字符串有:“4”,“x2”,“1949.10”,“sy1.cpp”, “\n”保留字:cin ,int,endl,if运算符:+标点:?非法数据:“float x ,y “ ; , 3ab变量:x1,K_name4.选择题(1)下列数据类型不是C++语言基本数据类型的是()。
A.字符型B.整型C.实型D.数组答案:D(2)在C++语言中,080是()。
A.八进制数B.十进制数C.十六进制数D.非法数答案:B(3)下列字符列中,可作为C++语言程序自定义标识符是()。
A.switchB.fileC.breakD.do答案:B(4) 运算符 +、<=、=、% 中,优先级最低的运算符是()。
A. +B.<=C.=D.%答案:C(5) 下列字符列中,可以作为“字符串常量”的是()。
A. ABCB.″xyz″C.′uvw′D. ′a′答案:B(6) 设变量m,n,a,b,c,d均为0,执行(m = a==b)||(n=c==d)后,m,n的值是()。
A.0,0B. 0,1C. 1,0D. 1,1答案:C(7) 字符串”vm\x43\\\np\102q”的长度是()。
A. 8B. 10C. 17D. 16答案:A(8)在C++语言中,自定义的标识符()。
A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写答案:D(9)设有代码“int a = 5;”,则执行了语句“a + = a - = a*a;”后,变量a的值是()。
A.3B. 0C. -40D. –12答案:C(10)设a为5,执行下列代码后,b的值不为2的是()。
A. b = a/2B. b = 6-(--a)C. b = a%2D. b = a < 3 ? 3: 2答案:C(11)下面的()均是C语言的整型常量。
A.0xffff 和 611B.01b 和 0xa1C.986.012 和 0667D.2e4 和 0x答案:A(12)数学公式写成C表达式,下面的()是正确的。
A.sqrt (abs(pow(x, y) + exp(y)))B.sqrt (abs(pow(y, x) + exp(y)))C.sqrt (fabs(pow(x, y) + exp(y)))D.sqrt (fabs(pow(y, x) + exp(y)))答案:D5.x为int类型,y为double类型,指出下列各表达式值的类型。
(1)1/3 int (2) 48L long(3) 5 % 3 int (4) x*3/y double(5) ‘x’+20 int (6) (int )y int(7) y != 10 bool (8) x<1 || x>10 bool(9) x>10 ? x : sqrt (x) int或float (10) x && y bool(11) true bool (12) (char) (x+10) char(13) 1.0 /3 float (14) sizeof (float) int(15) x,y,x+y, double说明:(9)题,如果x>10成立,表达式值的类型为int,如果x>10不成立,表达式值的类型为float。
(15)题,为逗号表达式,x+y的值即为整个表达式的值,因而值的类型为double。
bool型在C++用int代替,true值为1,false值为0。
6. 写出下列算术表达式的值:(1) x+a%3*(int)(x+y)%2/4 x=2.5,a=7,y=4.7答:上述表达式=2.5+1*(int)7.2%2/4 = 2.5+1*7%2/4 = 2.5(2) (float)(a+b)/2+(int)x%(int)y a=2,b=3,x=3.5,y=2.5答:上述表达式=(float)5/2+3%2 = 2.5+1 = 3.57.设程序中有说明语句int a=20; double x=4.7; char r= ’a’;试求出下列每个表达式的值(假定各表达式互不影响)。