收藏 分享(赏)

数据描述与基本操作 - 汕头大学.ppt

上传人:dreamzhangning 文档编号:3336734 上传时间:2018-10-15 格式:PPT 页数:31 大小:249.50KB
下载 相关 举报
数据描述与基本操作 - 汕头大学.ppt_第1页
第1页 / 共31页
数据描述与基本操作 - 汕头大学.ppt_第2页
第2页 / 共31页
数据描述与基本操作 - 汕头大学.ppt_第3页
第3页 / 共31页
数据描述与基本操作 - 汕头大学.ppt_第4页
第4页 / 共31页
数据描述与基本操作 - 汕头大学.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、2018/10/15,许创制作,1,CH2REVER: 输入一个三位整数,然后构成其反向三位数,并将其输出。 例如:输入123,输出321。 (提示:要用/和%运算符进行运算) CH2SORT: 任意输入三个整数分别送给变量a, b, c,然后对它们作比较交换,使abc,再输出a, b, c。(提示:要用若干个 if) 第二章 练习 P52 2.13 2.15 2.22 2.25 2.26,第二章 上机,2018/10/15,许创制作,2,第二章 数据描述与基本操作,C语言的数据类型,2018/10/15,许创制作,3,2018/10/15,许创制作,4,2018/10/15,许创制作,5,2

2、018/10/15,许创制作,6,数据取值范围,short(int) -3276832767 unsigned short 065535 long -21474836482147483647 unsigned long 04294967295 float (3.4e-383.4e38) double (1.7e-3081.7e+308) char -128127 unsigned char 0255,2018/10/15,许创制作,7,整型常量,表示形式 十进制: 123、0、-32768 八进制: 00、01234、-0765 十六进制: 0xA3、-0x98F 非法表示: 096、20FA

3、、0X10FG 长整型1234L、-100000L、03456L、0xAD345L,2018/10/15,许创制作,8,带符号整数的内存存放,带符号整数在内存以其补码形式存放 正数的补码是该数的二进制数本身 负数的补码是: 先取该数的绝对值 以二进制形式表示 再对其取反(1变0,0变1) 然后加1,2018/10/15,许创制作,9,例. -1在内存中的存放(补码)+1的二进制数为 00000000 00000001取反得 11111111 11111110加1得 11111111 11111111 Turbo C将char隐含指定为signed char故扩充ASCII码为242的字符若按十

4、进制数形式输出,其结果为-14。其理由见下:因242的八进制形式为0362二进制形式为11 110 01011110010正好是-14的补码。,2018/10/15,许创制作,10,实型常量,一般形式: 0.123、0.、3.14 指数形式(科学记数法):日常表示 浮点表示 3.14159100 3.14159E0 0.0314159 102 0.0314159E+2 3141.59 10-3 3141.59E-3尾数 阶码(3字节)(1字节),2018/10/15,许创制作,11,字符常量,以单引号为定界符a (ASCII码为97)A(ASCII码为65)0 (ASCII码为48) 转义字符

5、n、101、 x41、 (例2.7) ASCII码值(整数)65、0101、 0x41 例2.1、例2.2、例2.3,2018/10/15,许创制作,12,字符串常量,“hello” 该字符串长度为5,存储时系统自动加上串结束标志“0”,故实际占用6个字节空间:h e l l o 0104 101 108 108 111 0 如要处理字符串“I say: Goodbye! ” 应写成:“I say: Goodbye ” 要特别注意A与“A”的不同!(1字节与2字节),2018/10/15,许创制作,13,符号常量,例2.5 求圆面积和周长#define PI 3.14double area(d

6、ouble r) return(PI*r*r);double circumference(double r) return(2*PI*r);main( )printf(“area=%lf“, area(2.0);printf(“circumference=%lfn“,circumference(2.0);,2018/10/15,许创制作,14,标识符,标识符命名规则 以字母或下划线开头,后面可有其他字母、数字或下划线。如sum、number_of_class。 非法标识符:number-of-class、5-6-90、$a。 禁止用P351的32个关键字 禁止用与系统内部同名的标识符,如_mo

7、de 标识符有效长度依不同系统而异。 标识符区分大小写。如PI与pi不同。 变量、常量、函数、数组、结构、文件的名字是标识符。,2018/10/15,许创制作,15,变量的赋值,一般形式(赋值表达式):变量=表达式 (=叫赋值运算符)例:a=1.0; x=x+3;ch=#;b=(a=3+5); a=b=c=d=3+5; 变量在使用之前必需先声明,然后才能使用 可以在声明变量时对变量赋初值例:int a=3, b=4;,2018/10/15,许创制作,16,运算符(C共有13类),1。算术运算符:+、-、*、/、%、+、- - 2。关系运算符:、=、|、& 5。赋值运算符:= 6。条件运算符:?

8、 :,2018/10/15,许创制作,17,7。逗号运算符:, 8。指针运算符:*、& 9。求字节数运算符:sizeof 10。强制类型转换运算符:(类型名) 11。分量运算符:.、- 12。下标运算符: 13。其他运算符:如函数调用、()等,2018/10/15,许创制作,18,运算符sizeof (不是函数而是运算符) 用于测定一种类型数据所占字节数如:sizeof(类型名) 或 sizeof(表达式) 例2.4:运算符sizeof的使用 printf(“char: %d bytesn”,sizeof(char); 1 printf(“int: %d bytesn”,sizeof(int)

9、; 2 printf(“long: %d bytesn”,sizeof(long); 4 printf(“double: %d bytesn”,sizeof(double); 8 若有声明 int x; 则可有以下表达式 sizeof(int)、sizeof(x)、sizeof x,但sizeof int,2018/10/15,许创制作,19,使用运算符应注意:,各运算符的功能 运算符与运算量的关系如单目或双目、运算量的类型!a -12 3+9 5 % 3 运算符的优先级(见P351) 结合方向如a=b=c=5是右结合的 结果类型如x=3+2.5结果应是实型的,2018/10/15,许创制作,

10、20,算术运算,双目算术运算符:+ - * / %表达式: a op b 自反算术赋值运算符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- 或 -i,2018/10/15,许创制作,21,i+ 与 +i的差异先引用后增值 先增值后引用例:int i=1; int i=1;x=i+; x=+i;y=i; y=i;结果: 结果:x为1,y为2 x为2,y为2 正负号运算符(单目运算)例:-5 +6.5 -a,2018/10/15,许创制作,22,赋值类运算符的副作用

11、例 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;,2018/10/15,许创制作,23,关系运算,运算符 = = = != 关系运算符优先级较低(低于算术类但高于赋值类)a+bc+d 意即 (a+b)(c+d) 关系表达式的值只

12、有“真”、“假”,即“1”和“0”若已知 x=2; y=3; 则 x=y的值为0表达式 z=10=x=y+2 z的值为1注意以上表达式与数学不等式含义不同!,2018/10/15,许创制作,24,数学表达式11 a的值为2 字符可按其ASCII码值大小进行比较如 a A 的值为1 (真) 浮点数由于存储产生的误差,作相等或不等比较时要特别小心(见P34),2018/10/15,许创制作,25,逻辑运算,运算符: 真值表见P35,2018/10/15,许创制作,26,P35例2.8、 写出描述点A(x,y)落在图2.4阴影部分(不压线)的C表达式-21 逻辑运算的一些基本公式:0 | a = a

13、 1 & a = a 1 | a = 1 0 & a = 0 a | !a = 1 0 & !a = 0 a | a = a a & a = a! (a | b) = !a&!b ! (a &b) = !a | !b! (!a) = a,2018/10/15,许创制作,27,条件运算,条件表达式 e1?e2:e3 是三目运算其含义为:若e1为真,则值为e2,否则值为e3。当e2与e3类型不同时,取其类型高者,例如,若e2为整型,e3为实型,则表达式的值应为实型。 例2.9 计算a+|b| 例2.10 输入两数,输出大者(见P37),2018/10/15,许创制作,28,不同类型数据间的转换,不

14、同类型数据的运算结果取其高级者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) ;,2018/10/15,许创制作,29,不同类型数据的隐式转换,运算转换 例:float x; x=2.5+2; 赋值转换 例:float x; x=2; 输出转换 例:

15、int x=65; printf(“%cn”,x); 例2.12 有符号整型转换为无符号整型 例2.13 长类型转换为短类型,2018/10/15,许创制作,30,输出函数printf,格式: printf(格式控制参数,输出项表) 格式控制参数: % - 0 m.n l或h 格式字符 格式字符详见P44表2.7 修正符 l:对整型指long型,对实型指 double型。 修正符 h:将整型的格式字符修正为short型。 域宽与精度说明见表2.8,2018/10/15,许创制作,31,输入函数scanf,格式 : scanf(格式控制参数,地址列表) 格式控制参数: % * m l或h 格式字符 *为赋值抑制符,可实现“虚读” m指定输入数据的宽度 格式字符的使用与printf函数类似(但没有小数宽度) 例2.14例2.17 scanf函数的各种使用 scanf的执行结束可以是 正常结束;格式项与输入域不匹配的非正常结束。 例2.18 scanf有返回值 例2.19 scanf与输入缓冲区的关系 例2.20 getchar与putchar函数 (必须#include“stdio.h”),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报