计算机二级C语言辅导 第二章_第1页
计算机二级C语言辅导 第二章_第2页
计算机二级C语言辅导 第二章_第3页
计算机二级C语言辅导 第二章_第4页
计算机二级C语言辅导 第二章_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章,2.2常量、变量和标识符,一、标识符 和其他高级语言一样,用来标识常量名、变量名、函数名、数组名、类型名、文件名等对象的有效字符序列称为标识符。简单的说,标识符就是一个名字。 1标识符的命名规则 (1)C语言规定标识符只能由字母(大小写均可) 、数字和下划线3种字符组成。 (2)第1个字符必须为字母或下划线。,2、组成:,(1)只能由字母、数字、下划线 组成,且第一个字母必须是 字母或下划线。 (2)大小写敏感 (3)不能使用关键字 (4)长度:最长32个字符 (5)命名原则: 见名知意(name、time) 不宜混淆 如l与I, o与0,标识符有什么组成?,3注意事项 (1)标识符的

2、命名是区分大小写的,例如NAME、name及Name为3个不同的标识符。习惯上变量名用小写字母表示,符号常量一般使用大写英文字母。 (2)C语言中的关键字是一类特殊的标识符,它们具有特定的含义,已被C语言本身使用,不能用作变量名、常量名、函数名等。 (3)C语言中提供了大量的库函数与头文件,这些库函数名和头文件中定义的一些标识符都统称为预定义标识符。用户定义标识符时应注意避免和预定义标识符重名。,(1)关键字 关键字在程序中代表着固定的含义,不能另作他用。如用来说明变量类型的标识符char、float以及for、if等都已有专门的用途,它们不能用作变量名或函数名。,注:C语言的关键字都是小写的

3、。,4标识符的分类,(2)预定义标识符 预定义标识符在C语言中也有特定的含义,如库函数的名字和预编译处理命令等。C语言语法允许用户把这类标识符另作他用,但是失去了在系统中规定的原意。为了避免误解,建议用户不要把这些预定义标识符另作它用。,(3)用户标识符 由用户根据需要定义的标识符称为用户标识符。一般用来给变量、函数、数组或文件等命名。 如果用户标识符与关键字相同,程序会给出出错信息;若与预定义标识符相同,则预定义标识符将失去原来的含义。 重点提示: 标识符的命名规则:(1)C语言规定标识符只能由字母(大小写均可,但区分大小写)、数字和下划线3种字符组成(2)第1个字符必须为字母或下划线(3)

4、已被C语言本身使用,不能用作变量名、常量名、函数名等。,二、基本数据类型,数据为什么有类型之分?,在程序中要处理大量的数 据,对于数据来说,它们有着 某些相同的属性,处理规律相 同,存储格式、取值范围也相 同。我们将具有相同属性的数 据称为一类,即数据类型,符 合计算机中数据的存储方式。,学习任何语言,首先要学习其数据类型.,C语言有丰富的数据类型,可以表达复杂的数据结构,C语言的数据类型,整型,字符型,浮点型(实型),单精度型,双精度型,数组类型,结构类型,共用体类型,基本类型,构造类型,空类型,指针类型,数据类型,基本数据类型,常量,变量,在计算机中存储的数据,按存储的性质 分,可分为:,

5、1、常量类型,十进制:以非0开始,八进制:以”0“开始,十六进制:以”0 x“开始,小数形式表示,指数形式表示,整型常量,实型常量,字符型常量,常量类型,1、常量,定义,在程序执行过程中,其值始终不 变的量,常量不占用存储空间。,分类,整型常数、实型常数、字符常数。,特殊常量,符号常量,用一个符号名来表示一个常量。符合标示符的命名规则。,十进制数:非0开头。 例如:1234 0 -1234,八进制数:以0开头。 例如:01234 010 00 -01234,十六进制数:以0 x开头。 例如:0 x12 0 x0 -0 xc4,1-1整型常量,定义,是由数字串组成的数据。,分类,十进制常数、八进

6、制常数和十六进制常数。,规定:实型常量只能用十进制形式表示,不能用八进制或十六进制表示。 实数在语言中又称浮点数,它有两种表示形式: 1.十进制小数形式:由09数字和小数点组成(注意必须有小数点) 如:.123 , 0.123 , 123.0 , 123. , 0.0 2.指数形式:就是用d E n的形式表示自然表示法的实型常数,其中:d为数值部分;n为指数部分,必须为整数。 注意:1、 e 或 E 之前必须有数字,e后面必须有数字且指数 必须为整数。e3 , 2.1e3.5 , e 2、 实数在用指数形式输出时是按规范化的指数形式 输出。,1-2实型常量,字符常量是由一对引号括起的一个或多个

7、字符。当一个字符时,使用单引号;当是字符串(一个或者为多个字符)时,采用双引号。 举例: a a abc 8 123,1-3字符常量,定义,注明,1.单引号和双引号定义的字符常量的意义不同。 2.单双引号是英文的单双引号,而不是中文意义下的单双引号。 3.单字符可看成整形数和字符型数输出,也可对单字符数据进行算术运算。,常用的以开头的特殊字符如表2.3所示。,字符常量与字符串常量不同,没有字符串变量,用字符串用数组存放,存储:,每个字符串尾自动加一个 0 作为字符串结束标志.,例1:,例2:,例3:,1-4字符串常量,2、变量,在程序中对变量的访问(存入,读取) 都是通过变量名进行的。变量在内

8、存占据 存储空间,变量实质上是代表内存中的某 个存储单元。,a,b,c,d,e,7,c=7,实质:把数据7存入c所代表的存储单元中。,2、变量,注意:,在C语言程序中,所有的变量必须加以说明,没有任何隐含的变量。变量说明主要是指出变量的名称,确定变量的数据类型。 在C语言程序中,变量必须 “先定义、后使用”。,数据类型 变量1,变量2,变量n;,格式:,例:,int a, b, c;,变量类型,基本型:用“int”表示,短整型:用“short”表示,长整形:用“long”表示,无符号型:用“unsigned”表示,单精度型:用“float”表示,双精度型:用“double”表示,整型变量,实型

9、变量,字符型变量:用“char”表示,变量类型,基本数据类型的修饰符,表1,2-1短整型,定义格式,定义举例,取值范围,short int 变量名表;,short int i, j, k; short n;,当n=5时:,当n=-5时:,2字节(16位):,-3276832767,short int a=123;,补充,2-2基本整型,定义格式,定义举例,取值范围,int 变量名表;,int i, j, k; int n=5;/定义变量同时进行初始化,当n=5时:,当n=-5时:,4字节(32位):,-231231,2-3长整型,定义格式,定义举例,取值范围,long int 变量名表;,lo

10、ng int i, j, k; long n;,当n=5时:,当n=-5时:,-231231,long int i=1234567;,4字节(32位):,2-4无符号整数,定义格式,定义举例,取值范围,unsigned int 变量名表;,unsigned int i, j, k; unsigned n;,当n=5时:,2字节(16位):,065535 大于等于零,unsigned int n=-29; unsigned int n=1234;,2-5实型数据,实型数据(又称:浮点型),实型数分类,单精度:,双精度,float:占4字节,提供7位有效数字,double:占8字节,提供1516位

11、有效数字,float a,b,c; double x,y;,例 float a; a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/,2-6字符变量,定义格式,定义举例,变量性质,char 变量名;,char c1, c2, c3; char c4;,一个字符变量在内存中占一个字节。字符变量 只能存放一个字符。字符在内存中以ASCII码 值的形式存储,因此可以像整数一样运算。,注明,不能把字符串常量赋给字符变量。,没有字符串变量,用字符串用数组存放,按作用域的不同,变量分为局部变量和全局变量。 在函数内

12、部说明的变量称为局部变量。局部变量仅由其被定义的模块内部的语句所访问。 全局变量又称全程变量或外部变量。全局变量贯穿整个程序,并且可被任何一个模块使用。,变量的作用域,2.5算术表达式,算术运算符,关系运算符,逻辑运算符,单目运算符:一个运算对象,双目运算符:两个运算对象,按性质分类,按操作个数分,运算符,2.5.1 算术运算符,+,加法运算符或正值运算符。,-,减法运算符或负值运算符。,*,乘法运算符。,/,除法运算符。,%,模除运算符,或称为求余运算符。,运算规则,1.运算的优先顺序为先 *、/、%,后+、- 同等优先级从左到右运算。优先级别相同时,则按规定 “自左至右” ,即先左后右。,

13、举例:1/2 1.0/2.0 2.5*8.0,2.两个类型相同的操作数,运算结果类型 也相同。类型匹配的原则!,运算规则,3.两个类型不同的操作数,运算结果类型 与其中类型较高的类型相同。,举例:1.0/2 1/2.02.5*8,4.求余运算(%)的运算结果其值为相除所得 余数,而符号与被除数的符号相同。 注: 运算对象都是整型。,举例:-135=-3 13%(-5)=3,算术表达式,定义,用算术运算符将运算对象连接起来的式子。,其中:运算对象包括常量、变量、函数等。,举例,a+b,c+d,a+b/c+d,(a+b)/(c+d),a+b,2c,(a+b)/2c,(a+b)/2*c,(a+b)/

14、(2*c),1、C语言允许双精度、单精度、整型及字符数据之间混合运算 10+a+1.58765.1234 b 是允许的。 但有一个规则:先转换成同一类型,再计算。 2、强制类型转换表达式: (类型名)(表达式) 例: (double)(10%3)=1.0 (int)(3.14)=3,2.5.3强制类型转换,double float,高低,图中“ ” 表示必定转换。如a + b,先转换为int。结果为 int。,转换方法:,long,unsigned,int char, short,2.6赋值运算符,其他语言的赋值语句C语言的赋值表达式,算式格式,变量名=表达式,运算过程,1.赋值。2.求表达式

15、值。,举例,a=10 Y=1+3*sin(x)*cos(x),赋值运算符的优先级别只高于逗号 运算符比其他的运算符都低。,赋值运算的说明,1.“=”不是等于号,而是赋值运算符。,2. 赋值运算符左边必须是变量,不能是表 达式,并且赋值运算要由右向左进行。,A+B=3; A=2+C=3;,3. 赋值运算符的右边还可是一赋值表达式, 称为多重赋值表达式。,4. 赋值运算符右侧表达式的值即为赋值表 达式的值。,5. “=”是赋值运算符,不能写成“=”。,赋值表达式语句,表示,在赋值表达式后,加分号;,称为 赋值语句。,我只是个表达式呀!,;,我已经成为表达式语句了!,定义:在赋值符“=”之前加上其他

16、运算符,可以构成复合的运算符。 例如: x+=5等价于x=x+5 x*=y+8等价于x=x*(y+8) x%=3等价于x=x%3 a*=b等价于a=a*b,2.6.2复合赋值运算符,复合赋值运算符,语言可使用的复合赋值运算符有10种。 1、与算术运算符组合:+=-=、*=、/=、 %= 2、与移运算符组合:= 3、位逻辑运算符组合: j = +i; /* 先使i加1,再赋给j。执行后j=4, i=4 */ j = 3; j = i+; /* 先把i赋给j,再使i加1。执行后:j=3,i=4 */,注意: (1)+和-只能用于变量,不能用于常量和表达式。 例: 5+; (a+b)+; #defi

17、ne ONE 1; ONE+;,结合方向为“自右至左”,例:,一般形式: 表达式1, 表达式2,其计算规则: 先计算表达式1,再计算表达式2,最后值为表达式2的值。,例:a=35, a 4 则: 先计算3 5, a15, a 4=60,结果为60。,2.4.3 逗号运算符,又如: (a=35, a 4), a+5,扩展形式: 表达式1, 表达2, ,表达式n,结果为20(作为逗号表达式的值), a+5=20 (此时a值未变), 3 5=15a, a 4=60 (此时a值未变),结果为表达式n的值,字节运算符sizeof 语言的sizeof是一个单目编译状态运算符,它返回变量或括号中的类型修饰符的字节长度。它的一般形式为: sizeof(变量名) sizeof(类型名) 如: float f; printf(%f,sizeof(f); printf(%f,sizeof(int); 其输出显示字节数为4和2。,程序举例2.3,main() int a,b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论