数据类型第二章PPT学习教案_第1页
数据类型第二章PPT学习教案_第2页
数据类型第二章PPT学习教案_第3页
数据类型第二章PPT学习教案_第4页
数据类型第二章PPT学习教案_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、数据类型第二章数据类型第二章构造类型指针类型空类型无值类型枚举类型数组类型结构类型联合类型C语言的数据类型有 3-1 数据与数据类型第1页/共56页关于类型的含义1.不同类型数据在内存中占不同的存储空间,且采取不同的存储形式2.不同类型数据对应不同的取值范围3.数据类型确定了允许对其进行的操作 3-1 数据与数据类型(完) 第2页/共56页 3-2 C语言的基本数据类型 按照数据在程序中的取值:值保持不变-常量 x=2 * y值随程序运行变化-变量第3页/共56页一、常量1. 在程序运行中,其值保持不变2. 表示方法:整型 100,125,-100实型 3.14 , 0.125字符型 a, b

2、字符串常量 “string” 3-2 C语言的基本数据类型(续) 3.符号常量: #define PI 3.14159用指定的标识符表示某个常量3.2.1 常量与变量第4页/共56页二、变量3. 变量通过变量名标识1. 在程序运行中,值发生变化2. 必须先定义,再使用int a,b;类型 变量名表memorya83 3-2 C语言的基本数据类型(续) b第5页/共56页 (1)以字母或下划线开头(2)不能用系统中的关键字作为变量名规 定int a,b A123,_b;int a;.A=5;4. 有关变量名的规定(3)变量名中的字母是区分大小写的。sum、stu_name、_age、Lts_1_

3、2、a232c、x.y、start+9、c2.0 NAME name 表示两个不同的标识符。不提倡大小写混合使用 3-2 C语言的基本数据类型(续) 第6页/共56页一、整型常量有三种表示形式十进制 八进制十六进制1234加前导0 01234,0125加前导0 x 0 x123,0 xffff整型数据包括整型常量和整型变量, 整型数据以二进制补码形式存储 3-2 C语言的基本数据类型(续) 3.2.2 整型数据第7页/共56页1. 定义形式共六种基本整型长整型短整型无符号整型无符号短整型无符号长整型 int long intshort intunsigned int2. 占存储空间一个变量24

4、22unsigned short unsigned long24 3-2 C语言的基本数据类型(续) 444444TCVC第8页/共56页3.整型变量的取值范围 3-2 C语言的基本数据类型(续) TC环境中第9页/共56页int型数的表示范围:存储长度16位二进制(2Byte)上面的数再加1是多少?补码表示4. 输入输出形式 : %d,%ld,%x,%o,%u 3-2 C语言的基本数据类型(续) 第10页/共56页main ( )int i,n,t=1;scanf(%d,&n);for (i=1;i72a=b=5*运算结果的类型X=5+8a100单目运算符的优先级高于双目运算符单目运算符从右

5、向左结合双目运算符从左向右结合第30页/共56页3.3.2 算术运算符和算术表达式1. 共有5个:+,-,*,/,%2 %运算只适用于整型数单目: -双目:*, /, %双目:+,-4. 优先级: 5. 结合性: 从左向右 3. “-”作为 负号时为单目取模(求余数)a=10%4a的值为2 3.3 算术运算与赋值运算(续)a=10/4 时a=2a=10.0/4 时 a=2.5第31页/共56页3.3.3 自增、自减运算符1. 变量自身加(减)1 k =k+1k + 先使用变量k的值,再加 1+ k 先加1,再使用变量 k的值 k = k-1k - - 先使用变量k的值,再减 1- - k 先减

6、1,再使用变量k 的值 3.3 算术运算与赋值运算(续)k=3; printf( “%d”, k +); 输出 3 后, k 的值为 4i=3; printf( “%d”, + i); 输出4s=0;k=3; s=s+k+; s的值为3, k 的值为 4s=0;k=3; s=s+ +k; s的值为4, k 的值为 4s=s+kk=k+1k=k+1s=s+kprintf(“%d”,k)K=k+1;K=k+1;printf(“%d”,d)第32页/共56页2. 只能用于变量,不能用于表达式和常量3. 优先级:高于双目算术运算符4. 结合性:从右向左(i+k) + , - - 3i=3; k=i+

7、+ i+ + i+; 3.3 算术运算与赋值运算(续)第33页/共56页 main() int a , b , s ; a = 5 ; b = 5 ;s= a+b ; printf(“%d,%d,%dn”,a,b,s);s= a+ +b; printf(“%d,%d,%dn”,a,b,s);s= +a+b; printf(“%d,%d,%dn”,a,b,s);s= - -a +b; printf(“%d,%d,%dn”,a,b,s);s= a- - +b; printf(“%d,%d,%dn”,a,b,s);s= a + b; printf(“%d,%d,%dn”,a,b,s); 3.3 算术

8、运算与赋值运算(续)第34页/共56页s = a + b ; s = a+ +b ; s = +a +b ; s = - -a +b ; s = a- - +b ; s = a + b ; a=5,b=55+5=10s 3.3 算术运算与赋值运算(续)a5676555+5=106+5=116+5=117+5=125+5=10b555555 101111121010s=a+b;a=a+1a=a+1;s=a+b;a=a-1;s=a+b;s=a+ba=a-1;第35页/共56页2.3.4 赋值运算符赋值表达式1. 将一个常量或一个表达式的值赋给一个变量称为赋值x = 5 y = x + 10 2.

9、可以将一个实型赋给一个整型,或将一个整型赋给一个实型int x, x=5.3; x的值为 5float y, y=5; y的值为 5.000000 3.3 算术运算与赋值运算(续)3. 赋值运算的优先级比算术运算低4. 赋值运算的结合性从右向左X = y = 5第36页/共56页2.3.5 组合赋值运算符和组合赋值表达式x=x+n x+=n赋值运算符两侧出现相同的变量 3.3 算术运算与赋值运算(续)x=x+nx=x-nx=x*nx=x/nx=x%nx + = nx - = nx * = nx / = nx% = n算术运算与赋值运算相结合X与n均为整数n 为常数第37页/共56页main()

10、 int a,b,c,d;a=2,b=5 ,c= 6,d=10; a + =b; b- =c;c * =d; d / =a; a%=c;printf(“%d,%d,%d,%dn”,a , b , c , d );7,-1,60,1 3.3 算术运算与赋值运算(续)2a5b610cd7-1601第38页/共56页 3.3 算术运算与赋值运算(完)main( ) int a=3, b=2, c=4, d=8, x; a+=b*c; b-=c/b;printf(“%d,%d,%d,%dn”,a,b,c*=2*(a-c),d%=a);printf(“x=%dn”,x=a+b+c+d);a=a+b*c=

11、3+2*4=11b= b-c/b =2 - 2 = 0c=c*2*(a-c)=4*2*(11- 4)=56d=d%a=8%11=811,0,56,8x=75第39页/共56页2.4 关系运算与逻辑运算l关系运算和逻辑运算经常作为条件语句和循环语句中的条件,其结果为一逻辑值 A和 B中至少有一个大于 C如何用C语言描述 A和 B全部大于 CA为不大于100 的 偶 数关系运算是一种比较运算,将两个值(表达式)进行比较,判断比较的结果是否符合给定的条件第40页/共56页一、关系运算符大于 , 大于等于 =,小于 ,小于等于bc第41页/共56页2. 关系表达式的结果是一个逻辑值,根据关系是否满足,

12、分别取 1,或 0二、关系表达式int i=1,j=7,a; a=i+(j%4!=0)a的值?结果:a=22.4 关系运算与逻辑运算(续)3. 使用关系表达式应注意1) 数学上,判断x是否在区间 a,b 时,习惯上写成a=x=b,但在C 中,必须写成 a=x & x0 的值为逻辑 1第42页/共56页1.0/3.0 * 3.0 = 1.0的逻辑值为03) 当判断两个浮点数是否相等时,由于存储上的误差,可能会有错误的结果,例如:数学上:恒等式1.0 / 3.0 * 3.0 = 1.04)关系表达式的结果可以当成整型数int a=3,b=5,c=7,d; d = a c逻辑117逻辑0d的值为02

13、.4 关系运算与逻辑运算(续)第43页/共56页2.4 关系运算与逻辑运算(续)2.4.2 逻辑运算符与逻辑表达式一 、逻辑运算符1. 有三个& & (与): 两边为1,结果为1| (或):两边有一个为1,结果为1! (非):非1为0,非0为12. 优先级:!的优先级高于&和|逻辑运算与其他运算相比: 非的优先级最高,与和或低于其他。3. 结合性:与和或是从左向右,非是从右向左第44页/共56页二 、逻辑表达式2. 表达式的值为逻辑的1和0,表示真与假任何非零实数均可作为逻辑上的1例:a=5,b=7,c=4,d=3x=(a+b)(c+d)&(da)先做算术运算,再做关系判断,将最后结果赋给x1

14、. 用逻辑运算符将关系运算表达式或逻辑量连接起来构成逻辑表达式2.4 关系运算与逻辑运算(续)5 2 7 8从左向右运算 (52)逻辑值为1 (17)逻辑值为0 (08)逻辑值为0整个表达式的值为 0第45页/共56页3 . 在逻辑表达式中,并不是所有的逻辑运算都必须执行,如果&的一边已经为0,结果一定为 0,如果 | 的一边已经为 1 ,结果一定为 1(1) a&b&c a为非0时,再判断 b, a,b均为非0, 再判断c(2 ) a|b|c,若a为非0,不必判断 b和 c,结果一定为 1 2.4 关系运算与逻辑运算(续)已知 :a=1,b=2,c=3,d=4,m=1,n=1 执行(m=ab

15、)&(n=cd) 之后 : m=? n=?由于 ab的值为 0,m=0不再判断(n=cd)的值,因此,n 维持原有的值m=0n=1第46页/共56页3.4 关系运算与逻辑运算(续)3.4.3 条件运算符与条件表达式三 、条件运算符C语言中唯一的一个三目运算符X=(表达式1)?(表达式2):(表达式3)将条件语句化成赋值语句1. 格式判断表达式1的值,若为非0,将表达式2的值赋给x,否则,将表达式3的值赋给x 2 功能:x=(ab)?a:b 当 a=9,b=5时,x=9条件运算要求有三个运算分量,并且不论条件是否成立,都必须是为同一个变量赋值第47页/共56页3 条件运算符的优先级:高于赋值,低

16、于其他4 结合性:从右向左z=(ab)?a:(ad)?c:d5 数据类型可以不同:xy?a:b执行:int x=10,y=9; int a,b,c;a=(- -x=y+)?-x:+y;b=x+; c=y;后a,b,c? a, b, cA) 9, 9, 9B) 8, 8, 10C) 8,10, 9D) 1,11,10X为9y为10X为83.4 关系运算与逻辑运算(续)第48页/共56页若w,x,y,z,m均为int型变量,则执行下面语句后的m值为:w=1;x=2;y=3;z=4;m=(wx)? w: x;m=(my)? m : y;m=(mz)? m:z;A) 1 B) 2 C) 3 D) 4若

17、w=1,x=2,y=3,z=4,则表达式wx?w:y10?x+100:x-10);printf(“%d,”,w+|z+)printf(“%d,”,!wz);printf(“%d,”,w&z);A) 0 ,1,1,1 B) 1,1,1,1 C) 0, 1,0,1 D) 0,1,0,0算术运算关系运算逻辑运算条件运算3.4 关系运算与逻辑运算(完)第50页/共56页一、逗号运算符(表达式 1,表达式 2,表达式 3,表达式 n)用于连接几个表达式二、求解过程顺序求解几个表达式三、优先级逗号运算符的优先级最低四、结合性从左向右五、逗号表达式逗号表达式的值为最后一个表达式的值(表达式n 的值)X =

18、( ( a=4*5 , a*2 ) , a+6 )a为? x为?3.6 其它运算3.6.1 逗号运算符第51页/共56页 3.7 混合运算及数据类型转换 不同数据类型需先转换成同一类型,然后进行运算自动进行-隐式转换强制进行-显式转换一、隐式转换(算术转换)优先级低的向优先级高的转换double floatlong unsigned int char, shortint i; float f; double d; long e;表达式:10+a+i*f-d/e 的结果为: double第52页/共56页二、显式转换(强制转换) (int) (10-+a+i*f-d/e)将该结果强制转换为整型习题3-12中:int i;float f;(int)f%i取模运算要求运算分量是整数,所以先将 f 转换为整形,再做%运算 3.7 混合运算及数据类型转换(完) 三、赋值转换 赋值符号右边的类型向左边的转换int x;float y = 5.3;x=y;int x=5;float y; y=x;第53页/共56页一 、C中的基本数据类型,每一种类型的定义方式(关键字),在存储空间中所占的字节数,存储形式,取值范围。二

温馨提示

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

评论

0/150

提交评论