《高级语言程序设计教学》第5章_第1页
《高级语言程序设计教学》第5章_第2页
《高级语言程序设计教学》第5章_第3页
《高级语言程序设计教学》第5章_第4页
《高级语言程序设计教学》第5章_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第5章数据类型和表达式编辑pptC的数据类型C数据类型指针类型空类型void基本类型字符类型char数值类型整型短整型short长整型long整型int浮点型单精度型float双精度型double构造类型枚举类型enum数组结构体struct共用体union2编辑ppt5.1数据的存储格式数据在计算机内存中以【】形式存储A、二进制 B、十六进制C、十进制 D、八进制整型数据在内存中以【】存储A、原码 B、反码C、补码 D、ASCII码3编辑ppt符号常量符号常量定义:用标识符代表一个常量使用符号常量的优点含义清楚一改全改

注意:符号常量名通常用大写,变量名用小写4编辑ppt#include<stdio.h>#definePI5.1415927main(){floatr1,r2,len1,len2,s1,s2;r1=10;r2=20;len1=2*PI*r1;s1=PI*r1*r1;printf("len1=%fs1=%f\n",len1,s1);len2=2*PI*r2;s2=PI*r2*r2;printf("len2=%fs2=%f\n",len2,s2);}符号常量定义符号常量使用5编辑ppt5.2基本数据类型整型实型字符型6编辑ppt5.2.1整型基本类型:int类型比特数取值范围[signed]int32-231~(231-1)unsigned[int]320

~(232-1)[signed]short[int]16-215~(215-1)unsignedshort[int]160

~(216-1)[signed]long[int]32-231~(231-1)unsingedlong[int]320

~(232-1)7编辑ppt1、整型常量表示方式十进制如:12,-123,0八进制(以0开头)如:012表示10十六进制(以0x开头)如:0x12表示18

长整型需在数值后面加上一个字母L或l:123L、0123L。无符号常量后面加上字母U或u:

123U、0x123U。

8编辑ppt5.2.2实型数据1、实型数据的存储实型数据一般占4个字节(float型)举例:(3.14159)10=0.11001001000011111100111110*101000000010011001001000011111100111阶符阶码数符尾数9编辑ppt2、实型常量表示方式十进制小数形式.123123.456-123.0.0指数形式123.4e4

-123E3.123e-1010编辑ppt3、实型变量说明:ANSIC并没有具体规定每种类型的长度、精度和数值范围。下面是常用的C编译系统的情况类型字节数有效数字最小取值范围float46~7-3.4*10-38~3.4*1038double815~16-1.7*10-308~1.7*1030811编辑ppt实型数据的舍入误差从上面的表中可以看出,实型数据的有效数据是有限的,有效数据以外的数字将被舍去。因此会产生误差12编辑ppt4、实型常量的类型系统默认为double类型若希望指定为float类型在后面加f或F2.3f

-0.123F

2e-3f13编辑ppt5.2.3字符型数据1、字符数据的存储一个字节存储一个字符数据字节中存储的是字符的ASCII码如:字符'A'01000001'A'6514编辑ppt2、字符常量以单撇号括起来的一个字符。如'a'、'C'、'#'以一个"\"开头的字符序列。字符形式含义ASCII码\n换行,将当前位置移到下一行开头10\t水平制表(跳到下一个tab位置)9\b退格,将当前位置移到前一列8\r回车,将当前位置移到本行开头13\f换页,将当前位置移到下一页开头12字符形式含义ASCII码\\反斜杠字符"\"92\'单撇号字符39\"双撇号字符34\ddd1到3位8进制数所代表的字符\xhh1到2位16进制数所代表的字符15编辑ppt

问题:已知换行的ASCII码值为10,则下列正确表示换行符的方法是:(ch是字符型变量)

(A)ch='\n'; (B)ch='\10'; (C)ch='\12'; (D)ch='\x10'; (E)ch='\xa'; (F)ch=’10’; (G)ch=10;

16编辑ppt字符变量一个字符变量只能存放一个字符字符变量的定义形式,如:charc1,c2;字符变量的使用方式,如:c1='a';c2=‘b';charc1,c2;c1='a';c2='b';01100001ch19701100010ch29817编辑ppt问题:若有说明语句:charc='72';则变量c(A)包含1个字符 (B)包含2个字符 (C)包含3个字符 (D)说明不合法,c的值不确定以单撇号括起来的一个字母以一个"\"开头的字符序列18编辑ppt5.3运算符及表达式C运算符简介算术运算符+-*/%++--关系运算符<<=>>===!=逻辑运算符!&&||位运算符<<>>~|^&赋值运算符=及其扩展(+=-=等)逗号运算符,强制类型转换(类型)条件运算符?:分量运算符.->指针运算符*&下标运算符[]求字节数sizeof其它()-19编辑ppt算术运算符基本的算术运算符+-*/%++--优先级:-(负)++--*/%

+-(减)结合方向+-*/% 从左向右-(负) 从右向左功能运算量优先级别结合方向结果的类型20编辑ppt说明:"%"只能进行整数的取模运算,且余数与被除数的符号相同整数的算术运算结果仍为整数如果算术运算中有一个数是实数,则结果为double型-5%2=5%-2=1%10=5%1=5.5%2=例5/2=-5/2.0=例

2

-2.5-1

1

1

0

()21编辑ppt

自增、自减运算符++--作用使变量值加1或减1种类前置++i,--i先执行i=i+1或i=i-1,再使用i值后置i++,i--先使用i值,再执行i=i+1或i=i-15++(a+b)++22编辑ppt说明:优先级:-++--

*/%

+-

++--结合方向:自右向左例

i=3;printf(“%d”,-i++);例

j=2;k=3;printf(“%d”,j+++k);-(i++)printf(“%d”,-i);i=i+1;

结果:-3,i=4(j++)+kprintf(“%d”,j+k);j=j+1;//结果5,j=323编辑ppt【例3-2】逻辑运算举例#include<stdio.h>voidmain(void){

intc,x=0,y=-5; printf("%d,%d\n",!x*y,x&&y); x=1; y=1; c=x++||y++; printf("%d,%d,%d\n",x,y,c); x=0; y=0; c=x++&&y++; printf("%d,%d,%d\n",x,y,c);}-5,02,1,11,0,0c=x||yx=x+1++x:先执行x=x+1,再将x的值作为表达式++x的值。x++:先将x的值作为表达式x++的值,再执行x=x+1。c=x&&yx=x+124编辑ppt赋值运算符简单赋值运算符符号:=格式:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量例

a=3; b=sqrt(a); c=b+2;25编辑ppt复合赋值运算符种类+=-=*=/=%=

含义varop=expvar=varop(exp)a+=3x*=y+8x%=3a=a+3x=x*(y+8)x=x%326编辑ppt说明:优先级:优先级很低结合方向:自右向左左侧必须是变量,不能是常量或表达式赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型赋值表达式的值与变量值相等,且可嵌套3=x-2*y;a+b=3;例

a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6)

a=(b=10)/(c=2) //表达式值5;a,b,c值为5//表达式值5;b=5,a=5//表达式值11;c=6,a=11//表达式值10;a=10,b=4,c=6//表达式值5;a=5,b=10,c=227编辑ppt逗号运算符逗号运算符形式:表达式1,表达式2,……表达式n优先级:最低结合性:从左向右逗号表达式的值:等于表达式n的值main(){intx,y=7;floatz=4.0;x=(y=y+6,y/z);printf("x=%d,y=%d,z=%f",x,y,z);}x=3,y=13,z=4.00000028编辑ppt位运算符运算符功能~按位取反>>右移<<左移&按位与^按位异或|按位或shortinti=21;//0000000000010101shortintj=56;//0000000000111000~i111111111110101065514i>>200000000000001015i<<2000000000101010084i&j000000000001000016i^j000000000010110145i|j00000000001111016129编辑ppt5.4类型转换混合运算的规则不同类型数据混合运算,先转化为同一类型转化规则float型一律转化为double型char,short型转化为int型精度低类型转化为精度高类型floatchar,shortdoublelongunsignedint30编辑pptinta=3;floatf=5.14;charc='a';10+c+a*f的结果是?10+cc转化为int型,c的值为97,则结果为107a*fa和f转化都为double型,结果为9.42000010+c+a*f将10+c的结果转化为double型与a*f的结果相加结果为116.4

温馨提示

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

评论

0/150

提交评论