第2章数据描述与操作.ppt

上传人:sccc 文档编号:5905187 上传时间:2023-09-01 格式:PPT 页数:29 大小:714.54KB
返回 下载 相关 举报
第2章数据描述与操作.ppt_第1页
第1页 / 共29页
第2章数据描述与操作.ppt_第2页
第2页 / 共29页
第2章数据描述与操作.ppt_第3页
第3页 / 共29页
第2章数据描述与操作.ppt_第4页
第4页 / 共29页
第2章数据描述与操作.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《第2章数据描述与操作.ppt》由会员分享,可在线阅读,更多相关《第2章数据描述与操作.ppt(29页珍藏版)》请在三一办公上搜索。

1、1、了解C语言的数据类型;2、掌握各种类型常量的表示方法;3、掌握各种类型变量的定义、存储形式、存储长度和取值范围;4、掌握各种运算符的运算规则、优先级别和结合方向;5、掌握各种表达式的运算方法和值;6、能用C语言表达式表达实际问题。,教 学 目 标,2.1 C语言的数据类型 一个程序主要包括以下内容:对数据的描述:用来指定数据的类型、取值范围和存储形式,即数据结构;对操作的描述:用来指定“做什么”和“怎么做”,即操作步骤,也称为算法。数据是操作的对象,操作的目的是对数据进行加工处理。,C语言的数据类型包括:,2.2 数据描述一、变量 在程序运行中,其值可以改变的量称为变量。C语言规定:程序中

2、所使用的每一个变量在使用之前都要进行类型说明,即“先定义,后使用”。1、变量的定义格式:类型名称 变量名1,变量名2,;说明:类型标识符用来说明所定义的变量的数据类型,包括整型、实型、字符型等;变量名是C语言合法标识符。C 语言的标识符区分大小写字母。,例如:day和_a_10都是合法的标识符,而3b和c_2#都是不合法的标识符。,2、整型变量整型变量的类型标识符 整型变量的类型有三种:基本整型(简称整型)int、短整型short int和长整型long int。对每一种类型还分为有符号(signed)和无符号(unsigned)两种,共6种。例如:整型变量的定义与使用整型数据的存储长度、存储

3、形式和取值范围存储长度:数据在内存中所占的字节数叫做数据的存储长度。存储形式:整型数据以其二进制数的补码形式存放,对于有符号数,最高位代表符号。取值范围:不同类型的整型数据,由于类型和存储长度不同,所以取值范围也不同。不同类型的整型数据的存储长度、取值范围见下表:,例2-1 整型变量的定义与使用#include stdio.hvoid main()int a,b,c;unsigned short u;a=13;b=-25;u=10;c=a+b;u=a-b;printf(c=%d,u=%un,c,u);,3、实型变量实型变量的类型标识符 实型变量的类型有两种:单精度实型 float和双精度实型

4、double。对于实型变量都是有符号的。例如:实型变量的定义与使用void main()float r,s;scanf(%f,实型数据的存储长度、有效数字个数和取值范围 实型数据的精度是小数点后取6位,其它见下表:,4、字符型变量字符型变量的类型标识符 字符型变量的类型有两种:有符号字符型 char和无符号字符型 unsigned char。字符型数据的存储长度和取值范围 字符型数据在内存中占1个字节,char型数据的取值范围是-128127,unsigned char型数据的取值范围是0255,每一个数值对应一个字符。字符型数据与整型数据的通用性字符型数据可按整数数据处理,可作为整数参加运算

5、,按整数数据形式输出;在ASCII码值范围内的整数可按字符数据处理,按字符形式输出。例如:字符型数据与整型数据的通用性。,void main()char ch;scanf(%c,例如:字符型数据与整型数据的通用性#include stdio.hvoid main()char ch1,ch2;int i,j;ch1=65;i=B;ch2=ch1+32;j=i+32;printf(%c,%c,%c,%cn,ch1,ch2,i,j);printf(%d,%d,%d,%dn,ch1,ch2,i,j);,5、变量的赋值一般形式:变量=表达式;说明:其中“=”为赋值号,而不是等号,通常赋值号左端必须是变量

6、,右端可以是任何表达式。作用:把赋值号右端表达式的值放到左端变量的存储空间,即给变量赋值。注意:变量名、变量的值、变量的存储空间三者之间的关系。6、变量初始化 在定义变量时,给变量赋值称为变量的初始化。通常变量初始化工作不是在编译阶段完成的,而是在程序运行时完成的,只有静态和外部变量的初始化是在编译阶段完成的。,int a=3;,a,变量名,存储空间,变量值,3,如:int a,b=3,c;/*对变量b进行初始化*/相当于:int a,b,c;b=3;,二、常量1、常量常量:在程序运行过程中,其值保持不变的量。常量的类型:在C语言中,常量也有类型,常量的类型不需要事先说明,而是由书写方法自动默

7、认。2、符号常量:用标识符代表的常量,称为符号常量。定义格式:#define 符号常量 常量说明:在编写程序时,使用“符号常量”来代替程序中多次出现的“常量”;在编译程序时,将把程序中所有出现“符号常量”的位置,一律用“常量”的值来代替;符号常量名通常用大写字母来表示,以区别程序中的变量。例如:符号常量的使用示例,如:12、0、-3为整型常量,4.6、-1.23为实型常量,a、d字符常量。,例如:符号常量的使用示例#define PI 3.14159#include stdio.hvoid main()float r,s,p;scanf(%f,3、整型常量及表示方法 整型常量有三种:十进制、八

8、进制和十六进制整型常量。十进制整型常量:用数码09表示的十进制整数;八进制整型常量:以数字0开头用数码07表示的整数,开头的数字0代表所表示的数为八进制数;十六进制整型常量:以数字0和字母x即0 x开头,用数码09或字母af(包括大写)表示的十六进制整数来表示,0 x代表所表示的数为十六进制数;例如:整型常量的使用,如:32,-7等都是十进制整型常量,如:027,036,-015等都是八进制整型常量,而049是不合法的八进制整型常量。,如:0 xa8,0X59,-0X39等都是十六进制整型常量,而0 xag,2f是不合法的十六进制整型常量。,例2-5 整型常量的使用#include stdio

9、.hvoid main()int a,b;a=027;b=0 x1c;printf(a=%d,b=%dn,a,b);,4、实型常量及表示方法 实型常量有两种:十进制小数形式和指数形式。十进制小数(定点)形式:由数字和小数点组成;如:3.14,-0.271,0.0等都是十进制小数形式的实型常量。指数(浮点)形式:由尾数、字母e或E、阶码三部分组成,尾数为十进制小数,阶码为1或2位的十进制整数。如:3.14159e2,31415.9E-2,1e03都是合法的指数形式的实型常量,分别表示实数3.14159102,31415.910-2,1102,1e03中的尾数1不能省,而-2e314不合法的实型常

10、量。,5、字符型常量及表示方法字符常量:用单引号括起来的单一字符(包括转义字符)称为字符型常量。转义字符:以反斜杠开头按一定形式书写的字符。关于转义字符及其含义见下表。说明:注意n和r的区别:n是回车换行,而r只是回车但不换行;t的作用是横向跳格,所经过的位置被空格取代。屏幕的每一行被分为10个制表区,每个占8列;0代表ASCII码值为0的控制字符NUL,即空操作。例如:转义字符的使用,例如:转义字符的使用#include stdio.h#include conio.hvoid main()char ch1,ch2;ch1=141;ch2=x41;printf(ch1=%c,b,ch1);ge

11、tch();printf(ch2=%cr,ch2);getch();printf(nch1=%c,ch2=%cn,ch1-31,ch2+33);,6、字符串常量及表示法字符串常量:用双引号引起来的字符序列称为字符串常量,字符串中含字符的个数称为该字符串的长度。说明:字符串按每个字符的存储形式存储,每个字符占一个字节,最后一个字节存放字符串结束标志“0”,它是“空操作字符”,系统依此判断字符串是否结束。因此,字符串的存储长度为字符串长度加1。不能把一个字符串常量赋给字符变量;a与a的区别:a是字符常量,可以赋给字符变量,在内存中占一个字节;a是字符串常量,不能赋给字符变量,在内存中占两个字节(包

12、括一个字符串结束标志“0”)。,例如:How do you do,A,He154lo.n都是字符串常量,它们的长度分别是13,1,7,存储长度分别是14,2,8。,例如:char ch;ch=a;/*是错误的*/ch=CHINA;/*是错误的*/ch=a;/*是正确的*/,做一做,课堂实践3 读下列程序,找出程序中存在的错误,并改正。#include stdio.hvoid main()Int a,b;a=01b;b=37 c=a+b;print(c=%dn,c);,2.3 数据操作一、运算符的有关知识1、运算符和表达式运算量:参加运算的对象称为运算量,运算对象包括:常量、变量、函数等。运算符

13、:表示运算的符号称为运算符或操作符。运算符的目:要求有一个运算量的运算符称为单目运算符;要求有两个运算量的运算符称为双目运算符;要求有三个运算量的运算符称为三目运算符。表达式:用运算符把运算量连接起来的符合C语言语法规则的式子称为表达式。C语言的表达式主要有:算术表达式、关系表达式、逻辑表达式、赋值表达式、条件表达式、逗号表达式。,2、应注意的几个问题运算的优先级别:如果在一个运算量两侧的运算符的“优先级别”不同,则应先执行“优先级别”高的运算符。结合方向:如果在一个运算量两侧的运算符的“优先级别”相同,则按运算符的结合方向的顺序进行处理。结合方向包括:左结合,即按自左向右的顺序进行处理;右结

14、合,即按自右向左的顺序进行处理。注:优先级别和结合方向。在学习表达式时要弄清表达式的值的概念。能把实际问题用正确的表达式来表示。,例如:3+2*5,应先计算2*5(=10),再计算3+10(=13)。,例如:6/3*2,在运算量3的两侧有两个运算符/和*,它们的优先级别相同,如果按左结合进行处理,所得的结果为4;如果按右结合进行处理,所得的结果为1。,二、算术运算1、双目算术运算运算符:+,-,*,/(除),%(模或求余)。优先级别:+,-是同级别的;*,/,%是同级别的,且高于+,的级别。结合方向:均为左结合。+,-,*运算的运算规则、运算量的类型与结果类型运算规则与数学中的运算规则相同;要

15、求参加运算的两个运算量可以是整型数据,也可以是实型数据;如果两个运算量都是整型数据,则结果也是整型数据;如果两个运算量至少有一个是实型数据,则结果是double型数据。,/运算的运算规则、运算量的类型与结果类型要求参加运算的两个运算量可以是整型数据,也可以是实型数据;如果两个运算量都是整型数据,则结果也是整型数据,此时的除法运算称为整除;如果两个运算量至少有一个是实型数据,则结果是double型数据。a%b运算的运算规则、运算量的类型与结果类型对于模运算%,要求两个运算量a,b都是整型数据;运算规则是求a被b除所得的余数,结果的符号与被除数a的符号相同,运算结果还是整型数据。2、算术表达式:根

16、据运算符的优先级别和结合方向,通过加括号最终化为用算术运算符连接起来的表达式。,例如:int a=5,b=2;则 a/b=2(2.5),a*b=10,例如:float a=5.0,b=2.0;则 a/b=2.5,a*b=10.0,例如:int a=5,b=-5,c=3,d=-3;则 a%c=2,a%d=2,b%c=-2,b%d=-2,例2-1 已知变量a是一个两位正整数,用C语言的表达式分别表示a的个位和十位。,解答:a的个位的C语言的表达式:a%10,a的十位的C语言的表达式:a/10。,做一做,课堂实践4 已知变量a是一个三位正整数,用C语言的表达式分别表示a的个位、十位和百位。,解答:a

17、的个位的C语言的表达式:a%10,a的十位的C语言的表达式:(a/10)%10,a的百位的C语言的表达式:(a/10)/10。,三、赋值类运算1、赋值运算运算符:=一般形式:变量=表达式 作用:把赋值号右边表达式值赋给赋值号左边的变量,即把表达式的值传送到变量的内存单元中。优先级别:仅高于逗号运算符。结合方向:右结合。赋值表达式:根据运算符的优先级别和结合方向,通过加括号最终化为用赋值号把变量和表达式连接起来的式子称为赋值表达式。赋值表达式:赋值表达式的值为赋值后赋值号左边变量的值。,例如:表达式 b=a=a+5是赋值表达式,因为=的优先级别低于+,是右结合的,所以b=a=a+5相当于b=(a

18、=(a+5),因此是赋值表达式。,2、复合的赋值运算复合的赋值运算符:自反加赋值:+=;自反减赋值;-=;自反乘赋值:*=;自反除赋值:/=;自反模赋值:%=。运算规则:a+=b 等价于 a=a+b;a-=b 等价于 a=a-b;a*=b 等价于 a=a*b;a/=b 等价于 a=a/b;a%=b 等价于 a=a%b。优先级别:与赋值运算符同级。结合方向:右结合。例2-2 设有如下定义和语句 int a=5,b=3,c;c=b*=a+2;表达式c=b*=a+2相当于c=(b=(b*(a+2),分析表达式c=b*=a+2执行前后各变量在内存中的变化情况:,5,a,3,b,?,c,表达式c=b*=

19、a+2执行前,21,21,表达式c=b*=a+2执行后,3、自加和自减运算运算符:+,-一般形式:后缀形式:变量+,变量 前缀形式:+变量,-变量 在运算符的一侧通常必须是变量,不能是常量或表达式。运算规则:后缀形式变量的值加(减)1,但表达式的值为变量增值前的值;前缀形式变量的值加(减)1,但表达式的值为变量增值后的值。可以用一句话概括为:后缀形式先引用后“增值”,前缀形式先“增值”后引用。优先级别:高于算术运算。结合方向:右结合。,例2-3 指出以下程序段执行后各变量的值。例2-4 设有定义int a=3,b,c=5;请将以下两条语句a-;b=a+c;写成一条语句。4、赋值转换 当把表达式

20、的值赋给变量时,如果表达式的值的类型与变量的类型不一致,C编译系统自动将赋值号右端表达式的值的类型转换为左端变量的类型,然后再将表达式的值赋给变量。,例如:int a;a=3.8;系统自动将3.8采用截断的方式得到3赋给变量a。,例2-3 指出以下程序段执行后各变量的值。int a=3,b,c;b=a+;c=+a;该程序段执行后各变量的值为:,a=5,b=3,c=5,例2-4 设有定义int a=3,b,c=5;请将以下两条语句a-;b=a+c;写成一条语句。解答:写成一条语句为:b=-a+c;,做一做,课堂实践5 设有定义int a=3,b,c=5;请将以下三条语句+a;b=a+c;+c;写

21、成一条语句。,解答:写成一条语句为:b=+a+c+;。,四、逗号运算 逗号运算也是C语言所特有的运算,利用逗号运算可一次计算多个表达式的值。运算符:,(逗号)优先级别:优先级别最低。结合方向:左结合逗号表达式:用逗号运算符把两个表达式连接起来的式子,称为逗号表达式。逗号表达式的一般形式:表达式1,表达式2运算过程及表达式的值:先求解表达式1,再计算表达式2,表达式2的值为整个逗号表达式的值。,例如:a=3*5,a*4,a+5 该表达式执行完毕变量a的值为,逗号表达式的值为。,15,20,五、长度运算 长度运算用来求变量或某种类型在内存中的存储长度。运算符:sizeof一般形式:sizeof(类

22、型标识符或变量)作用:以求指定变量或数据类型的存储长度。优先级别和结合方向:单目,第2级,右结合。例如:short int i=5,a,b;a=sizeof(i);b=sizeof(float);printf(a=%d,b=%dn,a,b);,则输出结果为:a=2,b=4。,六、强制类型转换 C语言中,可以把一种类型的数据通过强制类型转换,转换为另一种类型的数据。运算符:(类型说明符)一般形式:(类型说明符)(表达式)作用:把表达式值的类型转换为类型说明符说明的类型。优先级别和结合方向:属单目运算,与自增、自减运算等同级,右结合。说明:将实数转换为整数时,系统采用的是截断方式,而不是四舍五入;

23、对变量进行强制类型转换时,变量的数据类型不变,而是得到一个所需类型的数据;,例如:要将3.5*4.8转换为整型数据,应写成(int)(3.5*4.8),而不能写成(int)3.5*4.8,这是因为强制类型转换运算符的优先级别高于算术运算。,例如:a=(int)3.8执行后,a的值为。,例如:float x=3.6;int i;i=(int)x;执行后。,3而不是4,i=3,而x的值还是3.6,做一做,课堂实践6 编写C语言程序,求用户输入的三位整数的各位数字。要求分别编写主函数main()和求各位数字的函数DecomposeInteger(),通过主函数main()调用DecomposeInt

24、eger()函数来求三位整数的各位数字,求得结果在DecomposeInteger()函数中输出。,归纳总结1、C语言的数据类型:基本类型、构造类型、指针类型和空类型;基本类型包括:整型、实型、字符型和枚举类型;整型包括:短整型、基本整型和长整型,它们还有有符号和无符号之分。2、变量:整型变量的定义、存储形式、存储长度和取值范围;实型变量的定义、存储长度、有效数字的个数、精度和取值范围;字符型变量的定义、存储形式、存储长度和取值范围。3、常量:符号常量的定义和使用;整型常量、实型常量、字符型常量和字符串常量的表示方法。4、运算:算术运算、赋值类运算、逗号运算、长度运算和强制类型转换运算的规则、优先级别、结合方向及对应表达式的值,特别是除、模、自增自减运算。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号