版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 数据类型、运算符与表达式,舒 玉,在计算机高级语言中,一般都要对使用的数据进行声明。这是为了使计算机能有效地使用和管理数据。这与我们在日常生活中使用数据时是有差异的。,数据声明涉及到计算机中的许多概念,如果以前没有学习过其它的高级语言,初次接触数据类型的概念,总会觉得不理解。但只要结合程序的调试,以后就会理解和习惯计算机中的数据类型。,数据声明(说明),一、数据的概念,在计算机科学中,数据是指能由程序处理的对象。,日常生活中的数字、字符、图形图象及声音等,在计算机中均作为数据看待。所以,计算机中的数据的概念是日常数据概念的推广。,数据及数据类型,二、数据的类型,在高级语言中,每一个数据
2、都属于一个特定的类型。不同类型的数据的表示、存储及操作是不相同的。,在计算机中,所有的数据都是以“0”和“1”这两个数据来存放的,为了使不同的数据能在计算机中方便、有效地存放和处理,需要将数据分类,因此就有不同的数据类型。,数据及数据类型,三、C中的数据类型,1、基本类型:系统自己定义的一些简单的数据类型。,2、构造类型 :用户根据需要由已知的基本类型按一定的规则构造出的有结构的数据类型。,程序在使用某一数据之前,一定要将该数据进行声明。,声明的目的是使计算机了解所使用的数据类型,以便安排合适的存储空间,进行合适的运算。,为什么要有不同的数据类型,例:学生信息管理 学号姓名年龄成绩 09370
3、1张三2080.5 093702李四2190 093703赵五1976.6, C语言对程序中要用到的每一个变量 都要事先指定它的数据类型!,为什么要指定数据类型?,1不同类型的数据在内存中占据不同长度的存储区。 2不同类型的数据取值范围不同。 3不同类型的数据有不同的操作。,基本数据类型,数值型,整 型,单精度(float),双精度(double),字符型(char),构造类型,数组,结构(struct),浮点型,基本型(int),短整型(short),长整型(long),无符号型(unsigned),共用体(union),其它类型,指针(point),空类型(void),长双精度(long
4、double),枚举型(enum),字符,字符串,在C语言中,程序中的每一个数据都有一个确定的类型。,C语言的数据类型,基本数据类型及说明,常量是在程序运行期间始终保持不变的数据。变量是在程序运行期间其值可以改变的数据。,(一)常量的类型及其表示法,常量分为不同的类型:,四、常量和变量,整型 100,125L,-100,0,32u 实型 3.14 , 0.125f,-3.789,5.6e-3 字符型 a, b,2,一般的数学记数法对数据很大或很小的浮点数表示很不方便,故在计算机中有一种科学计数法,将浮点数记成指数形式。 浮点常量用E表示的指数形式由三部分组成:符号、指数和尾数。,字符常量用一对
5、单引号括起的一个字符,转义字符常量,一些特殊的字符,如回车、换行等,有时需要在程序中使用,但这些字符又不能直接用字母表示,在C语言中,采用转义字符来表示它们。 转义字符是以开头的字符序列。如n表示换行符、 x1B表示ASCII值为十六进制的1B的字符即,演示,转义字符表,例:制表符的使用#include void main()printf(1234567890n);printf(atXXXn);printf(abctXXXn);,例2.5 转义字符的使用#include void main() printf(ab ct derftgn); printf(htibbj kn);,打印机上的显示结
6、果: fab c gde h jik,显示屏上的运行结果: f gde h j k,字符串常量,用双引号包含的ASCII码字符组合(双引号不是字符串内的字符,只起定界作用),例:ABCD , $#340000 , BEIJING ,符号常量,用某一个标识符(名字)来表示某一常量,则把该标识符称为符号常量,符号常量在使用之前必须说明。,格式:#define 标识符 表达式,例:#define PI 3.141593,定义以上语句后,以后程序中凡是用到3.141593这个常数时,可以用符号常量标识符PI代替。,例2.1在程序中使用符号常量 #define PRICE 30#include void
7、 main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total);,符号常量: 用一个标识符代表一个常量。符号常量的值在其作用域内不能改变,也不能再被赋值。,运行结果: total=300,说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可以和常量一样进行运算,说明: 如再用赋值语句给PRICE赋值是错的 PRICE=40;/* 错误,不能给符号 常量赋不能对符号常量指定类型*/ int PRICE; /* 错误,PRICE不是变 量,不能指定类型
8、 */,(2)符号常量的意义,当某一常数在程序中多处出现时,可事先定义一个符号常量。,一般来说,下列两种情况用符号常量比较方便。,有时,程序中的常数是有意义的,但写一个具体数字,程序的阅读者则很难明白该常数的意义,此时可定义一个符号常量。,例:#define PRICE 15,则在程序中见到PRICE时,知道该处是表示价格,如写一个15,程序阅读者则无法知道15的含义。,变量代表在程序执行过程中其值可以改变的存储单元,这个存储单元的名字称为变量名。它用来存放数据,也就是变量的值,在程序运行期间,这些值是可以改变的。 变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每
9、一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,1、变量的概念,(二)变量的概念、类型及其声明,通俗讲,变量是程序在运行期间用来存放数据的装置,当程序将一个数据放入变量时,变量中原来存放的数据被新的数据取代,而当从变量中取出一个数据时,变量中的数据不会发生变化。,由于程序中的数据有不同的类型,所以变量也有不同的类型,以便存放不同的数据。,在一个程序中,往往有多个变量,为了区别不同的变量,就需要给变量取名,和其它事物命名一样,变量的命名也有相应的规则。,1、变量的概念,(二)变量的概念、类型及其声明,2、变量的命名规则,标识符 用来标识
10、对象名字(包括变量、函数、数组、类型等)的有效字符序列 。 C语言中,有3类标识符:关键字、系统预定义的标识符、用户标识符。 变量的名字必须符合C语言对标识符的规定。 C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。,2、变量的命名规则,变量命名的规定:变量的名字必须符合C语言对标示符得规定 例:sum,_total, month, Student_name, lotus_1_2_3,BASIC, li_ling M.D.John, ¥123,3D64,ab,注意:1C语言区分大小写,2变量名的长度一般不超过31个字符,最好不要超过8个字符。,如:Pric
11、e 和 price,系统会认为是两个不同的变量名。,具体情况是不同系统而定。,注意:3在选择变量名和其它标识符时,,4要求对所有用到的变量作强制定义,也就是“先定义,后使用” 。,应注意做到“见名知意”,即选有含意的英文单词 (或其缩写)作标识符。,变量的类型主要有三种: 基本变量 数组变量 结构变量 指针变量等。,3、变量的类型,4、基本变量及声明(说明),对于一个变量,计算机需要知道它是用来存放什么类型的数据的,告诉计算机变量是用来存放什么类型的数据的过程称为变量的声明。C语言中,一个变量在使用之前必须声明。,声明方式: 用关键字int、short、long int、float、doubl
12、e、char等进行声明,例1:int i, j; / 变量i,j被声明为整型变量 例2:double f, t; / 变量f,t被声明为双精度变量 例3:char c, d; / 变量c,d被声明为字符变量,4、基本变量及声明(说明) 4.1整型变量,整数类型的有关数据:,类型 类型说明符 长度 数的范围 基本整型(VC) int 4字节 -231231-1 短整型 short 2字节 -215215-1 长整型 long 4字节 -231231-1 无符号整型 unsigned int 4字节 0232-1 无符号短整型 unsigned short 2字节 0216-1(65535) 无符
13、号长整型 unsigned long 4字节 0232-1,4、基本变量及声明(说明) 4.1整型变量,整型数据在内存中的存放形式 数据在内存中以二进制形式存放。 如: int i; /* 定义为整型变量 */ i=10; /* 给i赋以整数10 */ i i (a) (b),4、基本变量及声明(说明) 4.1整型变量,实际上,数值是以补码表示的。一个正整数的补码和该数的原码相同。负数的补码是:将该数的绝对值的二进制形式,按位取反再加1。 10的原码 (a) 取反 (b) 得-10的补码 (c),整型数据在内存中的存放形式,例2.2 整型变量的定义与使用#include void main()
14、 int a,b,c,d; /*指定a、b、c、d为整型变量* unsigned u; /*指定u为无符号整型变量* a=12; b=-24; u=10; c=a+u; d=b+u; printf(a+u=%d,b+u=%dn,c,d):,说明: 可以看到不同种类的整型数据可以进行算术运算,运行结果: a+u=22,b+u=-14,4、基本变量及声明(说明) 4.2 浮点型变量,1)浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。,4、基本变量及声明(说明) 4.2 浮点型变量,2)浮点型数据在内存中的存放形式:一个浮点型数据一般在
15、内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。,456576.37+ .45657637e6,例2.4 浮点型数据的舍入误差,#include void main() float a,b; a = 123456.789e15; printf(%fn,a); b = a + 20; printf(%fn,b); ,4、基本变量及声明(说明) 4.2 字符变量,字符型变量用来存放字符常量,注意只能放一个字符。 字符变量的定义形式如下:char c1,c2; 在本函数中可以用下
16、面语句对c1,c2赋值: c1a;c2 b ; 一个字符变量在内存中占一个字节。,4、基本变量及声明(说明) 4.2 字符变量,字符数据在内存中的存储形式及其使用方法 一个字符常量存放到一个字符变量中,实际上并不是把该字符的字型放到内存中去,而是将该字符的相应的ASCII代码放到存储单元中。这样使字符型数据和整型数据之间可以通用。,注意: 一个字符数据既可以以字符形式输,也可以以整数形式输出以字符形式输出时,系统先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算。,例2
17、.6 向字符变量赋予整数。 #include void main() char c1,c2; c1=97; c2=98; printf(%c %cn,c1,c2); printf(%d %dn,c1,c2);,说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它的作用相当于以下两个赋值语句: c1a;c2b; 因为a和b的ASCII码为97和98,运行结果: a b 97 98,例2.7 大小写字母的转换 #include void main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(%c%c,c1,c2);,说明:程序
18、的作用是将两个小写字母a和b转换成大写字母A和B。从ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。C语言允许字符数据与整数直接进行算术运算。,运行结果:a b,4、基本变量及声明(说明) 4.2 字符变量 字符数据在内存中的存储形式及其使用方法,说明: 有些系统(如Turbo C,VC+)将字符变量定义为signed char型。其存储单元中的最高位作为符号位,它的取值范围是-128127。如果在字符变量中存放一个ASCII码为0127间的字符,由于字节中最高位为0,因此用%d输出字符变量时,输出的是一个正整数。如果在字符变量中存放一个ASCII码为12825
19、5间的字符,由于在字节中最高位为1,用%d格式符输出时,就会得到一个负整数。,#include void main() char c1;/改为short类型,如何? c1 = 255; printf(%dn,c1); ,#include void main() short c1;/改为int类型,如何? c1 = 32728; printf(%dn,c1); ,#include void main() int c1;/改为short类型,如何? c1 = 65536; printf(%dn,c1); ,初始化是指给变量赋初值。对C语言而言,变量的初始化显得尤为重要,这是因为C语言不会自动对变量
20、进行初始化。 由于变量没有初始化而产生的错误很难检查。,变量说明时可同时对变量进行初始化。,例:,int i=8,j=5; char b= A,c= u,a; a=“china”;,5、变量的初始化,C语言提供了多种运算符,有些运算符看起来很简单,但不小心很容易出错,1.算术运算符 (+ - * / %) 2.关系运算符 ( = | a=5; b=5; printf(” +a=%d”,+a); printf(” b+=%d”,b+); ,输出结果: +a=6 b+=5,i=i+1 (i=i-1),4、自加自减运算符,赋值运算符:=,赋值表达式:变量=表达式,例:t=x+5,复合运算符:在赋值运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省渭南市临渭区2025-2026学年七年级上学期期末考试英语试卷(含答案)
- 河北省沧州市十二校联考2026届高三上学期一模语文试题(含答案)
- 2025-2026学年上海市浦东新区七年级(上)期末数学试卷(五四学制)(含简略答案)
- 【寒假复习】人教版四年级数学上册《大数的认识》专项训练(含答案)
- 化工企业车间级培训课件
- 飞碟科普教学课件
- 飞机黑匣子科普
- 2026云南昭通绥江县农业农村局招聘城镇公益性岗位工作人员1人岗位表备考考试题库及答案解析
- 飞机知识主题班会课件
- 2026年度济南市历下区所属事业单位公开招聘初级综合类岗位人员备考考试题库及答案解析
- 校车逃生安全知识
- 胶体与界面化学
- 高温熔融金属企业安全知识培训
- 深圳益电通变频器说明书TD90
- 2024至2030年中国公安信息化与IT行业发展形势分析及运行策略咨询报告
- 机动车商业保险条款(2020版)
- 食管破裂的护理查房
- 民办高中办学方案
- 高教主赛道创业计划书
- 一年级上册生字练字帖(仅打印)
- 委托付款三方协议中英文版
评论
0/150
提交评论