基本数据类型与数值表达式
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
字节数
03数据类型和表达式
GDI+ Windows的应用程
序的丰富用户
数据库
的各种对象
26
3.2.3 不同数据类型的转换
隐式转换: 运算结果的数据类型向精度高的数据类型靠 Integer<Long<Single<Double<Currency
优先级
算术运算符>=字符运算符>关系运算符>逻辑运算
显式转换: Ctype(表达式,转换到类型名) 例如:Ctype(123,string)
程序设计与实践 VISUAL
上海理工大学 信息基础教研室
第三章 语言基础
1 2 3 4 5
变量、常量与数据类型 运算符和表达式 常用函数 程序结构和编码规则 综合应用
2
3.1 数据类型、变量和常量
整数 数值型 浮点数 货币型 字节型 字符型 逻辑型 日期型 对象型 短整型 长整型 整型 单精度型 双精度型
18
1. 算术运算符
例
5+10 mod 10 \ 9 / 3意
对算术运算符两边的操作数应是数 值型,若是数字字符或逻辑型,则自 动转换成数值类型后再运算。
例
30-True 结果是31,逻辑量True转为数值-1, False转为数值0 False + 10 + “4” 结果是: 14
注 意
字符和字符串都必须是用西文的双引号引起 ""表示空字符串,而" "表示有一个空格的字符; 若 字 符 串 中 有 双 引 号 , 例 如 , 要 表 示 字 符 串 : 123"abc , 则 用 连 续 两 个 双 引 号 表 示 , 即 : "123""abc"。
C语言第2章基本数据类型与表达式
2.1.3 关键字
关键字(又称保留字)是一种语言中规定具有特定含义的标识符。 C语言可使用以下32个关键字:
auto
double int struct
break
else long switch
case
enum
char
extern
const
float short
continue default
for signed goto sizeof
例: 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; /*不同类型的整型变量x、y、k可运算*/ printf(″x+k=%d,y+k=%d\n″,z,w); } 程序运行结果为: x+k=40,y+k=10
3. 字符常量
C语言的字符常量是用单撇号括起来的一个字符。如 ′x′,′+′,′\n′,′\101′都是合法的字符常量。 字符数据在内存中是以ASCII码存储,它的存储形式与整数的存储 形式类似。因此可以通用。例如: #include <stdio.h> main() { char c1,c2; c1=97; c2=98; printf(″%c ,%c\n″c1,c2); printf(″%d, %d\n″c1,c2); } 在程序中我们将整数97和98分别赋给c1和c2,它的作用相当于以 下两个赋值语句: c1=′a′; c2=′b′; 运行时输出结果如下: a,b
4. 字符串常量
• C语言没有专门的字符串类型变量,但有字符串 常量。字符串常量是由一对双撇号括起来的字符 序列。 如:″changsha″, ″central south university″,″+++ \\?ab″都是合法的字符串常量。 • 不要将字符常量与字符串常量混淆。如: ′a′是字符常量, ″a″是字符串常量
c语言-数据类型、运算符与表达式
c语⾔-数据类型、运算符与表达式⼀、数据类型1、概念(1)标识符1.定义:⽤来标记常量、变量、函数及⽂件名字的字符序列。
2.构成规则:只能由数字、字母、下划线三部分组成,且不能以数字开头,并且严格区别⼤⼩写,不能定义为系统中存在的关键字。
(2)关键字c语⾔中具有特定含义、专门⽤作语⾔特定成分的⼀类标识符注:在C语⾔中,所有的关键字都有固定的意义,不能⽤作其它,且所有的关键字都必须⼩写(3)c的数据类型数据是操作的对象,数据类型是指数据的内在表现形式(代码、存储、运算)(4)常量和变量1. 常量【1】常量:在程序运⾏过程中,其值不能被改变的量 常量区分为不同类型(表⽰形式),如:12、1.0、‘a’【2】符号常量:⽤⼀个标识符代表的⼀个常量定义⽅法:#define 标识符常量#define PRICE 30#include <stdio.h>void main(){int num,total;num = 10;total = num * PRICE;printf("total = %d",total);}2. 变量【1】变量:其值是可以改变的量,它⽤标识符(变量名)来表⽰,在内存中占据⼀定的存储单元变量的定义⽅法:类型符标识符注意事项:<1>见名知意 <2>先定义后使⽤ <3>习惯上,符号常量名⽤⼤写,变量名⽤⼩写,以⽰区别【2】变量赋初值变量先定义,后使⽤,⼀般放在函数开头变量初始化:可以在定义时赋初值2、整型数据(1)整型常量1. 各种进制的整数表⽰⽅法⼗进制整数:由数字0~9和正负号表⽰. 如 123,-456,0⼋进制整数:由数字0开头,后跟数字0~7表⽰. 如 0123,011⼗六进制整数:由0x开头,后跟0~9,a~f,A~F表⽰. 如 0x123,0xff2. 整型常量的类型【1】整型常量的值在-32768~+32767范围内,编译器认为是int类型【2】整型常量的值超过上述范围,⽽在-2147483648 ~ +2147483647范围内,编译器认为是long类型【3】当系统定义short int与int占内存长度相同,则两种类型常量均可以赋给 int和short int型变量【4】在整型常量后⾯加⼤写L或⼩写l,则告诉编译器,把该整型常量作为long类型处理。
数据类型运算符和表达式PPT学习教案
第17页/共38页
例如, int a,b; unsigned int u1,u2; short int s1,s2; long l1,l2; unsigned long m,n;
第18页/共38页
2.2 常量与变量
2. 实型变量 实型变量分为两类: 单精度型:float 双精度型:double 在Visual C++ 6.0中:
在数学里当多个运算符一起组成一个表达式时,我们规定 了优先级(先乘除后加减)和结合规则(从左至右)。
同样,在C语言中,我们也规定了每个运算符的结合规则 及运算符之间的优先级。
第24页/共38页
2.32运.算3符.2与表达式算术运算符和 算术表达式 1、 算术运算符
+(加):3+4、 +3 -(减):3-5、 -5 *(乘):3*5 /(除):5/2、5.0/2 (注意,此二种形式,结果不同) %(取余)(注意:取余运算的操作数只能是整数,且结
第9页/共38页
2.2 常量与变量
(2)指数形式 由十进制的小数形式(称为尾数)加阶码标志
“e”或“E”以及1~3位整数表示的阶码组成。 一般形式为
a E n (a为十进制数,n为带符号十进制整数)
其值为 a× 10n 如: 2.1E5 等价于 2.1×105
注意:实数默认是双精度 实型(double),可以使
2.2 常量与变量
(2)强制类型转换 强制类型转换是通过类型转换运算来实现的。 其一般形式为: (类型说明符) (表达式)
其功能是把表达式的值强制转换成指定类型。例如: (float) a 把a转换为实型 (int)(x+y) 把x+y的结果转换为整型 在使用强制转换时应注意以下问题。 ·类型说明符和表达式都必须加括号(单个变量可以不加括号) ·无论是强制转换或是自动转换,都只是为了本次运算的临时
算术运算符与算术表达式
功能:求字符串长度
• Left(字符串,截取长度)
功能:从字符串截取从左边数过来的N个字符
• Mid(字符串,起始位置N,截取长度M)
功能:从字符串截取从位置N开始的M个字符
多个对象输出中间用”,”或”;”
Cls语句
• 格式ห้องสมุดไป่ตู้cls
作用:清屏
用户交互函数
• Inputbox() 功能:输入数据保存到变量 例子:r=inputbox(“请输入r:”)
print r • Msgbox() 功能:显示多种消息提示 例子:msgbox ” hello ”
数学函数(P30)
A.3 B.4 C.5 D.6
四、常用函数
函数的定义: 人为编写的具有特定功能的程序代码。
格式:函数名(参数) 参数可能没有或有多个
Print语句
格式 [对象名.]print [表达式] 对图片框、窗体上输出文本。对象名省 略时默认在当前窗体上输出。
例:picture1.print “hello” print “hello”;” li min”
[Public | Private | Dim | Static] 变量名 As 数据类型 可采用类型说明符来代替 “As 数据类型” 语句。(P26)
例:dim a as integer
(2)变量的赋值
格式: 变量名= 表达式 注意:
1.等号右边的数据类型要与变量类型相符。 2.若某变量没有赋值就被引用,则数值型变量 默认 为“0”,字符型变量默认为“空串”。 表达式概念:由常量、变量、运算符、函数和圆括号 等按一定的规则连接起来组成的式子。
(3)数值型与可转换为数值型的数据比较, 如:29>"189" ,按数值比较,结果为False。
第02章 基本数据类型与表达式
31
字符串 “WORLD”: 字符串 “A”: 字符 ‘A‟:
W O R L D \0 A \0 A
字符串中可以包含转义字符: cout<<"\x07operating\tsystem"; 字符串中有几个字符?占多少字节? 17个字符,占18个字节 如何显示? 响铃并显示:operating system
\a \n \r \t \v \b \\ \" \„ 0x07 0x0A 0x0D 0x09 0x0B 0x08 0x5C 0x22 0x27 bell(响铃) 换行 回车 制表符 垂直跳格 Backspace ‘\‟ 双引号 单引号
27
转义字符
转义字符还可以直接使用八进制数或十 六进制数,这时,可以表示所有的 ASCII字符:
profit myScore; 即:double myScore;
typedef unsigned short int UINT16 ; UINT16 i ;
19
2.3.2 常量
严格来说,常量又分成符号常量和常数。
符号常量是指代表一个固定不变值的名字; 常数是指在程序中使用的具体的数据。
5
2.1.3 标识符
标识符是程序员声明的单词,它命名程序正 文中的一些实体,如函数名、变量名、类名、 对象名等。 例如:
合法的标识符: apple、_Student、_123、 no1、max_num 不合法的标识符:51job、max num、-abc int new=123; //Error
int a='b'; char c=97; cout<<a<<endl; cout<<c<<endl;
第2章 基本数据类型与表达式(深入)
隐式转换
对于算术运算操作,
• 当操作数类型为算术类型或枚举类型时,编译 程序将在进行算术运算前按常规算术转换规则 (usual arithmetic conversions)自动进行 操作数类型的隐式转换。
• 算术运算的结果类型与转换后的操作数类型相 同。
常规算术转换规则
(usual arithmetic conversions)
应尽量避免把带副作用的操作符用在复杂的表达式中, 最好把它们作为单独的操作来用。
左值表达式和右值表达式
能出现在赋值操作符左边的表达式为左值表达 式,否则是右值表达式。(左值表达式也能出 现在赋值操作符的右边)
左值表达式的结果有明确的内存地址(程序中 能显式地访问该地址所指出的内存单元中的内 容),并且该内存单元中的内容可以被修改。
short int a=2; int b=2147483647; //int类型中最大的正整数 double c=2.0;
表达式:a*b/c将得到错误的结果:-1.0。 解决办法:
(double)a*b/c 或
a*(double)b/c 结果为:2147483647.0
实数的“等于”与“不等于”比较
在写下面的操作符时一定要小心,不要写错了,编译程 序往往发现不了这类错误!
• ==与= • &&与& • ||与| • <<与< • >>与>
隐式转换的问题(续)
隐式转换有时不能满足要求。 例如:
int i=-10; unsigned int j=3; i+j将得到错误的结果:4294967289
g) 否则,如果一个操作数类型为long int,则另一个操 作数转换成long int。
C语言数据类型、运算符与表达式
整型数 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 1 表示数值 表示数值65535
6
整型数据
整型变量的定义 对变量的定义,一般是放在一个函数的开头部分的声明部分。 对变量的定义,一般是放在一个函数的开头部分的声明部分。 main( ) { int a, b, c, d; /* 定义整型变量 */ unsigned u; a = 12; b = -24; u = 10; c = a + u; d = b + u; printf( “a + u = %d \t b + u = %d \n”, c, d ); } 整型数据的溢出 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 例如一个into型变量,如果其值为 型变量, 就会产生溢出, 例如一个 型变量 如果其值为32767,再加 就会产生溢出, ,再加1就会产生溢出 变成-32768。但运行时并不报错。 变成 。但运行时并不报错。
• 字符数据的存放 以字符的ASCII码存放在存储单元中
97
C1
98
C2
01100001
C1
01100010
C2
13
字符型数据
• 例子 大小写字母的转换 main( ) {char c1,c2; c1=‘a’;c2=‘b’; c1=c1-32;c2=c2-32; printf(“%c %c”,c1,c2);} main() {into i; char c; i=‘a’;c=97; printf(“%c,%d\n”,c,c); printf(“%c,%d\n”,i,i);} 注意: 注意:1、字符型数据和整形数据是通用的。但字符数据只能 存放0~255范围内的整数。 2、字符数据与整数可以直接进行算术运算。 3、字符数据与整型数据可以相互赋值 4、Turbo C将字符数据处理成带符号的整数,如果不想 按有符号处理,可将字符变量定义为unsigned char类型。
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); }
- 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’;试求出下列每个表达式的值(假定各表达式互不影响)。