C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识

上传人:E**** 文档编号:89386057 上传时间:2019-05-24 格式:PPT 页数:46 大小:446KB
返回 下载 相关 举报
C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识_第1页
第1页 / 共46页
C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识_第2页
第2页 / 共46页
C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识_第3页
第3页 / 共46页
C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识_第4页
第4页 / 共46页
C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识》由会员分享,可在线阅读,更多相关《C语言程序设计能力教程 教学课件 ppt 作者 赵凤芝 等 第2章C语言的基础知识(46页珍藏版)》请在金锄头文库上搜索。

1、第二章 编制C程序的基础知识,第一节 常量与变量,一、常量程序运行过程中保持不变的值,运行程序,定义形式:#define 标识符 常量值,【例2.1】定义一个常量pI表示,求圆的面积。 #define pI 3.14159 /*定义常量pi并赋值*/ main( ) int r ; float s; r=1; s=pI*r*r; printf(“s=%f“,s); ,二、变量,1、标识符,把给程序中的实体变量、常量、 函数、数组、结构体以及文件所起的名 字称为标识符。简单的说标识符就是一 个名字。,标识符的命名规则,只能由英文字母、数字和下划线组成, 且第一个字符必为英文字母或下划线,不允许使

2、用关键字作为标识符的名字,标识符区分大小写,标识符命名应以直观且易于拼读为宜,有意义的标识符长度为前8个字符,练习:,【例2.2】找出下列符号中合法的标识符。 3aB “abc“ a.b b int next a3B ok? _swtch,2、变量,定义形式:类型 变量名1,变量名2,; 其中,方括号内的内容为可选项,可以 同时声明多个相同类型的变量,它们之间需 要用逗号分隔。例如:float a,b,c;,定义:变量是在程序执行过程中可以改变、 可以赋值的量。,四种数据类型,第二节 C语言的基本数据类型,1、整型常量有以下几种分类方法,按进制分类:分为十进制、八进制和十六进制,一、整型数据,

3、按长短分类:分为长整型、无符号整型和短整型。,1、整型常量有以下几种分类方法,2.定义整型变量的标志是int。,二、实型数据,1、实型常量有两种表示形式: 十进制小数形式和指数形式。,2、实型变量,三、字符型数据,1、C语言中有两种类型的字符常量: 普通字符:用单引号括起来的单个字符。 特殊字符:以“”开头的具有特殊含义 的字符。,常用的转义字符,2、字符串常量由双引号括起来的字符序列,字符常量与字符串常量的区别有如下几点: 字符常量与字符串常量的表示形式不同。 字符常量通常可以给字符型变量赋值, 而字符串通常被存放在一个字符数值中。 字符串常量要有一个结束符,而字符常 量没有结束符,它只有一

4、个字符。 字符常量与字符串常量的运算不同。,3、字符变量的定义形式,即char,main( ) int a,b; /*定义a、b为整型变量*/ unsigned int t; /*定义t为无符号整型变量*/ float x,y; /*定义x、y为实型变量*/ a=1;b=-2;t=5; x=a+b;y=x+t; printf(“%f,%f“,x,y); ,【例2.3】变量的定义与使用,main( ) char a,b; a=a; b=b; printf(“%d,%d,“,a,b); printf(“%c,%c“,a+1,b+1); ,【例2.4】写出下面程序的执行结果。,运算符的分类,运算符按

5、其操作数个数分为3类: 单目运算符(一个操作数)、双目运算符 (两个操作数)和三目运算符(三个操作数) 运算符按其优先级的高低分为15类: 优先级最高的为1级,其次为2级等等 运算符按其功能分为: 算术运算符、关系运算符、逻辑运算符、 赋值运算符、逗号运算符等等,第三节 常用运算符和表达式,一、算术运算符及其表达式,二、算术运算符和表达式 基本算术运算符: + - * / % 结合方向:从左向右 优先级: - -* / % - + - (1) (2) (3) 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数 %要求两侧均为整型数据,例 5/2 = -5/2.0 =,例 5%2

6、= -5%2 = 1%10 = 5%1 = 5.5%2,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),2、自反算术赋值运算符,复合的赋值运算符 1复合运算符:10种 +=,=,*=,/=,%=, ,&,| , 位运算(左移、右移、按位与、按位或、按位异或) 例如: a+=3 相当于 a=a+3 x*=y+8 相当于 x=x*(y+8) x%=3 相当于 x=x%3 2意义: 简化程序,使程序精炼。 提高编译效率。,例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a

7、=(b=10)/(c=2),赋值表达式 1概念: 由赋值运算符将一个变量和一个表达式连接起来的式子。 2一般形式: 变量赋值运算符表达式 例 a=b=c=5 (自右向左右结合, 注意:连续赋值在这里的表达式中是允许的,但在前面讲的定义语句中是不可以的。),赋值运算说明: 结合方向:自右向左 优先级: 左侧必须是变量,不能是常量或表达式 赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型 赋值表达式的值与变量值相等,且可嵌套,例: a=12; a+=a-=a*a,例: int a=2; a%=4-1; a+=a*=a-=a*=3;,/a=-264 等价于a=a+(a=a-(a*a),/

8、a=0 等价于a=a+(a=a*(a=a-(a=a*3),3、自增和自减运算符,自增、自减运算符+ - 作用:使变量值加1或减1 种类: 前置 +i, -i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再执行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,说明: + - 不能用于常量和表达式,如5+, (a+b)+ + -结合方向: 自右向左 优先级:- + - -* / % -+ - (1)

9、 (2) (3),4、正负号运算符,5、强制类型转换运算符,强制类型转换运算符: 将一个表达式转换成所需类型。 一般形式: (类型名)(表达式),例 (int) x (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,二、关系运算符及其表达式,关系运算符和关系表达式,(一)、关系运算符及其优先次序,1、C语言的6种关系运算符 = = = !

10、=,2、优先次序 前4种运算符的优先级相同,后两种也相同,且前4种高于后2种。 关系运算符优先级低于算术运算符 关系运算符的优先级高于赋值运算符,例: ca+b c(a+b) ab!=c (ab)!=c a= =b a= =(bc a=(bc) 注:即 相当于,(二)、关系表达式 1概念:用关系运算符将两个表达式连接起来的式子,称关系表达式。 例:ab, (a=3)(b=5), ab)b 表达式的值为1 (ab)=c 表达式的值为1 b+cb d的值为1 f=abc f的值为0,三、逻辑运算符及其表达式,C语言有三种基本的逻辑运算(布尔运算): 与 (逻辑乘) 用&表示,(相当于其它语言中的A

11、ND) 或 (逻辑加) 用 | | 表示 (相当于其它语言中的 OR) 非 (逻辑非) 用 ! 表示(相当于其它语言中的NOT) 逻辑运算的结果值有两个: false(假)、 true(真) 规则:设有两个布尔量x1,x2 与运算:x1 & x2 当x1,x2均为真时,x1 & x2 结果为真,否则为假; 或运算:x1 | x2 当x1,x2二者其中有一个为真时,结果即为真,只有均为假时,才为假; 非运算:! x1 当x1为真时, 结果为假;当x1为假时,结果为真。,逻辑运算符与逻辑表达式,根据上面的运算规则考虑: a a a & b a | b ! a true true false tru

12、e true false false false,true true false false true true false true false false false true,真 值 表,说明:,强调:1、当同时使用几个布尔量时,运算的优先级别为!(非) (与)|(或) ,可以用括号改变其运算的先后次序。 2、关系运算的结果为布尔量 如 53 结果为 true sqrt(2.5)1 结果为 true(1) a b 结果为假 false (0) 3、 关系运算顺序在逻辑运算&、| 之前(与PASCAL相反) 例如: 判断( x,y) 是否在第一象限,即判断 x,y是否均大于零,表达式为 (

13、x0) & (y0) 可以写成 x0 & y0 而(a= = b) | (x= =y) 可以写成 a= =b | x= = y 不必加括号。,例:a=4,b=5 !a 值为0 a&b 值为1 a|b 值为1 !a|b 值为1 4&0|2 值为1,在进行逻辑表达式的求解中,并不是所有的逻辑运算都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。 例:a&b&c,课堂练习:,四、赋值运算符及其表达式,五、逗号运算符及其表达式,逗号运算符和逗号表达式 一、逗号运算符又称 顺序求值运算符 二、一般表达式: 表达式1,表达式2 三、求解过程: 先求解表达式1,再求解表达式2,整

14、个表达式的值是表达式2的值。 例: a=3*5,a*4 a的值为15,右边表达式的值为60 注意: 在c语言中,逗号优先级最低(低于赋值运算),注意:1、应用逗号表达式的目的一般是想得到各个表达式的值,常用于循环的FOR语句中,而并非一定需要和使用整个逗号表达式的值。如例1、2。 2、并非所有的地方出现的逗号都作为逗号表达式看待,在函数中只是起参数分隔的作用。 例如:printf(“%d,%d“, a,b); 区别: printf(“%d,%d,%d“,(a,b),a,b); 此句中(a,b)则是逗号表达式,其值为b的值。,例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,

15、6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c);,/赋值表达式,表达式值18,x=18,/a=15,表达式值60,/a=15,表达式值20,/逗号表达式,表达式值18,x=3,/1,2,3,/3,2,3,/赋值表达式,表达式值18,x=18,例: /*ch2_6.c*/ #include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(“x=%dn“,x); ,运行结果:x=3,六、各类型数据之间的转换,main( ) int a,b,c; float x,y,z; a=b=1;b+=2; x=a+;y=-b;z=-(-b); c=(int)z

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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