c语言 数据描述与数据操作.ppt

上传人:hyn****60 文档编号:70986827 上传时间:2023-01-31 格式:PPT 页数:58 大小:601KB
返回 下载 相关 举报
c语言 数据描述与数据操作.ppt_第1页
第1页 / 共58页
c语言 数据描述与数据操作.ppt_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《c语言 数据描述与数据操作.ppt》由会员分享,可在线阅读,更多相关《c语言 数据描述与数据操作.ppt(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、常州信息职业技术学院计算机学院C语言课程组 C语言程序设计2第二章 数据描述与数据操作vc【知识目标知识目标】1、理解和掌握整型常量、实型常量、字符常量、字符串常量及其表示方法和符号常量的定义及使用;2、理解变量的定义、赋值和初始化;3、了解整型变量、实型变量、字符型变量在内存中的存储形式、存储长度和取值范围;4、弄清自动变量、静态变量和外部变量的生存周期和作用域;5、熟练掌握算术运算、赋值类运算等各种运算的运算规则、优先级别和结合方向;6、领会算术表达式、赋值表达式、条件表达式和逗号表达式的值及计算过程;7、了解各种位运算的运算规则、性质和特殊用途。【能力目标能力目标】1、能够在所编写的程序

2、中正确的定义和使用变量;2、能够用C语言表达式表达实际问题,进行简单应用问题的程序开发;3、能够初步对C语言程序进行调试。教教 学学 目目 标标3第二章 数据描述与数据操作vc描述:描述:演示演示:引引 例例 描描 述述求给定三位整数的各位数码。对给定的一个三位整数,求出这个三位数的各位上的数码,如:386,求得的结果是:百位数码是3,十位数码是8,个位数码是6。4第二章 数据描述与数据操作vc2.1 常量常量 常量:常量:按数据类型分类:按数据类型分类:按表现形态分类:按表现形态分类:知知 识识 储储 备备在程序运行过程中,其值保持不变的量整型常量、实型常量、字符常量和字符串常量直接常量和符

3、号常量5第二章 数据描述与数据操作vc2.1 常量常量一一、整型常量及表示法、整型常量及表示法 1、十进制整型常量:、十进制整型常量:2、十进制长整型常量:、十进制长整型常量:3、八进制整型常量:、八进制整型常量:4、八进制长整型常量:、八进制长整型常量:5、十六进制整型常量:、十六进制整型常量:6、十六进制长整型常量:、十六进制长整型常量:知知 识识 储储 备备用数码09表示的十进制整数【示例】32,-7等都是十进制整型常量。在十进制整型常量后加小写字母l或大写字母L表示的数【示例】64L,65783 l 等都是十进制长整型常量。以数字0开头用数码07表示的整数,开头的数字0代表所表示的数为

4、八进制数【示例】027,036,-015等都是合法的八进制整型常量,而049是不合法的八进制整型常量,因为,049中有数码9。在八进制整型常量后加小写字母l或大写字母L表示的数【示例】032 l,057L等都是八进制长整型常量。以数字0和小写字母x或大写字母X开头,用数码09或小写字母af或大写字母AF表示的十六进制整数,0 x代表所表示的数为十六进制数【示例】0 xa8,0X59,-0X39等都是十六进制整型常量,而0 xag,2f等都不是合法的十六进制整型常量,因为0 xag中有符号g;2f前没有0 x。在十六进制整型常量后加小写字母l或大写字母L表示的数【示例】0XFFl,0 x64L等

5、都是十六进制长整型常量。6第二章 数据描述与数据操作vc2.1 常量常量二、实型常量及表示法二、实型常量及表示法 1、十进制小数形式:、十进制小数形式:【示例示例】2、指数形式:、指数形式:【示例示例】知知 识识 储储 备备由数码09、正负号和小数点(必须有小数点)组成的十进制小数表示的实数由尾数、字母e或E、阶码三部分组成,其中尾数为十进制小数或整数,阶码为1位或2位的十进制(有符号)整数【示例】3.14,-0.271,0.0,0.,.6 等都是十进制小数形式的实型常量。【示例】3.14159e2表示十进制数3.14159102,31415.9E-2表示十进制数31415.910-2,它们都

6、表示十进制小数314.159;1e03表示十进制数1103,这里的尾数1不能省,而E03,-2e314都是不合法的实型常量,因为E03中缺少尾数;-2e314中阶码是3位整数,超过了阶码的范围。7第二章 数据描述与数据操作vc2.1 常量常量三、字符型常量及表示法三、字符型常量及表示法 1、字符型常量:、字符型常量:2、转义字符、转义字符【示例】知知 识识 储储 备备【示例】a,A,2,n,101等都是字符型常量,其中n,101都是转义字符,而,都是不合法的字符型常量,对于单撇号和反斜杠必须用转义字符来表示。用单引号括起来的单一字符(包括转义字符)【示例】a,141,x61都是合法的字符常量,

7、都代表字符a;n,12都代表控制字符“回车换行”;而29,x3g都是不合法的字符常量,因为29中有数码9,x3g中有字符g。字符形式含 义ASCII值(十进制)n回车换行,将当前光标位置移到下一行的开头10t 水平跳格(跳到下一个制表区的起始位置)9b退格,光标前移一列,光标经过位置不变8r回车(不换行)13f换页12反斜杠字符92单引号(撇号)字符39双引号字符34ddd1到3位8进制数代表的字符xhh以x开头的1到2位16进制数代表的字符8第二章 数据描述与数据操作vc2.1 常量常量四、字符串常量及表示法四、字符串常量及表示法1、字符串常量:、字符串常量:2、字符串长度:、字符串长度:【

8、示例示例】3、字符串的存储:、字符串的存储:4、字符串的存储长度:、字符串的存储长度:知知 识识 储储 备备【示例】How do you do,A,He154lo.n都是字符串常量,它们的长度分别是13,1,7,应注意:154和n都是转义字符,都只代表一个字符。按字符串中每个字符的存储形式存储,每个字符占一个字节,并在字符串的结尾系统自动加上一个字符串结束标志“0”,用以表明字符串的结束字符串长度加1,即如果字符串的长度为n个字符,则字符串的存储长度为n+1个字节字符串中含字符的个数用双撇号括起来的字符序列,简称字符串9第二章 数据描述与数据操作vc思考思考2.1:A与A有什么区别?知知 识识

9、 储储 备备想想一一想想2.1 常量常量10第二章 数据描述与数据操作vc2.1 常量常量五、符号常量五、符号常量1、定义方法:、定义方法:2、说明、说明:知知 识识 储储 备备#define 符号常量 常量(1)在编写程序时,使用“符号常量”来代替程序中多次出现的“常量”,能减轻编程的工作量;在编译程序时,将把程序中所有出现“符号常量”的位置,一律用“常量”的值来代替;(2)程序中多次使用的常量,通常用符号常量;(3)符号常量名通常用大写字母来表示,以区别程序中的变量。11第二章 数据描述与数据操作vc2.1 常量常量【例例2-1】符号常量的使用求圆的面积。知知 识识 储储 备备#inclu

10、de#define PI 3.14159double Area(double r);int main()double Radii,s;printf(请输入圆的半径:);scanf(%lf,&Radii);s=Area(Radii);printf(半径为%lf的圆的面积是%lfn,Radii,s);double Area(double r)double s;s=PI*r*r;return s;12第二章 数据描述与数据操作vc知知 识识 储储 备备做做一一做做【课堂实践【课堂实践2.1】仿照【例2-1】,编写求圆周长的C语言程序,求圆周长的函数命名为Perimeter,圆的半径由用户通过键盘输入

11、。2.1 常量常量13第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 变量:变量:变量的属性变量的属性操作属性:操作属性:存储属性:存储属性:知知 识识 储储 备备在程序运行过程中,其值可以改变的量程序中所使用每一个变量在使用之前都要进行类型定义,即“先定义,后使用”。存储属性由存储类别来决定,它规定了变量的存储机构、作用域和生存周期操作属性由数据类型来决定,它规定了变量的存储空间的大小(即存储长度)、取值范围和所允许的操作14第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 一、变量操作属性的定义与初始化一、变量操作属性的定义与初始化1、变量的定义、变量

12、的定义一般形式:类型标识符类型标识符 变量名表变量名表;【示例1】【示例2】说明:说明:知知 识识 储储 备备用来说明变量名表中变量的数据类型,包括整型、实型、字符型等由一个或多个变量组成,两个变量之间用逗号分割【示例1】int i,j,k;其中int为基本整型类型标识符,通过此说明语句定义了3个变量i,j,k都为基本整型变量;【示例2】float a,b;其中float为单精度实型类型标识符,通过该说明语句定义了2个变量a,b都为单精度实型变量。变量名是C语言合法标识符变量定义后,系统将为变量分配相应字节的存储空间15第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 一、变

13、量操作属性的定义与初始化一、变量操作属性的定义与初始化2、变量的赋值、变量的赋值一般形式:变量变量=表达式;表达式;作用:作用:【示例】知知 识识 储储 备备“=”为赋值号,而不是等号,赋值号左端通常必须是变量,右端可以是任何表达式【示例】a=b+2;把b+2的值赋给变量a,此时,b必须已有确定的值。把赋值号右端表达式的值赋给赋值号左端的变量,即把赋值号右端表达式的值写到赋值号左端的变量的存储空间中16第二章 数据描述与数据操作vc思考思考2.2:分别用数据输入的方法和赋值的方法给已定义变量一个确定的值,采用这两种不同的方法编写的程序有什么区别?想想一一想想2.2 变量的操作属性变量的操作属性

14、知知 识识 储储 备备17第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 二、整型变量二、整型变量1、整型变量的类型标识符、整型变量的类型标识符(1)有符号基本整型:signed int(2)无符号基本整型:unsigned int(3)有符号短整型:signed short int(4)无符号短整型:unsigned short int(5)有符号长整型:signed long int(6)无符号长整型:unsigned long int【示例示例】知知 识识 储储 备备【示例】int a,b;定义变量a,b都是整型变量,unsigned long c,d;定义变量c,d

15、都是无符号长整型变量。18第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 二、整型变量二、整型变量2、整型数据在内存中的存储形式、整型数据在内存中的存储形式数据的存储长度:数据的存储长度:short型数据在内存中占2个字节(16位)int型和long型数据在内存中占4个字节(32位)有符号数据的存储形式:无符号数据的存储形式:【示例示例】知知 识识 储储 备备数据在内存中所占的字节数 以二进制数补码形式存放,其中最高位用来表示数的符号,称为符号位,当符号位为0时,表示该数是正数,当符号位为1时,表示该数是负数,其它各位用来表示数值以二进制数补码形式存放,没有符号位,所有二进

16、制位都用来表示数值【示例】int a,b;定义变量a,b都是整型变量,unsigned long c,d;定义变量c,d都是无符号长整型变量。19第二章 数据描述与数据操作vc思考思考2.3:13和-13的原码、反码、补码分别是多少?知知 识识 储储 备备想想一一想想2.2 变量的操作属性变量的操作属性20第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 二、整型变量二、整型变量3、整型数据的取值范围、整型数据的取值范围 知知 识识 储储 备备类 型存 储 长 度取 值 范 围signed short int2字节(16位)-3276832767(-215215-1)unsi

17、gned short int2字节(16位)065535(0216-1)signed int4字节(32位)-21474836482147483647(-231231-1)unsigned int4字节(32位)04294967295(0232-1)signed long int4字节(32位)-21474836482147483647(-231231-1)unsigned long int4字节(32位)04294967295(0232-1)21第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 三、实型变量三、实型变量1、实型变量的类型标识符、实型变量的类型标识符(1)fl

18、oat(单精度实型)(单精度实型)(2)double(双精度实型)(双精度实型)注:对于实型变量都是有符号的。注:对于实型变量都是有符号的。【示例示例】知知 识识 储储 备备【示例】float x,y;定义了两个单精度实型变量x,y。double z;定义了一个双精度实型变量z。22第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 三、实型变量三、实型变量2、实型数据的存储长度、取值范围和精度、实型数据的存储长度、取值范围和精度知知 识识 储储 备备类型存储长度取 值 范 围有效数字精度float4字节(3.410-38 3.41038)67位6位double8字节(1.71

19、0-308 1.710308)1516位6位23第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 四、字符型变量四、字符型变量1、字符型变量的类型标识符、字符型变量的类型标识符(1)(有符号)字符型:)(有符号)字符型:signed char(2)无符号字符型:)无符号字符型:unsigned char【示例示例】注意:注意:知知 识识 储储 备备对于字符型变量只能存放一个字符,而不能存放字符串【示例】char a,b;定义a,b为(有符号)字符型变量;unsigned char c;定义c为无符号字符型变量。24第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作

20、属性 四、字符型变量四、字符型变量2、字符型数据的存储形式及取值范围、字符型数据的存储形式及取值范围存储长度:存储长度:存储形式:存储形式:取值范围:取值范围:【示例示例】知知 识识 储储 备备占1个字节ASCII码值的8位二进制数(补码)形式存储char型数据的取值范围是-128127,unsigned char型数据的取值范围是0255,每一个数值对应一个字符【示例】a的ASCII码值为97,97对应的八位二进制数为01100001,所以,字符a在内存中存储形式如图2-1。00001101图2-125第二章 数据描述与数据操作vc2.2 变量的操作属性变量的操作属性 四、字符型变量四、字符

21、型变量3、字符型数据与整型数据的通用性、字符型数据与整型数据的通用性字符型数据可以按整型数据处理,可以作为整数参字符型数据可以按整型数据处理,可以作为整数参加运算,按整数形式输出;加运算,按整数形式输出;在在ASCII码值范围内的整数可以按字符型数据来处码值范围内的整数可以按字符型数据来处理,按字符形式输出。理,按字符形式输出。【例例2-2】将大写字母转换为小写字母将大写字母转换为小写字母 知知 识识 储储 备备#include char ToLower(char ch);int main()char ch,low;printf(请输入一个大写字母:);scanf(%c,&ch);low=To

22、Lower(ch);printf(大写字母%c转换为小写字母是%cn,ch,low);return 0;char ToLower(char ch)char tlow;tlow=ch+32;return tlow;26第二章 数据描述与数据操作vc思考思考2.4:在程序中,如何将小写字母转换为大写字母?知知 识识 储储 备备想想一一想想2.2 变量的操作属性变量的操作属性27第二章 数据描述与数据操作vc知知 识识 储储 备备做做一一做做【课堂实践【课堂实践2.2】1、仿照【例2-2】,编写将小写字母转换为大写字母的C语言程序,转换函数命名为Toupper。2、下列程序中a的值是16进制整数,b

23、的值是一个字符。读下列程序,找出程序中存在的错误,并改正,但不得增加和减少语句。int main()Int a,b;a=01b;b=37 c=a+b;print(c=%dn,c);return 0;28第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 一、变量的存储属性一、变量的存储属性1、变量的存储器类型、变量的存储器类型存储机构存储机构内存储器内存储器程序区:程序区:静态存储区:静态存储区:动态存储区:动态存储区:寄存器:寄存器:知知 识识 储储 备备用来存储程序 用于存储静态变量和全局变量 用于存储动态变量和函数调用时的现场保护及返回地址等 在CPU中开设的临时存储器,

24、存取速度快,程序中需经常使用的数据常存储在寄存器中 29第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 一、变量的存储属性一、变量的存储属性2、变量的生存期、变量的生存期 永久存储:永久存储:动态存储:动态存储:【示例】知知 识识 储储 备备在译时分配存储空间,它的存储空间存在于程序执行的全过程,直到程序全部执行完毕,存储空间才被释放在程序运行期间分配存储空间,它的存储空间只在程序执行的某一段时间内存在【示例】函数的形参,只在函数被调用时,才为形参分配存储空间,调用结束后,形参的存储空间便被释放。30第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 一、变

25、量的存储属性一、变量的存储属性3、变量的作用域:、变量的作用域:全局变量:全局变量:局部变量:局部变量:知知 识识 储储 备备变量在程序中起作用的范围在整个程序运行过程中都起作用的变量只在程序的一个局部范围内起作用的变量31第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 一、变量的存储属性一、变量的存储属性4、变量存储属性的定义、变量存储属性的定义变量定义的一般形式变量定义的一般形式存储类别标识符存储类别标识符 auto(自动)(自动)register(寄存器)(寄存器)static(静态)(静态)extern(外部)(外部)知知 识识 储储 备备存储类别标识符存储类别标识

26、符 数据类型标识符数据类型标识符 变量名表;变量名表;32第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 一、变量的存储属性一、变量的存储属性4、变量存储属性的定义、变量存储属性的定义变量的存储属性小结变量的存储属性小结知知 识识 储储 备备类别标识符 registerautostaticextern存储机构寄存器动态存储区静态存储区静态存储区生存期动态存储动态存储永久存储永久存储作用域局部局部局部或全局全局33第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 二、动态变量二、动态变量1、自动变量:、自动变量:存储空间的分配和释放:存储空间的分配和释放:注

27、意注意(1)在定义变量时,缺省存储类别标识符系统默认是自动变量;(2)自动变量是局部变量,只在定义它的那个局部范围内才起作用;【示例】知知 识识 储储 备备用存储类别标识符auto定义的变量 在程序运行时分配,分配和释放由系统自动完成【示例】int main()int x=1;void prt(void);int x=3;prt();printf(2nd x=%dn,x);printf(1nd x=%dn,x);return 0;void prt(void)int x=5;printf(3nd x=%dn,x);34第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 二、动态变

28、量二、动态变量1、自动变量、自动变量注意注意(3)自动变量在赋值之前,它的值是不确定的;【示例】(4)对同一个函数的两次调用之间,自动变量的值不保留。这是因为,调用一次之后存储空间被释放,再调用时,又另分配了存储空间。【示例】知知 识识 储储 备备【示例】int main()int x;printf(x=%dn,x);return 0;【示例】void count(int n);int main()count(1);count(2);return 0;void count(int n)int x=1;printf(%d:x=%d,n,x);x=x+2;printf(%dn,x);35第二章 数

29、据描述与数据操作vc2.3 变量的存储属性变量的存储属性 二、动态变量二、动态变量2、寄存器变量:、寄存器变量:注意:注意:寄存器变量也是动态变量,除存储机构与自动变量不同外,其它与自动变量都相同。知知 识识 储储 备备用标识符register定义的变量想想一一想想思考思考2.5:前例函数count中,形参变量n的存储空间是如何变化的?【示例】void count(int n);int main()count(1);count(2);return 0;void count(int n)int x=1;printf(%d:x=%d,n,x);x=x+2;printf(%dn,x);36第二章 数

30、据描述与数据操作vc2.3 变量的存储属性变量的存储属性 三、静态变量:三、静态变量:说明说明(1)静态变量是在编译时为其分配存储空间的,所以,静态变量的生存周期是永久存储,即,存在于程序执行的全过程,直到程序执行结束;(2)静态变量的初始化是在编译时进行的,如果不显式为静态变量初始化,系统自动置静态变量的初值为0(整型)或0.0(实型);【示例】知知 识识 储储 备备用标识符static定义的变量【示例】int main()static int x=3;/显式初始化static int y;/未显式初始化static float z;/未显式初始化printf(x=%d,y=%d,z=%fn

31、,x,y,z);return 0;37第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 三、静态变量三、静态变量说明说明(3)在函数多次被调用的过程中,静态变量的值具有继承性,即本次调用的初值是上次调用结束时变量的值;【示例】(4)静态局部变量的作用域具有局部性,静态局部变量的值只能在本函数中使用,但生存周期是永久存储;【示例】知知 识识 储储 备备【示例】void increment(void);int main()increment();increment();increment();return 0;void increment(void)static int x=1;

32、x=x+2;printf(%dn,x);【示例】void increment(void);int main()int x=5;increment();printf(1:x=%dn,x);return 0;void increment(void)static int x=1;x=x+2;printf(2:x=%dn,x);38第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 四、外部变量:四、外部变量:说明说明(1)外部变量是在编译时为其分配存储空间的,在静态存储区中存储,生存周期是永久存储,作用域是从定义点到本文件结束;(2)外部变量的初始化也是在编译时进行的,如果不显式为外

33、部变量初始化,系统自动置外部变量的初值为0(整型)或0.0(实型);(3)如果外部变量的作用域不是整个文件,可以使用标识符extern扩充外部变量的作用域;【示例】扩充外部变量作用域知知 识识 储储 备备定义在所有函数体之外的变量【示例】extern x,y;/扩充外部变量x,y作用域int main()void gx(),gy();printf(1:x=%dty=%dn,x,y);y=246;gx();gy();return 0;void gx()x=135;printf(2:x=%dty=%dn,x,y);int x,y;/外部变量x,y的定义void gy()printf(3:x=%dt

34、y=%dn,x,y);39第二章 数据描述与数据操作vc2.3 变量的存储属性变量的存储属性 四、外部变量四、外部变量说明说明(4)如果一个程序中有多个文件,而只在,想使另一个文件中定义的外部变量在这个文件中也起作用,可以在这个文件中使用标识符extern将另一个文件中的外部变量的作用域扩充到这个文件;(5)如果在文件中定义的外部变量,不想让其它文件使用,可以在定义外部变量时使用static限定外部变量只在本文件中使用,该变量称为静态外部变量。知知 识识 储储 备备40第二章 数据描述与数据操作vc知知 识识 储储 备备做做一一做做【课堂实践【课堂实践2.3】阅读给定的两个程序,检查程序中存在

35、的语法错误,进行修改,直到没有语法错误为止,仔细观察各变量的存储类型,用脑和笔独立执行程序,给出程序的输出结果。从中体会自动变量、静态变量、外部变量的生命周期和作用域。程序见教材程序见教材 41第二章 数据描述与数据操作vc2.4 数据操作数据操作 一、运算符与表达式一、运算符与表达式1、运算量、运算量:2、运算符、运算符:注意:注意:运算符的优先级别:【示例】运算符的结合方向:【示例】知知 识识 储储 备备参加运算的对象称为运算量,运算量包括:常量、变量、函数等用来表示运算的符号称为运算符或操作符C语言的运算符共有13类45个如果在一个运算量两侧的运算符的“优先级别”不同,则应先执行“优先级

36、别”高的运算符【示例】3+2*5,在运算量2的两侧的运算符“+”和“*”的优先级别不同,“*”高于“+”。所以,该表达式相当于3+(2*5),应先计算2*5(10),再计算3+10(13),结果为13。如果在一个运算量两侧的运算符的“优先级别”相同,则按运算符的结合方向的顺序进行处理。结合方向包括:左结合,即按自左向右的顺序进行处理;右结合,即按自右向左的顺序进行处理【示例】数学中的表达式632,在3两侧的运算符“”、“”的优先级别相同,数学中要求从左向右进行计算,即632等价于(63)2,而不等价于6(32),所以,对表达式632,进行计算的结果是4,而不是1。42第二章 数据描述与数据操作

37、vc2.4 数据操作数据操作 一、运算符与表达式一、运算符与表达式3、表达式、表达式:(1)算术表达式(2)关系表达式(3)逻辑表达式(4)赋值表达式(5)条件表达式(6)逗号表达式注意注意(1)表达式的值(2)表达实际问题知知 识识 储储 备备用运算符把运算量连接起来的符合C语言语法规则的式子43第二章 数据描述与数据操作vc2.4 数据操作数据操作 二、算术运算二、算术运算1、单目算术运算、单目算术运算(1)运算符:+(正),(负)(2)优先级别:第2级(3)结合方向:右结合2、双目算术运算、双目算术运算(1)运算符及运算规则:(2)优先级别:(3)结合方向:均为左结合知知 识识 储储 备

38、备+,*,/,运算规则与数学中运算规则相同%(求余或模)运算规则:对于a%b,求a被b除所得的余数,结果符号与被除数a符号相同+,同级别,第4级;*,/,%同级别,第3级44第二章 数据描述与数据操作vc2.4 数据操作数据操作 二、算术运算二、算术运算2、双目算术运算、双目算术运算(4)运算量的类型与结果类型:【示例】【示例】除法运算的两方面含义:整除和除法知知 识识 储储 备备+,*,/运算量是整型或实型;都是整型,结果是整型,有一个是实型,结果是实型【示例】int a=5,b=2;则 a+b 的结果为7,a/b的结果为2,而不是2.5。float a=5.0,b=2.0;则 a+b的结果

39、为7.0,a/b的结果为2.5。模运算%,要求两个运算量必须都是整型,运算所得的结果也是整型【示例】int a=5,b=-5,c=3,d=-3;则 a%c的结果为2,b%c的结果为-2,a%d的结果为2,b%d的结果为2,a%b的结果为0,b%a的结果为0,0%a的结果为0,0%b的结果也为0。45第二章 数据描述与数据操作vc2.4 数据操作数据操作 二、算术运算二、算术运算【例例2-3】设n是一个两位整数,用C语言的表达式分别表示n的个位和十位数码。解答:解答:知知 识识 储储 备备【例例2-3】解答:解答:n的个位数码可表示为n%10;n的十位数码可表示为n/10。想想一一想想思考思考2

40、.6:算术运算中哪些运算符对运算对象的数据类型有特殊要求?46第二章 数据描述与数据操作vc知知 识识 储储 备备做做一一做做【课堂实践【课堂实践2.4】设n是一个三位整数,用C语言的表达式分别表示n的个位、十位和百位数码。47第二章 数据描述与数据操作vc2.4 数据操作数据操作 三、赋值类运算三、赋值类运算1、赋值运算、赋值运算(1)运算符:=(2)优先级别:第14级(3)结合方向:右结合(4)赋值表达式:【示例1】【示例2】知知 识识 储储 备备【示例1】int a;a=2;a=a+3;表达式a=2是赋值表达式,a=a+3也是赋值表达式,表达式a=2的值是2,a=a+3的值为5。最终化为

41、用赋值号把变量和表达式连接起来的式子称为赋值表达式。【示例2】int a=3,b;b=a=a+5;表达式b=a=a+5,等价于b=(a=(a+5),因此,变量a的值8,b的值为8,表达式b=a=a+5的值也是8。赋值表达式的值为赋值后赋值号左边变量的值48第二章 数据描述与数据操作vc2.4 数据操作数据操作 三、赋值类运算三、赋值类运算2、自反算术赋值运算、自反算术赋值运算(1)运算符及运算规则:(2)优先级别:第14级(3)结合方向:右结合注意注意:【示例】知知 识识 储储 备备与赋值运算符一样,自反算术赋值运算符的左边通常也必须是变量自反加赋值:+=,a+=b等价于a=a+b自反减赋值:

42、-=,a-=b等价于a=a-b自反乘赋值:*=,a*=b等价于a=a*b自反除赋值:/=,a/=b等价于a=a/b自反模赋值:%=,a%=b等价于a=a%b【示例】int a=5,b=3,c;c=b*=a+2;表达式c=b*=a+2等价于c=(b=b*(a+2),不要误解为c=(b=b*a+2),c的值为21。49第二章 数据描述与数据操作vc2.4 数据操作数据操作 三、赋值类运算三、赋值类运算3、自加和自减运算、自加和自减运算(1)运算符及运算规则:(2)优先级别:第2级(3)结合方向:右结合注意注意:【示例】概括:概括:知知 识识 储储 备备同样,在运算符的一侧通常必须是变量,不能是常量

43、或表达式自加:+,自减:-前缀形式:+变量,-变量后缀形式:变量+,变量-前缀+i或i运算规则:把i+1或i-1赋给变量i,而表达式(+i或i)取变量i被赋值后的值,即i=i+1或i=i-1。后缀i+或i-运算规则:把i+1或i-1赋给变量i,而表达式(i+或i)取变量i被赋值前的值。【示例】int a=2,b=2,c=2,d=2;a+;b-;+c;-d;该程序段执行后各变量及表达式值的情况如表2-5:表达式表达式执行前变量值表达式执行后变量值表达式的值a+232b-212+c233-d211前缀形式先前缀形式先“增值增值”后引用,后引用,后缀形式先引用后后缀形式先引用后“增值增值”。50第二

44、章 数据描述与数据操作vc2.4 数据操作数据操作 三、赋值类运算三、赋值类运算4、赋值转换:、赋值转换:【示例】【例例2-5】设有定义int a=3,b,c=5;请将以下两条语句a-;b=a+c;写成一条语句。知知 识识 储储 备备当把表达式的值赋给变量时,如果表达式的值的类型与变量的类型不一致,系统自动将赋值号右端表达式的值的类型转换为左端变量的类型,然后再将表达式的值赋给变量。【示例】int a;a=3.8;由于a为int型变量,3.8为实型数据,类型不匹配,所以系统自动将3.8采用截断方式(即截去小数部分)转换为int型数据3,再赋给变量a。【例例2-5】解答:解答:因为语句b=a+c

45、;中的a使用的是语句a-;执行后a的值,所以,两条语句可写成一条语句b=-a+c;。51第二章 数据描述与数据操作vc知知 识识 储储 备备做做一一做做【课堂实践【课堂实践2.5】设有定义int a=3,b,c=5;请将以下三条语句+a;b=a+c;+c;写成一条语句。52第二章 数据描述与数据操作vc2.4 数据操作数据操作 四、条件运算四、条件运算(1)条件运算符:?:(2)优先级别:第13级(3)结合方向:右结合(4)条件表达式:表达式1?表达式2:表达式3(5)运算过程及表达式的值:【示例示例】【例例2-6】设a,b是两个整数,用C语言的表达式来表示a和b中的最大者。知知 识识 储储

46、备备先计算表达式1,若表达式1的值非0,则计算表达式2,不再计算表达式3,此时表达式2的值为整个条件表达式的值;若表达式1的值为0,不再计算表达式2,而计算表达式3,此时表达式3的值为整个条件表达式的值。【示例】int a=2,b=5,c;c=ab?-a:-b;printf(“a=%d,b=%d,c=%dn”,a,b,c);程序段的输出结果为:a=2,b=4,c=4【例例2-6】解答:解答:a和b中的最大者可表示为:ab?a:b。53第二章 数据描述与数据操作vc思考思考2.7:条件运算有什么作用?知知 识识 储储 备备想想一一想想2.4 数据操作数据操作54第二章 数据描述与数据操作vc2.

47、4 数据操作数据操作 五、逗号运算五、逗号运算(1)逗号运算符:,(逗号)(2)优先级别:第15级(3)结合方向:左结合(4)逗号表达式:表达式1,表达式2(5)运算过程及表达式的值:【示例】知知 识识 储储 备备先求解表达式1,再计算表达式2,表达式2的值为整个逗号表达式的值。【示例】a=3*5,a*4,a+5该表达式等价于(a=3*5,a*4),a+5。该表达式执行完毕a的值为15,逗号表达式的值为20。55第二章 数据描述与数据操作vc2.4 数据操作数据操作 六、强制类型转换六、强制类型转换(1)运算符:(类型标识符)(2)一般形式:(类型标识符)(表达式)(3)作用:(4)优先级别:

48、第2级(5)结合方向:右结合【示例】注意注意:【示例】【示例】知知 识识 储储 备备把表达式值的类型转化为类型标识符说明的类型。【示例】要将3.2*4.8转换为整型数据,应写成(int)(3.2*4.8),而不能写成(int)3.2*4.8,这是因为强制类型转换运算符的优先级别高于算术运算。将实数转换为整数时,系统采用的是截断方式,而不是四舍五入;【示例】(int)3.8的结果为3,而不是4。对变量进行强制类型转换后,变量的数据类型不变,而是得到一个所需类型的数据。【示例】float x=3.6;int i;i=(int)x;执行后i的值为3,x的值还是3.6,并且变量x的数据类型还是floa

49、t型。56第二章 数据描述与数据操作vc2.4 数据操作数据操作 七、长度运算七、长度运算(1)运算符:sizeof(2)一般形式:sizeof(类型标识符或表达式)(3)作用:(4)优先级别:第2级(5)结合方向:右结合【示例】知知 识识 储储 备备求指定数据或指定数据类型在内存中的存储长度。【示例】int i;sizeof(i)的结果为4,sizeof(double)的结果为8,sizeof(hello)的结果为6。57第二章 数据描述与数据操作vc知知 识识 储储 备备做做一一做做【课堂实践【课堂实践2.6】1、设a,b是两个整数,用C语言的表达式来表示a和b中的最小者。2、设a,b,c

50、是三个整数,用C语言的表达式来表示a,b和c中的最大者。58第二章 数据描述与数据操作vc引例分析与实现引例分析与实现 一、引例分析一、引例分析 对于给定的一个三位整数n,个位:n%10,十位:n/10%10,百位:n/10/10。分别编写函数来求这个三位数的个位、十位、百位,并由主函数来调用即可。二、引例实现二、引例实现int main()int ThreeDN,ones,tens,hundreds;int Ones(int n),Tens(int n),Hundreds(int n);printf(请输入一个三位整数:);scanf(%d,&ThreeDN);ones=Ones(Three

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁