1、第二章第二章l 本章要点本章要点 掌握掌握C C程序的构成与格式(程序的构成与格式(mainmain函数等)函数等)标识的定义规则标识的定义规则 数据类型的定义方法与存储数据类型的定义方法与存储 算术运算符的运算规则算术运算符的运算规则 掌握赋值表达式和复合赋值表达式掌握赋值表达式和复合赋值表达式 掌握自加、自减运算符和逗号运算符的运掌握自加、自减运算符和逗号运算符的运算算2.1 简单简单C语言程序的构成及格式语言程序的构成及格式例例2.1 2.1 计算长为计算长为a a,宽为,宽为b b的长方形面积的长方形面积s s的的C C程序。程序。#include#includemain()main(
2、)/*主函数主函数*/int a,b,s;int a,b,s;/*定义定义a a,b b,s s三个整型变量三个整型变量*/printf(a,b=?);printf(a,b=?);scanf(%d,%d,&a,&b);/scanf(%d,%d,&a,&b);/*读入两个整数,存入变量读入两个整数,存入变量a a和和b b中中*/s=a s=a*b;b;/*计算长方形的面积计算长方形的面积s s的值的值*/printf(s=%dn,s);printf(s=%dn,s);/*输出面积输出面积s s的值的值*/第第2章章 程序设计的初步知识程序设计的初步知识例例2.2 2.2 求两个整数中最大数的求
3、两个整数中最大数的C C程序。程序。#include#includemain()main()/*主函数主函数*/int a,b,c;int a,b,c;/*定义定义a a,b b,c c三个整型变量三个整型变量*/printf(a,b=?);printf(a,b=?);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);/*读入两个整数,存入变量读入两个整数,存入变量a a和和b b中中*/c=max(a,b);c=max(a,b);/*调用调用maxmax函数求函数求a a,b b两个数中的最大数两个数中的最大数*/printf(c=%dn,c);printf(c=%
4、dn,c);/*输出最大数输出最大数c c的值的值*/int max(int x,int y)int max(int x,int y)/*定义定义max max 函数函数*/int z;int z;/*定义整型变量定义整型变量z z*/if(xy)z=x;else z=y;if(xy)z=x;else z=y;/*求求x x,y y两个数中的最大数两个数中的最大数z z*/return(z);return(z);/*返回返回z z的值的值*/第第2章章 程序设计的初步知识程序设计的初步知识2.1 简单简单C语言程序的构成及格式语言程序的构成及格式C C语言程序具有以下结构:语言程序具有以下结构
5、:(1 1)C C程序由函数构成。程序由函数构成。(2 2)函数包括函数首部和函数体。)函数包括函数首部和函数体。(3 3)每个函数体必须用一对花括号)每个函数体必须用一对花括号“和和”括起来,包括起来,包括声明部分和执行部分。括声明部分和执行部分。(4 4)声明部分用来对函数中使用的变量和函数作说明。)声明部分用来对函数中使用的变量和函数作说明。(5 5)执行部分由基本语句组成,确定完成函数功能的操作。)执行部分由基本语句组成,确定完成函数功能的操作。第第2章章 程序设计的初步知识程序设计的初步知识2.1 简单简单C语言程序的构成及格式语言程序的构成及格式C C语言程序格式说明:语言程序格式
6、说明:(1 1)每个基本语句的结尾必须要用)每个基本语句的结尾必须要用“;”“;”作为终止符。作为终止符。(2 2)每个程序必须有一个而且只能有一个称为主函数的)每个程序必须有一个而且只能有一个称为主函数的main()main()函数。函数。(3 3)main()main()函数没有固定的位置。函数没有固定的位置。(4 4)程序一般用小写字母书写。)程序一般用小写字母书写。(5 5)注释部分包含在)注释部分包含在“/“/*”和和“*/”/”之间,可以出现在程之间,可以出现在程序的任何地方,在编译时忽略。序的任何地方,在编译时忽略。第第2章章 程序设计的初步知识程序设计的初步知识2.1 简单简单
7、C语言程序的构成及格式语言程序的构成及格式2.2 标识符、常量与变量标识符、常量与变量常量:常量:是在程序运行过程中其值不能发生改变的量。是在程序运行过程中其值不能发生改变的量。例如例如256256、3.453.45、aa等。等。变量:变量:是在程序运行过程中其值可以发生改变的量。变量在是在程序运行过程中其值可以发生改变的量。变量在内存中占据一定的存储单元。在该存储单元中存放变量的内存中占据一定的存储单元。在该存储单元中存放变量的值。变量的标识通过给变量取名实现,所以一个变量应该值。变量的标识通过给变量取名实现,所以一个变量应该有一个名字。有一个名字。标识符:标识符:用来标识变量名、符号常量名
8、、函数名、数组用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为名、类型名、文件名的有效字符序列称为标识符标识符,简单,简单地说,标识符就是一个名字。地说,标识符就是一个名字。第第2章章 程序设计的初步知识程序设计的初步知识C C语言规定标识符必须满足以下规则:语言规定标识符必须满足以下规则:(1 1)所有标识符必须由一个字母)所有标识符必须由一个字母(a(az z,A AZ)Z)或下划线或下划线(_ _)开头。)开头。(2 2)标识符的其他部分可以用字母、下划线或数字)标识符的其他部分可以用字母、下划线或数字 (0 09 9)组成。)组成。(3 3)大小写字母表示不
9、同意义,即代表不同的标识符。)大小写字母表示不同意义,即代表不同的标识符。(4 4)标识符只有前)标识符只有前3232个字符有效。个字符有效。(5 5)标识符应当尽量遵循)标识符应当尽量遵循“简洁明了简洁明了”和和“见名知义见名知义”的原则。的原则。(6 6)标识符不能使用)标识符不能使用C C语言的关键字。语言的关键字。第第2章章 程序设计的初步知识程序设计的初步知识2.2 标识符、常量与变量标识符、常量与变量所谓所谓关键字关键字就是已被就是已被Turbo C 2.0Turbo C 2.0本身使用、不能作其他本身使用、不能作其他用用途使用的字。途使用的字。Turbo C 2.0Turbo C
10、 2.0有以下关键字:有以下关键字:Turbo C 2.0Turbo C 2.0扩展的共扩展的共1111个:个:asm asm_cs _ds _cs _ds _es_es_ss _ss cdecl cdecl far farnearnearhugehuge interrupt pascal interrupt pascal 由由ANSIANSI标准定义的共标准定义的共3232个:个:auto double auto double intint struct structbreakbreak else long else long switch caseswitch caseenumenum r
11、egister typedef char extern register typedef char externreturnreturnunionunionconstconstfloat shortfloat short unsignedunsignedcontinuecontinue forforsigned void defaultsigned void default goto gotosizeofsizeofvolatilevolatile dodoif if while whilestaticstatic第第2章章 程序设计的初步知识程序设计的初步知识2.2 标识符、常量与变量标识符
12、、常量与变量C C语言规定变量在使用前必须先定义。语言规定变量在使用前必须先定义。变量定义的一般形式为:变量定义的一般形式为:类型说明符类型说明符 变量标识符变量标识符,变量标识符变量标识符,;,;示例:示例:int a,b,c;int a,b,c;float e,f;float e,f;char x,y;char x,y;以上以上intint,floatfloat,charchar为类型说明符,为类型说明符,a a,b b,c c,e e,f f,x x,y y为变量标识符。为变量标识符。第第2章章 程序设计的初步知识程序设计的初步知识2.2 标识符、常量与变量标识符、常量与变量2.3 数据
13、类型数据类型数据的组织形式称为数据结构。数据的组织形式称为数据结构。C C语言中的数据结构表现为数据类型。语言中的数据结构表现为数据类型。第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型1 1整型变量整型变量(TC(TC下的分配下的分配)2.3.1 2.3.1 整型数据整型数据第第2章章 程序设计的初步知识程序设计的初步知识整型变量的定义:整型变量的定义:整型类型说明符整型类型说明符 变量标识符变量标识符,变量标识符变量标识符,;,;示例:示例:int a,b,c;int a,b,c;/*定义定义a a,b b,c c为基本整型变量为基本整型变量*/long d,e;l
14、ong d,e;/*定义定义d d,e e为长整型变量为长整型变量*/unsigned x,y;unsigned x,y;/*定义定义x x,y y为无符号基本整型变量为无符号基本整型变量*/在书写变量说明时,应注意以下几点:在书写变量说明时,应注意以下几点:(1 1)允许在一个类型说明符后说明多个相同类型的变量。各变量名之间用)允许在一个类型说明符后说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。逗号间隔。类型说明符与变量名之间至少用一个空格间隔。(2 2)最后一个变量名之后必须以)最后一个变量名之后必须以“;”“;”号结尾。号结尾。(3 3)变量说
15、明必须放在变量使用之前,一般放在函数体的开头部分。)变量说明必须放在变量使用之前,一般放在函数体的开头部分。1 1整型变量整型变量第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.1 2.3.1 整型数据整型数据2 2整型常量整型常量整型常量即整常数。整型常量即整常数。按不同的进制区分,整型常数有三种表示方法:按不同的进制区分,整型常数有三种表示方法:(1 1)十进制数:)十进制数:以非以非0 0开始的数,开始的数,如:如:254254,-10-10,4560045600。(2 2)八进制数:)八进制数:以以0 0开始的数,开始的数,如:如:0606,010601
16、06,057057。(3 3)十六进制数:)十六进制数:以以0X0X或或0 x0 x开始的数,开始的数,如:如:0X2A0X2A,0XFF0XFF,0 x580 x58。1 1整型变量整型变量第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.1 2.3.1 整型数据整型数据(1 1)一个整常量,如果其值在)一个整常量,如果其值在-32768-32768+32767+32767范围内,认为它是范围内,认为它是intint型。型。它可以赋值给它可以赋值给intint型和型和1ong int1ong int型变量。型变量。(2 2)一个整常量,如果其值超过了上述范围,而
17、在)一个整常量,如果其值超过了上述范围,而在-2147483648-214748364821474836472147483647范围内,则认为它是范围内,则认为它是1ong int1ong int型。可以将它赋值给一个型。可以将它赋值给一个1ong 1ong intint型变量。型变量。(3 3)如果某一计算机系统的)如果某一计算机系统的C C版本确定的版本确定的short int short int 与与intint型数据在内存型数据在内存中占据的长度相同,则它表示的数据范围与中占据的长度相同,则它表示的数据范围与intint型相同,因此一个型相同,因此一个intint型型的常量也同时是一个
18、的常量也同时是一个short intshort int型常量,可以赋给型常量,可以赋给intint型或型或short intshort int型变型变量;量;整型常量的类型:整型常量的类型:2 2整型常量整型常量1 1整型变量整型变量第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.1 2.3.1 整型数据整型数据(4 4)常量中无)常量中无unsignedunsigned型。但一个非负值的整常量可以赋给型。但一个非负值的整常量可以赋给unsignedunsigned型整变量,只要它的范围不超过变量表示的数据范围即可。型整变量,只要它的范围不超过变量表示的数据范围
19、即可。例如,将例如,将5000050000赋给一个赋给一个unsigned intunsigned int型变量是可以的,而将型变量是可以的,而将7000070000赋给它则是不行的(溢出)。赋给它则是不行的(溢出)。(5 5)在一个整常量后面加一个字母)在一个整常量后面加一个字母l l或或L L,则认为是,则认为是1ong int1ong int型常量。型常量。整型常量的类型:整型常量的类型:2 2整型常量整型常量1 1整型变量整型变量第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.1 2.3.1 整型数据整型数据2.3 数据类型数据类型2.3.2 2.3.2
20、 实型数据实型数据1 1实型变量实型变量实型也称为浮点型,实型也称为浮点型,Turbo CTurbo C中实型变量有以下两种类型:中实型变量有以下两种类型:(1 1)单精度浮点型。)单精度浮点型。类型说明符为类型说明符为floatfloat,占,占4 4个字节(个字节(3232位)内存空间,其数值范围为位)内存空间,其数值范围为3.4E-383.4E-383.4E+383.4E+38,只能提供,只能提供七位有效数字。七位有效数字。(2 2)双精度浮点型。)双精度浮点型。类型说明符为类型说明符为doubledouble,占,占8 8个字节(个字节(6464位)内存空间,其数值范围为位)内存空间,
21、其数值范围为1.7E-3081.7E-3081.7E+3081.7E+308,可提供,可提供十六位有效数字。十六位有效数字。说明:说明:浮点数均为有符号浮点数,没有无符号浮点数。浮点数均为有符号浮点数,没有无符号浮点数。第第2章章 程序设计的初步知识程序设计的初步知识1 1实型变量实型变量实型变量定义:实型变量定义:实型类型说明符实型类型说明符 变量标识符变量标识符,变量标识符变量标识符,;,;示例:示例:float a,f;/float a,f;/*定义定义a a,f f为单精度浮点型变量为单精度浮点型变量*/double b;/double b;/*定义定义b b为双精度浮点型变量为双精度
22、浮点型变量*/第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.2 2.3.2 实型数据实型数据1 1实型变量实型变量2 2实型常量实型常量实型常量又称实数或浮点数,有两种表示形式:实型常量又称实数或浮点数,有两种表示形式:(1 1)十进制数形式。)十进制数形式。十进制数形式由数字和小数点组成(注十进制数形式由数字和小数点组成(注意必须有小数点)。例如:意必须有小数点)。例如:0.1230.123、.123.123、123.0123.0、123.123.、0.00.0、123.123123.123等都是十进制数形式。等都是十进制数形式。(2 2)指数形式。)指数形
23、式。指数形式由十进制数加阶码标志指数形式由十进制数加阶码标志“e”“e”或或“E”“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为以及阶码(只能为整数,可以带符号)组成。其一般形式为a a E n E n(a a为十进制数,为十进制数,n n为十进制整数),表示值为为十进制整数),表示值为 a a10n10n,其中,其中,a a,n n均不可缺省。均不可缺省。例:例:0.123E4 0.123E4 表示值为表示值为0.1230.1231010 -5.123E-4 -5.123E-4 表示值为表示值为-5.123-5.1231010第第2章章 程序设计的初步知识程序设计的初步知识2.3
24、 数据类型数据类型2.3.2 2.3.2 实型数据实型数据4-41 1实型变量实型变量2 2实型常量实型常量说明:说明:(1 1)浮点常数只有一种进制(十进制)。)浮点常数只有一种进制(十进制)。(2 2)所有实型常量都被默认为)所有实型常量都被默认为doubledouble类型。类型。(3 3)绝对值小于)绝对值小于1 1的浮点数,其小数点前面的零可以省略。的浮点数,其小数点前面的零可以省略。(4 4)VC 6.0VC 6.0以默认格式输出浮点数时,最多只保留小数点以默认格式输出浮点数时,最多只保留小数点后六位。后六位。第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型
25、2.3.2 2.3.2 实型数据实型数据2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符第第2章章 程序设计的初步知识程序设计的初步知识1 1算术运算符算术运算符2 2算术表达式算术表达式算术表达式是由算术运算符、括号以及操作对象组成的算术表达式是由算术运算符、括号以及操作对象组成的符合符合C C语言语法规则的表达式。语言语法规则的表达式。C C语言规定:语言规定:(1 1)模运算符)模运算符%仅用于整型变量或整型常量。仅用于整型变量或整型常量。(2 2)一个表达式中如有多个运算符,则按相应运算符)一个表
26、达式中如有多个运算符,则按相应运算符的优先级顺序计算。的优先级顺序计算。(3 3)当运算对象两侧的运算符的优先级别相同时,应)当运算对象两侧的运算符的优先级别相同时,应按运算符的结合律处理。按运算符的结合律处理。第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符
27、算术运算符2 2算术表达式算术表达式(4 4)增)增1 1 运算符运算符“+”“+”是操作数加是操作数加1 1,而减,而减1 1运算符运算符“-”“-”则是操作数减则是操作数减1 1。例:例:x=x+1 x=x+1 可写成可写成x+x+或或+x+x x=x-1 x=x-1 可写成可写成x-x-或或-x-x 但是,表达式但是,表达式x+x+与与+x+x是有区别的。表达式是有区别的。表达式x+x+的值为的值为x x的原值(不增的原值(不增加加1 1),而表达式),而表达式+x+x的值为的值为x x变量增加变量增加1 1后的值。后的值。例如:例如:执行执行m=4;x=m+;m=4;x=m+;后后,m
28、=5,x=4,m=5,x=4。执行执行m=4;x=+m;m=4;x=+m;后后,m=5,x=5,m=5,x=5。同理,表达式同理,表达式x-x-值为值为x x的原值(不减的原值(不减1 1),而表达式),而表达式-x-x值为值为x x原值减原值减1 1后的值。后的值。(5 5)+和和-仅适用于变量,不能用于常量或表达式。仅适用于变量,不能用于常量或表达式。第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式3 3类型转换类型转换类型转换
29、有两种方式:类型转换有两种方式:自动类型转换和强制类型转换。自动类型转换和强制类型转换。自动类型转换自动类型转换:运算时不必用户指定,系统自动将不同:运算时不必用户指定,系统自动将不同类型的数据转换成同一类型,然后进行计算。类型的数据转换成同一类型,然后进行计算。C C语言规定不同类型数值转换的规则如下:语言规定不同类型数值转换的规则如下:double float double float(必转)(必转)long long UnsignedUnsignedint char,short int char,short(必转)(必转)第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运
30、算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式3 3类型转换类型转换强制类型转换:强制类型转换:当自动类型转换不能实现目的时,可以用当自动类型转换不能实现目的时,可以用强制类型转换。强制类型转换。强制类型转换的一般形式如下:强制类型转换的一般形式如下:(类型类型)()(表达式表达式)例如:例如:(int)(a+b)(int)(a+b)是将是将a+ba+b的结果强制转换成的结果强制转换成intint型;型;(float)a/b (float)a/b 是将是将a a的结果强制转换成的结果强制转换成f
31、loatfloat型后,型后,再进行计算。再进行计算。第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式1 1赋值运算符赋值运算符C C语言的赋值运算符是语言的赋值运算符是“=”“=”,其作用是将赋值运算符右,其作用是将赋值运算符右边表达式的值赋给其左边的变量。边表达式的值赋给其左边的变量。2 2赋值表达式赋值表达式赋值表达式是由赋值运算符将一个变量和一个表达式连接起赋值表达式是由赋值运算符将一个变量和一个表达式连接起
32、来的式子。来的式子。赋值表达式的一般形式如下:赋值表达式的一般形式如下:变量变量=表达式表达式说明:说明:(1 1)赋值表达式的值等于计算后赋值运算符左边变量的值。)赋值表达式的值等于计算后赋值运算符左边变量的值。(2 2)赋值运算符左边必须是变量。)赋值运算符左边必须是变量。第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式注意:注意:如果赋值运算符两侧的类型不一致,但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型
33、时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(1 1)将实型数据(包括单、双精度)赋给整型变量时,舍弃)将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。实数的小数部分。例:例:执行:执行:int a;int a;a=12.345;a=12.345;结果:结果:a=12a=12(2 2)将整型数据赋给单、双精度变量时,数值不变,但以浮)将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。点数形式存储到变量中。例:例:执行:执行:float b;float b;b=12 b=
34、12;结果:结果:b=12.000000b=12.000000第第2章章 程序设计的初步知识程序设计的初步知识注意:注意:如果赋值运算符两侧的类型不一致,但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(3 3)字符型数据赋给整型变量时,由于字符只占一个字节,)字符型数据赋给整型变量时,由于字符只占一个字节,而整型变量为两个字节,因此将字符数据(而整型变量为两个字节,因此将字符数据(8 8位)
35、放到整型变位)放到整型变量低量低8 8位中。位中。VC6.0VC6.0系统将字符处理为带符号的量,若字符最系统将字符处理为带符号的量,若字符最高位为高位为0 0,则整型变量高,则整型变量高8 8位全补位全补0 0;若字符最高位为;若字符最高位为1 1,则高,则高8 8位全补位全补1 1。例:例:执行:执行:int c;int c;c=a;c=a;结果:结果:c=97 c=97 (4 4)整型数据赋给字符型变量,只把低)整型数据赋给字符型变量,只把低8 8位原封不动送到字位原封不动送到字符型变量(即截断)。符型变量(即截断)。第第2章章 程序设计的初步知识程序设计的初步知识注意:注意:如果赋值运
36、算符两侧的类型不一致,但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(5 5)将带符号的整型数据()将带符号的整型数据(intint型)赋给型)赋给1ong int1ong int型变量时。型变量时。要进行符号扩展,如果要进行符号扩展,如果intint型数据为正值(符号位为型数据为正值(符号位为0 0),则),则1ong int1ong int型变量的高型变量的高1616位补位补0 0;如;
37、如intint型变量为负值(符号位型变量为负值(符号位为为1 1),则),则1ong int1ong int型变量的高型变量的高1616位补位补1 1,将整型数的,将整型数的1616位送位送到到1ong1ong型低型低1616位中,以保持数值不改变。反之,若将一个位中,以保持数值不改变。反之,若将一个1ong int1ong int型数据赋给一个型数据赋给一个intint型变量,只把低型变量,只把低1616位原封不动送位原封不动送到整型变量(即截断)。到整型变量(即截断)。例:例:执行:执行:int a=12;int a=12;执行:执行:int a;int a;long b;long b;l
38、ong b=65536;long b=65536;b=a b=a;a=b a=b;结果:结果:b=12 b=12 结果:结果:a=0a=0第第2章章 程序设计的初步知识程序设计的初步知识注意:注意:如果赋值运算符两侧的类型不一致,但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。第第2章章 程序设计的初步知识程序设计的初步知识3 3复合赋值运算符复合赋值运算符C C语言允许在赋值运算符语言允许在
39、赋值运算符“=”“=”之前加上其他运算符,以构成之前加上其他运算符,以构成其复合运算符。其复合运算符。复合运算符有:复合运算符有:+=+=、-=-=、*=、/=/=、%=%=。例如:例如:a+=2 a+=2 等价于等价于 a=a+2 a=a+2 x x*=y+5=y+5 等价于等价于 x=x x=x*(y+5)(y+5)x%=8 x%=8 等价于等价于 x=x%8 x=x%8同样:同样:(1 1)复合赋值表达式的值等于计算后赋值运算符左边变量的值。)复合赋值表达式的值等于计算后赋值运算符左边变量的值。(2 2)复合赋值运算符左边必须是变量。)复合赋值运算符左边必须是变量。赋值运算符的结合律都是
40、从右向左执行,赋值运算符的结合律都是从右向左执行,其优先级低于所有算术运算符。其优先级低于所有算术运算符。第第2章章 程序设计的初步知识程序设计的初步知识2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式2.4.3 2.4.3 逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符为逗号运算符为“,”“,”。逗号表达式是用逗号运算符把表达式组合成的一个表达式。逗号表达式是用逗号运算符把表达式组合成的一个表达式。其一般形式为:其一般形式为:表达式表达式1,1,表达式表
41、达式2,2,表达式表达式3,3,表达式表达式N N说明:说明:(1 1)逗号表达式的执行过程是:依次求表达式)逗号表达式的执行过程是:依次求表达式1 1的值、表达的值、表达式式2 2的值、的值、表达式、表达式N N的值,整个逗号表达式的值是表达的值,整个逗号表达式的值是表达式式N N的值。的值。(2 2)逗号运算符是所有运算符中级别最低的。)逗号运算符是所有运算符中级别最低的。第第2章章 程序设计的初步知识程序设计的初步知识2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算
42、术表达式例如:例如:main()main()int x,y;int x,y;x=50;x=50;y=(x=x-5,x/5);y=(x=x-5,x/5);上面程序执行后上面程序执行后y y的值为的值为9 9,因为,因为x x的初始值为的初始值为5050,减减5 5后变为后变为4545,4545除除5 5为为9 9赋给赋给y y。第第2章章 程序设计的初步知识程序设计的初步知识2.4.3 2.4.3 逗号运算符和逗号表达式逗号运算符和逗号表达式2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达
43、式算术运算符和算术表达式 ANSI CANSI C并没有具体规定表达式中的子表达式的求值顺序,并没有具体规定表达式中的子表达式的求值顺序,允许各编译系统自己安排。允许各编译系统自己安排。例如例如:对表达式对表达式 a=f1()+f2()a=f1()+f2()并不是所有的编译系统都先调用并不是所有的编译系统都先调用f1()f1(),然后然后 调用调用f2()f2()。在有的情况下结果可能不同。有时会出。在有的情况下结果可能不同。有时会出 现一些令人容易搞混的问题,因此务必要小心谨慎现一些令人容易搞混的问题,因此务必要小心谨慎。第第2章章 程序设计的初步知识程序设计的初步知识2.5 2.5 有关表
44、达式使用中的问题说明有关表达式使用中的问题说明语言中有的运算符为一个字符,有的运算符由语言中有的运算符为一个字符,有的运算符由两个字符组成两个字符组成 ,为避免误解,最好采取大家都能理,为避免误解,最好采取大家都能理解的写法。解的写法。例如例如:不要写成不要写成i+ji+j的形式,而应写成的形式,而应写成 (i+)+j (i+)+j的形式的形式 第第2章章 程序设计的初步知识程序设计的初步知识2.5 2.5 有关表达式使用中的问题说明有关表达式使用中的问题说明在调用函数时,实参数的求值顺序,标准并无统在调用函数时,实参数的求值顺序,标准并无统一规定。一规定。例如:例如:的初值为,如果有下面的函
45、数调用:的初值为,如果有下面的函数调用:printf(,i+)在有的系统中,从左至右求值,在有的系统中,从左至右求值,输出输出“,”。在多数系统中对函数参数的求值顺序是自右。在多数系统中对函数参数的求值顺序是自右而左,函数输出的是而左,函数输出的是“,”。以上这种写法。以上这种写法不宜提倡,不宜提倡,最好改写成最好改写成 j=i+;j=i+;printf(%d printf(%d,%d%d,j j,i)i)第第2章章 程序设计的初步知识程序设计的初步知识2.5 2.5 有关表达式使用中的问题说明有关表达式使用中的问题说明2.6 2.6 本章考点本章考点 C C语言对用户标识符的规定。语言对用户
46、标识符的规定。整型变量的定义和整型常量的表示。整型变量的定义和整型常量的表示。实型变量的定义和实型常量的表示。实型变量的定义和实型常量的表示。字符型变量的定义和字符型常量的表示。字符型变量的定义和字符型常量的表示。算术运算符和算术表达式。算术运算符和算术表达式。赋值运算符和赋值表达式。赋值运算符和赋值表达式。逗号运算符和逗号表达式。逗号运算符和逗号表达式。运算符的优先级和结合律。运算符的优先级和结合律。混合运算中的类型转换。混合运算中的类型转换。第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解1 1以下选项中合法的用户标识符是以下选项中合法的用户标识符是
47、_。A A)longlongB B)_2Test_2TestC C)3Dmax3DmaxD D)A.datA.dat第第2章章 程序设计的初步知识程序设计的初步知识正确答案:正确答案:B B(知识点:(知识点:C C语言对用户标识符的规定)语言对用户标识符的规定)试题分析:试题分析:C C语言规定标识符必须由一个字母(语言规定标识符必须由一个字母(a az z,A AZ Z)或下划线()或下划线(_ _)开头,标识符的其他部分可以用字母、)开头,标识符的其他部分可以用字母、下划线或数字(下划线或数字(0 09 9)组成。)组成。2 2以下选项中不属于以下选项中不属于C C语言的类型的是语言的类
48、型的是_。A A)signed short intsigned short intB B)unsigned long intunsigned long intC C)unsigned intunsigned intD D)long shortlong short第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:D D(知识点:(知识点:C C语言的基本数据类型)语言的基本数据类型)试题分析:试题分析:C C语言的基本类型包括语言的基本类型包括signed short intsigned short int、unsigned long i
49、ntunsigned long int、unsigned intunsigned int、charchar、floatfloat、doubledouble等,没有等,没有long shortlong short类型。类型。第第2章章 数据与运算数据与运算3 3在在1616位位C C编译系统上,若定义编译系统上,若定义long a;long a;,则能给变量,则能给变量a a赋值赋值4000040000的正确语句是的正确语句是_。A A)a=20000+20000;a=20000+20000;B B)a=4000a=4000*10;10;C C)a=30000+10000;a=30000+100
50、00;D D)a=4000La=4000L*10L;10L;2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:D D(知识点:算术运算和赋值运算中的类型转换)(知识点:算术运算和赋值运算中的类型转换)试题分析:试题分析:A A、B B、C C选项中参与算术运算的对象是选项中参与算术运算的对象是intint类型,其类型,其结果应该是结果应该是intint类型,而结果值类型,而结果值4000040000超出超出intint类型范围,发生类型范围,发生溢出,运算结果截取溢出,运算结果截取4000040000的低的低1616位,再将其进行符号位扩展,位,再将其进行符号位扩展,赋给赋给long
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。