C语言程序设计 第3课 C语言基本数据类型.ppt_第1页
C语言程序设计 第3课 C语言基本数据类型.ppt_第2页
C语言程序设计 第3课 C语言基本数据类型.ppt_第3页
C语言程序设计 第3课 C语言基本数据类型.ppt_第4页
C语言程序设计 第3课 C语言基本数据类型.ppt_第5页
已阅读5页,还剩47页未读, 继续免费阅读

下载本文档

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

文档简介

1、目标: 1 了解C语言的语法基础 2 掌握常量和变量 3 掌握C语言的基本数据类型 4 简单了解运算符和表达式,第三章 C语言的基本数据类型,语言的语法基础,(4)特殊符号:通常由12个符号组成,主要用 来表示运算符。,1 C语言字符集,字符是C语言程序的最小元素,基本符号如下:,(1)英文字母:大小写各26个,共计52个;,(2)阿拉伯数:0、1、2、3、4、5、6、7、8、9 共10个数字;,(3)下划线:_;,第五讲 字符集,2 标识符-(名字),概念:就是用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列。,(1)标识符只能由字母、数字和下划线三种字符组成,且第一个字符

2、必须为字母或下划线。,定义规则:,判断下列表示符的对错: _1 year month student_name sum0 M.D.Jones $123 #a 3b ?c a=b,(2)在C语言中,大小写字母不等效。因此,a和A,I和i,Sum和sum,分别是两个不同的标识符。,(4)用户自定义的标识符不能与保留字(关键字)同名。,保留字,(3)标识符的命名尽量有意义,便于读者理解,3 关键字,概念:就是具有特定含义的标识符,用户不能用来作自定义标识符。,C语言中的关键字较少,由ANSI标准推荐的关键字有32个。,(1)与数据类型有关的(14): char int float double si

3、gned unsigned short long void struct union typedef enum sizeof,(3) 与程序控制结构有关的(12): do while for if else switch case default goto continue break return,(2)与存储类别有关的: auto extern register static,C语言的数据类型:,常量和变量,一、常量,1.直接常量:是在程序中直接引用的数据。,这类常量可从字面形式直接判断 分为:整型、实型、字符型、字符串,以数据的原形出现!,(1)整型常量,三种表现形式:,十进制形式:与数

4、学上的整数表示相同。 例如: 12, -100, 0,八进制形式:在数码前加数字0 。 例如: 012=1*81+2*80=10(十进制),十六进制形式:在数码前加0X(数字0和字母X,大小写均可)。 例如: 0 x12=1*161+2*160=18(十进制),十六进制的数码除了数字0-9外, 还使用英文字母a-f (或A-F)表示10-15。 如:0 x1e、0Xabcdef、0 x1000 但:0X2defg、0 x100L都是错误的。,注意事项:,八进制的数码范围为0-7; 则:018、091、0A2 都是错误的数据表示方法。,(2)实型常量,二种表现形式:,十进制形式:由数字和小数点组

5、成;,指数形式:由“十进制小数” + “ e(或E)” + “十进制数整数” 三部分组成。,例如: 3.4 4. .3,例如: 12.5e-6 表示12.510-6,十进制小数,e(或E),十进制数整数,注意事项:,小数点不能单独出现;,e或E的两边必须有数,且其后面必须为整数;,如:0. = .0 = 0 = 0.0 .,如: 6E0.2 e5 6E,(3)字符型常量,二种表现形式:,用单引号括起来的一个字符;,用单引号括起来的由反斜杠()引导的转义字符。,如:A、 1、? 等。,如: n 101 x41,在统计字符个数时,只能记为一个字符,单引号是英文格式,转义字符表,字符形式,功能,n,

6、换行,t 、V,横向跳格、,b 、r,坚向跳格,退格、,f,回车(回到本行开头),、,8进制数表示的ASCII码对应的字符,反斜杠、单引号、双引号,ddd,换页,xhh,16进制数表示的ASCII码对应的字符,、,美国标准信息交换代码 ASCII码 (American Standard Code for Information Interchange)由8位二进制数(十进制0255) 来表示256种可能的字符,一个字符的多种表示方法:,65D(十进制)=41H(十六进制)=101Q(八进制) 字符A可以表示为A、x41、101、65、0 x41、0101。,要避免的错误:,表示单引号: 表示双

7、引号: 表示斜线: , , , ,字符的值域:,即字符的取值范围。,0-127或0-255,ASCII字符表中的所有字符, 每个字符型数据在内存中占一个字节, 包括可显示字符和非显示字符。,例1:,main( ),printf(”abc tde rf tg n);,printf(h ti b bjk);,/* 注代表空格*/,设一个输出区占8列,试分析输出结果。,(4)字符串常量, 字符串常量是一对双引号括起来的字符序列 例:“How do you do!” “hao123” 在C语言 中没有专门的字符串变量,如果想将一个字符串存放在变量中需要使用字符数组,即用一个字符型数组来存放一个字符串,

8、数组中每一个元素存放一个字符,此内容在后面的章节进行讲解,此处只是作为了解 注:不要将字符常量与字符串常量混淆。 例: a 是字符常量,而“a”是字符串常量,二者是不同的。 char c; 而 char c; c=a; c=“a”; 不能将一个字符串赋予一个字符变量,字符和字符串的区别:,a和“a”究竟有什么区别呢? C规定字符串是以字符 0 做为字符串的结束标志,并且此字符占一个字节。这个0字符是写字符串时系统自动加上的,因此字符串“a”实际上是包含:a 和 0 这2个字符的。把“a”赋予只能容纳一个字符的字符变量c显然是不行的。 例:字符串“CHINA”在内存中不是5个字节,而是6个字节

9、在执行printf(“CHINA”);语句时字符一个一个输出,直到遇到最后的0就知道字符串结束,0是一个ASCII码为0的字符,是“空操作字符”,即它不引起任何控制动作,也不是一个可显示的字符,特点:在程序中不能给它赋值。,概念:是用标识符来表示一个数据。,定义形式:,#define 标识符 常量数据,例如: #define PI 3.14159,在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。,如:2*2.3*PI 就等价于 2*2.3*3.14159。,2 符号常量:,例:#include #define PRICE 30 main( ) int num=10 ,

10、total ; total=num * PRICE; printf(“ total=%d ” , total ); ,定义PRICE代表常量30,在函数体中只要出现PRICE均表示30,注意:虽然符号常量的命名规则也要符合标识符的规则,但符号常量不同于变量,其值在作用的函数体内是不能改变的,是不能被赋值的,如:在上段程序中若出现语句PRICE=40,是错误的,另: 1、习惯上符号常量名用大写字母表示,变量名用小写字母表示 2、定义符号常量时,应含义清晰 3、符号常量的优点:在#define 中改变符号常量的值时,函数体中所对应的符号常量的值跟着改变,即“一改全改” 。,二、变量,变量是指在程序

11、运行中, 其值可以被改变的量。,基本概念:,变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。,在同一程序块中,每个变量都有唯一的名字,不能被重复定义。,使用变量时必须“先定义,后使用”。,例:int a; a变量名 a=3;,3,变量值,存储单元,int a,b,c ; float x,y; char c1,c2;,自己设定,满足标识符的规定。,如:int, float,char,;不可省,1.定义形式:,类型标识符 变量名1 ,变量名2,变量名3,.;,例如:,(1)整型变量的分类,基本型,以int表示。,短整型,以short int表示,或以short表示。,长整型

12、,以long int表示,或以long表示。,无符号型,其中无符号型又分为无符号整型,无符号短整型和无符号长整型,分别以 unsigned int 无所谓正负 unsigned short unsigned long表示,在CFree中short占2个字节int占4个字节long 占4个字节,2.整型变量,int x; long y;,2000,2001,2002,2005,x,y,内存,内存地址,2003,2004,注意:在不同的系统和不同的编译环境下面一个数据类型所占的内存单元有所差别,(2)整型常量的类型 在将一个整型常量赋给一个整型变量时如何进行类型匹配?,其值在-32768 - +3

13、2767范围内,它可以赋值给short int型、int 型和 long int 型变量。,其值在-2147483648 - +2147483647范围内,它赋值给int型和long int型变量。,.短整型常量(short,占个字节):,.整型常量(int,占个字节):,赋值时不应超出其范围否则错误,数据后加一个字母1(小写) 或 L,则认为是long int型常量,.长整型常量的表示:,例如:123l , 432L, 0L等等。,其值在-2147483648 - +2147483647范围内,则认为它是long int型,可以将它赋值给一个long int 型变量。,.长整型常量(long

14、,占个字节):,main( ) int x; x =10*9*8*7*6*5*4*3*2*1; printf(%d,x); ,例 看看下面程序的输出是什么?,short x;,运行结果:3628800,3、实型变量,(1)实型变量的分类,单精度(float)型,双精度(double)型,(2)实例,2000,2003,2004,2011,x,y,内存,内存地址,例:#include main() float a,b; a=123456.789e5; b=a+20; printf(“%f”,b); %f是输出一个实数的格式符,程序运行后我们发现实际输出的值与我们预期的值有出入,b的理论值应该是1

15、2345678920,但一个实型变量只能保证7位有效数字,因此后面所加上的20无意义。类似,用程序计算1.0/3*3的结果并非是。,例如: char c; c= A; c= 034; c= n; c= x65; c=65;c=0101;c=0 x41;,4.字符变量,字符变量用来存放字符常量,注意一个字符变量只能存放一个字符。,一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。将一个字符赋予字符变量,实际上是将此字符的ASCII码存入内存。,例:char ch; ch=A;,65,ch,我们可以看出字符的存储形式与整数的存储形式是类似的,这样使字符型数据和整型数据之间可以通用

16、。一个字符数据既可以以字符的形式输出,也可以以整形的形式输出。以字符形式输出时,计算机将存储单元中的数据当成ASCII码,将其转换成相应字符输出,以整形形式输出时,直接将ASCII码作为整数输出。因此也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算。,例:#include main() char c1,c2; c1=97; c2=98; printf(“%c, %c”,c1,c2); printf(“%d, %d”,c1,c2); ,输出结果: a , b 97 ,98,例:main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-3

17、2; printf(“%c, %c”,c1,c2); ,此题是将小写字母转换成大写字母输出 输出结果: A ,B,5.变量初始化,在说明变量的同时给变量一个初始值。,变量定义,分配存储空间,变量初始化,分配存储空间的同时存入数据,int a,b;,int a=1,b=2;,不确定,例:看一看,下列的定义哪些是正确的?,int a=5, b=3;,int a=b=c=3;,int a,b,c; a=b=c=3;,例: #define PI 3.14159 main( ) float s, r; scanf(%f, /* 输出变量s 的值(面积) */ ,1 s= 3.14 (共输出6个字符且有2

18、位小数) 2 s= 12.5664 (共输出8个字符且有4位小数),运 行 结 果,另:各类型数据之间可以进行混合运算,即整型数据(int,short,long,unsighted),实型数据(float,double)和字符型数据(char)间可以混合运算。 例如:10 + a + 1.5 - 8765.1234 * b 是合法的。 在进行运算时计算机将不同类型的数据转换为同一类型,然后进行运算。,double,long,unsigned,Char,short,int,float,运算符的分类,分类依据:运算符的功能,分类:,算术运算符,关系运算符,逻辑运算符,赋值运算符,按位运算符,其它运

19、算符,表达式:,是由操作数和运算符组成的序列。,运算符与表达式,算术运算符:+ - * / % + -,关系运算符: = = = !=,逻辑运算符: ,+:加法,-:减法,*:乘法,/:除法,%:取余,3+5 1+1 +3,3-5 1-1 -3,3*5 a*b,3/5=0 3.0/5=0.6 3/5.0=0.6,3%5=3a%ba、b必须为整数,、算术运算符,一、算术运算符和算术表达式,用算术运算符和括符将操作数连接起来的式子。,优先级:,( ),* / %,+ -,结合性,自左向右,与数学上一致。,表达式的值:,数值型: int、long、unsigned、double,结合性是指同级运算时

20、运算符的结合方向。 如a#b#c (#代表某一运算符) 若先运算a#b,再将其结果与c运算, 称为左结合性;从左至右运算规则 若先运算b#c,再将a与其结果运算, 则称右结合性。从右至左运算规则,2、算术表达式,例2-5:已知: float a=2.0; int b =6,c =3; 求解: a*b/c-1.5+ A +abs(-5)=?,12.0/3,4.0 - 1.5,2.5,+65(int),67.5,5,72.5,+i,-i,先增(减)1,再使用i,i+,i-,先使用i,再增(减)1,(1) 单独使用时,+i;,等 价,i+;,等 价,i=i+1;,(2) j=+i;,(3) j=i+;,若i的初始值为3,i=4; j=4;,i=4; j=3;,3、自增与自减运算符(重点和难点),结合性:,自右向左,例:,i = 2; j = -i+;,分析: (1)+、-、+(正号)、-(取负)是同级运算符,结合方向:自右向左。,(2) -i+等价于-(i+),(3) 对于括号内的自增运算,又要先使用i,再使i增加1。,运算结果: i的值为3,j的值为-2。,自加+,自减- - 只能用于整形变量,二、赋值

温馨提示

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

评论

0/150

提交评论