C语言第2章C程序设计的初步知识.ppt

上传人:桔**** 文档编号:570204483 上传时间:2024-08-02 格式:PPT 页数:49 大小:377.84KB
返回 下载 相关 举报
C语言第2章C程序设计的初步知识.ppt_第1页
第1页 / 共49页
C语言第2章C程序设计的初步知识.ppt_第2页
第2页 / 共49页
C语言第2章C程序设计的初步知识.ppt_第3页
第3页 / 共49页
C语言第2章C程序设计的初步知识.ppt_第4页
第4页 / 共49页
C语言第2章C程序设计的初步知识.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《C语言第2章C程序设计的初步知识.ppt》由会员分享,可在线阅读,更多相关《C语言第2章C程序设计的初步知识.ppt(49页珍藏版)》请在金锄头文库上搜索。

1、第二章第二章l 本章要点本章要点2.1 简单简单C语言程序的构成及格式语言程序的构成及格式例例2.1 2.1 计算长为计算长为a a,宽为,宽为b b的长方形面积的长方形面积s s的的C C程序。程序。#include#includemain() main() /* /*主函数主函数*/*/ 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); /*读入两个整数,存入变量读入两个整数,存入

2、变量a a和和b b中中*/*/ s=a*b; s=a*b; /*/*计算长方形的面积计算长方形的面积s s的值的值*/*/ printf(s=%dn,s); printf(s=%dn,s); /*/*输出面积输出面积s s的值的值*/*/ 第第2章章 程序设计的初步知识程序设计的初步知识例例2.2 2.2 求两个整数中最大数的求两个整数中最大数的C C程序。程序。#include#includemain() main() /*/*主函数主函数*/*/ int a,b,c; int a,b,c; /*/*定义定义a a,b b,c c三个整型变量三个整型变量*/*/ printf(a,b=?)

3、; 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=%dn,c); /*/*输出最大数输出最大数c c的值的值*/*/ int max(int x,int y) int max(int x,int y) /*/*定义定义max max 函数函数*/*/int z

4、; 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语言程序具有以下结构:语言程序具有以下结构:(1 1)C C程序由函数构成。程序由函数构成。(2 2)函数包括函数首部和函数体。)函数包括函数首部和函数体。(3 3)每个函数体必

5、须用一对花括号)每个函数体必须用一对花括号“ “和和” ”括起来,包括起来,包括声明部分和执行部分。括声明部分和执行部分。(4 4)声明部分用来对函数中使用的变量和函数作说明。)声明部分用来对函数中使用的变量和函数作说明。(5 5)执行部分由基本语句组成,确定完成函数功能的操作。)执行部分由基本语句组成,确定完成函数功能的操作。第第2章章 程序设计的初步知识程序设计的初步知识2.1 简单简单C语言程序的构成及格式语言程序的构成及格式C C语言程序格式说明:语言程序格式说明:(1 1)每个基本语句的结尾必须要用)每个基本语句的结尾必须要用“; ;”作为终止符。作为终止符。(2 2)每个程序必须有

6、一个而且只能有一个称为主函数的)每个程序必须有一个而且只能有一个称为主函数的mainmain()()函数。函数。(3 3)main()main()函数没有固定的位置。函数没有固定的位置。(4 4)程序一般用小写字母书写。)程序一般用小写字母书写。(5 5)注释部分包含在)注释部分包含在“/*/*”和和“*/*/”之间,可以出现在程之间,可以出现在程序的任何地方,在编译时忽略。序的任何地方,在编译时忽略。第第2章章 程序设计的初步知识程序设计的初步知识2.1 简单简单C语言程序的构成及格式语言程序的构成及格式2.2 标识符、常量与变量标识符、常量与变量常量:常量:是在程序运行过程中其值不能发生改

7、变的量。是在程序运行过程中其值不能发生改变的量。例如例如256256、3.453.45、aa等。等。变量:变量:是在程序运行过程中其值可以发生改变的量。变量在是在程序运行过程中其值可以发生改变的量。变量在内存中占据一定的存储单元。在该存储单元中存放变量的内存中占据一定的存储单元。在该存储单元中存放变量的值。变量的标识通过给变量取名实现,所以一个变量应该值。变量的标识通过给变量取名实现,所以一个变量应该有一个名字。有一个名字。标识符:标识符:用来标识变量名、符号常量名、函数名、数组名、用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为类型名、文件名的有效字符序列称为标识

8、符标识符,简单地说,简单地说,标识符就是一个名字。标识符就是一个名字。第第2章章 程序设计的初步知识程序设计的初步知识C C语言规定标识符必须满足以下规则:语言规定标识符必须满足以下规则:(1 1)所有标识符必须由一个字母)所有标识符必须由一个字母(a(az z,A AZ)Z)或下划线(或下划线( _ _ )开头。)开头。(2 2)标识符的其他部分可以用字母、下划线或数字)标识符的其他部分可以用字母、下划线或数字 (0 09 9)组成。)组成。(3 3)大小写字母表示不同意义,即代表不同的标识符。)大小写字母表示不同意义,即代表不同的标识符。(4 4)标识符只有前)标识符只有前3232个字符有

9、效。个字符有效。(5 5)标识符应当尽量遵循)标识符应当尽量遵循“简洁明了简洁明了”和和“见名知义见名知义”的的原则。原则。(6 6)标识符不能使用)标识符不能使用C C语言的关键字。语言的关键字。第第2章章 程序设计的初步知识程序设计的初步知识2.2 标识符、常量与变量标识符、常量与变量所谓所谓关键字关键字就是已被就是已被Turbo C 2.0Turbo C 2.0本身使用、不能作其他用本身使用、不能作其他用途使用的字。途使用的字。Turbo C 2.0Turbo C 2.0有以下关键字:有以下关键字:Turbo C 2.0Turbo C 2.0扩展的共扩展的共1111个:个: asm as

10、m_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 register typedef char extern register typedef char externretur

11、nreturnunionunionconstconstfloat shortfloat short unsignedunsignedcontinuecontinue forforsigned void defaultsigned void default goto gotosizeofsizeofvolatilevolatile dodoif if while whilestaticstatic第第2章章 程序设计的初步知识程序设计的初步知识2.2 标识符、常量与变量标识符、常量与变量C C语言规定变量在使用前必须先定义。语言规定变量在使用前必须先定义。变量定义的一般形式为:变量定义的一般形式

12、为: 类型说明符类型说明符 变量标识符变量标识符, ,变量标识符变量标识符, ,; ;示例:示例: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 数据类型数据类型数据的组织形式称为数据结构。数据的组织形式称为数据结构。C C语言中的数据结构表现为数据类型

13、。语言中的数据结构表现为数据类型。 第第2章章 程序设计的初步知识程序设计的初步知识数据类型数据类型数据类型数据类型构造类型构造类型构造类型构造类型指针类型指针类型指针类型指针类型空类型(空类型(空类型(空类型(无值类型)无值类型)无值类型)无值类型) void void void void枚举类型枚举类型枚举类型枚举类型 enum enum enum enum数组类型数组类型数组类型数组类型结构类型结构类型结构类型结构类型 struct struct struct struct联合类型联合类型联合类型联合类型 union union union union基本类型基本类型基本类型基本类型整型

14、整型整型整型 int int int int字符型字符型字符型字符型 char char char char实型(浮点型)实型(浮点型)实型(浮点型)实型(浮点型)单精度实型单精度实型单精度实型单精度实型 float float float float双精度实型双精度实型双精度实型双精度实型 doubledouble2.3 数据类型数据类型1 1整型变量整型变量(TC(TC下的分配下的分配) )数据类型数据类型类型说明符类型说明符 位(字节数)位(字节数)数的范围数的范围基本整型基本整型int16(2 2)-327683276732767-215(2(215-1)短整型短整型short16(2

15、 2)-327683276732767-215(2(215-1)长整型整型long int32(4 4)-214748364821474836472147483647-231(2(231-1)无符号基本整无符号基本整型型unsigned int16(2 2)065535655350(2(216-1)无符号短整型无符号短整型unsigned short16(2 2)065535655350(2(216-1)无符号无符号长整型整型unsigned long32(4 4)0429496729542949672950(2(232-1)2.3.1 2.3.1 整型数据整型数据第第2章章 程序设计的初步知

16、识程序设计的初步知识整型变量的定义:整型变量的定义: 整型类型说明符整型类型说明符 变量标识符变量标识符, ,变量标识符变量标识符, ,; ;示例:示例:int a,b,c; int a,b,c; /*/*定义定义a a,b b,c c为基本整型变量为基本整型变量*/*/ long d,e; long d,e; /*/*定义定义d d,e e为长整型变量为长整型变量*/ */ unsigned x,y; unsigned x,y; /*/*定义定义x x,y y为无符号基本整型变量为无符号基本整型变量*/*/在书写变量说明时,应注意以下几点:在书写变量说明时,应注意以下几点:(1 1)允许在一

17、个类型说明符后说明多个相同类型的变量。各变量名之间用)允许在一个类型说明符后说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。逗号间隔。类型说明符与变量名之间至少用一个空格间隔。(2 2)最后一个变量名之后必须以)最后一个变量名之后必须以“; ;”号结尾。号结尾。(3 3)变量说明必须放在变量使用之前,一般放在函数体的开头部分。)变量说明必须放在变量使用之前,一般放在函数体的开头部分。1 1整型变量整型变量第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.1 2.3.1 整型数据整型数据2 2整型常量整型常量整型常量即整常数

18、。整型常量即整常数。按不同的进制区分,整型常数有三种表示方法:按不同的进制区分,整型常数有三种表示方法:(1 1)十进制数:)十进制数:以非以非0 0开始的数,开始的数,如:如:254254,-10-10,4560045600。(2 2)八进制数:)八进制数:以以0 0开始的数,开始的数,如:如:0606,01060106,057057。(3 3)十六进制数:)十六进制数:以以0X0X或或0x0x开始的数,开始的数,如:如:0X2A0X2A,0XFF0XFF,0x580x58。1 1整型变量整型变量第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.1 2.3.1

19、整型数据整型数据(1 1)一个整常量,如果其值在)一个整常量,如果其值在-32768-32768+32767+32767范围内,认为它是范围内,认为它是intint型。型。它可以赋值给它可以赋值给intint型和型和1ong int1ong int型变量。型变量。(2 2)一个整常量,如果其值超过了上述范围,而在)一个整常量,如果其值超过了上述范围,而在-2147483648-214748364821474836472147483647范围内,则认为它是范围内,则认为它是1ong int1ong int型。可以将它赋值给一个型。可以将它赋值给一个1ong 1ong intint型变量。型变量。

20、(3 3)如果某一计算机系统的)如果某一计算机系统的C C版本确定的版本确定的short int short int 与与intint型数据在内存型数据在内存中占据的长度相同,则它表示的数据范围与中占据的长度相同,则它表示的数据范围与intint型相同,因此一个型相同,因此一个intint型的型的常量也同时是一个常量也同时是一个short intshort int型常量,可以赋给型常量,可以赋给intint型或型或short intshort int型变量;型变量;整型常量的类型:整型常量的类型:2 2整型常量整型常量1 1整型变量整型变量第第2章章 程序设计的初步知识程序设计的初步知识2.3

21、 数据类型数据类型2.3.1 2.3.1 整型数据整型数据(4 4)常量中无)常量中无unsignedunsigned型。但一个非负值的整常量可以赋给型。但一个非负值的整常量可以赋给unsignedunsigned型整变量,只要它的范围不超过变量表示的数据范围即可。型整变量,只要它的范围不超过变量表示的数据范围即可。例如,将例如,将5000050000赋给一个赋给一个unsigned intunsigned int型变量是可以的,而将型变量是可以的,而将7000070000赋赋给它则是不行的(溢出)。给它则是不行的(溢出)。(5 5)在一个整常量后面加一个字母)在一个整常量后面加一个字母l l

22、或或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 实型数据实型数据1 1实型变量实型变量实型也称为浮点型,实型也称为浮点型,Turbo CTurbo C中实型变量有以下两种类型:中实型变量有以下两种类型:(1 1)单精度浮点型。)单精度浮点型。类型说明符为类型说明符为floatfloat,占,占4 4个字节(个字节(3232位)位)内

23、存空间,其数值范围为内存空间,其数值范围为3.4E-383.4E-383.4E+383.4E+38,只能提供七位,只能提供七位有效数字。有效数字。 (2 2)双精度浮点型。)双精度浮点型。类型说明符为类型说明符为doubledouble,占,占8 8个字节(个字节(6464位)内存空间,其数值范围为位)内存空间,其数值范围为1.7E-3081.7E-3081.7E+3081.7E+308,可提供,可提供十六位有效数字。十六位有效数字。 说明:说明:浮点数均为有符号浮点数,没有无符号浮点数。浮点数均为有符号浮点数,没有无符号浮点数。第第2章章 程序设计的初步知识程序设计的初步知识1 1实型变量实

24、型变量实型变量定义:实型变量定义: 实型类型说明符实型类型说明符 变量标识符变量标识符, ,变量标识符变量标识符, ,; ;示例:示例:float a, f; /*float a, f; /*定义定义a a,f f为单精度浮点型变量为单精度浮点型变量*/ */ double b; /* double b; /*定义定义b b为双精度浮点型变量为双精度浮点型变量*/ */ 第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.2 2.3.2 实型数据实型数据1 1实型变量实型变量2 2实型常量实型常量实型常量又称实数或浮点数,有两种表示形式:实型常量又称实数或浮点数,有

25、两种表示形式:(1 1)十进制数形式。)十进制数形式。十进制数形式由数字和小数点组成(注十进制数形式由数字和小数点组成(注意必须有小数点)。例如:意必须有小数点)。例如:0.1230.123、.123.123、123.0123.0、123.123.、0.00.0、123.123123.123等都是十进制数形式。等都是十进制数形式。(2 2)指数形式。)指数形式。指数形式由十进制数加阶码标志指数形式由十进制数加阶码标志“e e”或或“E E”以及阶码(只能为整数,可以带符号)组成。其一般形以及阶码(只能为整数,可以带符号)组成。其一般形式为式为a E n a E n (a a为十进制数,为十进制

26、数,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 数据类型数据类型2.3.2 2.3.2 实型数据实型数据4-41 1实型变量实型变量2 2实型常量实型常量说明:说明:(1 1)浮点常数只有一种进制(十进制)。)浮点常数只有一种进制(十进制)。(2 2)所有实型常量都被默认为)所有实型常

27、量都被默认为doubledouble类型。类型。(3 3)绝对值小于)绝对值小于1 1的浮点数,其小数点前面的零可以省略。的浮点数,其小数点前面的零可以省略。(4 4)VC 6.0VC 6.0以默认格式输出浮点数时,最多只保留小数点以默认格式输出浮点数时,最多只保留小数点后六位。后六位。第第2章章 程序设计的初步知识程序设计的初步知识2.3 数据类型数据类型2.3.2 2.3.2 实型数据实型数据2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符运算符运算符作用作用运算符运算符作用作用+加加-取取负-减减-

28、减减1 1*乘乘+增增1 1/除除(类型型) )类型型转换%取模取模第第2章章 程序设计的初步知识程序设计的初步知识1 1算术运算符算术运算符2 2算术表达式算术表达式算术表达式是由算术运算符、括号以及操作对象组成的算术表达式是由算术运算符、括号以及操作对象组成的符合符合C C语言语法规则的表达式。语言语法规则的表达式。C C语言规定:语言规定:(1 1)模运算符)模运算符% %仅用于整型变量或整型常量。仅用于整型变量或整型常量。(2 2)一个表达式中如有多个运算符,则按相应运算符)一个表达式中如有多个运算符,则按相应运算符的优先级顺序计算。的优先级顺序计算。(3 3)当运算对象两侧的运算符的

29、优先级别相同时,应)当运算对象两侧的运算符的优先级别相同时,应按运算符的结合律处理。按运算符的结合律处理。第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式运算符运算符优先级优先级(值小的优先级高)(值小的优先级高)结合律结合律+-(减)(减)4从左向右从左向右*/%3-(取(取负)-+( (类型型) )2从右向左从右向左第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1

30、 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符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后的值。后的值。

31、例如:例如:执行执行m=4;x= m +;m=4;x= m +;后后,m=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 算术运算符和算术表达式算术运算符和算术表达

32、式1 1算术运算符算术运算符2 2算术表达式算术表达式3 3类型转换类型转换类型转换有两种方式:类型转换有两种方式:自动类型转换和强制类型转换。自动类型转换和强制类型转换。自动类型转换自动类型转换:运算时不必用户指定,系统自动将不同:运算时不必用户指定,系统自动将不同类型的数据转换成同一类型,然后进行计算。类型的数据转换成同一类型,然后进行计算。C C语言规定不同类型数值转换的规则如下:语言规定不同类型数值转换的规则如下:double float double float (必转)(必转)long long UnsignedUnsignedint char ,short int char ,s

33、hort (必转)(必转)第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式1 1算术运算符算术运算符2 2算术表达式算术表达式3 3类型转换类型转换强制类型转换:强制类型转换:当自动类型转换不能实现目的时,可以用当自动类型转换不能实现目的时,可以用强制类型转换。强制类型转换。强制类型转换的一般形式如下:强制类型转换的一般形式如下: ( (类型类型)()(表达式表达式) )例如:例如:(int)(a+b) (int)(a+b) 是将是将a+ba+b的结果强制转换成的结果强制转换成int

34、int型;型; (float) a/b (float) a/b 是将是将a a的结果强制转换成的结果强制转换成floatfloat型后,型后, 再进行计算。再进行计算。第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式1 1赋值运算符赋值运算符C C语言的赋值运算符是语言的赋值运算符是“= =”,其作用是将赋值运算符右边,其作用是将赋值运算符右边表达式的值赋给其左边的变量。表达式的值赋给其左边的变量。2 2赋值表达式赋

35、值表达式赋值表达式是由赋值运算符将一个变量和一个表达式连接起来赋值表达式是由赋值运算符将一个变量和一个表达式连接起来的式子。的式子。赋值表达式的一般形式如下:赋值表达式的一般形式如下: 变量变量= =表达式表达式说明:说明:(1 1)赋值表达式的值等于计算后赋值运算符左边变量的值。)赋值表达式的值等于计算后赋值运算符左边变量的值。(2 2)赋值运算符左边必须是变量。)赋值运算符左边必须是变量。第第2章章 程序设计的初步知识程序设计的初步知识2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式注意:注意:如果赋值运算符两侧的类型不一致,

36、但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(1 1)将实型数据(包括单、双精度)赋给整型变量时,舍弃实)将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。数的小数部分。 例:例:执行:执行:int a;int a; a=12.345; a=12.345; 结果:结果:a =12a =12(2 2)将整型数据赋给单、双精度变量时,数值不变,但以浮点)将整型数据赋给单、双精度变

37、量时,数值不变,但以浮点数形式存储到变量中。数形式存储到变量中。 例:例:执行:执行:float b;float b; b=12 b=12; 结果:结果:b =12.000000b =12.000000第第2章章 程序设计的初步知识程序设计的初步知识注意:注意:如果赋值运算符两侧的类型不一致,但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(3 3)字符型数据赋给整型变量时,由于字符只占一个字

38、节,)字符型数据赋给整型变量时,由于字符只占一个字节,而整型变量为两个字节,因此将字符数据(而整型变量为两个字节,因此将字符数据(8 8位)放到整型变位)放到整型变量低量低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)整型数据赋给字符型变量,只把低)整型数据赋给字符型变量,

39、只把低8 8位原封不动送到字位原封不动送到字符型变量(即截断)。符型变量(即截断)。第第2章章 程序设计的初步知识程序设计的初步知识注意:注意:如果赋值运算符两侧的类型不一致,但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。(5 5)将带符号的整型数据()将带符号的整型数据(intint型)赋给型)赋给1ong int1ong int型变量时。型变量时。要进行符号扩展,如果要进行符号扩展,如果

40、intint型数据为正值(符号位为型数据为正值(符号位为0 0),则),则1ong int1ong int型变量的高型变量的高1616位补位补0 0;如;如intint型变量为负值(符号位型变量为负值(符号位为为1 1),则),则1ong int1ong int型变量的高型变量的高1616位补位补1 1,将整型数的,将整型数的1616位送位送到到1ong1ong型低型低1616位中,以保持数值不改变。反之,若将一个位中,以保持数值不改变。反之,若将一个1ong int1ong int型数据赋给一个型数据赋给一个intint型变量,只把低型变量,只把低1616位原封不动送位原封不动送到整型变量(

41、即截断)。到整型变量(即截断)。例:例:执行:执行:int a=12; int a=12; 执行:执行:int a;int a; long b; long b; long b=65536; long b=65536; b=a b=a; a=b a=b; 结果:结果:b =12 b =12 结果:结果:a =0a =0第第2章章 程序设计的初步知识程序设计的初步知识注意:注意:如果赋值运算符两侧的类型不一致,但都是数值型或如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算

42、符左边变量的类型。达式值的类型转换成赋值运算符左边变量的类型。第第2章章 程序设计的初步知识程序设计的初步知识3 3复合赋值运算符复合赋值运算符C C语言允许在赋值运算符语言允许在赋值运算符“= =”之前加上其他运算符,以构成之前加上其他运算符,以构成其复合运算符。其复合运算符。复合运算符有:复合运算符有:+=+=、-=-=、*=*=、/=/=、%=%=。例如:例如:a+=2 a+=2 等价于等价于 a=a+2 a=a+2 x*=y+5 x*=y+5 等价于等价于 x=x*(y+5) x=x*(y+5) x%=8 x%=8 等价于等价于 x=x%8 x=x%8同样:同样:(1 1)复合赋值表达

43、式的值等于计算后赋值运算符左边变量的值。)复合赋值表达式的值等于计算后赋值运算符左边变量的值。(2 2)复合赋值运算符左边必须是变量。)复合赋值运算符左边必须是变量。 赋值运算符的结合律都是从右向左执行,赋值运算符的结合律都是从右向左执行,其优先级低于所有算术运算符。其优先级低于所有算术运算符。第第2章章 程序设计的初步知识程序设计的初步知识2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式2.4.3 2.4.3 逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算

44、符为逗号运算符为“, ,”。逗号表达式是用逗号运算符把表达式组合成的一个表达式。逗号表达式是用逗号运算符把表达式组合成的一个表达式。其一般形式为:其一般形式为: 表达式表达式1,1,表达式表达式2,2,表达式表达式3,3, ,表达式表达式N N说明:说明:(1 1)逗号表达式的执行过程是:依次求表达式)逗号表达式的执行过程是:依次求表达式1 1的值、表达的值、表达式式2 2的值、的值、表达式、表达式N N的值,整个逗号表达式的值是表达的值,整个逗号表达式的值是表达式式N N的值。的值。(2 2)逗号运算符是所有运算符中级别最低的。)逗号运算符是所有运算符中级别最低的。第第2章章 程序设计的初步

45、知识程序设计的初步知识2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式例如:例如: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.

46、4.3 2.4.3 逗号运算符和逗号表达式逗号运算符和逗号表达式2.4.2 2.4.2 赋值运算符和赋值表达式赋值运算符和赋值表达式2.4 2.4 运算符和表达式运算符和表达式2.4.1 2.4.1 算术运算符和算术表达式算术运算符和算术表达式 ANSI CANSI C并没有具体规定表达式中的子表达式的求值顺序,并没有具体规定表达式中的子表达式的求值顺序,允许各编译系统自己安排。允许各编译系统自己安排。 例如例如:对表达式对表达式 a = f1( )+f2( ) a = f1( )+f2( ) 并不是所有的编译系统都先调用并不是所有的编译系统都先调用f1( )f1( ), 然后然后 调用调用f

47、2( )f2( )。在有的情况下结果可能不同。有时会出。在有的情况下结果可能不同。有时会出 现一些令人容易搞混的问题,因此务必要小心谨慎现一些令人容易搞混的问题,因此务必要小心谨慎。 第第2章章 程序设计的初步知识程序设计的初步知识2.5 2.5 有关表达式使用中的问题说明有关表达式使用中的问题说明语言中有的运算符为一个字符,有的运算符由语言中有的运算符为一个字符,有的运算符由两个字符组成两个字符组成 ,为避免误解,最好采取大家都能理,为避免误解,最好采取大家都能理解的写法。解的写法。 例如例如:不要写成不要写成i+ji+j的形式,而应写成的形式,而应写成 (i+)+j (i+)+j的形式的形

48、式 第第2章章 程序设计的初步知识程序设计的初步知识2.5 2.5 有关表达式使用中的问题说明有关表达式使用中的问题说明在调用函数时,实参数的求值顺序,标准并无统在调用函数时,实参数的求值顺序,标准并无统一规定。一规定。例如:例如:的初值为,如果有下面的函数调用:的初值为,如果有下面的函数调用: printf(,i+) 在有的系统中,从左至右求在有的系统中,从左至右求值,输出值,输出“,”。在多数系统中对函数参数的求值顺序是自。在多数系统中对函数参数的求值顺序是自右而左,函数输出的是右而左,函数输出的是“,”。以上这种写法。以上这种写法不宜提倡,不宜提倡, 最好改写成最好改写成 j = i+;

49、 j = i+; printf(%d printf(%d, %d %d, j j,i)i)第第2章章 程序设计的初步知识程序设计的初步知识2.5 2.5 有关表达式使用中的问题说明有关表达式使用中的问题说明2.6 2.6 本章考点本章考点 C C语言对用户标识符的规定。语言对用户标识符的规定。整型变量的定义和整型常量的表示。整型变量的定义和整型常量的表示。实型变量的定义和实型常量的表示。实型变量的定义和实型常量的表示。字符型变量的定义和字符型常量的表示。字符型变量的定义和字符型常量的表示。算术运算符和算术表达式。算术运算符和算术表达式。赋值运算符和赋值表达式。赋值运算符和赋值表达式。逗号运算符

50、和逗号表达式。逗号运算符和逗号表达式。运算符的优先级和结合律。运算符的优先级和结合律。混合运算中的类型转换。混合运算中的类型转换。第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解1 1以下选项中合法的用户标识符是以下选项中合法的用户标识符是_。A A)longlongB B)_2Test_2TestC C)3Dmax3DmaxD D)A.datA.dat第第2章章 程序设计的初步知识程序设计的初步知识正确答案:正确答案:B B(知识点:(知识点:C C语言对用户标识符的规定)语言对用户标识符的规定)试题分析:试题分析:C C语言规定标识符必须由一个字母(

51、语言规定标识符必须由一个字母(a az z,A AZ Z)或下划线()或下划线(_ _)开头,标识符的其他部分可以用字母、)开头,标识符的其他部分可以用字母、下划线或数字(下划线或数字(0 09 9)组成。)组成。2 2以下选项中不属于以下选项中不属于C C语言的类型的是语言的类型的是_。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

52、.7 典型试题详解典型试题详解正确答案:正确答案:D D(知识点:(知识点:C C语言的基本数据类型)语言的基本数据类型)试题分析:试题分析:C C语言的基本类型包括语言的基本类型包括signed short intsigned short int、unsigned long intunsigned long int、unsigned intunsigned int、charchar、floatfloat、doubledouble等,没有等,没有long shortlong short类型。类型。第第2章章 数据与运算数据与运算3 3在在1616位位C C编译系统上,若定义编译系统上,若定义l

53、ong a;long a;,则能给变量,则能给变量a a赋值赋值4000040000的正确语句是的正确语句是_。A A)a=20000+20000;a=20000+20000;B B)a=4000*10;a=4000*10;C C)a=30000+10000;a=30000+10000;D D)a=4000L*10L;a=4000L*10L;2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:D D(知识点:算术运算和赋值运算中的类型转换)(知识点:算术运算和赋值运算中的类型转换)试题分析:试题分析:A A、B B、C C选项中参与算术运算的对象是选项中参与算术运算的对象是intint

54、类型,其结类型,其结果应该是果应该是intint类型,而结果值类型,而结果值4000040000超出超出intint类型范围,发生溢类型范围,发生溢出,运算结果截取出,运算结果截取4000040000的低的低1616位,再将其进行符号位扩展,位,再将其进行符号位扩展,赋给赋给longlong类型的类型的a a,则,则a a中的结果并不是中的结果并不是4000040000。D D选项中参与选项中参与算术运算的对象是算术运算的对象是longlong类型,其结果是类型,其结果是longlong类型,赋给类型,赋给longlong类型的类型的a a,则,则a a中的结果是中的结果是4000040000

55、。4 4以下选项中可以作为以下选项中可以作为C C语言中合法整数的是语言中合法整数的是_。A A)10110B10110BB B)03860386C C)0xffa0xffaD D)x2a2x2a2第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:C C(知识点:整型常量)(知识点:整型常量)试题分析:试题分析:C C语言中整数的表示有十进制、八进制、十六进语言中整数的表示有十进制、八进制、十六进制三种方法。制三种方法。A A、D D选项应该是十进制表示方法,但选项应该是十进制表示方法,但A A、D D选项中出现了非法符号选项中出现了非

56、法符号B B、x x、a a;B B选项应该是八进制表选项应该是八进制表示方法,但选项中出现了非法符号示方法,但选项中出现了非法符号8 8;C C选项是十六进制选项是十六进制表示方法,没有出现非法符号。表示方法,没有出现非法符号。5 5以下程序的输出结果是以下程序的输出结果是_。main()main() unsigned short a=65536;int b; unsigned short a=65536;int b; printf(%dn,b=a); printf(%dn,b=a); 第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案:正确答案

57、:0 0(知识点:赋值运算中的类型转换)(知识点:赋值运算中的类型转换)试题分析:试题分析:将将unsignedunsigned类型数据赋给长度相同的类型数据赋给长度相同的signedsigned型变型变量时,同样原样照赋,再将最高位作为符号位处理。量时,同样原样照赋,再将最高位作为符号位处理。6 6以下选项中,非法的字符常量是以下选项中,非法的字符常量是_。A)A)ttB)B)117117C)C)“nn”D)D)xaaxaa第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案正确答案:C C(知识点:字符常量)(知识点:字符常量)试题分析:试题分析

58、:C C语言规定,字符常量是用单引号引起来的一语言规定,字符常量是用单引号引起来的一个字符。个字符。7 7以下非法的赋值语句是以下非法的赋值语句是_。A A)n=(i=2,+i);n=(i=2,+i);B B)j+;j+;C C)+(i+1);+(i+1);D D)x=j0x=j0;第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:C C(知识点:赋值运算)(知识点:赋值运算)试题分析:试题分析:+和和-仅适用于变量,不能用于常量或表达式。仅适用于变量,不能用于常量或表达式。8 8若已定义若已定义x x和和y y为为doubledoub

59、le类型,则表达式类型,则表达式x=1x=1,y=x+3/2y=x+3/2的值的值是是_。A A)1 1B B)2 2 C C)2.0 2.0 D D)2.52.5第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:C C(知识点:逗号表达式,混合类型运算)(知识点:逗号表达式,混合类型运算)试题分析:试题分析:x=1,y=x+3/2x=1,y=x+3/2是一个逗号表达式,按顺序先计算是一个逗号表达式,按顺序先计算x=1x=1,再计算,再计算y=x+3/2y=x+3/2,整个逗号表达式的值等于表达式,整个逗号表达式的值等于表达式y=x+3

60、/2y=x+3/2的值。计算的值。计算y=x+3/2y=x+3/2时,时,3/23/2中中3 3和和2 2都是都是intint类型,类型,3/23/2的结果是的结果是intint类型值类型值1 1,与,与doubledouble类型的类型的x x相加,结果为相加,结果为doubledouble类型的类型的2.02.0,再赋给,再赋给doubledouble类型的类型的y y,所以,所以y y和表达式和表达式y=x+3/2y=x+3/2的值均为的值均为doubledouble类型的类型的2.02.0。9 9设设x x、y y 均为整型变量,且均为整型变量,且x=10x=10,y=3y=3,则以下

61、语句的输出,则以下语句的输出结果是结果是_。printf(%d,%dn,x-,-y)printf(%d,%dn,x-,-y)A A)1010,3 3B B)9 9,3 3C C)9 9,2 2D D)1010,2 2第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:D D(知识点:减(知识点:减1 1运算)运算)试题分析:试题分析:语句的输出结果是语句的输出结果是x-x-、-y-y两表达式的值。表达两表达式的值。表达式式x-x-的值为的值为x x没有减没有减1 1的值的值1010,表达式,表达式-y-y的值为的值为y y减减1 1后的后

62、的值值2 2。1010以下叙述正确的是以下叙述正确的是_。A A)构成)构成C C程序的基本单位是函数程序的基本单位是函数B B)可以在函数中定义另一个函数)可以在函数中定义另一个函数C C)main()main()函数必须放在其他函数之前函数必须放在其他函数之前D D)所有被调用的函数一定要在调用之前进行定义)所有被调用的函数一定要在调用之前进行定义第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解正确答案:正确答案:A A(知识点:(知识点:C C语言程序的构成及格式)语言程序的构成及格式)试题分析:试题分析:构成构成C C程序的基本单位是函数,一个程

63、序的基本单位是函数,一个C C程序中有且程序中有且只有一个只有一个mainmain函数,函数,mainmain函数在程序中没有固定的位置。函数在程序中没有固定的位置。1111一个一个C C程序中程序中_。A A)mainmain函数必须出现在所有函数之前函数必须出现在所有函数之前B B)mainmain函数可以在任何地方出现函数可以在任何地方出现C C)mainmain函数必须出现在所有函数之后函数必须出现在所有函数之后D D)mainmain函数必须出现在固定位置函数必须出现在固定位置正确答案:正确答案:B B(知识点:(知识点:C C语言程序的构成及格式)语言程序的构成及格式)试题分析:试题分析:构成构成C C程序的基本单位是函数,一个程序的基本单位是函数,一个C C程序中程序中有且只有一个有且只有一个mainmain函数,函数,mainmain函数在程序中没有固函数在程序中没有固定的位置。定的位置。第第2章章 程序设计的初步知识程序设计的初步知识2.7 2.7 典型试题详解典型试题详解

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号