数据描述与基本操作-汕头大学教学课件_第1页
数据描述与基本操作-汕头大学教学课件_第2页
数据描述与基本操作-汕头大学教学课件_第3页
数据描述与基本操作-汕头大学教学课件_第4页
数据描述与基本操作-汕头大学教学课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

数据描述与基本操作-汕头大学41、俯仰终宇宙,不乐复何如。42、夏日长抱饥,寒夜无被眠。43、不戚戚于贫贱,不汲汲于富贵。44、欲言无予和,挥杯劝孤影。45、盛年不重来,一日难再晨。及时当勉励,岁月不待人。数据描述与基本操作-汕头大学数据描述与基本操作-汕头大学41、俯仰终宇宙,不乐复何如。42、夏日长抱饥,寒夜无被眠。43、不戚戚于贫贱,不汲汲于富贵。44、欲言无予和,挥杯劝孤影。45、盛年不重来,一日难再晨。及时当勉励,岁月不待人。CH2REVER:输入一个三位整数,然后构成其反向三位数,并将其输出。例如:输入123,输出321。(提示:要用/和%运算符进行运算)CH2SORT:任意输入三个整数分别送给变量a,b,c,然后对它们作比较交换,使a<b<c,再输出a,b,c。(提示:要用若干个if)第二章练习P522.132.152.222.252.26第二章上机3/24/20212许创制作第二章数据描述与基本操作C语言的数据类型3/24/20213许创制作7/23/20236许创制作数据取值范围short(int)-32768~32767unsignedshort0~65535long-2147483648~2147483647unsignedlong0~4294967295float±(3.4e-38~3.4e38)double±(1.7e-308~1.7e+308)char-128~127unsignedchar0~2557/23/20237许创制作整型常量表示形式十进制:

123、0、-32768八进制:00、01234、-0765十六进制:

0xA3、-0x98F非法表示:

096、20FA、0X10FG长整型1234L、-100000L、03456L、0xAD345L7/23/20238许创制作带符号整数的内存存放带符号整数在内存以其补码形式存放正数的补码是该数的二进制数本身负数的补码是:先取该数的绝对值以二进制形式表示再对其取反(1变0,0变1)然后加17/23/20239许创制作例.-1在内存中的存放(补码)

+1的二进制数为0000000000000001取反得1111111111111110加1得1111111111111111TurboC将char隐含指定为signedchar

故扩充ASCII码为242的字符‘≥’若按十进制数形式输出,其结果为-14。其理由见下:

因242的八进制形式为0362二进制形式为1111001011110010正好是-14的补码。7/23/202310许创制作实型常量一般形式:

0.123、0.、3.14指数形式(科学记数法):

日常表示浮点表示3.14159×1003.14159E00.0314159×1020.0314159E+23141.59×10-33141.59E-3

尾数

阶码(3字节)(1字节)7/23/202311许创制作字符常量以单引号为定界符‘a’(ASCII码为97)‘A’(ASCII码为65)‘0’(ASCII码为48)转义字符‘\n’、‘\101’、‘\x41’、‘\\’(例2.7)ASCII码值(整数)

65、0101、0x41例2.1、例2.2、例2.37/23/202312许创制作字符串常量“hello”

该字符串长度为5,存储时系统自动加上串结束标志“\0”,故实际占用6个字节空间:

h

ello\0

104

1011081081110

如要处理字符串“Isay:’Goodbye!’”应写成:

“Isay:\’Goodbye\’”要特别注意‘A’与“A”的不同!(1字节与2字节)7/23/202313许创制作符号常量例2.5求圆面积和周长

#definePI3.14doublearea(doubler){return(PI*r*r);}doublecircumference(doubler){return(2*PI*r);}main(){printf("area=%lf",area(2.0));

printf("circumference=%lf\n",circumference(2.0));}

7/23/202314许创制作标识符标识符命名规则以字母或下划线开头,后面可有其他字母、数字或下划线。如sum、number_of_class。非法标识符:number-of-class、5-6-90、$a。禁止用P351的32个关键字禁止用与系统内部同名的标识符,如_mode标识符有效长度依不同系统而异。标识符区分大小写。如PI与pi不同。变量、常量、函数、数组、结构、文件的名字是标识符。7/23/202315许创制作变量的赋值一般形式(赋值表达式):

变量=表达式(=叫赋值运算符)例:a=1.0;

x=x+3;ch=‘#’;b=(a=3+5);a=b=c=d=3+5;变量在使用之前必需先声明,然后才能使用可以在声明变量时对变量赋初值例:inta=3,b=4;7/23/202316许创制作运算符(C共有13类)1。算术运算符:+、-、*、/、%、++、--2。关系运算符:>、<、==、>=、<=、!=3。逻辑运算符:!、&&、||4。位运算符:<<、>>、~、|、^、&5。赋值运算符:=6。条件运算符:?:7/23/202317许创制作7。逗号运算符:,8。指针运算符:*、&9。求字节数运算符:sizeof10。强制类型转换运算符:(类型名)11。分量运算符:.、->12。下标运算符:[]13。其他运算符:如函数调用、()等7/23/202318许创制作运算符sizeof(不是函数而是运算符)

用于测定一种类型数据所占字节数如:sizeof(类型名)或

sizeof(表达式)

例2.4:运算符sizeof的使用printf(“char:%dbytes\n”,sizeof(char));

1printf(“int:%dbytes\n”,sizeof(int));

2printf(“long:%dbytes\n”,sizeof(long));

4printf(“double:%dbytes\n”,sizeof(double));8

若有声明intx;

则可有以下表达式sizeof(int)、sizeof(x)、sizeofx,但sizeofint7/23/202319许创制作使用运算符应注意:各运算符的功能运算符与运算量的关系

如单目或双目、运算量的类型!a-12

3+95%3运算符的优先级(见P351)结合方向

如a=b=c=5是右结合的结果类型

如x=3+2.5结果应是实型的7/23/202320许创制作算术运算双目算术运算符:+-*/%表达式:aopb自反算术赋值运算符

a=a+b可写为a+=bb=b*(a+2);c=b;可写为c=b*=a+2;自加和自减

i=i+1

即i+=1可写为i++或++ii=i-1即i-=1

可写为i--或

--i7/23/202321许创制作i++与++i的差异先引用后增值先增值后引用

例:inti=1;inti=1;x=i++;x=++i;y=i;y=i;

结果:结果:

x为1,y为2x为2,y为2

正负号运算符(单目运算)

例:-5+6.5-a

7/23/202322许创制作赋值类运算符的副作用例1)c=b*=a+2;容易误解为b*=a;c=b+2;2)x=i+++j;应是x=(i++)+j而非x=i+(++j)3)j=3;i=(k=j+1)+(j=5);i在不同机器上可得到不同结果9或11。解决办法:将费解处分解。如将1)改为c=a+2;c=b*c;

将3)改为j=3;k=j+1;j=5;i=k+j;加上一些括号。如将1)改为c=b*=(a+2);

将2)改为x=(i++)+j;7/23/202323许创制作关系运算运算符>>=<<===!=关系运算符优先级较低(低于算术类但高于赋值类)

a+b<c+d

意即(a+b)<(c+d)关系表达式的值只有“真”、“假”,即“1”和“0”

若已知x=2;y=3;则x==y的值为0表达式z=10<=x<=y+2

z的值为1

★注意以上表达式与数学不等式含义不同!

7/23/202324许创制作数学表达式1<x<2在C中应写为:x>1&&x<2(&&表示“且”)由于关系表达式的值是1或0,可视为整型数参加运算

如inti=1,j=7,a;a=i+(j%4!=0);a的值为2字符可按其ASCII码值大小进行比较

如‘a’>‘A’的值为1(真)浮点数由于存储产生的误差,作相等或不等比较时要特别小心(见P34)

7/23/202325许创制作逻辑运算运算符:&&(逻辑与)

||(逻辑或)

!(逻辑非)各运算符含义见P34图2.3&&与||的优先级低于关系运算符,而!高于关系运算符,&&高于||逻辑运算将“非零”作为“真”,将0作为“假”,故可有if(0.2)printf(“true\n”);真值表见P357/23/202326许创制作P35例2.8、写出描述点A(x,y)落在图2.4阴影部分(不压线)的C表达式

-2<x&&x<2&&-2<y&&y<2&&x*x+y*y>1逻辑运算的一些基本公式:

0||a==a1&&a==a1||a==10&&a==0a||!a==10&&!a==0a||a==aa&&a==a!(a||b)==!a&&!b

!(a&&b)==!a||!b!(!a)==a7/23/202327许创制作条件运算条件表达式e1?e2:e3

是三目运算

其含义为:若e1为真,则值为e2,否则值为e3。

当e2与e3类型不同时,取其类型高者,例如,若e2为整型,e3为实型,则表达式的值应为实型。例2.9计算a+|b|例2.10输入两数,输出大者(见P37)7/23/202328许创制作不同类型数据间的转换不同类型数据的运算结果取其高级者

char→int→long→float→double赋值时等号右边表达式转成左边类型(例2.11)char→int取字符的ASCII码;int→char去掉多余的高位;float→int去掉小数部分;double→float采用舍入编译时,实型数按双精度参加运算可以强制表达式类型转换(显式转换)

x=(float)100;i=(int)3.14;k=(int)(x+i);7/23/202329许创制作不同类型数据的隐式转换运算转换例:floatx;x=2.5+2;赋值转换例:floatx;x=2;输出转换例:intx=65;printf(“%c\n”,x);例2.12有符号整型转换为无符号整型例2.13长类型转换为短类型7/23/202330许创制作输出函数printf格式:

温馨提示

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

评论

0/150

提交评论