C语言第2版(第2章基本语句).ppt
《C语言第2版(第2章基本语句).ppt》由会员分享,可在线阅读,更多相关《C语言第2版(第2章基本语句).ppt(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2 2章章 基本的程序语句基本的程序语句0909年年2 2月月本章主要内容本章主要内容1.用二进制表示的数2.基本数据类型及取值范围3.标识符、变量和常量4.基本运算符、表达式及运算的优先级5.标准输入/输出函数简介6.程序范例第2章 引言1整型数的二进制表示整型数分为有符号的和无符号的两种;有符号的整型数的正负号由字节的最高位来表示:0表示正数,1表示负数。整型数占用的字节数可为8位、16位或者32位。整型数的取值范围:2.1 用二进制表示的数字节数有符号的无符号的最小值最大值最小值最大值1128+1270255232768+3276706553542147483648+21474836
2、47042949672952浮点数的二进制表示浮点数分成单精度浮点数和双精度浮点数;单精度浮点数占32位(4个字节),双精度浮点数占64位(8个字节)。浮点型数据的一般表达式:(1)S2em e是实际的阶码值,代表浮点数的取值范围;m是尾数,代表浮点数的精度。2.1 用二进制表示的数(1)单精度浮点型数据的字节分配空间:2.1 用二进制表示的数S代表符号位,占1位。E称为“移码”,占8位。E的取值范围为0255,E=127+e 因此,e的取值范围为127+128);M代表有效位数或称为“小数”,m2=(1.M)2(2)双精度浮点型数据的字节分配空间:2.1 用二进制表示的数S代表符号位,占1位
3、。E称为“移码”,占11位。E的取值范围为02047,E=1023+e 因此,e的取值范围为1023+1024);M代表有效位数或称为“小数”,m2=(1.M)2浮点型数据的取值范围:2.1 用二进制表示的数数据类型字节数(位数)阶码(e)取值范围最小值最大值单精度浮点数4字节(32位)1271285.87747210393.4028241038双精度浮点数8字节(64位)102310241.112537103081.797693103081.C语言提供5种基本数据类型。(1)字符型:用char表示。(2)整数型:用int表示。(3)单精度实数型:用float表示。(4)双精度实数型:用dou
4、ble表示。(5)空类型:用void表示。对整数型,有四种修饰:signed(有符号)unsigned(无符号)long(长型)short(短型)数据类型决定了数据的大小、数据可执行的操作以及数据的取值范围。2.2 基本数据类型及取值范围基本数据类型及取值范围数据类型的长度和取值范围会随着机器的CPU类型和编译器的不同而不同。2.2 基本数据类型及取值范围基本数据类型及取值范围实现环境数据类型字节长度TurboCBorlandC+VisualC+DevC+GCCchar(字符型)11111shortint(短整型)22222int(整型)22444longint(长整型)44444float(
5、单精度浮点型)44444double(双精度浮点型)88888例1:验证数据类型的字节长度。见【例2-1】所示的程序:example2_1.c不同字节长度的数据类型和取值范围:见表2-5和表2-62.2 基本数据类型及取值范围 标识符符 标识符是对变量名、函数名、标号和其他各种用户定义的对象命名。建议取有实际意义的标识符来命名。标识符的第1个字符必须是字母或下划线,标识符的长度可以是一个或多个字符,最长不允许超过32个字符。例如:score、number12、student_name等均为正确的标识符;8times、price/tea、low!valume等均不为正确的标识符。注意:(1)标识
6、符区分大小写,score、Score、SCORE代表三个不同的标识符。(2)标识符不能和C语言的关键字相同(3)标识符不能和用户自定义的函数或C语言库函数同名 2.3 标识符、变量和常量2.3.2 变量和常量1.1.变量量 其值可以改变的量称为变量。变量的两个要素:标识符(名字)和值。C 语言规定:变量必须在使用之前定义。变量定义的一般形式是:;必须是有效的C数据类型,如:int、float等,类型名规定了变量的存储空间和取值范围。可以由一个或多个由逗号分隔的多个标识符名构成。2.3 标识符、变量和常量如:int i,j,number;unsigned int max,min;float hi
7、gh_value,price;double lenth,total_wieight;思考:上面各种变量的类型和他们的取值范围。2.3 标识符、变量和常量例2:运行下面的程序,了解变量的取值范围和C语言的特性。/*example2_2.c 变量的取值范围测试*/#include main()int a=32766,b=-32766;unsigned m=6553;float t=3.4e+37;printf(a=%dn,a);printf(m=%un,m);printf(“t=%en”,t);a=a+4;2.3 标识符、变量和常量 b=b-6;m=m*10+10;t=t*10;printf(Af
8、ter change:n);printf(a+4=%dn,a);printf(b-6=%dn,b);printf(m*10+10=%un,m);printf(t*10=%en,t);2.2.常量常量 常量的值是不可变的。在C语言中,有整型常量、实型常量、字符常量、字符串常量、和枚举常量等。(1)整型常量 可采用十进制、八进制、十六进制来表示整型常量。八进制数的前面用数字0开头,十六进制数前面用数字0和字母X开头(0 x或0X)整型常量的表示见表2-9。2.3 标识符、变量和常量例3:了解整型常量的不同进制表示法。/*example2_3.c */#includemain()printf(十六进
9、制0 x80的十进制值为:%dn,0 x80);printf(八进制0200的十进制值为:%dn,0200);printf(十进制128的十进制值为:%dn,128);printf(十进制128的十六进制值为:%xn,128);printf(十进制128的八进制值为:%on”,128);2.3 标识符、变量和常量(2)实型常量实型常量的两种表示法:浮点计数法和科学计数法。例如:231.467.36E74.58E50.0945对太大或太小的数,通常是采用科学计数法。如上面的7.36E7、4.58E5。2.3 标识符、变量和常量例4:了解实型常量的两种表示法。/*example2_4.c (浮点计
10、数法,科学计数法)*/#includemain()printf(“123.4456的浮点数表示:%6fn,123.456);printf(“1.23456E2的浮点数表示:%6fn,1.23456e2);printf(“12345.6E-2的浮点数表示:%6fn,12345.6e-2);printf(“12345.6的科学计数法表示:%En,12345.6);2.3 标识符、变量和常量(3)字符常量 字符常量是由一对单引号括起来的单个字符。如:A、S、9、$等均为字符常量。注注1 1:单引号只起定界作用,并不代表字符。注注2 2:单引号()和反斜杠()本身作为字符时要通过转义字符()。如:和
11、分别代表单个字符单引号()和反斜杠()。2.3 标识符、变量和常量在C语言中,字符是按其所对应的ASCII的值来存储的,一个字符占一个字节。部分字符所对应ASCII码值如下:2.3 标识符、变量和常量字符字符0 01 19 9A AB BY YZ Za ab by yz zASCII码值(十进制)484957656689909798121122字符和与之对应的ASCII详见附录B注意:注意:数字3和字符3的区别:2.3 标识符、变量和常量含义含义表达式表达式值值字节数字节数常量33占2个字节字符351占1个字节字符也可以参与运算:字符也可以参与运算:如:如:A+6;运算结果为71,对应的字符为
12、H。87;运算结果为49,对应的字符为1。y32;运算结果为89,对应的字符为Y。例5:了解字符常量与其顺序值的关系。/*example2_5.c 字符常量与其顺序值的关系*/#includemain()printf(%d-%cn,A,A);printf(%d-%cn,A+5,A+5);printf(%d-%cn,A+70,A+70);2.3 标识符、变量和常量例5:了解字符常量与其顺序值的关系。/*example2_5.c 字符常量与其顺序值的关系*/#includemain()printf(%d-%cn,A,A);printf(%d-%cn,A+5,A+5);printf(%d-%cn,A
13、+70,A+70);2.3 标识符、变量和常量程序运行结果:65-A70-F135-?(4)字符串常量字符串常量是指用一对双引号括起来的一串字符。如:world,TRUE or FLASE,8765431.0037,T 均为字符串常量。注:双引号()和反斜杠()本身作为字符串时要通过转义字符()。如:和 分别代表字符串()和反斜杠()。2.3 标识符、变量和常量注意字符常量与字符串常量的区别:在C语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个“串结束标志”:0该结束标志的ASC码值为0,字符为空NULL。因此,长度为n个字符的字符串常量,在内存中占有n+1个字节的存储空间。如:
14、字符串“World”,共5个字符,需占用6个字节,其存储形式为:2.3 标识符、变量和常量World0(5)转义字符转义字符用反斜杠后面跟一个字符或一个八进制或十六进制数表示。如:a,0,n等。代表ASCII字符中不可打印的控制字符和特定功能的字符。表示特殊字符,如:单引号()、双引号()和反斜杠()等。常用的转义字符见表2-12。2.3 标识符、变量和常量注意 转义字符中的字母只能是小写字母,每个转义字符只能看作一个字符。表2-12中的r、v和f对屏幕输出不起作用,但会在控制打印机输出执行时响应其操作。在程序中,使用不可打印字符时,通常用转义字符表示。2.3 标识符、变量和常量例例6 6:了
15、解:了解转义字符的作用。字符的作用。/*example2_6.c 了解了解转义字符的作用字符的作用*/#includemain()printf(a);/*发出出铃声声*/printf(This is a test:n);printf(Ready:);printf(bBackspace.n);/*往左退一格往左退一格*/printf(tHorizontal tabn);/*往右往右进八格八格*/printf(n);/*输出出*/printf(?n);/*输出出?*/printf(n);/*输出出*/printf(n);/*输出出*/printf(101n);/*输出八出八进制制值101所所对应的
16、字符的字符*/printf(x41n);/*输出十六出十六进制制值41所所对应的字符的字符*/运行程序,观察程序的运行结果。程序运行结果:This is a test:Ready:Backspace.Horizontal tab?AA2.3 标识符、变量和常量(6)符号常量将程序中的常量定义为一个标识符,称为符号常量。符号常量在使用前必须先定义,定义的形式是:#define 如:#define PI 3.1415926#define TRUE 1#define FALSE 0其中PI、TRUE、FLASE均为符号常量;其值分别为3.1415926,1,0。注1:#define是C语言的预处理命
17、令;注2:习惯上符号常量用大写英文字母表示。2.3 标识符、变量和常量例7:了解符号常量的使用。/*example2_7.c*/#include#define WHO I am a student.#define HOW That is Fine.#define PI 3.1415926main()printf(%sn,WHO);printf(%sn,HOW);printf(%fn,PI);2.3 标识符、变量和常量程序运行结果:I am a student.That is Fine.3.141593C语言的基本表达式是由操作数和操作符组成。l操作数通常由变量或常量表示;l操作符由各种运算符表
18、示。l一个基本表达式也可以作为操作数来构成复杂表达式。l构成基本表达式的常用运算符有:(1)算术运算符。(2)关系运算符。(3)逻辑运算符。(4)赋值运算符。另外,条件运算符、自反赋值运算符、逗号运算符、指针运算符、位运算符等均可构成基本表达式。2.4 基本运算符、表达式及运算的优先级2.4.1 算术运算符及算术表达式算术运算符主要用于完成变量的算术运算。如:加、减、乘、除等。各运算符及其作用如下:2.4 基本运算符、表达式及运算的优先级运算符优先级作用高(14)自增1(变量的值加1)自减1(变量的值减1)低(12)加法减法*中(13)乘法/除法%模运算(整数相除,结果取余数)注:此处规定优先
19、级的数字越大,优先级越高。例8:阅读下面的程序,了解由算术运算符组成的表达式。/*example2_8.c*/#includemain()int a,b,c,d1,d2,d3,d4;double x,y,z1,z2,z3;a=8;b=3;c=10;2.4 基本运算符、表达式及运算的优先级 d1=a+b*c-b/a+b%c*a;/*复杂表达式1*/d2=(a+b)*c-(b/a)+(b%c)*a;/*复杂表达式2*/d3=a/b;d4=c%b;printf(d1=%d,d2=%d,d3=%d,d4=%dn,d1,d2,d3,d4);x=3.2;y=2.4;z1=x+y/x-y;/*复杂表达式3*
20、/z2=(x+y)/(x-y);/*复杂表达式4*/z3=y/b;printf(z1=%f,z2=%f,z3=%fn,z1,z2,z3);程序运行结果:d1=62,d2=134,d3=2,d4=1z1=1.550000,z2=7.000000,z3=0.8000001.分析例8程序中存在的问题。2.修改例8的程序,提高程序的可读性。3.运行例2-9的程序,观察表达式及程序的运行结果。2.4 基本运算符、表达式及运算的优先级思考思考关于前置+/和后置+/的作用 前置+或前置表达式:+;先将变量的值加1,再使用变量。;先将变量的值减1,再使用变量。后置+或后置表达式:+;先使用变量,再将变量的值加
21、1。;先使用变量,再将变量的值减1。2.4 基本运算符、表达式及运算的优先级例9:阅读程序example2_10.c,了解前置+/-和后置+/的作用。2.4 基本运算符、表达式及运算的优先级1.+/-运算符适合于什么数据类型?2.表达式+a和a+有什么区别?3.表达式b=a+还可以怎样表达?4.+/-能否用于常量表达式?思考思考注意+/-运算符在不同环境下的区别。例10:阅读程序example2_11.c。了解前置+/-和后置+/作为函数参数时的作用。2.4 基本运算符、表达式及运算的优先级1.为什么程序的运行结果会有不同?2.程序设计应遵循什么原则?3.修改程序,使其具有更好的可读性。4.分
22、析修改后的程序:example2_12.c。思考思考不同形式的程序表达式的含义:比较程序example2_13.c和example2_13a.c2.4 基本运算符、表达式及运算的优先级注意2.4.2 关系运算符及关系表达式关系运算符的作用:用于条件判断的表达。关系运算符及其含义和优先级如下:2.4 基本运算符、表达式及运算的优先级关系运算符含义优先级小于高(10)大于等于低(9)!=不等于小于等于高(10)大于等于关系表达式的结果只有两个:(1)真(值为1)(2)假(值为0)假如有:int a,b;a=(230)b=(23-9)=(18-6);则:变量a的值为1,变量b的值为0。2.4 基本运
23、算符、表达式及运算的优先级2.4.3 逻辑运算符及逻辑表达式逻辑运算符的作用:用于判断条件中的逻辑关系。逻辑运算符及其含义和优先级如下:2.4 基本运算符、表达式及运算的优先级逻辑运算符含义优先级!逻辑非高(14)&逻辑与中(5)|逻辑或低(4)逻辑表达式的结果:真(值为1)假(值为0)(注:非零值均为真)逻辑运算规则:2.4 基本运算符、表达式及运算的优先级ABA&BA|B!A真真真真假真假假真假假假假假真假真假真真1.由关系运算符和逻辑运算符可组成复杂逻辑表达式。如:(ab)&!(c-d)|(a=5)2.对于复杂逻辑表达式,要注意C语言的特殊语法规则。2.4 基本运算符、表达式及运算的优先
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基本 语句
限制150内