最新版课件c语言 (54)_第1页
最新版课件c语言 (54)_第2页
最新版课件c语言 (54)_第3页
最新版课件c语言 (54)_第4页
最新版课件c语言 (54)_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 信息描述筹办学问信息类型常量与变量差别类型信息间的变形运算符和表达式3.0信息的示意及进制变形数码、基与权数码:示意数的符号基:数码的个数权:每一位所具有的值似(3.14)8 其值示意的十进制信息为:+(3*81+1*8-1+4*8-2)10数制 :二进制、八进制、十六进制或十进制现实上统计机中不管是指令仍是信息都以01代码示意,也便是有部分具有某种涵义的二进制信息示意.似: (10000000 )2 加 (10010000)2 减语言程序设计 第三章信息描述Cv各种进制之间的变形v二进制、八进制、十六进制变形成十进制v方式:按权相加10012345259212120212121111

2、011)()(例10012894868381136)()(例1001231679781610162161516121)()(例AF语言程序设计 第三章信息描述Cv各种进制之间的变形(整数)v二进制、八进制、十六进制变形成十进制v方式:按权相加l十进制变形成二进制、八进制、十六进制l原理:的余数是2)2.22(222.22).(00012110011112011NaaaaaaaaaaaaaNnnnnnnnnnnu方式:接连除以基,从低到高记录余数,直到商为0例 把十进制数59变形成二进制数5922921427232120(59)10=(111011)21101111 1 1 0 1 1余余余余余

3、余例 把十进制数159变形成八进制数1598198280(159)10=(237)82 3 7 余 7余 3余 2例 把十进制数459变形成十六进制数4591628161160(459)10=(1CB)161 C B 余11余12余 1语言程序设计 第三章信息描述C数制基权示意数码特点10,10,10,十进制数0910遇十进一二进制数0122,2,2,遇二进一八进制数0788,8,8,遇八进一十六进制数09,AF,af1616,16,16,遇十六进一十进制:4956= 410+910 +510+610二进制:1011=12+02 +12+12十六进制:81AE=816+116 +1016+14

4、16八进制:4275=48+28 +78+58语言程序设计 第三章信息描述C字节和位内存以字节为单元组成每个字节有一个地址一个字节一样由8个二进制位组成每个二进位的值是0或101234567012345678910.语言程序设计 第三章信息描述C76432513.1 信息类型信息类型总表C数据类型根基类型组织类型指针类型空类型void定义类型typedef字符类型char枚举类型enum整 型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int信息类型决意:1. 信息占内存字节数2. 信息取值范畴3. 其上可履行的操纵语言程序

5、设计 第三章信息描述C根基信息类型类型符号关键字数的示意范畴所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255讲明:信息类型所占字节数随机器硬件差别而差别,上表以I

6、BM PC机为例:语言程序设计 第三章信息描述C01 11 11 11 11 11 11 11int型:最大:3276710 00 00 00 00 00 00 00最小:-3276811 11 11 11 11 11 11 11unsigned int型:最大:6553500 00 00 00 00 00 00 00最小:0语言程序设计 第三章信息描述C3.2 常量与变量标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线大小写敏感不能使用关键字长度:最长32个字符命名原那么:见名知意不宜混淆 似l与I, o与0例:推断下列标识符

7、号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab语言程序设计 第三章信息描述C一样用大写字母是宏定义预操作号令,不是C语句直截了当常量:整型常量 实型常量 字符常量 字符串常量似 #define PRICE 30常量定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义标准: #define 符号常量 常量例 符号常量举例(ch2_1.c)#define PRICE 30main() int num,

8、total; num=10; total=num*PRICE; printf(total=%d,total);运行结论:total=300语言程序设计 第三章信息描述C&整型常量(整常数)&三种形式:&十进制整数:由数字09和正负号示意.似 123,-456,0&八进制整数:由数字0开头,后跟数字07示意.似0123,011&十六进制整数:由0 x开头,后跟09,af,AF示意. 似0 x123,0Xff例 12 与 12L例 30000 为int型 65536 为long int 型v整型常量的类型v依照其值所在范畴确定其信息类型v在整常量后加字母l或

9、L,信任它是long int 型常量咨询题:0123 = ( )100 x123 = ( )100Xff = ( )1083291255咨询题:0123 = ( )100 x123 = ( )100 xff = ( )10语言程序设计 第三章信息描述Ca=16l举例 printf(“%ld”,a);&实型常量(实数或浮点数)&示意形式:&十进制数形式:(必须有小数点) 似0.123, .123, 123.0, 0.0, 123.&指数形式:(e或E之前必须有数字;指数必须为整数)似12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 v实

10、型常量的类型v默认double型v在实型常量后加字母f或F,信任它是float 型语言程序设计 第三章信息描述C&字符常量&定义:用单引号括起来的单个一样字符或转义字符. v字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反歪线双引号2位16进制数代表的字符似 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65似 A65, a97, 048 , n10似 a A ? n 101v转义字符:反歪线背面跟

11、一个字符或一个代码值示意例 转义字符举例(ch2_001.c,ch2_004.c) main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);运行结论:(屏幕表现)A B CIsay:”How are you?”C ProgramTurbo C例 main() printf(“Yb=n”); 运行结论:屏幕表现:=例例 用转义字符输出字符和不可打印字符用转义字符输出字符和不可打印字符.main( ) printf(“ABC tabc txyz n”); printf(“

12、abcbxyz n”); 程序运行结论似下程序运行结论似下:v字符常量与字符串常量差别&字符串常量&定义:用双引号(“”)括起来的字符序列&存储:每个字符串尾自动加一个 0 做为字符串结束标记h e l l o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例: char ch; ch=A; 语言程序设计 第三章信息描述C例: char ch; ch=“A”; 编译程序依照变量定义为其安排指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数变量概念:其值能够改变的量变量名与变量值变量定义的一

13、样标准: 信息类型 变量1,变量2,变量n;v变量初始化:定义时赋初值 例: int a,b,c; float data;决意安排字节数和数的示意范畴合法标识符例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;(wrong)v变量的使用:先定义,后使用例1 int student; stadent=19; Undefined symbol statent in function main 例2 float a,b,c; c=a%b; Illegal use of floating point i

14、n function main v变量定义位置:一样放在函数开头main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可履行语句语言程序设计 第三章信息描述C&整型变量&占字节数随机器差别而差别,一样占一个机器字&shortintlong&可用sizeof(类型标识符)测量&实型变量&float:占4字节,提供7位有效数字&double:占8字节,提供1516位有效数字&字符型变量&字符变量存放字符ASCII码&

15、char与int信息间可履行算术运算例 float a;a=111111.111; * a=111111.1*double b;b=111111.111; * b=111111.111*例 a=D; * a=68; * x=A+5; * x=65+5; * s=!+G * s=33+71; *没有字符串变量,用字符数组存放Ch2_006.c语言程序设计 第三章信息描述C例 *ch2_003.c* #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; prin

16、tf(“total=%f,ch1=%cn”,total,ch1); 宏定义变量定义输出结论运行结论:total=37.500000, ch1=d语言程序设计 第三章信息描述C运行以下程序运行以下程序,查看运行结论查看运行结论一个字符型信息一个字符型信息, ,既能够字符形式输出既能够字符形式输出, ,也能够整数形式输出也能够整数形式输出例字符变量的字符形式输出和整数形式输出例字符变量的字符形式输出和整数形式输出. .main()main() char ch1, ch2; char ch1, ch2; ch1=a; ch2=b; ch1=a; ch2=b; printf(“ch1=%c,ch2=%

17、cn”,ch1,ch2); printf(“ch1=%c,ch2=%cn”,ch1,ch2); printf(“ch1=%d,ch2=%dn”,ch1,ch2); printf(“ch1=%d,ch2=%dn”,ch1,ch2); 程序运行结论程序运行结论: : ch1=a, ch2=b ch1=a, ch2=b ch1=97, ch2=98 ch1=97, ch2=983.3差别类型信息间的变形差别类型信息间的变形隐式变形隐式变形啥情况下产生啥情况下产生运算变形运算变形-差别类型信息混合运算时差别类型信息混合运算时赋值变形赋值变形-把一个值赋给与其类型差别的变量时把一个值赋给与其类型差别的变

18、量时输出变形输出变形-输出时变形成指定的输出标准输出时变形成指定的输出标准函数调用变形函数调用变形-实介入形参类型不一致时变形实介入形参类型不一致时变形运算变形法那么运算变形法那么:差别类型信息运算时先自动变形成同差别类型信息运算时先自动变形成同一类型一类型语言程序设计 第三章信息描述Cdoublefloatlongunsignedintchar,short低低高高讲明讲明:必定的变形必定的变形运算对象类型差别时变形运算对象类型差别时变形例例 char ch; int i; float f; double d;chi + f*d - (f+i)intintdoubledoubledoubled

19、oubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - dl例例 int i; float f; double d; long l;显式变形(强制变形)一样形式:(类型名)(表达式)例 (int)(x+y) (int)x+y (double)(32) (int)3.6 讲明:强制变形猎取所需类型的中间变量,原变量类型不变(书例3.8) 例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结论:x=3.600000,i=3精度缺失

20、咨询题较高类型向较低类型变形时大概产生Ch2_007.cCh2_008.c语言程序设计 第三章信息描述C3.4 运算符和表达式C运算符算术运算符:(+ - * % + -)关系运算符:( = !=)逻辑运算符:(! & |)位运算符 :( | &)赋值运算符:(= 及其扩展)前提运算符:(?:)逗号运算符:(,)指针运算符:(* &)求字节数 :(sizeof)强制类型变形:(类型)重量运算符:(. -)下标运算符:()其它 :(( ) -)语言程序设计 第三章信息描述C学习运算符应注重:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级不联合方向结论的类型

21、语言程序设计 第三章信息描述C算术运算符和表达式根基算术运算符: + - * %联合方向:从左向右优先级: - -* % - + - (2) (3) (4)讲明:“-”可为单目运算符时,右联合性两整数相除,结论为整数%要求两侧均为整型信息例 52 = -52.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 52 = 2 -52.0 = -2例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()语言程序设计 第三章信息描述Cv自增、自减运算符+ -v作用:使变量值加1或减1v种类:v前置 +i, -i (先履行i+1或i-1,再使用

22、i值)v后置 i+,i- (先使用i值,再履行i+1或i-1)例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; k=4,j=4k=3,j=443c=20,a=4c=15,a=4语言程序设计 第三章信息描述Cv自增、自减运算符+ -v作用:使变量值加1或减1v种类:v前置 +i, -i (先履行i+1或i-1,再使用i值)v后置 i+,i- (先使用i值,再履行i+1或i-1)l讲明:l+ - 不能用于常量和表达式,似5+,(a+b)+l+

23、 -联合方向: 自右向左l优先级:+ +, - - * % + -l (2) (3) (4)例 -i+ -(i+) i=3; printf(“%d”,-i+); -3 例 j+k; (j+)+k;例 -i+ i=3; printf(“%d”,-i+); Ch2_009.c语言程序设计 第三章信息描述C关系运算符和表达式关系运算符种类: = !=联合方向:自左向右优先级不:=!=优先级6(高)优先级7(低)例 ca+b c(a+b) ab!=c (ab)!=c a=bc a=(bc a=(bc)l关系表达式的值:是逻辑值“真”或“假”,用1和0示意例 int a=3,b=2,c=1,d,f; a

24、b (ab)=c b+cb f=abc表达式值1表达式值1表达式值0d=1f=1语言程序设计 第三章信息描述Cl关系运算注重:例 如果a=0; b=0.5; x=0.3; 那么 a=x278在C中是许可的, 值为0例 int i=1, j=7,a; a=i+(j%4!=0); 那么a=2例 a0 结论为 A100 结论为10语言程序设计 第三章信息描述Cl关系运算注重:例 注重辨识“=”与“=” int a=0,b=1; if(a = = b) printf(“a equal to b”); else printf(“a not equal to b”);例 应幸免对实数作相等或不等的推断似

25、1.03.0*3.0=1.0 结论为可改写为:fabs(1.03.0*3.0-1.0)1e-60语言程序设计 第三章信息描述Cab!a!ba&ba|b真假真假假假真真逻辑运算符和表达式逻辑运算符种类: ! & |逻辑运算真值表lC语言中,运算量: 0示意“假”,l 非0示意“真”,l 运算结论: 0示意“假”,l 1示意“真”,真假假假假假真真假假真真真假真真语言程序设计 第三章信息描述C! (2)& (11)| (12)高低例 a=x & xb&xy a=b|x=y !a|abl优先级:l联合方向:! :从右向左& :从左向右| :从左向右 (

26、a=x) & (xb)&(xy)(a=b)|(x=y)(!a)|(ab)语言程序设计 第三章信息描述C! (2)& (11)| (12)高低l优先级:l联合方向:! :从右向左& :从左向右| :从左向右例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|84-!0 c&d值为1值为0值为1值为1值为1值为1(53)&2|(8(4-(!0) 值为1语言程序设计 第三章信息描述C! (2)& (11)| (12)高低l优先级:l联合方向:! :从右向左& :从左向右| :从左向右l短路

27、特性:逻辑表达式求解时,同时非全部的逻辑运算符都被履行,只是在必须履行下一个逻辑运算符才能求出表达式的解时,才履行该运算符例 a&b&c 只在a为真时,才判不b的值; 只在a、b都为真时,才判不 c的值例 a|b|c 只在a为假时,才判不b的值; 只在a、b都为假时,才判不 c的值例 a=1;b=2;c=3;d=4;m=1;n=1; (m=ab)&(n=cd)结论m=0,n=1语言程序设计 第三章信息描述C前提运算符与表达式一样形式: expr1 ? expr2 : expr3履行环节功能:相当于前提语句,但不能取代一样if语句例 if (ab) printf(“%d”

28、,a); else printf(“%d”,b);printf(“%d”,ab?a:b);例 求 a+|b| printf(“a+|b|=%dn”,b0?a+b:a-b);expr1取expr2值取expr3值非0=0例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a & c0?1:(xb?a:cd?c:d ab?a:(cd?c:d)vexpr1、expr2、expr3类型可差别,表达式值取较高的类型例 x?a:b x=0,表达式值为b; x0,表达式值为a xy?1:1.5 xy ,值为1.0; xy ,值为1.5语言程序设计 第三章信息描述C赋值运算符和表达式简单赋值运算符符号: =标准: 变量标识符=表达式作用:将一个信息(常量或表达式)赋给一个变量v复合赋值运算符v种类:+= -= *= = %= = = &= = |=v含义: exp1 op= exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2;语言程序设计 第三章信息描述Cv简单赋值运算符讲明:v联合方向:自右向左v优先级:

温馨提示

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

评论

0/150

提交评论