您好,欢迎访问三七文档
安庆师范学院计算机与信息学院1第2章C语言基础2.1数据类型2.2标识符、常量与变量2.3基本运算2.4数据类型转换2.5程序举例安庆师范学院计算机与信息学院22.1数据类型2.1.1数据类型概述整型(int)数据类型基本类型整型单精度型(float)字符类型(char)长整型(long)短整型(short)实型双精度型(double)枚举类型(enum)共用体类型(union)构造类型结构体类型(struct)数组类型空类型(void)指针类型(*)安庆师范学院计算机与信息学院32.1数据类型2.1.2整型归纳起来,C语言定义了6种整型,分别是:基本整型int无符号基本整型unsignedint短整型short或shortint无符号短整型unsignedshort或unsignedshortint长整型long或longint无符号长整型unsignedlong或unsignedlongint标准C语言没有规定各种整数类型的表示范围,即数据在内存中所占的位数。安庆师范学院计算机与信息学院42.1数据类型下表列出了一般PC机上规定的整数类型及相关数据。【注意】在VisualC++6.0中,基本整型(无符号基本整型)与长整型(无符号长整型)在内存中所占的字节数以及表示的取值范围对应相同。类型字节数取值范围int2-32768~32767即-215~(215–1)unsignedint20~65535即0~(216-1)short2-32768~32767即-215~(215-1)unsignedshort20~65535即0~(216-1)long4-2147483648~2147483647即-231~(231-1)unsignedlong40~4294967295即0~(232-1)安庆师范学院计算机与信息学院52.1数据类型2.1.3实型C语言中实型数据又称浮点型数据,有三种表示实数的类型:单精度浮点数类型,简称浮点类型float双精度浮点数类型,简称双精度类型double长双精度类型longdouble实型的相关规定类型字节数有效数字数值范围float47-3.4×10-38~3.4×1038double816-1.7×10-308~1.7×10308longdouble1019-3.4×10-4932~3.4×104932安庆师范学院计算机与信息学院62.1数据类型2.1.4字符型ASCII字符:大小写英文字母、数字、各种标点符号,控制字符,一共128个。扩展ASCII字符:256个。字符类型的数据在内存中存储的是它的ASCII码值,一个字符通常占用一个字节的内存空间。注:ASCII码字符的取值范围是0~127,可用char和unsignedchar类型表示;在128~255范围内的扩展ASCII码字符只能用unsignedchar类型表示。类型字节数取值范围char(有符号)1-128~127即-27~(27–1)unsignedchar(无符号)10~255即0~(28-1)安庆师范学院计算机与信息学院72.2标识符、常量与变量(1)标识符只能由下划线“_”、数字0~9与26个大小写字母构成,不能有汉字。(2)标识符的首字符必须是字母或下划线“_”。(3)C语言中区分大小写,即在标识符中,大写字母和小写字母代表不同的意义。例如:Name和name是两个不同的标识符。2.2.1标识符所谓标识符,是指程序中的变量、符号常量、数组、函数、类型、文件等对象的名字。命名规则如下:安庆师范学院计算机与信息学院82.2标识符、常量与变量(4)标识符不能使用系统关键字,因为关键字是系统的保留字,它们已有特定的含义。(5)系统预定义标识符,如预编译命令名(define、include)、系统函数名(scanf、printf、getchar、putchar)等可作为用户标识符,但建议不作它用。(6)尽量作到“见名知义”,例如max、score等,而不用象abc、x1、y2等标识符。(7)避免使用易混字符,如1、l、i;0、o;2、z等。安庆师范学院计算机与信息学院92.2标识符、常量与变量2.关键字是指系统预定义的保留标识符,又称保留字。它们有特定含义,不能再作其它用途。ANSIC定义的关键字共32个autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilestatic安庆师范学院计算机与信息学院102.2标识符、常量与变量(1)十进制整数:如154、565、-6523。(2)八进制整数:以0开头的数是八进制数。如0123表示八进制数的(123)8,等于十进制数83。(3)十六进制整数:以0x开头的数是十六进制数。如0x4a即(4a)16,等于十进制数74。在整数后面附一个字母l或L作后缀,即可表示该数据的类型是长整型;说明无符号整数则在数据后加u或U。例如-63L、0123LU、0x4aL等分别表示十进制有符号长整型数、八进制无符号长整型数和十六进制有符号长整型数。2.2.2常量1.整型常量安庆师范学院计算机与信息学院11整型常量例:十进制:23-14八进制:023十六进制:0x230X23长整型:数尾加L(l)无符号型:数尾加U(u)安庆师范学院计算机与信息学院122.2标识符、常量与变量2.实型常量实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。(1)小数形式:由数字和小数点组成,如-0.12、3.1415926、.4、3.等都是实数。(2)指数形式:如1.8e5或1.8E5都代表1.8x105。但注意字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3、2.1e3.2、e等都不是合法的指数形式。安庆师范学院计算机与信息学院13字符型常量是由一对单引号括起来的单个字符构成,例如,'a','b','1'等都是有效字符型常量一个字符型常量的存储值是该字符集中对应的ASCII编码值,常用字符的ASCII编码值如下:字符‘A’~‘Z’的码值是65~90,字符‘a’~‘z’的码值是97~122,字符‘0’~‘9’的码值是48~57,显然字符‘0’与数字0是不同的。另外,空格字符'□'的ASCII码值32。2.2标识符、常量与变量3.字符常量安庆师范学院计算机与信息学院142.2标识符、常量与变量C语言中的常用转义字符字符形式功能\n换行,将光标从当前位置移到下一行开头\t横向跳格,光标跳到下一个水平制表位\b退格\r回车,将光标从当前位置移到本行开头\f换页,将光标从当前位置移到下一页开头\\反斜杠字符“\”\'单引号字符“'”\双引号字符“”\ddd1到3位8进制数所代表的字符\xhh1到2位16进制数所代表的字符安庆师范学院计算机与信息学院152.2标识符、常量与变量字符串常量与字符常量的区别:(1)字符常量由单引号括起来,字符串常量由双引号括起来。(2)字符常量占一个字节的内存空间。字符串常量在内存中存储时由系统自动在存储的所有字符尾部添加串结束标记'\0',所以,字符串常量占的内存字节数等于字符串中字符所占的字节数加1。注意:不要将单个字符组成的字符串常量与字符常量混淆。不能把一个字符串常量赋给一个字符变量。4.字符串常量字符串常量是由一对双引号括起来的字符序列组成的,例如“abc”、“a”等都是字符串常量。安庆师范学院计算机与信息学院162.2标识符、常量与变量符号常量就是使用符号代表常量。C语言中允许用标识符定义一个常量,这种常量定义在C语言中被称之为“宏定义”。属于预编译命令,具体使用方法将在本书第8章中介绍。#definePI3.141595.符号常量安庆师范学院计算机与信息学院172.2标识符、常量与变量2.2.3变量一个变量有3个相关的要素:①变量名;②变量的存储单元;③变量(存储单元存放)的值。1.变量的定义和赋值类型变量名[=初值][,变量名[=初值],……];安庆师范学院计算机与信息学院182.2标识符、常量与变量例如:floata;doublex,y,min;intm,n=3,w=5;若对定义的多个变量赋相同的初值,不能采用连续赋初值的形式,如inta=b=c=5,必须采用形式inta=5,b=5,c=5。【注意】不能用关键字做变量名;在一个函数中,同一个变量不能被定义两次;变量未赋值时其值是随机的。安庆师范学院计算机与信息学院192.2标识符、常量与变量(1)shortint型补码为16位二进制数,它表示一个有符号整数,其特点是:当首位为0时表示一个正数,当首位为1时表示一个负数。正数的补码与其原码相同,而负数的补码为其对应的正数的反码加1。如:[+4]补=0000000000000100[-4]补=1111111111111100(2)负数的补码计算公式:X的补码=216-|X|X02.整型数据的存储安庆师范学院计算机与信息学院202.2标识符、常量与变量一个用补码表示的二进制数,最高位为符号位,当符号位为“0”(即正数)时,其余位即为此数的二进制值;但当符号位为“1”(即负数)时,其余位不是此数的二进制值,应把它们按位求反,且在最低位加1,才是它的二进制值。如:[X]补=1111111111111101则X=-000000000000011=-3已知负数X的补码求原码也可通过公式:X=-[216-(X的补码)]安庆师范学院计算机与信息学院212.2标识符、常量与变量实型数据是按指数形式存储的。以微机中存储float型数据为例,float型数据在内存中占据4个字节即32位二进制信息,分别存放符号位、规格化的尾数、阶符位和阶码。例如,实数-32.28E-20的存储情况如图所示。实型数据存在舍入误差,提供的有效数字是有限的,只有7(16)位,尾数在有效位以外的部分将被舍去。18-0.322800-3.实型数据的存储安庆师范学院计算机与信息学院222.2标识符、常量与变量用一个字节(8位二进制信息)存储字符类型数据。对于无符号字符类型(unsignedchar)数据直接存放ASCII码或扩展ASCII码。对于有符号字符类型(char)的数据也是用补码存储的。字符型数据可看成是只有一个字节的整数,与整数通用。4.字符型数据的存储安庆师范学院计算机与信息学院23(1)运算符的功能;(2)运算符与操作对象即操作数的关系:①要求操作数的个数(单目、双目、三目);②要求操作数的类型;③结合方向;(3)运算符的优先级;(4)运算结果类型:不同类型数据运算§2.3基本运算学习运算符要注意几个方面问题:安庆师范学院计算机与信息学院242.3基本运算1.基本算术运算符(+加–减*乘/除%求余)(1)%运算符仅用于整型数据的运算,a%b的结果为a除以b的余数,余数的符号与被除数相同。(2)+、-、*、/运算符的两个操作数既可以是整数,也可以是实数。当两个操作数均是整数时,结果仍是整数;若参加运算的两个操作数中有一个是实数,则结果为double型。(3)当对两个整型的数据相除时结果为整数。但是如果除数或被除数中有一个为负数,则舍入的方向是不固定的。如:-5/3在有的机器上得到结果-1,有的机器则给出结果-2。多数机器采取“向零取整”方法,即-5/3=-1,取整后向零靠拢。2.3.1算术运算安庆师范学院计算机与信息学院252.3基本运算(1)算术表达式定义由算术运算符、括号以及操作对象组成的符合C语言语法规则的表达式称为算术表达式。如:a+b-c/d*(a-c)。(2)优先级和结合性在表达式求值时,先按运算符优先级别高低次序执行。若一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理。算术运算符的结合方向为“自
本文标题:第2章 C语言基础
链接地址:https://www.777doc.com/doc-7027632 .html