C语言教案ch3数据类型与运算符.ppt_第1页
C语言教案ch3数据类型与运算符.ppt_第2页
C语言教案ch3数据类型与运算符.ppt_第3页
C语言教案ch3数据类型与运算符.ppt_第4页
C语言教案ch3数据类型与运算符.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计(第三版) -教学课件,制作人: 黄 荧 制作人单位:河师大数学与信息科学学院,第三章 数据类型与运算符,本章内容: 1 c的数据类型 2 常量与变量 (变量是重点!) 3 整型、实型、字符型变量 4 几种常用的运算符 (重点,特别赋值运算符),形形色色的数据 在程序中如何表示?如何存储?,3.1 C语言的数据类型,C中的数据有4类9种,常用的是其中的3类6种.,3.2 常量与变量,一 常量和符号常量 常量: 程序运行时其值不能改变的量(即常数) 如,12、3.2、a、 “abc“ 符号常量: 用合法标识符代表的常量。 一般形式: #define 标识符 常量 如, #define PI 3.1415926 注意 符号常量通常用大写字母表示。,小资料: 标识符: 是用来作为变量名、常量名、函数名等 由英文字母、数字、下划线组成的、第一个字符只能是英文字母或下划线的、且不为C关键字的一串字符(关键字P365) 。 注意: C中的符号对大小写敏感! 如,sum与Sum是两个不同的标识符.,例 3.1 符号常量举例 某商品单价为30元,顾客要买10件,编程计算商品的总价格. 算法分析 (要求用符号常量代替商品单价) 1 “输入“数据:num (件数) 2 计算总价: total 3 输出总价,#include #define PRICE 30 void main() int num,total; num=10; total=num*PRICE; printf(“total=%dn“,total); ,二 变量 1 变量的概念: 变量是被命名的存储单元。 2 变量的定义方法: 一般形式: 类型符 变量名列表 如, int a,b,n,m; float x,y,z;,3.3 整型数据,整型常量 (三种形式) 十进制常数 如, 123、-12、0 八进制常数 由数字07组成,最高位必须用0 做引导符! 如, 012 - (12)8 =(10)10 、-012 十六进制常数 由09和af(AF)组成,最高位必须用0x(0X) 做引导符。 如, 0x12 - (12)16 =(18)10 0xaf - (af)16 =10*16+15=(175)10,思考:下面那些是非法常量?为什么?各合法常量的含义? 1) 0121 2) 17 3) 0128 4) o21 5) 0x11 6) fff 7) 01a 8) 0x1h 9) 0XFF,#include void main() int n=012,m=0x12; printf(“n=(%o)8,(%d)10,(%x)16n“,n,n,n); printf(“m=(%x)16, (%d)10,(%o)8n“,m,m,m); ,0128,o21,fff,01a,0x1h,二 整型变量 (存储方式、分类、定义方式、易错点等) 1 整型数据在内存中是以二进制补码形式存放 如,int a=10,b=-10;,+1,2 整型变量主要是根据所占内存字节数及是否设置有专门的符号位来进行分类的(6种) 1) 有符号整型: int short long (3种,占字节数:2 2 4),2) 无符号整型: unsigned int 等相应3种(占字节数: 2 2 4 ),3 各类整型变量的定义,如, int a,b; long m,n; unsigned num,k; a=13; m=13; num=13;,例 3.2 不同种类整型数据的运算 #include void main() int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u; d=b+u; printf(“a+u=%dnb+u=%dnn“,c,d); ,运行结果: a+u=22 b+u=-14,4 整型数据的溢出 如, int整型最大允许值(Tc!)是: 32767 思考: 怎样编程检验一下:如果运算使变量数据超出最大允许范围会怎样?,因为在内存中: a: 0111 1111 1111 1111 32767 b: 1000 0000 0000 0000 -32768的补码,例 3.3 P44 #include void main() short a,b; a=32767; b=a+1; printf(“%d,%dn“,a,b); ,运行结果: 32767,-32768,5 整型常量的类型: 根据其值所在范围确定,一个整数,如果其值在-32768-+32767,则认为它是int型的(Tc)。 一个整数,如果其值在超出了上述范围且在-2147485648-+2147485647范围内,则认为它是long型的。(再大就看作实型的了。) 一个整常量后面加一个字母u,则认为它是unsigned型的。 一个整常量后面加一个字母l或L,则认为它是long型的。 如,0L 占4个字节,3.3 整型数据,一 整型常量 (三种形式:十进制、八进制、十六进制) 二 整型变量 1 整型数据在内存中的存放形式:以二进制补码形式存放 2 整型变量的分类: 主要按占用内存字节数及是否设置有专门的符号位的不同进行分类的(6种) 3 各类整型变量的定义:如, int i; long m; unsigned u; 4 整型数据的溢出: 数据绝对值过大超出能存储的范围 5 整型常量的类型: 按数据其值所在范围确定,3.4 实型数据,实型常量 (浮点数) 十进制小数形式 如, .123、123.、123.0、0.0、0.、.0、 指数形式(常量!一个整体) 如,3.45e3、3.45E-3 (表示:3.45103和 3.4510-3 的值) 注意: E的前后必须有数字,E后必须是整数。 如,.3E3、3E3、3.E3 3E、E3、1E0.3、3Ek 实型常量的类型:缺省为duoble (占8个字节,有效数字:15-16)! 后缀,f、F 为float (占4个字节,有效数字:6-7) 后缀,l、L 为 long duoble(占10个字节,有效数字:18-19),小资料: 有效数字:在这一位上误差不超过这一位的半个单位,则称这一位是有效数字。,二 实型变量 (存储方式、分类、易错点等) 1 实型数据在计算机中是按照指数形式存放的(如,6.23E-10) 如图所示:,2 实型变量是根据占用内存字节数的不同进行分类的(3种),其中有效数字的位数值得注意, 处理实型数据此处是易错点,3 实型数据的舍入误差,例 3.4 /* 注意到:float型有效数字为7位。*/ #include void main() float a,b; a=123456.789e5; b=a+20; printf(“ %f,%fn“,a,b); /%f:格式符,以十进制小数形式输出,并保留6位小数 ,3.5 字符型数据,一 字符常量 1 用单引号括起来的一个字符: 如,a 、A、+、9等等。 2 转义字符:如,n - 代表换行符! (如,printf(“*n“);),又如,101=A, x41=A, 0(串结束符) 等. 其中(101)8=(41)16=(65)10,3 字符常量在内存中的存储方式: 字符常量在内存中是以数值方式存储的! (以ASCII码形式,占一个字节) 如,在内存中:,因为字符数据在内存中是以数值方式存储的,所以: 1) 字符数据是数值类型的数据. 2) 字符数据可以参加四则运算. 3) 字符数据可以进行大小比较. 4) 字符数据可以以数值方式输出.,二 字符型变量(占一个字节) 1 字符变量是用来存放字符的(同样存放的是字符的 ASCII码),且只能存放一个字符! 2 字符变量的定义方法: 如,char c1,c2; unsigned char c3,c4,c5; 3 给字符变量赋值的方法: c1=a; c2=101;(A) c3=n; c4= a ;(响铃) c5= 0 ; 甚至:c1=65; c2=97; 4 考虑,如何编程试一试输出几个字符,例 3.6 #include void main() char c1, c2 ; c1=97; c2=a; printf(“%c %cn“,c1,c2); printf(“%d %dn“,c1,c2); ,a 97 7,例 3.7 小写字母转化为大写字母 #include void main() char c1, c2 ; c1=a; c2=c; c1=c1-32; c2=c2-32; printf(“ %c %dn“,c1,c1); printf(“ %c %d n“,c2,c2); ,运行结果: A 65 C 67,思考:字符变量和整型变量能等同吗?,三 字符串常量 1 字符串常量: 字符串常量是用双引号括起来的一串字符。 如,“welcome“、“2008“、 “a“ 、 “welcomenbeijingn“ 等。 2 字符串在内存中的存储方式与结束标记:0 如,“welcome“在内存中:,思考:“a“和a在内存中的存储方式分别是什么? 分别占几个字节的内存?,3.6 变量赋初值,在定义变量的同时给它赋初值,称为变量的初始化。,注意:绝对不允许: int i=j=k=1; ,如, int a=3; float f=3.56; char c=a; int i,j,k=1; /这里只给k赋了初值! int i=1,j=1,k=1; /这里才是给i,j,k都赋了初值!,3.7 各类数值型数据之间的混合运算,混合运算示例:,注意:以上的类型转换 是由计算机自动完成的。,3.8 几个常用运算符,c运算符总表: 1 算术运算符 + - / * %(取余) 2 关系运算符 = (右移) (按位取反) |(按位或) (按位异或) &(按位与) 5 赋值运算符 = 及其扩展赋值运算符(如,+=, *=, -=, ) 6 条件运算符 ? : (这是c中唯一的一个三元运算符) 7 逗号运算符 , (也称为顺序运算符) 8 指针运算符 *(指针运算符) &(地址运算符) 9 求字节数运算符 (sizeof) 10 强制类型转换运算符 (类型名) 11 分量运算符 . - (也称为结构体成员运算符) 12 下标运算符 13 其他 如,函数调用运算符: 函数名(),学习运算符需要注意的问题: 1)运算符的功能 2)运算符的适用范围 3)运算符的优先级和结合方向,1 基本算术运算符: + - / * %(取余),如, 3/4 = 0 1.0/2 = 0.5 5%2 = 1 2%5 = 2,优先级: * / % - + - 结合方向: 由左到右。,2 强制类型转换运算符(左结合) 一般形式: (类型名),如,(double)a (float)(5%2) (int)x%3,例38 #include void main() int i; float x=3.56; i=(int)x%2; printf(“x=%f, i=%dn“,x,i); ,运行结果: x=3.56, i=1,如,i=3; j=i+; printf(“i=%d, j=%dn“,i,j);,又如,i=3; j= +i; printf(“i=%d, j=%dn“,i,j);,输出结果为:i=4, j=4,输出结果为:i=4, j=3,3 自增自减运算符: + -(右结合!) x=i+; x=i; i=i+1; x=+i; i=i+1; x=i;,+, -运算符仅用于变量,4 赋值运算符与赋值表达式(右结合!),两种赋值运算符: 一般赋值运算符: = 复合赋值运算符: += -= *= /= %=,1) 一般的赋值表达式: = 如, x=3.4 y=(x=1)+2,练习: 1 int a, b, c; a=b=c=2 2 int a, b; float c; a=b=c=2.4 3 求 a=(b=-2)+(c=12),赋值运算-最重要的运算之一,它具有计算表达式的值的功能!,2) 复合的赋值运算符: += -= *= /= %= 如: x+=5 x=x+5 x*=5 x=x*5 x%=5 x=x%5 特别: y*=x+5 y=y*(x+5),练习: 1 int a=2, c; a+=5+(c=3) 2 若a=8 求 a/=(b=-2)+(c=12) 3 若a=5 求a+=a-=a*=a,编程计算当a=5时,表达式a+=a-=a*=a的值。,#include void main() int a=5,b; b=(a+=a-=a*=a); printf(“b=%dn“,b); ,5 逗号运算符(顺序求值运算符): (左结合) 一般格式: 表达式1,表达式2 如, x=(b=2,b+1); 逗号表达式的一般形式可以扩展为: 表达式1,表达式 2,表达式n,3.8 几个常用运算符,1 基本算术运算符 + - / * %(取余) 2 强制类型转换运算符 (类型名) 3 自增自减运算符 + -(右结合!) i+i=i+1 4 赋值运算符与赋值表达式(右结合!) 1)一般的赋值表达式: = 2) 复合的赋值运算符: += -= *= /= %= 5 逗号运

温馨提示

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

评论

0/150

提交评论