第2章 数据类型

合集下载

C语言教程课件第二章 数据类型、运算符和表达式

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,可以和常量一样进行运算

第2章_数据描述

第2章_数据描述

【例2.2】整形变量的使用。
#include <stdio.h> void main( ) 定义长整型变量x,y { long x,y; int a,b,c,d; x=5; 定义整型变量a,b,c,d y=6; a=7; b=8; c=x+a; d=y+b; printf("c=x+a=%d,d=y+b=%d\n",c,d return; }
【例2.4】实型变量的使用
#include <stdio.h> void main( ) { float a; double b; a=33333.3333; b=33333.33333333333333; printf("%f\n%f\n",a,b); return; }
2.5 字符型数据
字符型常量:
标识符命名
用户标识符主要是指:变量名、函数名 由英文字母、数字和下划线组成,大小写敏感 不可以是数字开头 不允许使用关键字作为标识符的名字 int, float, for, while, if等
以下不正确的C语言标识符是( A) &a B) FOR C) print )。 D)_00
可以把一个字符常量赋予一个字符变量, 但不能把一个字符串常量赋予一个字符变量。 字符常量占一个字节的内存空间。
字符串常量占的内存字节数等于字符串中字符 数加1。增加的一个字节中存放字符 ‘\ 0’(ASCII码为0)。这是字符串结束的标志。例 如,字符串"C program" 在内存中所占的字 节为:
unsigned int(无符号基本整型) short (短整型) unsigned short(无符号短整型) long(长整型) unsigned long(无符号长整型)

C语言学习第二章数据类型

C语言学习第二章数据类型
基本整型:表示范围为0~0177777。 ③十六进制数:
基本整型:表示的范围为0X0~0XFFFF。
2.4.2 整型变量
1.整型变量在内存中的存放形式
以二进制补码的形式存放。
正数:最高位为0,其余各位是该数的二进制表示 负数:最高位为1,其余各位是该数绝对值的二进制
再按位取反加1
2. 整型变量的分类
放一个字符。
下面是对c1、c2赋值: c1=‘a’;c2=‘b’; (实际上其内存中存放的是该字符的ASCII码)
字符变量的初始化,如:char c1=‘a’,c2=‘b’;
2.5.3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上是将该字 符的ASCII代码以二进制形式放到存储单元中。
无符号型:(只能存放0和正整数) ① 基本整型:类型说明符为unsigned int或unsigned
在内存中占2个字节 取值范围为0~2161,即0~65535。 ② 短整型:类型说明符为unsigned short (int) 所占字节和取值范围均同基本整型。 ③ 长整型:类型说明符为unsigned long (int) 在内存中占4个字节 其取值范围是0~2321 即0~4294967295
实型常量也称为实数或者浮点数。 实型常量不分单、双精度,都按双精度double型处理,其有 效位数为(15~)16位。
实型常量的表示方式有:
(1)十进制小数形式
小数形式由数字0~ 9和小数点组成。
当某浮点数整数部分或小数部分为0时,0可以省略,但小 数点不可省略。
例如:
0.0 , .25 ,5.789 ,0.13 ,5.0 , 300. 267.8230 , 123. 等均为合法的实数。

第二章数据类型与表达式

第二章数据类型与表达式
无符号数也可用后缀表示,整型常数的无符号数的后缀为“U” 或“u”。例如:358u,0x38Au,235Lu均为无符号数。
返回本讲目录
2)浮点型常量 浮点型常量也称为实数或者浮点数。在C++中,实数
只采用十进制。它有两种形式:十进制小数形式和 指数形式。
(1)十进制小数形式。由数字0~9和小数点(注意: 必须有小数点)组成,小数点前后如果有单独的0 可以省略。如:123.45、-256.7、0.0、.25、12.都 是合法的小数。
变量定义的一般格式为:
数据类型 变量名1,变量名2,…,变量名n;
在定义一个变量的同时,也可以用赋值运 算符给它赋以初值,称为变量初始化。
变量初始化的格式如下:
数据类型 变量名1=初值1 , 变量名2=初值2 , … , 变量名n=初值n;
“=”在C++中不是数学中的“等于号”, 而是赋值号,它表示把“=”右边的数据存 放在左边的变量表示的存储单元中。
本章学习内容
掌握各种基本数据类型的关键字、数据长度 和表示范围;
掌握各种类型的数值表示; 弄清变量以及变量赋值的实质、标识符的构
成规则; 弄清常量与变量之间的区别; 掌握常用的运算符的含义、优先级和使用方
法; 掌握隐式和显式类型转换的概念和使用方式。
本章目录
第二讲 C++的数据类型、常量与变量 第三讲 运算符与表达式 本章小结
(3)十六进制整数。十六进制整常数的前缀为0X或0x,其数字 取值范围为0~9、A~F或a~f。例如:0X1C、0XFFFF等。
(4)整型常数的后缀。如果使用的数值超过了基本整型数据的 取值范围,就必须用长整型数来表示。长整型数是用后缀 “L”或“l”来表示的。例如:158L、077L和0XA5L等。

C语言程序设计 第2章 数据类型

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章 数据类型、运算符与表达式

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章数据类型,运算符与表达式参考答案及解析

第2章数据类型,运算符与表达式参考答案及解析

参考答案及解析一、选择题1. 答案:C【解析】C语言的标识符命名规则为:①只能由字母、数值和下划线3种字符组成;②第一个字符必须是字母或下划线;③不能与C语言中的关键字或保留字相同。

2. 答案:C【解析】标识符命名规则:标识符必须由字母(a~z或A~Z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout 代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。

因此,本题正确答案为C)。

3. 答案:C【解析】C语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。

因为选项C)中的标识符的第一个字符为"&",所以选项C)为本题的正确答案。

4. 答案:A【解析】在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。

C语言的标识符可以分为关键字、预定义标识符和用户标识符。

选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字,故本题答案为A)。

5. 答案:B【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。

6. 答案:C【解析】C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。

选项C)中goto和int是关键字,b-a中"-"不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。

7. 答案:B【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。

第2章数据类型、运算符和表达式

第2章数据类型、运算符和表达式

(2)预定义的标识符 预定义的标识符在C语言中都有特殊含义,如 scanf和 printf 是库函数名,系统中用来作为输入输出函数。用户一般不要用 它们作为自定义标识符。 (3)用户自定义标识符 在程序中使用的变量名、符号常量名、函数名、数组名、类 型名、文件名、标号名等有效的字符序列,除库函数的函数名、 关键字由系统定义外,其余都由用户自定义,统称为用户自定 义标识符。 例如: total,area,_ab,sum,average,student_name,等 都是合法的标识符。 标识符虽然可由程序员随意定义,但标识 符是用于标识某个量的符号。因此,命名应尽量有相应的意义, 以便阅读理解,做到“见名知义”。 变量名要用小写字母,符号常量名要用大写字母。即在标识 符中,大小写是有区别的。例如:A和a是两个不同的标识符。
数据类型 类型说明符 数值范围
整型 int -32768~32767 -215~215-1 0~65535 -32768~32767 -215~215-1
字节
2 2 2 2 4
无符号整型 unsigned int 短整型 short
无符号短整 unsigned short 型 long 长整型 无符号长整 unsigned ong 型
2.2.4 字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program." , "$12.5" 等都是合法的字符串常 量。字符串常量和字符常量是不同的量。它们之间主要有以下 区别: ①字符常量由单引号括起来,字符串常量由双引号括起来。 ②字符常量只能是单个字符,字符串常量则可以含零个或多个 字符。
3、十进制整常数 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数:237,-568 ,65535 4、整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表 示的数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。如果使用的数超过了 上述范围,就必须用长整型数来表示。长整型数是用后缀“L” 或“l”来表示的。例如: 十进制长整常数 158L (十进制为158) 358000L (十进制为358000) 八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536) 十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章数据类型、运算符和表达式本章首先介绍整型、实型和字符型概念。

常量和变量,整型常量、实型常量、字符型常量、字符串常量和符号常量,整型变量、实型变量和字符型变量。

其次介绍了C语言的基本运算符和表达式。

详细讲解算术运算符、赋值运算符、逗号运算符的优先级、结合性及使用。

详细讲解算术表达式、赋值表达式、逗号表达式,以及运算时各种数据类型转换问题等。

2.1 C语言的字符集和保留字2. 1. 1 C语言的字符集1、字母:大、小写英文字母,注意C程序中严格区分大小写字母,如A和a是不同的字符。

2、数字:0、1、…………、9。

3、图形符号:29个图形(可见)符号,即!" # % & ' ( ) - + * / ^ = < > ~ { | } , . ; : ? [ \ ] 主要用作各种运算符。

4、空白符转义字符:包括空格符、制表符、换行符等。

“ ”代表空格,程序中有时需要用到某些不可见或难以打印的字符,C语言中采用转义字符来表示,如:“\n”表示一个换行符;字符\被称为转移符,表示其后的字符n具有特定的含义。

2. 1. 2保留字和词法约定C语言中基本的词法单位是单词,共有6 类单词:1、标识符用于标识变量名、符号常量名、数组名、函数名、类型名、文件名的有效字符序列。

(标准C 规定有效长度为前31个字符。

)2、保留字具有特定意义的字符串,通常也称为关键字。

3、运算符实现各种运算功能。

由一个或多个字符组成。

与变量和函数一起组成表达式。

4、分隔符有逗号和空格,保留字标识符间必须有空格分隔。

5、常量有数字常量、字符常量、字符串常量、符号常量和转义字符。

6、注释符以“/*”开头,以“*/”结尾,中间有其他字符。

1、标识符(1)标识符由字母(A ~Z,a ~z)、数字(0 ~9)和下画线( _ )组成.(2)标识符的首字符必须是字母和下画线。

(3)标识符长度可以是一个或多个字符。

但只前8 个有效。

(4)标识符不能和C语言的保留字及系统标准库函数同名。

(5)以下画线开头的标识符通常作系统内部函数和变量名。

(6)标识符区分大小写。

(7)标识符可随意,但命名尽量有意义,便于阅读。

合法的标识符:sum, name NAME不合法的标识符:12a 以数字开头#we以#开头num$1包含$字符sum 1中间有空格2. 1. 3 C语言的保留字保留字又称关键字,指具有特定含义、专门用作系统的特定成分的一类标识符。

标准C语言中共有32个关键字,按用途分为4类:1、数据类型:如int、long、short、float、double、char、unsigned、signed、const、void、volatile、enum、struct、union、等2、语句定义流程控制:如if、else、switch、case、do、while、for、goto、break、continue、return、default、typedef等3、存储类:如auto register extern static等4、运算符:sizeof注意关键字不能用作一般标识符,即不允许用作变量名或函数名等。

C语言的关键字都是小写的。

例如else是关键字,但ELSE就不是关键字。

2.2 基本的数据类型2. 2 . 1 C的数据类型2. 2. 2 C语言的基本数据类型2.3常量2.3.1 常量和符号常量1、常量的含义:在程序运行过程中,其值保持不变的量。

常量不需要说明可直接使用2、符号常量1)含义:用一个标识符表示的常量。

2)定义方法:#define 符号常量数值例:#define PRICE 30作用是定义符号常量PRICE的值为30,在程序任何地方用到PRICE符号常量的地方,系统将自动用常量30代替(注意是定义不是赋值,无=)。

定义符号常量的目的是为了提高程序的可读性,便于程序的调试、修改和纠错(如定义半径值便于计算园面积、球体积,求球表面积等)。

3)使用要点:为区分符号常量与变量的不同,通常符号常量用大写字母表示(但不是必须)。

例l2-3-1:#include <stdio.h>#define PRICE 30main(){ int num=10,total;total=num*PRICE;printf("total=%d",total);}例l2-3-2:#include <stdio.h>#define PI 3.1415926 /*定义PI值*/main(){float r,area;scanf("%f",&r);area=PI*r*r; /*代入PI值计算面积*/printf("%f",area);}注意:符号常量不是变量,没有赋值号,也不能重新赋值,在整个作用域内不能再改变。

2.3.2 整型常量C语言表示整型常量的方法有以下三种:十进制整数:用不带任何修饰的整数表示。

如123、-456、0等;八进制整数:以数字O开头的整数。

如O123、O11等;十六进制整数:以数字Ox开头的整数。

如Ox123、OX2ef;八进制数和十六进制数一般是无符号数。

C语言中普通整型常量在机器中占用一个字长,但由于各机器字长不同,所以整数所能表示的数值范围也不同。

系统根据整型常量的具体数值确定其类型。

使用整型常量时要注意是否超出数值表示范围之外,如在一个16位字长的机器上,十进制整数的表示范围是-32768~32767,那么O200000和Ox10000均超出表示范围长整型常量。

整型常量后缀长整型后缀:l或L,如:O2341l、9666L都是长整型常量。

无符号整型后缀:u或U,如986u、OxfedU都是无符号整型常量。

二者可以同时使用,例如:9999LU、O77777LU2.3.3 实型常量(浮点数)十进制数形式的浮点数:由数字和小数点组成。

如:123.456、0.123、123.0、0.0、123.等。

指数形式的浮点数:用字母e表示十进制指数中的10。

如:123e3(表示123*103)、6.E5、.123e+4都是合法的浮点常量。

注意:e字母前必须有数字,且e后的指数必须为整型。

如:e3、2.1e3.5、.e3为不合法。

浮点常量如不带后缀,如上所示,都是双精度类型(double)。

浮点常量可带后缀f或F,如3.14f,那么其类型为单精度浮点型(float)浮点常量可带后缀l或L,如3.14L,那么其类型为长双精度型(long double)2.3.4 字符常量C语言规定以单引号‘’括起来的单个字符为字符常量(只能以单引号括起来,且只能是单个字符)。

如:‘A’、‘a’、‘2’、‟!‟等。

注意:请区别‘A’和‘a’的不同;‘’中的字符引用的是该字符的ASCII码值。

字符常量的存放形式与整数的存放形式相类似,故C中的字符数据与整型数据之间具有相通性。

转义字符常量(也称控制字符常量)用‘\’开头的特殊形式的字符常量,用以产生一个动作。

如:‘\n ’、‘\r ’、‟\t ‟、‟\v ‟、‟\\‟、‟\123‟等。

请同学们理解并记忆常用的转义字符,学会其使用方法。

如 “asee”、 “011”、“We ar e studing C”等。

字符串常量可以看作是一个数组,这个数组的每个元素是一个个字符。

编译程序在编译源程序时自动在每个字符串末尾放空字符…\0‟,作为字符串结束标记。

要点:·请区别”A ”与’A ’的不同。

(说明见书P34) 因为它们各自在内存中存放的长度不同。

’A ’ASCII 码为0的字符2.4变量1、变量的含义:在程序执行过程中,其值可以被改变的量。

变量的构成:变量名、变量值。

(注意区分变量名和变量值:2、变量的命名每个变量具有一个名称,以区分不同的变量,变量名应是合法的标识符。

变量的命名原则:按“见名知意”的原则。

3、不同类型变量的定义与使用变量的定义方法: 变量类型 变量名称 说明: 变量必须先定义、后使用。

应保证变量名使用正确(严格区分大小写)定义后的变量,在编译时可为其分配相应大小的存储单元。

可在编译时依变量类型的定义检查该变量所进行的运算是否合法。

A2.4.1 整型变量及在内存中的存储形式1、含义:用于存放整型数据的变量,表示整型关键字为int。

2、分类:int 整型short int 称为短整型,可简写为shortlong int 称为长整型,可简写为longunsigned int 称为无符号整型,可简写为unsignedunsigned short 无符号短整型unsigned long 无符号长整型3、存储特点:C语言没有具体规定各类型数据所占内存的字节数,根据机型不同而不同,一般以一个机器字长存放一个int 型数据(见P36表2.3)。

4、整型变量的定义方法:int 变量名C程序规定变量要先定义后使用,并且,所有变量的定义都要放在变量的说明部分。

例:5、整型变量可表示的数据范围不同类型机器所对应的不同形式整型数据的存储情况IBM PC PDP_11 VAX_11 IBM 370 Honey well int 16(2B) 16 32 32 36Short 16(2B) 16 16 16 36Long 32(4B) 32 32 32 36 Unsigned int 16(2B) 16 32 32 36Unsigned short 16(2B) 16 16 16 36Unsigned long 32(4B) 32 32 32 36IBM PC机器所对应的不同形式整型数据的存储范围所占位数数的范围Int16-32768~32767即-215~(215-1)Short[int]16-32768~32767即-215~(215-1)Long [int]32-2147483648~2147483647即-231~(231-1)Unsigned int160~65535 即0~(216-1)Unsigned short160~65535 即0~(216-1)Unsigned long320~4294967295 即0~(232-1)6、整型变量可参与的运算算术运算:+(加)-(减)*(乘)/(除)%(取模)其结果仍为整型,要特别说明的有:/用于两个整数相除时,其运算结果只取整数商值,舍弃余数部分。

%只能用于整数运算,其结果为两个整数相除后的余数。

例如,有以下程序段int x,y,z;x=12;y=4;z=5;则下面表达式的结果为:y/z 结果为0x/y 结果为3y%z 结果为4x%y 结果为0关系运算:>大于,>=大于等于,< 小于,<=小于等于,==恒等于,!=不等于例l2-4-1:/*求两个数之和*/#include <stdio.h> void main( ){ int a,b,sum; /*定义变量*/ a=123;b=456; sum=a+b;printf("sum is %d\n",sum); }输出信息:sum is 579 整型变量可表示的数据范围·参见课本P36页说明·如果值在-32768至32767之间,可以赋值给int ,short int 型变量。

相关文档
最新文档