第2章c语言基础剖析

上传人:今*** 文档编号:107860516 上传时间:2019-10-21 格式:PPT 页数:52 大小:1.16MB
返回 下载 相关 举报
第2章c语言基础剖析_第1页
第1页 / 共52页
第2章c语言基础剖析_第2页
第2页 / 共52页
第2章c语言基础剖析_第3页
第3页 / 共52页
第2章c语言基础剖析_第4页
第4页 / 共52页
第2章c语言基础剖析_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《第2章c语言基础剖析》由会员分享,可在线阅读,更多相关《第2章c语言基础剖析(52页珍藏版)》请在金锄头文库上搜索。

1、第2章 C语言基础,【主要内容】,本章介绍C语言提供的基本数据类型及数据运算规则,这些知识是程序设计的基础。另外介绍了一下常用的几个数学函数 。,【学习重点】,掌握C语言标识符的正确命名方法。会区分不同的常量和变量。掌握将数学式子转换为C语言表达式的方法。,第2章 C语言基础,第一节 基本数据类型,第二节 常量,第三节 变量,第四节 运算符,第五节 常用数学函数与表达式,第一节 基本数据类型,什么是数据类型?,其实就是数据的种类(是整数还是实数)与大小范围。,第一节 基本数据类型,C语言的数据类型:,第一节 基本数据类型,C语言的常量、变量、表达式都有数据类型。,常量的类型系统能根据书写形式自

2、动识别,,变量的类型则需程序显式定义。,表达式的类型由参与运算的常量和变量的类型决定。,C语言可以处理的数据类型很多,可分为基本类型和复杂类型。,第一节 基本数据类型,C语言基本数据类型:,一、常量,第二节 常量,常量是指程序在运行过程中其值始终不变的量。如y = 3 * x中的3是不可变的,它就是常量,C语言自动识别其类型为整型常量。,常量的进一步分类:,第二节 常量,1. 数字型常量,第二节 常量,对较大、较小的实型常量常用指数表示法,又称科学记数法。其中,e(或E)的前面是带一位整数的小数,后面是整数表示的指数。,例如: 6.021023,可表示成: 6.02e+23或6.02e23;

3、-1.610-19,可表示成: -1.6e-19。,第二节 常量,2. 字符型常量,字符常量中有一类以右斜线开始的特殊的常量称转义字符,这些转义符有固定的含义。,第二节 常量,字符常量是一对单引号括起来的单个字符,如a。,常见的转义字符 有:,在C语言中,字符串常量简称字串或串,它由一对双引号括起来的零个或多个字符组成,双引号仅起定界作用,本身并不是字符串中的内容。,第二节 常量,双引号内可以没有字符,即“,这样的字符串称“空串”。,若字符串本身又包含双引号等特殊字符,则需要使用转义字符“”才能实现,,字符串中包含的字符个数,称为该“字符串的长度”,字符串中的转义字符视为1个字符。,【例2-1

4、】含转义字符的字串的输出。,/* 例2-1,2-1.c */ #include void main() printf(“abctdefnghiibt“hello!”“); ,第二节 常量,对于字符串,C语言规定以字符0作为结束标志,系统将根据该字符判断字符串是否结束。字符0由系统自动加入到每个字符串的结束处,不必人工加入。,因此,字符串“China”在内存中的存储形式是:,第二节 常量,第二节 常量,【例2-2】在C语言中,0、0、0和“0“有何区别?,0 是一个整型常量,在内存中用2个字节来存放整型常量0的值。,0 是一个字符常量,在内存中用1个字节来存放字符0的ASCII码(见附录A)值(

5、十进制值为48)。,0 也是一个字符常量,即空字符,占用1个字节空间,其ASCII码值为0。,“0“ 是一个长度为1的字符串常量,在内存中要占用两个字节空间,第一个字节用来存放字符0的ASCII码值(十进制值为48),第2个字节存放字符串结束符0。,程序中用到两种字符:汉字和西文。对应的字符编码也有两种:汉字是GB2312-80码,西文是ASCII码。,ASCII码(American Standard Code for Information Interchange)是美国国家标准信息交换码的简称。7位版本的ASCII码称为基本ASCII码(见附录A),表示范围是0127,所表示基本ASCII

6、码能表示128个字符编码。它包含10个数字、52个大小写英文字母、32个标点符号、运算符和34个控制码。,第二节 常量,每一个西文字符对应一个唯一的ASCII码。程序员不必记住所有的ASCII码,但必须掌握ASCII码的规律,以及几个特殊的ASCII码值。,第二节 常量,ASCII码规律 :,如果已知0的ASCII码值为48,那么7的ASCII码值为48+7=55;同理,a的ASCII码值为97,则f的ASCII码值为97+5=102等等。,三类字符的ASCII码值大小顺序:数字字符 大写字母字符 小写字母字符;这三类字符之间ASCII码值是不连续的,但每类字符的ASCII码值是连续的。,大小

7、字符的ASCII码值相差32。,3.符号常量,符号常量是用标识符表示的常量。从形式上看,符号常量象像变量,但实际上它是常量,其值在程序运行时不能被修改。, 宏定义,宏定义是用指定的标识符来代表一串字符,其一般形式为:,#define 标识符 字符串,第二节 常量,例:#define PI 3.1415926,注意,宏名一般用大写字母表示,以区别于普通的变量 。,第二节 常量,提示:,宏定义必须以#define开头,行末不加语句结束符(;)。,每个#define只能定义一个宏,且只占一个书写行。,#define命令一般出现在函数外部,其有效范围为从定义处到该源程序文件结束。,编译系统只对程序中出

8、现的宏名用定义中的字符串作简单替换,而不作语法检查。,用宏定义还可以定义更复杂的表达式或函数。, const定义,与宏定义不同,const定义的符号常量既有类型又有值。,const 数据类型 标识符=常量表达式;,例如:const int SIZE = 10;,第二节 常量,其一般的形式为:,定义了一个整型符号常量SIZE其值等于10。,const定义是以关键字const开头,以分号结尾的C语言语句。,每个const语句可以定义多个同类型的符号常量,相互之间用逗号隔开,如:const int x = 45, y = 66;,const定义既可以出现在函数外部,也可以出现在函数内部。不同位置定义

9、的符号常量的作用域不同。,const定义是在程序编译时完成对标识符的赋值,这个值被存放在内存的常量区中。,第二、用简单的符号常量代替较长的常量,可防止书写时出错。,在程序中提倡使用符号常量。符号常量有以下几个优点:,第三、修改符号常量定义时的值,即可完成对源代码中所有该 符号常量值的修改。,第二节 常量,第一、可以清晰地表示常量所代表的物理意义。,第二节 常量,课堂练习2.2,1. C语言有哪几种常量? 2. 请列举出字符常量与字符串常量的区别。 3. 符号常量的宏定义和const定义有何区别?,一、变量的要素,与常量相反,其值可以改变的量称为变量。,例如: int x = 8;,变量的名称为

10、x;类型是整型,在内存中占用2字节的存储空间;当前变量的值是8。这三者的关系是:,第三节 变量,C语言变量命名规则是 :,第三节 变量,1.变量名只能由字母、数字、下画线组成。,2.变量名只能由字母和下画线开头。,3.变量名须区分字母的大、小写,a与A是两个不同的变量名。,4.变量不能是C语言的保留字(或称关键字),即不能使用C语言系统已经有固定含义的单词。,5.尽量见名知意,一般变量名都采用英语单词或单词组合,如age、stu_high等等形式,不建议使用拼音。,按照变量名的规则,x、_a、_1等是合法的变量名,1_a、for、xy等是错误的变量名。,C语言32个保留字:,第三节 变量,二、

11、变量定义,在C语言中变量必须先定义后使用。变量定义的格式是:,类型说明符 变量1, 变量2, 变量3, ;,例如:,int i = 1; /* 定义了一个整型变量i */,第三节 变量,类型说明符用来指定变量的数据类型,包括int、float、 double、char等;,变量名表如果有多个变量,则彼此间要用逗号分隔;,分号是语句结束符。,三、变量类型转换,C规定,表达式值的类型由参与运算的数据的类型(最大类型)决定。第3个表达式的结果是60000,超出整型数范围,故C语言已经不能得出正确的结果了。,第三节 变量,在C语言中,23=6,2030=600,200300=60000 ?,C语言中变

12、量类型转换有两种方式:自动转换方式、强制转换方式。,这里所谓的小类型、大类型是相对于数据占用的内存多少而言的。,上面的几个例子是自动转换类型,自动转换类型的原则是“小类型向大类型转换”。,第三节 变量,自动转换规则:,横向向右箭头表示必定转换,如字符型(char)数据必定先转换为整数,实型(float)数据必定先转换成双精度(double)型,以提高运算精度。,纵向箭头表示当运算对象为不同类型时转换的方向。例如char型和double型进行运算,则先将char型转换成double型,然后再运算,结果为double型。注意char型转换为double型时,是直接一次性转换,中间不经过int、un

13、signed和long类型。,第三节 变量,【例2-3】本例数据类型自动转换后,得到了一个不正确的结果。,源代码:,/* 例2-3,2-3.c */ #include void main() float PI = 3.14159; /* 定义变量 */ int s, r = 5; /* 定义变量 */ s = r * r * PI; /* 运算并赋值 */ printf(“%d”, s); ,本例中,s为整型变量,因此s被赋值时,实数自动转为了整数,结果s=78。,第三节 变量,类型的强制转换方式,格式:,(类型) 变量 或: (类型) (表达式),例如:(float) 1 / 2 = 0.5

14、00000,(float) ( 1 / 2 )= 0.000000。,第三节 变量,作为C程序员的基本功,应该能估算计算结果的范围,从而选择合适的变量类型。选择变量类型的原则是“就大不就小”。,源代码: /* 例2-4,2-4.c */ #include void main() int m = 300, n = 200; long t = m * n; printf(“m=%ld“, t); ,第三节 变量,【例2-4】试分析,下边的代码会输出正确的结果吗?,本例中,m * n应该等于60000,但m和n均是整型变量,因此其乘积结果也应为整型值。,long t = ( long ) ( m *

15、 n ); /* 错误 */ long t = ( long ) m * n; /* 正确 */,想想:为什么?,1.变量的命名规则是什么? 2.变量类型转换有哪些转换方式?,课堂练习2.3,第三节 变量,学习运算符要注意三点:优先级、结合方向、与数学运算符的区别。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级的规定,还要受运算符结合性的制约。,一、运算符简介,1. 运算符分类,C语言的运算符可分为算术、关系、逻辑、位、赋值、条件、逗号、指针及特殊运算符等类。,第四节 运算符,第四节 运算符,C语言运算符的优先次序:,在C语言中,每个运算符都代表对运算对象的某种运算,都有自己特定

16、的运算规则。结合性指运算时的运算秩序,即从左往右还是从右往左。,运算符要求的操作数称为目。如+为单目运算符,+为双目运算符,条件运算符“?”是唯一的一个三目运算符。,第四节 运算符,二、算术运算符,1. 算术运算符,这类运算符包括加(+)、减(-)、乘(*)、除(/)、求余(%)、 自增(+)、自减(-)七种。,“%”是求余运算符(模运算符),而不是数学上的百分比,其作用是取两个整数相除后的余数,余数的符号取被除数的符号。同时C还规定当被除数绝对值小于除数的绝对值时,结果取被除数。,第四节 运算符,取多位正整数x的个位、十位、百位、千位,可依次用表达式x/1%10、x/10%10、x/100%10、x/1000%10实现;若a能被b整除,则a%b值为0。,例如: 17 % 5 值为2,但5 % 17 值为5。 -17 % 5值为-2,-17 % -5值为-2, 17 % -5值为2。,在实际应用中,%通常用于分解数字、判断整除等。,试

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

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

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