2第二章-C语言的基本知识_第1页
2第二章-C语言的基本知识_第2页
2第二章-C语言的基本知识_第3页
2第二章-C语言的基本知识_第4页
2第二章-C语言的基本知识_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础,主讲教师:徐鉴 授课专业:计算机科学与技术,课程回顾,1、C语言的基本结构? 2、简述语言程序的开发过程?,1.软件Visual C+6.0是一种( )。 A. C语言程序集成开发环境 B字处理程序 C.操作系统 D视频播放软件 2.下列叙述不正确的是()。 A一个C语言程序可由一个或多个函数组成 B一个C语言程序必须包含一个main函数 CC语言程序的基本组成单位是函数 D在C语言程序中,注释说明只能位于一条语句的后面 3.编译C语言程序时,程序中的注释部分将()。 A不参加编译,也不会出现在目标程序中 B参加编译,但不会出现在目标程序中 C不参加编译,但会出现在目标程序中 D

2、参加编译,并会出现在目标程序中,练习,第2章语言的基本知识,2.1C语言的数据类型 2.2标识符 2.3 变量 2.4 常量 2.5 运算符和表达式 2.6自增(自减)运算符及C语言运算符的优先级别 2.7不同数据类型数据间的混合运算,第2章语言的基本知识,2.1C语言的数据类型 2.2标识符 2.3 变量,任务 成绩的计算实例,任务描述 辅导员刘老师在工作中发现需要每学期计算学生总成绩和平均成绩进行排名评优,所以找到程序班的小王编程,实现功能。小王如何实现呢?(以学院学生成绩系统为约束,成绩为整数) 相关知识,理解数据类型、标识符、关键字、变量等,【例】成绩计算。 #include void

3、 main() int program,math,english,sum,ave; scanf(“%d,%d,%d”, ,2.1 数据类型,2.1 C语言的数据类型,学习目标,了解语言的数据类型,掌握语言中的基本数据类型,2.1 数据类型,数组 类型相同的数据集合,结构体 类型不同的数据集合,基本数据类型,ANSI C标准规定,简单类型的前面还可以加上修饰符,使简单类型的语义 更加丰富,方便C编程人员选用恰当的数据类型。这样的修饰符共有4种: (1)signed:有符号;(2)unsigned:无符号; (3)long:长型;(4)short:短型。,2.1 数据类型,11,在线保险单 年龄:

4、_ 保险总额:_ 性别:_,23,28340, M ,数值型,字符型,int/float,char,2.1 数据类型,小练习:,思考下列问题,如何正确恰当的定义数据类型: 1: 表示”学生成绩” 2: 表示年龄 3: 表示日常数值计算 4: 定义中国人口的数量 5: 表示“金额”(钱),”工资” 6: 表示”男”,”女”,2.1 数据类型,1.C语言基本类型包括()。 整型、实型、逻辑型 B. 整型、实型、字符型、逻辑型 C. 整型、字符型、逻辑型 D. 整型、实型、字符型 2.以下选项中不属于C语言类型的是()。 Asigned short int Bunsigned long int Cu

5、nsigned int Dlong short,练习,【例】成绩计算。 #include int main() int program,math,office,sum,ave; scanf(“%d,%d,%d”, ,2.1 数据类型,【例】 计算并输出两个数的乘积,【例】成绩计算。 #include int main() unsigned int program,math,office,sum; float ave; scanf(“%d,%d,%d”, ,2.1 数据类型,学习目标,对照了解自然语言和语言的组成要素,掌握语言中的字符集,掌握语言中标识的概念及用户定义标识的规则,2.2 标识符,

6、熟记语言中的关键字,自然语言与语言组成要素对比,按照“字-词-句-段-章”的自然语言的学习顺序学习C语言是一种非常有效的学习方法。,2.2 标识符,字符集,字符是组成语言的最基本的元素,国际上使用最广泛的计算机字符编码是ASCII码,标准的ASCII码字符集包括128个字符。,2.2 标识符,标识符,标识符就是用来标识在语言程序中出现的符号常量名、变量名、函数名的字符序列,C语言中的标识符是由字符组成,满足一定的构成规则。,C语言规定,标识符由字母、数字、下划线组成,且第一个字符不能使用数字字符。 例如: a、_3x、BOOK1、sum5、student_1合法标识符, -3x、bowy-1、

7、3Student、$Map、SumMul、ab不合法,不能用作C语言的标识符。,2.2 标识符,1.标识符只能由字母、数字、下划线三种字符组成。 2.标识符只能以字母或者下划线开头。 3.系统已经定义的一些关键字是系统专用的,不允许用户作为自定义的标识符来使用。 4. C语言将大小写字母作为不同的字符处理。 5.自定义标识符一般应做到见名知义,以提高程序的可读性。,例如:name/xingming(姓名)、 age/nianling(年龄),小结:标识符命名规则是什么?,2.2 标识符,下列标识符是否合法,为什么? sum a1 b2 s_name 123 #ss a.b.c 1a8bc,思

8、考 ?,合法,不合法,2.2 标识符,1.以下合法的用户标识符是( )。 A. 456p Bwww.wC. p101p Dhttp:/ 2.下列符号可以作为变量名的是( )。 A、+a B、*p C、_DAY D、next day 3.下列字符序列中,不可用作C语言标识符的是( ) A. abc123 Bno_1 C.123_ D_ok,练习,关键字,关键字是系统定义的、具有特定含义、专门用作特定用途的C语言标识符,也称为保留字。标准C语言中共有32个关键字。,2.2 标识符,关键字,关键字是系统定义的、具有特定含义、专门用作特定用途的C语言标识符,也称为保留字。标准C语言中共有32个关键字。

9、,(1)数据类型关键字(12个):char, double, float, int, long, short, signed, unsigned, struct, union, enum, void (2)控制语句关键字(12个):break, continue, if, else, switch, case, default,while ,do, for, goto, return, (3)存储类型关键字(4个):auto, extern, register, static (4)其它关键字(4个):const, sizeof, typedef, volatile,2.2 标识符,练习,1.

10、请选出可以作为语言用户标识符的一组标识符()。 Avoid, define, WORD BA3_B3, _123, abc CFOR, -abc, Case D2a, Do, Sizeof 2.下面四个选项中,全是不合法的用户标识符的是: A. A P_0 do B. float la0 _A C. b-a gotoint D. _123 temp INT 3.不属于C语言关键字的是( )。 int Bwhile C.break DCharacter,【例】 计算并输出两个数的乘积,【例】成绩计算。 #include int main() unsigned int program,math,o

11、ffice,sum; float ave; scanf(“%d,%d,%d”, ,2.2 标识符,2.3 变量,学习目标,理解变量的概念,熟练掌握整型、实型及字符型变量的定义和使用,变量,在程序运行过程中其值可以被改变的量称为变量。变量在内存中根据其数据类型占据一定的存储单元。,变量的定义,原则:“先定义,后使用” ,(必须先对将要使用的变量进行变量定义,说明变量的数据类型,然后才能使用该变量)。 变量定义的一般形式为: 数据类型符变量名表 例如:int a; /定义整型变量a int math,office,program; /定义math,office,program为整型变量,2.3.1

12、 变量名称,变量的初始化,C语言中允许在变量定义的同时对变量赋初始值,也称为变量的初始化。 例如: int a=2; char c=x; float x=1.2, y=2.4;,2.3.1 变量名称,变量的基本操作,一个变量可以看成是一个存储数据的容器。有两个对变量的基本操作: 一是向变量中存入数据,称为“赋值”; 二是取得变量当前的值,在程序运行时使用,称为“取值”。,2.3.1 变量名称,2.3.3 变量的赋值,变量经过定义后,在使用之前用户就要给变量赋值。C语言中是通过赋值运算符给变量赋值。,变量的赋值,格式: 变量名=表达式; 例如: int i; i=9; /*先定义整型变量i, 再

13、给i初值为9*/,整型变量,整型变量可以分为以下几类: (1)基本整型 类型说明符为int,在内存中占2个字节,其取值范围为-3276832767。 (2)短整型 类型说明符为short int或short,在内存中所占字节数和取值范围均与基本整型相同。 (3)长整型 类型说明符为long int或long,在内存中占4个字节,其取值范围为 -21474836482147483647,一般会在数值 后加一下L。 (4)无符号型 类型说明符为unsigned int 或unsigned等 ,此类型的整数没有负数,一般会在数值 后加一下U。,2.3.2 变量类型整型变量,实例分析,#include

14、 int main( ) int a,b,c,d; /定义a、b、c、d为基本整型变量 unsigned u; /定义u为无符号基本整型变量 a=10; b=-20; u=5; c=a+u; d=b-u; printf(c=%d,d=%dn,c, d); return 0; ,程序运行结果如下: c=15, d=-25,2.3.2 变量类型整型变量,实型变量,实型变量可以分为以下2类: (1)单精度型 类型说明符为float,在内存中占个字节,其取值范围的绝对值为10(-38次方)10(38次方),提供67位有效数字。 (2)双精度型 类型说明符为double,在内存中占8个字节,其取值范围的

15、绝对值为10(-308次方)10(308次方),提供1516位有效数字。,2.3.2 变量类型实型变量,实例分析,#include int main( ) float a,b; /定义a、b为单精度浮点型变量 double d; /定义d为双精度浮点型变量 a=3.56; b=12345.678; d=12345.6789; printf(%f, %f, %fn,a, b, d); return 0; ,程序运行结果如下: 3.560000,12345.677734,12345.678900,2.3.2 变量类型实型变量,字符变量,每个字符变量被分配一个字节的内存空间。由于字符变量在内存中存放

16、的是字符的ASCII码值,所以也可以把它们看成是整型量。,2.3.2 变量类型字符型变量,实例分析,#include int main( ) short int n=97; /字符a的ASCII码为97 printf(%d, %c, %d, %cn, n, n, n+1, n+1); return 0; ,程序运行结果如下: 97, a, 98, b,2.3.2 变量类型字符型变量,程序说明,字符a的ASCII码为97,变量n以整型数据方式输出时为97,以字符方式输出时为a,如图所示;n+1的结果为98,字符b的ASCII码为98,n+1以整数方式输出时为98,以字符方式输出时为b。,2.3.

17、2 变量类型字符型变量,【例】 计算并输出两个数的乘积,【例】成绩计算。 #include int main() unsigned int program,math,office,sum; float ave; scanf(“%d,%d,%d”, ,2.3 变量,小结:变量,变量:程序运行时可以随时改变 定义变量时,给变量分配存储单元(一个字节),如宿舍号对应一个房间,变量名对应一段存储空间。 通过变量对内存修改、存取;对变量的存取就是对存储单元的存取。 要先定义变量的类型,决定占用的内存空间,才能存取。,变量的数据类型、字节长度、位数、数据范围,小结,标识符命名规则 C语言有哪些基本数据类型

18、? 变量的命名规则和声明及使用?,任务描述 实现输入两个整数, 求两个数的和,将结果输出到屏幕。,拓展作业,求和输出 结果,接收键盘输入值变量1,接收键盘输入值变量2,格式一:scanf(格式控制,地址列表) scanf(”%d”, 注: 若接受多个数据,需要“地址表列”是由多个地址组成的列表,各地址之间用逗号分隔。,格式控制符%d:表示输入一个整数,输入的数据存储到number1变量的地址里,提示二: 输入函数介绍,标准输出函数 scanf( ),/求两数之和 #include void main() /*主函数*/ int x,y,sum; /*定义整型变量x,y,sum*/ scanf(

19、%d,%d, /*在屏幕上输出sum的值*/ ,输出结果是?,课堂练习,预习,2.4常量 2.5运算符和表达式,课程回顾,1、标识符的命名规则? 2、 C语言有哪些基本数据类型? 3、简述语言变量定义格式?,第2章语言的基本知识,2.1数据类型 2.2标识符和关键字 2.3 变量 2.4常量 2.5 运算符和表达式 2.6运算符的优先级 2.7不同数据类型数据间的混合运算,任务 成绩的计算实例,任务描述 辅导员刘老师在工作中发现需要每学期计算学生总成绩和平均成绩进行排名评优,所以找到程序班的小王编程,实现功能。小王如何实现呢?(以学院学生成绩系统为约束,成绩为整数) 相关知识,理解数据类型、标

20、识符、关键字、变量等,【例】 计算并输出两个数的乘积,【例】成绩计算。 #include int main() unsigned int program,math,office,sum; float ave; scanf(“%d,%d,%d”, ,2.4 常量,2.4 常量,学习目标,理解常量的概念,熟练掌握整型、实型及字符型常量的定义和使用,2.4 常量,在程序运行过程中其值保持不变的量称为常量。常量可以分为符号常量和直接常量两种。,直接常量是直接以自身的存在形式体现值和类型,例如: 123,5是整型常量; 1.5,1.2E-2是实型常量; x是字符常量; ”first”是字符串常量。,(1

21、)八进制整型常量 其形式是:0d 其中,起始0是必须的引导符,d可以是一个或多个八进制数(07之间)。进位规则为:逢八进一。 (2)十进制整型常量 其形式是:d 其中,d可以是从09的一个或多个十进制数位,第一位不能是0。进位规则为:逢十进一。 (3)十六进制整型常量 其形式是:0 xd 其中,引导符0是必须的,字母X可以用大写或小写,d可以是一个 或多个十六进制数(从09的数字,或是从a到f的字母)。 进位规则为:逢十六进一。,整型常量,在C语言中整型常量可以表示为十进制、八进制和十六进制三种形式。,2.4.1 整型常量,整型常量,整型常量可以分为以下几类: (1)基本整型 类型说明符为in

22、t,在内存中占2个字节,其取值范围为-3276832767。 (2)短整型 类型说明符为short int或short,在内存中所占字节数和取值范围均与基本整型相同。 (3)长整型 类型说明符为long int或long,在内存中占4个字节,其取值范围为 -21474836482147483647,一般会在数值 后加一下L。 (4)无符号型 类型说明符为unsigned int 或unsigned ,此类型的整数没有负数,一般会在数值 后加一下U。,2.4.1 整型常量,1、二进制与十进制间的相互转换 (2进制,用两个阿拉伯数字:0、1;) 2、八进制与十进制的转换 (8进制,用八个阿拉伯数字

23、:0、1、2、3、4、5、6、7;) 3、十六进制与十进制的转换 (16进制,用十个阿拉伯数字:0到9+字母:ABCDEF) 4、十进制数转化成非十进制数,(一) 整数类型-进制转化,2.4.1 整型常量,(一) 整数类型-进制转化,2.4.1 整型常量,1、二进制与十进制间的相互转换,2.4.1 整型常量,练习:0101 0001 转换为10进制是多少?,2、八进制与十进制间的相互转换,2.4.1 整型常量,3、十六进制与十进制间的相互转换,十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方 假设十六进数 0XF5, 那么如何换算成十进制呢? 用竖

24、式计算: 第0位: 5 * 16的0次方 = 5 第1位: F * 16的1次方 = 240 =245 练习:OXA2转换为10进制是多少?,2.4.1 整型常量,60,1)十进制转化二进制 10进制数转换成二进制数,这是一个连续除2的过程: 要转换的数,除以2,得到商和余数, 将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。,思考:120转换为八进制和十六进制分别为多少。,2.4.1 整型常量,4、十进制数转化成非十进制数 -取余倒排法,2.4.1 整型常量,整型数据在内存中是以二进制方式存放的,最高位为符号位,并以补码表示。将一个十进制整数转化为补码表示的方法如下:

25、 ()对于正数,其补码表示与原码相同。 ()对于负数,其补码表示为原码的反码加1;负数的反码为其绝对值的所有位(含符号位)取反得到。,例如:求-10的补码的方法是: 取-10的绝对值10; 10的绝对值的二进制形式为:0000000000001010(一个整数占16位); 对0000000000001010取反得到:1111111111110101; 再加1得1111111111110110。,2.4.1 整型常量,练习,1.C语言中,下列合法的长整型常量是( )。 A. a B0.012345 C.2.134e12D0L 2.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是9

26、7,则用八进制表示的字符常量103是( )。 A、A B、B C、C D、D 3.数值029是一个()。 A八进制数 B十六进制数 C十进制数 D非法数 4.长整型数据在内存中的存储形式是()。 AASCII码 B原码 C反码 D补码 5.字符型常量在内存中的存放形式是() AASCII码 BBCD码 C内部码 D十进制码,2.4.2 实型常量,实型数据又称为浮点型数据,是带小数部分的数据。根据能够表示的大小和精度,浮点型数据分为单精度、双精度两类,类型说明符分别为float和double。浮点型数据在内存中以指数形式存储。语言将一个浮点型数据分成小数和指数两个部分存储。例如,实数3.1415

27、9在内存中的存放形式如图所示。,(1)十进制小数形式 由正负号、数码和一个小点组成。 例如 .123 / 表示实数 0.123 -.123 /表示实数 -0.123 123. /表示实数 123.0 (2)指数形式 由十进制小数或整数与字母e或E组成。一般形式如下: aEn或aen 表示数a10的n次方 要求:字母e或E前面必须有数字,a可以是十进制小数或整数, n必须为十进制整数。,实型常量,在语言中,实型常量有两种表示形式:十进制小数形式和指数形式。,2.4.2 实型常量,实型常量,实型常量可以分为以下类: (1)单精度型 类型说明符为float,在内存中占个字节,其取值范围的绝对值为10

28、(-38次方)10(38次方),提供67位有效数字。 (2)双精度型 类型说明符为double,在内存中占8个字节,其取值范围的绝对值为10(-308次方)10(308次方),提供1516位有效数字。 (3)长双精度型 类型说明符为long double,在内存中占10个字节,其取值范围的绝对值为10(-4932次方)10(4932次方),提供1819位有效数字。,2.4.2 实型常量,2.4.3 字符型常量,字符常量是用单引号括起来的一个字符。如a,B等都是字符常量。其中单引号是作为字符常量的定界符使用,并不表示字符常量本身。C语言中常用的字符常量有一般字符常量和转义字符常量两种。,(1)一

29、般字符常。是用单引号括起来的一个字符。该字符可以是数字、字母等ASCII字符集中除“”和“”以外的所有可显示字符。 (2)转义字符。转义字符是一种特殊的字符常量。转义字符以反斜杠“”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。 “转义字符”代表一个字符,在内存中只占用一个字节。,字符常量,2.4.4 字符型常量,2.4.4 字符型常量,练习,1以下所列的C语言常量中,错误的是() A、0 xFF B、1.2e0.5 C、2L D、72 2.下列4个选项中,均是合法整型常量的是() A160 -0 xffff 011 B-0 xcdf 01 0 xe

30、 C-01 986,012 0668 D-0 x48a 2e5 0 x,多个单独的字符构成字符串。C语言允许的字符串常量是由一对双引号括起来的字符序列。 例如: A CHINA 1234 / 空字符串 I said,good morning! / 含转义字符 (1)字符串常量的存储方式 按字符串中字符从左到右的顺序依次占用连续的存储单元,每个字符占1个字节,存放其对应的ASCII码。C编译系统还会自动在每个字符串常量的未尾追加一个零字符NULL(0)作为字符串的结束标识。,2.4.4 字符串常量,例如:字符串常量 goodbye 含有7个字符,它将占用8个字节的存储单元。,字符串常量,2.4.

31、4 字符串常量,字符串常量和字符常量是不相同的量,其区别如下: (1)从表示形式上看,字符常量是由单引号括起来的,字符串常量是由双引号括起来的。 (2)从字符的个数上看,字符常量只能是单个字符,字符串常量可以包含0个或多个字符。 (3)有字符变量,但没有字符串变量。 (4)字符常量在内存中占个字节,字符串常量在内存中的字节数是字符个数加。因为语言规定,每一个字符串的末尾加一个字符串结束标志0。,练习,1.下列字符串常量不正确的是()。 Aabc B1212 C0 D 2.语句printf(abrehiyboun);的输出结果是( )。 (说明:b是退格符) A. abrehiybou B. a

32、brehiybou C. rehiyou D.abrehiybou 3.下列符号中,不属于转义字符的是( )。 B0 xAA C.t D0 4.设有语句 char a=n; ,则变量 a( )。 A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法 5若有说明语句“char c=72;”,则变量c() A包含1个字符 B包含2个字符 C包含3个字符 D说明不合法,c的值不确定,任务 几何模型的计算实例,任务描述 模型卫老师需要购买几何模型并进行橱窗摆放,为了节约空间,需要了解各模型的体积或表面积,希望做一个小程序,找到了隔壁班的小王,如何实现呢?(先计算圆的体积和周长) 相关知

33、识,理解常量、符号常量、变量等,【例】计算程序。 #include void main() float r,s,v; scanf(“%f”, ,不理想,2.4.5 符号常量,2.4.5 符号常量,在程序运行过程中其值保持不变的量称为常量。常量可以分为符号常量和直接常量两种。,符号常量是采用宏定义命令定义的常量。定义形式如下: #define 符号常量名 常量 例如:#define NULL 0 用符号常量NULL来替代常量0. 注意:一次只能定义一个符号常量,且占据一行。,【例】计算程序。 #include #define PI 3.14159 int main() float r,s,v;

34、scanf(“%f”, ,2.4.5 符号常量,小结:常量,常量的本质 不占据任何存储空间 属于指令的一部分,编译后不再更改 常量分为整型常量、实型常量、字符常量、字符串常量和符号常量,课程回顾,1、请说出语言的基本数据类型在VC中各占多少字节? 2、请指出下面程序有哪些错误?,#include void main() int a,b,c; scanf(“%d,%d”, a,b); c=a; b=a; c=b; printf(“a转换后的值为, b转换后的值为”,a,b); ,任务 成绩的计算实例,任务描述 生活中我们经常需要使用计算器,现在希望同学们利用所学知识实现简单计算器功能。如何实现呢

35、?(加、减、乘、除、取余等) 相关知识 理解变量、运算符和表达式等,2.5 运算符和表达式,学习目标,熟练掌握语言提供的各种运算符,能够应用运算符构建相应的表达式,基本概念,运算是对各种类型数据进行加工处理,运算符是指各种不同运算类型的符号。 参加运算的数据称为运算量或操作数。按照操作数的个数可以将运算符分为单目运算符、双目运算符和三目运算符;,2.5 运算符和表达式,语言的运算符,2.5 运算符和表达式,使用语言的运算符的注意事项,1.运算符的功能,2.运算符的优先级,3.运算符的结合性,4.运算结果及其表示,2.5 运算符和表达式,2.5.1算术运算符及算术表达式,算术运算符,C语言算术运

36、算符可以分为基本算术运算符、自增、自减运算符和正负号运算符三类。,(1)基本算术运算符 基本算术运算符包括5种:+(加)、-(减)、*(乘)、/(除)、%(取余)。 (2)自增和自减运算符 C语言中的自增运算符为+,自减运算符为-,都是单目运算符,具有右结合性。运算符“+”表示操作数加1,运算符“-”表示操作数减1。 (3)正负号运算符 正负号运算符是单目运算符,如-a,-b,-5,+8等。,2.5.1算术运算符及算术表达式,算术运算符,C语言算术运算符可以分为基本算术运算符、自增、自减运算符和正负号运算符三类。,(1)基本的算术运算符和正负号运算符: (加法运算符,或正值运算符。如:、) (

37、减法运算符,或负值运算符。如:、) * (乘法运算符。如:*) (除法运算符。如:) (模运算符,或称求余运算符,两侧均应为整 型数据,如:的值为)。,基本算术运算符: 结合方向:从左向右 优先级: -+、-* / % - + - () () () 说明: “-+”代表正、负号时,可为单目运算符 两整数相除,结果为整数 %要求两侧均为整型数据,例 5/2 = -5/2.0 =,例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2,2,-2.5,1,-1,1,0,(X),2.5.1算术运算符及算术表达式,#include int main() printf(%d,%dn,20/7,

38、-20/7); printf(%f,%fn,20.0/7,-20.0/7); printf(%dn,100%3); return 0; ,2,-2 2.857143,-2.857143 1,2.5.1算术运算符及算术表达式,() 自增、自减运算符(作用是使变量的值增或减) , (在使用之前,先使的值加 (减) i=3; ; i的值先变成4, 再赋给,j的值均为 , (在使用之后,使的值加(减),; 先将 i的值3赋给,的值为,然后变为,2.5.1算术运算符及算术表达式,实例分析,/FileName: chap2_6.c #include int main( ) int i,k; i=5; k=

39、+i; /赋值时,i先增1,再将i的值赋给k printf(k=%d,i=%dn,k,i); i=5; k=-i; /赋值时,i先减1,再将i的值赋给k printf(k=%d,i=%dn,k,i); i=5; k=i+;/赋值时,先将i的值赋给k,再将i增1 printf(k=%d,i=%dn,k,i); i=5; k=i-;/赋值时,先将i的值赋给k,再将i减1 printf(k=%d,i=%dn,k,i); return 0; ,在使用自增自减运算符时,应注意以下几个问题。 自增和自减运算符的优先级高于基本算术运算符。 自增和自减运算符的操作数只能是变量,不能是常量和表达式。,程序运行结

40、果如下: k=6,i=6 k=4,i=4 k=5,i=6 k=5,i=4,2.5.1算术运算符及算术表达式,注意: (1)自增运算符(),自减运算符(),只能用于变量,而不能用于常量或表达式,如5+,(a+b)+ 。 (2)和的结合方向是“自右至左”。,优先级:、+、- 、+ - -* / % -+ - () () (),例 -i+ -(i+) i=3; printf(“%d”,-i+); /-,例 -i+ i=3; printf(“%d”,-i+);,自增(减)运算符常用于循环语句中使循环变量自动加。,2.5.1算术运算符及算术表达式,算术表达式,用算术运算符将运算对象连接起来,符合C语法规

41、则,并能说明运算过程的式子,称为算术表达式。,算术达表式的构成规则如下: (1)数值型常量、数值型变量、数值型函数调用; (2)+(算术表达式)、(算术表达式); (3)整型变量、整型变量、整型变量、整型变量; (4)(算术表达式)双目算术运算符(算术表达式); (5)有限次使用上述规则获得运算式也是算术表达式。,2.5.1算术运算符及算术表达式,练习,1.若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是。 A. 1 B. 2 C. 2.0 D. 2.5 2.若有定义:int m=7; float x=2.5, y=4.7; 则表达式x+m%3*(int)(x

42、+y)%2/4的值是( ) A. 2.500000 B2.750000C.3.500000 D0.000000,【例】 计算并输出两个数的乘积,【例】计算器加法模块。 #include int main() int number1,number2,sum; scanf(“%d%d”, ,2.5 运算符和表达式,请同学分别完成减法乘法除法求余等相应模块,2.5.2关系运算符及关系表达式,关系运算符,关系运算实际上就是比较运算,将给定的两个运算对象过行比较,判断比较的结果是否符合给定的条件,若符合条件为“真”,否则为“假”。,关系运算符及其优先次序: (大于) = (大于或等于) = (等于) !

43、= (不等于),说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符,2.5.2关系运算符及关系表达式,关系表达式,关系表达式具体构成规则如下: 表达式 关系运算符 表达式 关系表达式的值为逻辑值,逻辑值有true(用整数1表示)和false(用整数0 表示)。,例:ab,a+bb+c 关系表达式的值是一个逻辑值,即“真”或“假”。 例:关系表达式”ab”的值为“真”,表达式的值为1。,2.5.2关系运算符及关系表达式,例如:int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,2

44、.5.2关系运算符及关系表达式,2.5.3逻辑运算符及逻辑表达式,逻辑运算符,ANSI C标准规定,参与逻辑运算的操作数可以不是逻辑值,该操作数为非0时表示真,为0时表示假,但逻辑运算的结果只可以取逻辑值(真或假),返回值为1或0。,逻辑运算真值表,a printf(input a , b: ); scanf(%d , %d, ,实例分析,编写一个程序,输入两个数,判断输出最小的数值。,2.5.5 条件运算符及条件表达式,#include int main( ) int n; printf(输入一个整数n:); scanf(%d, ,实例分析,程序运行结果如下: 输入一个实数n:5 5是一个奇数,编写一个程序,输出用户输入的整数是奇数还是偶数。,2.5.5 条件运算符及条件表达式,2.5.6 逗号运算符及逗号表达式,语言提供一种特殊的运算符逗号运算符。其功能是用它将两个表达式连接起来,组成一个表达式,称为逗号表达式。 逗号表达式的一般形式如下: 表达式1,表达式2 逗号表达式的运算过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。,#include int main( ) int a=2, b=4, c=6, x, y; y=(x=a+b), (b+c); printf(y=%d,

温馨提示

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

评论

0/150

提交评论