第二章C数据类型

上传人:公**** 文档编号:569368245 上传时间:2024-07-29 格式:PPT 页数:33 大小:445.50KB
返回 下载 相关 举报
第二章C数据类型_第1页
第1页 / 共33页
第二章C数据类型_第2页
第2页 / 共33页
第二章C数据类型_第3页
第3页 / 共33页
第二章C数据类型_第4页
第4页 / 共33页
第二章C数据类型_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《第二章C数据类型》由会员分享,可在线阅读,更多相关《第二章C数据类型(33页珍藏版)》请在金锄头文库上搜索。

1、复习上一讲Chap.1 C Chap.1 C 程序设计基本知识程序设计基本知识1.1 程序、程序设计、程序设计语言程序、程序设计、程序设计语言 程序程序指人们对所要处理或求解问题的对象、处理规则或过程的描述指人们对所要处理或求解问题的对象、处理规则或过程的描述 计算机的每一种基本操作,都用一条计算机的每一种基本操作,都用一条指令指令来实现来实现 程序是计算机用以实现其功能的一组程序是计算机用以实现其功能的一组指令序列指令序列程序设计程序设计=数据结构数据结构+算法算法算法算法为解决某个特定问题而采取的为解决某个特定问题而采取的有限的步骤有限的步骤算法的几个特性算法的几个特性 有穷性有穷性 确定

2、性确定性 可行性可行性 有零个或多个输入有零个或多个输入 有一个或多个输出有一个或多个输出运行运行结果结果编译编译高级语言高级语言源程序源程序机器语言机器语言目标程序目标程序编译程序编译程序连接连接可执行可执行程序文件程序文件Ex101 #inlcude main() int a,b,sum; /* 定义了定义了3个整型变量个整型变量*/ a=123; b=456; /给变量赋值给变量赋值 sum=a+b; printf(“sum is %d n” , sum); /*输出变量的值输出变量的值*/C程序的构成和格式程序的构成和格式计算机语言计算机语言人和计算机交流使用的人和计算机都能接受和理解

3、的语言,人和计算机交流使用的人和计算机都能接受和理解的语言, 即人用以编写程序的语言,因此又叫即人用以编写程序的语言,因此又叫程序设计语言程序设计语言。 C C语言就是一种程序设计语言。语言就是一种程序设计语言。输出格式:输出格式: “ ”中的是输出格式中的是输出格式 sum is-sum is-原样原样输出输出 ,%d%d此处用整型变量此处用整型变量sumsum的值填入的值填入, ,/n/n 回车换行回车换行输出结果:输出结果: sum is 579sum is 579说明部分说明部分函函数数体体小结:小结: C程序是由函数构成的程序是由函数构成的 函数函数是是C程序的程序的基本单位基本单位

4、 一个函数由两部分组成一个函数由两部分组成 一个一个C程序是从程序是从main()函数函数开始执行的开始执行的 C程序书写格式自由:一行内可以写几个语句;程序书写格式自由:一行内可以写几个语句;一个语句也可以分写在几行中一个语句也可以分写在几行中 每个语句和数据定义的最后必须有一个分号每个语句和数据定义的最后必须有一个分号 注释注释 /* 注释部分注释部分 */ 变量定义部分变量定义部分 语句语句( (执行执行) )部分部分 说明部分说明部分 函数体函数体函数体函数体用一对用一对花括号花括号括起来括起来C语言的特点语言的特点 结构化语言结构化语言 基本结构:顺序结构基本结构:顺序结构 选择结构

5、选择结构 循环结构循环结构 语言表达能力强语言表达能力强 数据类型较丰富数据类型较丰富 语言简洁语言简洁 可移植性好可移植性好 生成的代码质量高生成的代码质量高不足之处:不足之处: 类型转换较随便,不够安全类型转换较随便,不够安全 没有数组界限检查没有数组界限检查 运算优先级太多运算优先级太多 王小琼信息科技学院2010C语言程序设计第二章第二章C C程序设计初步程序设计初步2.1 标识符标识符一一 标识符标识符 1 .关键字(保留字)关键字(保留字) 具有特定语法含义的英文单词具有特定语法含义的英文单词 auto break case char const continue default

6、do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while2 .预定义标识符预定义标识符 如:如:标准库函数标准库函数名名 3.用户标识符定义:用来标识变量、常量、函数及文件名字的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:最长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$123abC数据类型基本类型构造类型指针类型字符类型char枚举类型enum整 型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作2.2 数据类型数据类型-数据在数据在数据在数据在C C语言系统中存在的格式。语言系统中存在的格式。语

8、言系统中存在的格式。语言系统中存在的格式。空类型void2.3 常量常量 在程序的运行过程中,其在程序的运行过程中,其值不能改变值不能改变的量的量1 整型常量整型常量 2 byte十进制十进制 12 0 100 -100八进制八进制 015 -072十六进制十六进制 0x15 -0x1fa long型型(4 byte)的后缀:的后缀:l或或L 整型常数在内存中以补码的形式存储整型常数在内存中以补码的形式存储2.2.实型常量实型常量表示形式:.十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e

9、3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 3.3.3.3.字符常量字符常量字符常量字符常量 字符常量在内存中占一个字节,其内容存放的是字符常量在内存中占一个字节,其内容存放的是字符的字符的ASCIIASCII代码(请参阅附录代码(请参阅附录 I I )。)。 若字符常量为若字符常量为若字符常量为若字符常量为 a a a a则则则则a a a a在内存中的存放为在内存中的存放为在内存中的存放为在内存中的存放为一个一个一个一个字节字节字节字节9797字符常量字符常量字符常量字符常量字符字符字符字符ASCIIASCIIASCIIASCII码码码码关于转义字符常量关于转义字符

10、常量关于转义字符常量关于转义字符常量 转义字符又称反斜线字符,是表示字符常量的转义字符又称反斜线字符,是表示字符常量的另一种表示方法。另一种表示方法。 这些字符常量总是以一个这些字符常量总是以一个反斜线开头后跟一个特反斜线开头后跟一个特定的字符或一个八定的字符或一个八( (十六十六) )进制数进制数用来代表某一个特定用来代表某一个特定的的ASCIIASCII字符,这些字符常量也必须括在一对单括号内。字符,这些字符常量也必须括在一对单括号内。 例如:例如:nn代表换行符代表换行符注意:注意: (1 1)转转义义字字符符常常量量,如如nn、101101、141141只只代表一个字符。代表一个字符。

11、 (2 2) 反斜线后的八进制数可以不用反斜线后的八进制数可以不用0 0开头。开头。 如如:101101代代表表的的就就是是字字符符常常量量AA,141141代代表表字字符符常常量量aa。也也就就是是说说在在一一对对单单引引号号内内,可可以以用用反反斜斜线线后后跟跟一个八进制数来表示一个一个八进制数来表示一个ASCIIASCII字符。字符。 (3 3) 反斜线后的十六进制数反斜线后的十六进制数只可由小写字母只可由小写字母x x开头,不允许开头,不允许用大写字母用大写字母X X,也不能用也不能用0x0x开头开头。如:。如:x41x41代表字符常量代表字符常量AA,x6d(x6d(也可写成也可写成

12、x6D)x6D)代表字符常量代表字符常量mm。在一对单引号内,也可以用反斜线后跟一个十六进制数来表示在一对单引号内,也可以用反斜线后跟一个十六进制数来表示一个一个ASCIIASCII字符。字符。 字符常量与字符串常量不同定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例: char ch; ch=“A”; 例: char ch; ch=A; 4.4.字符串常量字符串常量编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字

13、节2字节2字节地址地址.内存1-3随机数概念:其值可以改变的量变量名与变量值变量定义的一般格式: 数据类型 变量1,变量2,变量n;变量初始化:定义时赋初值 例: 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;变量的使用:先定义,后使用例1 int student; stadent=19; /Undefined symbol stadent in function main 例2 float a,b,c; c=

14、a%b; /Illegal use of floating point in function main 变量定义位置:一般放在函数开头main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);2.3 2.3 变量变量 -在程序的运行过程中,其在程序的运行过程中,其值可以改变值可以改变的量的量 例如:例如: intint a,b,c=10

15、; a,b,c=10; char c1,c2 =A; char c1,c2 =A; (3 3)变量的图形表示:)变量的图形表示: 变变量量一一旦旦定定义义后后,在在计计算算机机内内存存中中由由系系统统自自动动为为其其开开辟辟了了一一个个存存储储空空间间。这这个个过过程程用用户户是是不不可可见见的的。但可以通过图形的方式直观地表示出来。但可以通过图形的方式直观地表示出来。 变量类型变量类型变量表变量表例如:例如: intint a,b,c=10; a,b,c=10; char c1,c2 =A; char c1,c2 =A; 上述定义的变量可用图形表示如下:上述定义的变量可用图形表示如下:变量类

16、型变量类型变量表变量表abc10变量名变量名变量名既表示了变量的名称,变量名既表示了变量的名称,还表示了该变量在内存中的还表示了该变量在内存中的地址位置地址位置变量的内容(内容)变量的内容(内容)变量的内容就是变量在内变量的内容就是变量在内存中的存储空间,用于存存中的存储空间,用于存放具体的数据。放具体的数据。例如:例如: intint a,b,c=10; a,b,c=10; char c1,c2 =A; char c1,c2 =A; (4 4)注意事项:注意事项: 见名知意见名知意 先定义后使用先定义后使用 习惯上,符号常量名用习惯上,符号常量名用大写大写,变量名用,变量名用小写小写 ,以示

17、区别,以示区别变量类型变量类型变量表变量表(2) 字符变量字符变量char 1个字节个字节 字符数据字符数据整型数据整型数据 实型实型float 4个字节个字节 7位位 3.4e-38 3.4e+38double 8个字节个字节 15-16位位 Ex int i; i=a;97 char c; c=97;a2.4 2.4 运算符运算符1 赋值运算符赋值运算符 = 变量名变量名=表达式表达式Ex a=5 v=(a+b-c)/u2 算术运算符算术运算符 + - * / %Ex 10/3=3 += -= *= /= %=a+=3 相当于相当于 a=a+3a%=b+3 相当于相当于 a=a%(b+3)

18、m=20 求求m+=m*=m/10优先级优先级:* / % + -结合性结合性:自左向右自左向右3.3.自增自减运算自增自减运算+ -是单目运算符有前缀和后缀两种形式 前缀形式: 先自增(自减)再引用;后缀形式: 先引用再自增(自减);功能: 前缀形式 + a 等价于 a = a + 1 - a 等价于 a = a 1 后缀形式 a + 等价于 a = a + 1 a - 等价于 a = a 1表达式的值会不同表达式的值会不同 +,-只能用于变量只能用于变量,不能,不能用于常量和表达式用于常量和表达式10+ +(x+y) (-i)- 等都是等都是错误的错误的例如:当当 a5 时时 +a 表达式

19、的值为表达式的值为 6,且且 a6 a+ 表达式的值为表达式的值为5 ,且且 a6 b=+a 等价于等价于 表达式的值为表达式的值为6,且,且 a=6, b=6 b=a+ 等价于等价于 表达式的值为表达式的值为5,且,且 a=6, b=5 4.4.逗号运算符逗号运算符逗号运算符逗号运算符(,)又称为顺序求值运算符)又称为顺序求值运算符由逗号运算符把若干个独立的表达式连接由逗号运算符把若干个独立的表达式连接起来构成逗号表达式,逗号表达式的一般起来构成逗号表达式,逗号表达式的一般形式为:形式为:表达式表达式1, ,表达式表达式2, ,表达式表达式3, , , ,表达式表达式n求值顺序求值顺序 从左

20、至右,最后一个表达式的从左至右,最后一个表达式的值就是整个逗号表达式的值值就是整个逗号表达式的值例如:例如:x=2,y=x+4,z=x*y x=2,y=x+4,z=x*y 其值为其值为1212注意注意: :并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。 如如: printf(“%d,%d,%d”,a,b,c);“,”并不是一个逗号表达式,它是printf函数的3个参数printf(“%d,%d,%d”,(a,b,c),b,c) “(,)”是一个逗号表达式,它的值等于的值。 2. 4表达式表达式用算术运算符和圆括号将函数和运算对象(如常用算术运算符和圆括号将函数和运

21、算对象(如常量、变量等)按一定的规则连接起来就可以构成量、变量等)按一定的规则连接起来就可以构成一个算术表达式,如:一个算术表达式,如:(ab)*c5.0、x*y2*sin(z)等都是算术表达式等都是算术表达式 表达式都有一个值,即运算结果。表达式都有一个值,即运算结果。 应该注意表达式中运算符的应该注意表达式中运算符的优先级优先级和和结合性结合性优先级用于决定运算中的运算顺序,即有多个运算符优先级用于决定运算中的运算顺序,即有多个运算符出现时,哪一个先计算,哪一个后计算。出现时,哪一个先计算,哪一个后计算。结合性则决定同一优先级的运算符之间的运算顺序,结合性则决定同一优先级的运算符之间的运算

22、顺序,即是即是先左后右先左后右还是还是先右后左先右后左。P264P264附录附录C C 运算符名称优先级结合性( )括号15(最高)自左至右 下标指向结构体成员结构体成员!逻辑非14自右至左按位取反增1减1&取地址*取内容+、正、负号(类型)强制类型转换sizeof计算类型长度*乘13自左至右除%求余加12自左至右减按位左移11自左至右按位右移大于10自左至右小于大于或等于小于或等于等于9自左至右!不等于&按位与8自左至右按位异或7自左至右按位或6自左至右&逻辑与5自左至右逻辑或4自左至右?:条件运算3自右至左赋值2自右至左 * 复合运算% & ,逗号1(最低)自左至右2.52.5类型转换类型

23、转换表达式表达式:运算对象运算对象 运算符号运算符号算术表达式算术表达式赋值表达式赋值表达式逗号表达式逗号表达式 同类型数据运算同类型数据运算 结果类型与运算对象类型相同结果类型与运算对象类型相同 不同类型数据运算不同类型数据运算 先化后算先化后算Ex 10.0/3=?强制类型转换强制类型转换 ( (类型名类型名) )表达式表达式double double floatfloatlonglongunsignedunsignedintint char,shortchar,short 赋值号两端类型不同,以变量为主赋值号两端类型不同,以变量为主Ex 设设a=2,b=3,x=3.5,y=2.5 (fl

24、oat)(a+b)/2+(int)x%(int)y 2.5+ 3 % 2 (=3.5) 赋值运算的两种值赋值运算的两种值 变量的值变量的值 表达式的值表达式的值 Ex a=(b=10)/(c=2) a=5 b=10 c=2 5Ex (int)6.4/4 (float)5/22.6.1 putchar函数 putchar 函数是字符输出函数,函数是字符输出函数, 其功能是在显示器上输其功能是在显示器上输出单个字符。它的函数原型在头文件出单个字符。它的函数原型在头文件“stdio.h”中中, 使用使用本函数前必须要用文件包含命令:本函数前必须要用文件包含命令:#include putchar 函数

25、的一般形式为:函数的一般形式为: putchar(ch); 其其中中ch可可以以是是一一个个字字符符变变量量或或常常量量(含含转转义义字字符符),也也可可以是一个以是一个整型变量整型变量或或常量常量。例如:例如: putchar (A); 或或 putchar(65); 输出大写字母输出大写字母A。 putchar (x); 变量变量x可以是可以是字符变量字符变量或或整型变量整型变量。 putchar (n); 输出字符常量输出字符常量n,在屏幕上实现回车换行的功能。在屏幕上实现回车换行的功能。 2.6.1 getchar函数函数 getchar函数的功能是从键盘上输入一个字符,函数的功能是从

26、键盘上输入一个字符,函数的返回值是所读取的字符的函数的返回值是所读取的字符的ASCII码值。使码值。使用本函数前必须包含文件用本函数前必须包含文件“stdio.h”。 getchar函数的一般形式为:函数的一般形式为:getchar(); 通常用法:通常用法:char c; c=getchar(); 注意:用户在键盘上注意:用户在键盘上键入一个字符键入一个字符后还后还必须必须键入键入回回车键车键才能结束才能结束getchar函数并返回值。若要在程序中只需函数并返回值。若要在程序中只需输入字符即可正确返回按键的值,可使用输入字符即可正确返回按键的值,可使用getche()函数函数(所键入的字符所

27、键入的字符回显回显到显示屏上到显示屏上)和和getch()函数函数(所键入所键入的字符的字符不回显不回显到显示屏上到显示屏上) 。格式指示符的一般形式如下:格式指示符的一般形式如下: %标志标志宽度宽度.精度精度h|l 2.6.2 格式化输出格式化输出Printf()函数函数1 形式:形式:printf( 格式控制格式控制“ ,参数表参数表);(1)格式指示符)格式指示符以以%开头开头 %c字符字符 %d %o %x %u整数:十进制整数:十进制 八进制八进制 十六进制十六进制 无符号无符号 %f %e 实数:实数: 小数形式小数形式 指数形式指数形式 %s字符串字符串格式控制字符串格式控制字

28、符串可以包含以下三种形式的字符:可以包含以下三种形式的字符:(3)普通字符)普通字符。如:。如:printf(max=%dn , a ); (2)转义字符)转义字符。如:。如:n、001等。等。例如,例如,printf(“ %c %d, a, b); 其中其中%c用变量用变量a的值替换,的值替换, %d用用 b的值替换的值替换Ex202Ex202#include #include stdio.hstdio.hmain()main() intint a=16; char e= a=16; char e=A A; unsigned b; unsigned b; long c; float d; l

29、ong c; float d; b=65535; c=123456; d=123.45; b=65535; c=123456; d=123.45; printf(printf(a a=%d,%4d,%-6d,c=%dn=%d,%4d,%-6d,c=%dn,a,a,a,c);,a,a,a,c); printf(printf(b b=%o,%x,%u,%dn=%o,%x,%u,%dn,b,b,b,b);,b,b,b,b); printfprintf( (d d= =%f,%10.5fn%f,%10.5fn,d,d);,d,d); printfprintf( (%c,%s,%7.3sn%c,%s,%

30、7.3sn,e,e,ChinaChina, ,GuilinGuilin);); a=16, 16,16 ,c=123456 a=16, 16,16 ,c=123456 A,China, A,China, GuiGui输出结果:输出结果:b=177777,ffff,65535.65535b=177777,ffff,65535.65535d=123.449997, 123.45000d=123.449997, 123.45000格式指示符的一般形式如下:格式指示符的一般形式如下: %标志标志宽度宽度.精度精度h|l 2.6.2 格式化输出格式化输出Printf()函数函数1 形式:形式:print

31、f( 格式控制格式控制“ ,参数表参数表);(1)格式指示符)格式指示符以以%开头开头 %c字符字符 %d %o %x %u整数:十进制整数:十进制 八进制八进制 十六进制十六进制 无符号无符号 %f %e 实数:实数: 小数形式小数形式 指数形式指数形式 %s字符串字符串格式控制字符串格式控制字符串可以包含以下三种形式的字符:可以包含以下三种形式的字符:(3)普通字符)普通字符。如:。如:printf(max=%dn , a ); (2)转义字符)转义字符。如:。如:n、001等。等。例如,例如,printf(“ %c %d, a, b); 其中其中%c用变量用变量a的值替换,的值替换, %

32、d用用 b的值替换的值替换2.6.3 scanf函数函数 格式输入函数格式输入函数scanf 的函数原型在头文件的函数原型在头文件“stdio.h”中。中。 1. scanf函数的一般调用形式函数的一般调用形式 scanf (格式控制字符串格式控制字符串,地址表列地址表列);格式控制字符串的一般形式为:格式控制字符串的一般形式为:%*输入数据宽度输入数据宽度 h|l 地址表列中给出的是各变量的地址。地址表列中给出的是各变量的地址。 地址是由取地址运地址是由取地址运算符算符“&”后跟变量名组成的。后跟变量名组成的。 例如,例如,scanf(%d %d, &a, &b); 其中其中&a, &b分别表示变量分别表示变量a和变量和变量b 的地址。的地址。scanf函数的返回值等于成功输入的数据的个数。函数的返回值等于成功输入的数据的个数。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号