《第02章数据类型优秀课件.ppt》由会员分享,可在线阅读,更多相关《第02章数据类型优秀课件.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第02章数据类型2023/2/91第1页,本讲稿共45页教学内容教学内容:2.1 程序设计概述程序设计概述2.2 数据类型数据类型2.3*常量和变量常量和变量2.4*整型数据整型数据2.5 实型数据实型数据2.6*字符型数据字符型数据2.7 算术运算与算术表达式算术运算与算术表达式2.8*赋值运算与赋值表达式赋值运算与赋值表达式2.9 自增、自减与逗号运算简介自增、自减与逗号运算简介本章要点本章要点本章作业与上机实践本章作业与上机实践2023/2/92第2页,本讲稿共45页2.1 2.1 程序设计概述程序设计概述一个程序应包括对数据的描述和对数据处理的描述。1对数据的描述数据结构数据结构C C
2、语言提供的数据结构,以语言提供的数据结构,以数据类型数据类型的形式出现的形式出现。2023/2/93第3页,本讲稿共45页2对数据处理的描述算法算法著名计算机科学家沃思沃思提出一个经典公式:数据结构数据结构+算法算法=程序程序在软件工程中,除了数据结构和算法外,还必须编制相关文档文档。返回返回2023/2/94第4页,本讲稿共45页2.2 2.2 数据类型数据类型C C语语言言提提供供的的数数据据结结构构,以以数数据据类类型型形形式式出出现现。常用的有以下3类6种:1.基本类型:整型、实型(浮点型)、字符型等。2.构造类型:数组、结构类型等。3.指针类型。C语言中的数据,有常常量量和变变量量之
3、分,它们分别属于某种数据类型。返回返回2023/2/95第5页,本讲稿共45页2.32.3*常量和变量常量和变量2.3.1 常量常量1.概念在程序运行过程中,其值不其值不能被改变变的量。2.分类(通过书写形式书写形式来判别)(1)整型常量:1,7,12(2)实型常量:3.14,9.80(3)字符(串)常量:a,1/”ABC”,”中国北京”(4)符号常量:PI(3.14)。2023/2/96第6页,本讲稿共45页2.3.2*变量变量1.概念在程序运行过程中,其值可其值可以被改变变的量。2.两个要素(1)变变量量名名:每个变量都必须有一个名字,变量命名遵循标识符标识符命名规则。(2)变变量量值值:
4、在程序运行过程中,变量值存储在内内存存中。在程序中,通过变量名变量名来引用。2023/2/97第7页,本讲稿共45页.标识符命名规则标识符命名规则(1)有有效效字字符符:只能由大写字母、小写字母、数字和下划线组成,且以字母或下划线开头。注注意意:在C语言中,同一字母的大小写,被认为是两个不同的字符。关键字中,除个别外,绝大多数也是如此。思思考考:在C语言中,变量名total与TOTAL、ToTaL、tOtAl等是同一个变量吗?2023/2/98第8页,本讲稿共45页(2)有效长度有效长度:随系统而异;但,超长部分被舍弃超长部分被舍弃。思思 考考:假 设 某 系 统 标 识 符 的 有 效 长
5、度 为 8,则student_name和student_number是一回事吗?(3)C语言的关键字关键字不能用作标识符名。2023/2/99第9页,本讲稿共45页4.标识符命名的软件工程软件工程要求见名知义见名知义所谓“见名知义”是指,通过标识符名名就知道标识符所代表的含义义。方法:英文单词英文单词(或缩写),或汉语拼音字头汉语拼音字头。例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。比较比较:a、b、c、d与上述4个变量名的可读性?2023/2/910第10页,本讲稿共45页5.变量的定义与初始化变量的定义与初始化在语言中,变量必须先定
6、义、后使用先定义、后使用。变量初始化初始化定义定义变量的同时赋初值时赋初值的操作。存存储储类类型型 数数据据类类型型 变变量量名名=初初值值,变变量量名名2=2=初初值值22;例如,float radius,length,area;例如,float radius=2.5=2.5;返回返回2023/2/911第11页,本讲稿共45页2.42.4*整型数据整型数据2.4.1*整型变量整型变量1分类根据占用内存字节数内存字节数的不同,分为4种。常用的有:(1)基本基本整型(int)(简称为整型)(2)长长整型(long int)一般:long型(字节)int型(字节)。2023/2/912第12页,
7、本讲稿共45页2 2值域值域可使用sizeof(sizeof(类型类型|变量变量)运算符,求得某种整型(变量)占用的内存字节数n。其值域值域如下:有有符号整型变量的值域为:-2n*8-1 (2n*8-1-1);无无符号整型变量的值域为:0 (2n*8 1)。例如,在16位系统(如IBM-PC)中,sizeof(int)=2,即int变量占用字节字节,其值域为-22*8-1(22*8-1-1),即-32768 32767。2023/2/913第13页,本讲稿共45页思考思考:假设被处理数据的取值范围为-1000至+100,000的整数,那么对应的变量应定义为什么类型?2023/2/914第14页
8、,本讲稿共45页2.4.2 整型常量整型常量1表示形式三种(十、八、十六进制),最常用的是十进制:10,36。2023/2/915第15页,本讲稿共45页2分类(1)基基本本整型:在16位机中,用2字节存储,其值域与int变量一样。(2)长长整型(在数值后面加“L L|l l”)对超出int型值域的整型常量,应使用长整型常量表示。例如,long n=100000L;2023/2/916第16页,本讲稿共45页3赋值规则一个整型常常量量,可以赋给值值域域它的整型变量变量,即:基本整型常量 int、long型变量;长整型常量 long 型变量。返回返回2023/2/917第17页,本讲稿共45页2
9、.5 2.5 实型数据实型数据2.5.1 实型变量分类实型变量分类1单精度型(float):一般占字节(32位)。2双精度型(double):一般占8个字节。2023/2/918第18页,本讲稿共45页2.5.2 实型常量实型常量实型常量即实数(浮点数),有两种表达形式:(1)十进制小数十进制小数形式:3.14,9.8。(2)指数指数形式:尾数尾数 E(e)E(e)整型指数。整型指数。例如,3.0+5。实型常量不分float型和double型,可以赋给一个实型变量(float或double型)。返回返回2023/2/919第19页,本讲稿共45页2.62.6*字符数据字符数据2.6.1 字符常
10、量字符常量1.定义用一对单引号单引号括起来的单个字符单个字符。例如,A、等。2.转义字符以反斜杠反斜杠“”开头的字符常量。常用转义字符参见表2-1,最常用的是n。注意注意:如果反斜杠反斜杠或单引号单引号本身作为字符常量,必须使用转义字符:、。2023/2/920第20页,本讲稿共45页2.6.2 字符变量字符变量(char)一般占用1字节内存单元,用于存储字符常量。1变量值的存储将一个字符常量字符常量存储到一个字符变量字符变量中,实际上是将该字符的ASCII码码值(无符号整数)存储到内存单元中。例如:char ch1=a;/*给字符变量赋值*/2023/2/921第21页,本讲稿共45页2特性
11、字符数据字符数据与整型数据整型数据之间通用因为字符数据在内存中存储,与整数一样:A:0100000165:00000000,01000001具体:(1)输出:字符+整数(ASCII码值)(2)允许参与算术运算(ASCII码值)2023/2/922第22页,本讲稿共45页2.6.3 (字符字符)串常量串常量1用一对双引号双引号括起来的若干若干字符称为(字符字符)串常量串常量。2字符串中的字符个数字符个数称为字符串长度(简称串长串长)。例如,“Good morning.”、“A”、“”(一对紧连的双引号),串长分别为13(空格也是一个字符)、1和0(长度为0的字符串称为空串空串)。2023/2/9
12、23第23页,本讲稿共45页注意注意:如果反斜杠反斜杠和双引号双引号作为字符串中的有效字符,则必须使用转义字符转义字符。例如:C:msdos v6.22 C:msdosv6.22I say:Goodbye!I say:Goodbye!2023/2/924第24页,本讲稿共45页3串常量的存储由系统在字符串的末尾末尾自动添加一个00作为字符串的结束标志。例如,字符串“CHINA”,在内存中的实际存储如下:CHINA0返回返回2023/2/925第25页,本讲稿共45页2.7 2.7 算术运算与算术表达式算术运算与算术表达式1.1.算术运算符算术运算符+、-(减法/取负)、*、/、%(求余数)C语
13、言规定:两个整数相除,其商为整数整数相除,其商为整数,小数部分被舍弃。例如,5/2=2,-5/2=-2-5/2=-2。2023/2/926第26页,本讲稿共45页2.表达式和算术表达式表达式和算术表达式(1)表达式用运运算算符符和括括号号,将运运算算对对象象(常量、变量和函数等)连接起来的、符合语言语法规则的式子。例如,(x+y)/2 1。(2)算术表达式表达式中的运算符运算符都是算术运算符算术运算符。例如,3+6*9。2023/2/927第27页,本讲稿共45页3求表达式的值求表达式的值(1)优先级优先级:高低。例如,先乘除后加减:a b*c。(2)如果某个操作数两侧运算符的优先级相同,则按
14、结结合合性性进行:左左结结合合性性(先左后右的结合方向)运算符:操作数先与左左边边的运算符结合。例如,1-2+3:先执行“1-2”,再“+3”。2023/2/928第28页,本讲稿共45页 右右结结合合性性(先右后左的结合方向)运算符:操作数先与右边右边的运算符结合。例如,a=b=1:先执行“b=1”,再执行“a=(b=1)”。说说明明:除单单目目、赋赋值值和条条件件运算符是右右结结合合性性外,其它运算符都是左结合性。详见附录B。2023/2/929第29页,本讲稿共45页4.数据类型转换数据类型转换(1)不同类型数据间混合运算时,系统“先转换、后运先转换、后运算算”先将数据自动转换自动转换成
15、同一类型,然后再运算。转换规则如图2-5所示:1)必须的转换。2)不同类型的转换方向。例如,int型与double型混合运算,则int型double型,结果为double型。2023/2/930第30页,本讲稿共45页(2)语言也允许强制转换强制转换:(目标数据类型)(被转换表达式)(double)(a)/(double)a(float)5/2 =?(float)(5/2)=?注意注意:原表达式类型并不发生变化。例如,(double)a。返回返回单个对象时,括号可缺省2023/2/931第31页,本讲稿共45页2.82.8*赋值运算与赋值表达式赋值运算与赋值表达式1.赋值运算赋值运算 变量=表
16、达式 例如,x=5,y=(float)5/2 注意注意:如果“表达式”类型与变量不一致,则系统将“表达式”的值转换成变量的数据类型,再赋值。思考思考:假设有“float num=2.5;”,则执行“num=(int)num”后,num的值等于多少?赋值运算符2023/2/932第32页,本讲稿共45页2.复合赋值运算复合赋值运算 变量变量 双目运算符双目运算符=表达式表达式 变量变量 =变量变量 双目运算符双目运算符(表达式表达式)例如:x+=3 x=x+3y*=x+6y=y*(x+6)/*不是y=y*x+6*/单个对象时,圆括号才可缺省,否则可能出错。2023/2/933第33页,本讲稿共4
17、5页3.赋赋值值表表达达式式由(复合)赋赋值值运运算算符符,将一个变量和一个表达式连接起来的表达式。(1)一般格式:变量 (复合复合)赋值运算符赋值运算符 表达式(2)赋值表达式的值被被赋赋值值变变量量的的值值,就就是是赋赋值值表表达式的值达式的值。例如,赋值表达式“a=5”,变量a的值“”就是赋值表达式的值。返回返回2023/2/934第34页,本讲稿共45页2.9 2.9 自增、自减与逗号运算自增、自减与逗号运算2.9.1 自增自增(+)、自减、自减(-)运算运算1.作用:使单个单个变量的值增增(+)、减减(-)。2.用法及其运算规则2023/2/935第35页,本讲稿共45页(1)前置前
18、置运算+变量、-变量运算规则:运算规则:先增减、后运算先增减、后运算,即先使变量的值增(减),然后再以变化后的值参与其它运算。例如:num1=+num2;num2=num2+1;/*先增减先增减*/num1=num2;/*后运算后运算*/2023/2/936第36页,本讲稿共45页(2)后置后置运算变量+、变量-运算规则运算规则:先运算、后增减先运算、后增减,即变量先参与其它运算,然后再使变量的值增(减)。例如:num1=num2-;num1=num2;/*先运算先运算*/num2=num2 1;/*后增减后增减*/注注:自增/减单独运算时,前置与后置等价。num+;+num;num-;-nu
19、m;2023/2/937第37页,本讲稿共45页案例案例2.4自增、自减运算的用法与运算规则示例。#include“stdio.h”#include“conio.h”void main()int x=6,y;printf(x=%dn,x);y=+x;/*前置运算*/printf(y=+x:x=%d,y=%dn,x,y);y=x-;/*后置运算*/printf(y=x-:x=%d,y=%dn,x,y);getch();程序运行结果:2023/2/938第38页,本讲稿共45页x=6y=+x:x=7,y=7y=x-:x=6,y=7思思考考:如果将“y=+x;”改为“y y=x+;x+;”,“y=x
20、-;”改为“y=-x;y=-x;”,程序运行结果会如何?注注意意:自增、自减运算符,只能用于单个变量,不能用于常量常量和表达式表达式。例如,5+、-(a+b)等都是非法的。2023/2/939第39页,本讲稿共45页2.9.2 逗号运算逗号运算(,)及其表达式及其表达式1.一般形式:表达式1,表达式2,表达式n2.求解过程:自左至右,依次计算各表达式的值,最后1个“表达式表达式n n”的值的值即为整个逗号表达式的值逗号表达式的值。例如:(1)a=3*5,a*4 :?(2)(a=3*5,a*4),a+5:?2023/2/940第40页,本讲稿共45页(1)a=3*5,a*4:先求解a=3*5,得
21、a=15;再求a*4=60,所以逗号表达式的值=60。(2)(a=3*5,a*4),a+5:先求解a=3*5,得a=15;再求a*4=60;最后求解a+5=20,所以逗号表达式的值=20。返回返回2023/2/941第41页,本讲稿共45页本本 章章 要要 点点标识符命名规则标识符命名规则:有效字符、有效长度+关键字英文字母大小写敏感,见名知义整型变量整型变量:不同类型整型变量,占用的内存字节数不同,其值域值域不同。2023/2/942第42页,本讲稿共45页字符型数据字符型数据:字符常量常量:单引号,单个字符;转义字符:反斜杠“”,反斜杠和单引号本身:,。字符变量变量:1B,ASCII码值。字符串常量串常量:双引号,若干字符;存储时,系统自动在串尾添加一个0。2023/2/943第43页,本讲稿共45页运算运算整数相除整数相除:商为整数。赋值表达式的值赋值表达式的值:被赋值变量的值。前置运算规则前置运算规则:先增减、后运算后置运算规则后置运算规则:先运算、后增减返回返回2023/2/944第44页,本讲稿共45页本章作业与上机实践本章作业与上机实践作业:1,3,4,6上机实践:(1)掌握TC+下开发C语言程序的基本操作。(2)自己设计方案,验证作业6。(3)自己设计方案,找出用字符形式输出一个256的数值,会得到什么结果?返回返回2023/2/945第45页,本讲稿共45页
限制150内