《C语言数据表现形式.docx》由会员分享,可在线阅读,更多相关《C语言数据表现形式.docx(9页珍藏版)》请在第一文库网上搜索。
1、C语言数据表现形式编写C语言程:(1)要有正确的解题思路,即学会设计算法。(2)掌握C语言的语法,知道怎样使用C语言所提供的功能编写出一个完整的正确的程序。(3)在写算法和编写程序时,要采用结构化程序设计方法,编写出结构化的程序。编写程序时要掌握c语言的语法。数据的表现形式及其运算C语言的一些语法规定,一般不要硬背死记,因为编程时可以带资料或可以上网查,大致知道有这些语法规定就可以了,把精力用在编写算法上。1常量和变量数据有两种表现形式:常量和变量。1 .常量:在程序运行过程中,其值不能被改变的量称为常量。数值常量就是数学中的常数。常用的常量有以下几类:(1)整型常量。如12345,O,-34
2、5等都是整型常量。(2)实型常量。有两种表示形式:十进制小数形式,由数字和小数点组成。如123.456,0.345,-56.79,0.0,12.0等。指数形式,如12.34e3(代表12.34103)f-346.87e-25(代表-346.8710(-25)o由于在计算机输入或输出时无法表示上角或下角,故规定以字母e或E代表以10为底的指数。e或E之前必须有数字,且e或E后面必须为整数。不能写成如:e4,12e2.5o(3)字符常量。有两种形式的字符常量普通字符,用单撇号括起来的一个字符,如:a3,,?,不能写成ab,单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。a和A是不同的字符常
3、量。字符常量存储在计算机存储单元中时,并不是存储字符(如a,Z,#等)本身,而是以其代码(一般采用ASCii代码)存储的,例如字符a的ASCii代码是97,在存储单元中存放的是97(以二进制形式存放),因为计算机只认识。和1,c语言编译器就是桥梁。在ASCII码编码方案中,一个英文字符占用一个字节,一个汉字字符占用两个字节的空间;一个字符等于一个字节。一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127o如一个ASCII码就是一个字节。转义字符:以字符开头的字符序列。例如:在printf函数中
4、的N代表一个换行符。,t,代表将输出的位置跳到下一个Tab位置(制表位置),一个Tab位置为列。这是一种在屏幕上无法显示的控制字符,在程序中也无法用一个一般形式的字符表示,只能采用这样的特殊形式来表示。转义字符转义字符/字符值/输出结果/一个单撇号/输出单撇号字符/一个双撇号/输出双撇号字符?/一个问号(?)/输出问号字符?W/一个反斜线/输出反斜线字符a/警告(a1ert)/产生声音或视觉信号b/退格(backspace)/将光标当前位置后退一个字符V/换页(formfeed)将光标当前位置移到下一页的开头n/换行/将光标当前位置移到下一行的开头r/回车(carriagereturn)/将光
5、标当前位置移到本行的开头t/水平制表符将光标当前位置移到下一个Tab位置v/垂直制表符/将光标当前位置移到下一个垂直制表对齐点o、oo或。其中。代表一个八进制数字/与该八进制数字ASCII字符/与该八进制码对应的字符xhh其中h代表一个十六进制数字/与该十六进制码对应的ASCII字符/与该十六进制码对应的字符转义字符,意思是将后面的字符转换成另外的意义。如n中的n不代表子母n而作为换行符。以八进制教表示的字符。例如IO1代表八进制制数101的ASCii码对应字符A(八进制数101相当于十进制数65.从附录表可以看到ASCii码(十进制数)为65的字符是大写字母A,101转化8人2+1=6565
6、/8=8余1,倒排进位,1为八进制个位上式的商8/8=1余0,0为八进制比上面高的一位,上式的商1/8=0余1,1为八进制比上面高的一位,65的八进位数为IO1o上面的方法为除基取余法,倒排余数。一个以十六进制数表示的ASCII字符,如x4r代表十六进制数41的ASQ1字符,4*16+1=65,也是A(十六进制数41相当于十进制数65)o用转义字符表中的方法可以表示任何可显示的字母字符、数字字符、专用字符、图形学符和控制子符。如033或x1B,代表ASCii代码为27的字符,3x8+3=27,1x16+11=27,BPESC控制符。十六进制英文名称:Hexnumbersystem,是计算机中数
7、据的一种表示方法。同我们日常中的十进制表示法不一样。它由0-9,A-F组成。与10进制的对应关系是:0-9对应0-9,A-F对应10-15,N进制的数可以用O-YN-I)的数表示,超过9的用字母A-F。B在16进制中序数为11,19对应19,AF对应(4)字符串常量。如”boy/123等,用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符(但不包括双撇号本身)。注意不能错写成CHINAz,boyz1231o单撇号内只能包含一个字符,双撇号内可以包含一个字符串。从其字面形式上即可识别的常量称为字面常量或直接常量。字面常量字符来是没有名字的不变量。(5)符号常量。用#define指令,指定
8、用一个符号名称代表一个常量。如#definePI3.1416/注意行末没有分号经过以上的指定后,从此行开始所有的PI都代表3.1416o在对程序进行编译前,预处理器先对PI进行处理,把所有PI全部置换为3.1416o这种用一个符号名代表一个常量的,称为符号常量。在预编译后,符号常量已全部变成字面常量(3.1416)o注意:要区分符号常量和变量,不要把符号常量误认为变量。符号常量不占内存只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,故不能对符号常量赋值。为与变量名相区别,习惯上符号常量用大写表示,如P1PR12 .变量变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据
9、,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。变量必须先定义,后使用。在定义时指定该变量的名字和类型。如:inta=3;变量值一个变量应该有一个名字,以便被引用。请注意区分变量名(地址名)和变量值存储单元(地址单元)这两个不同的概念,如:a是变量名,3是变量a的值,即存放在变量a的内存单元中的数据。变量名实际上是以一个名字代表的一个存储地址。在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单中读取数据。3 .常变量常变量是在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为
10、常变量。如:constinta=3;在定义常变量时必须同时对它初始化,此后它的值不能再改变,常变量不能出现在赋值符号的左边。区别:常变量与符号常量的区别:符号常量不占用内存空间,在预编译时就全部由符号常量的值替换了,而常变量占用内存空间,只是此变量在存在期间不能重新赋值。常变量与常量的异同是,常变量具有变量的基本属性:有类型占存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。常变量与符号常量不同。如:#definePi3.1415926/定义符号常量constf1oatpi=3.1415926;/定义常变量符号常量P和常变量Pi
11、都代表3.1415926在程序中都能使用。但二者性质不同:定义符号常量用#define指令,它是预编译指令,它只是用符号常量代表一个字符串,在预编译时仅进行字符替换,在预编译后,符号常量就不存在了(全置换成3.1415926),对符号常量的名字是不分配存储单元的。而常变量要占用存储单元,有变量值,只是该值不改变而已、从使用的角度看,常变量具有符号常量的优点,而且使用更方便。有了常变量以后,不必多用符号常量。在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:#define标识符常量其中#define也是一条预处理命令(预处理命令都以”铲开头)
12、,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。符号常量虽然有名字,但它不是变量。它的值在其作用域内是不能改变的,也不能被赋值。使用符号常量好处:1含义清楚。2、在需要改变一个常量时能做到一改全改。4标识符用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符,标识符就是一个对象的名字。变量名a,符号常量名PI,PRICE,函数名printf等都是标识符。C语言规定标识符只能由字母、数字和下画线3种字符组成,且第1个字符必须为字母或下画线。下
13、面列出的是合法的标识符,可以作为变量名:sumtota1,C1asszStudent_namez1otus_1_2fBASICJiJingo下面是不合法的标识符和变量名:M.D.John,123,#33,3D64,abz大写字母和小写宇母是两个不同的字符。如:sum和SUM是两个不同的变量名,一般而言,变量名用小写字母表示。数据类型在定义变量时需要指定变量的类型。常量也是区分类型的。在计算机中,数据是存放在存储单元中,它受字节数所限长度和存储形式所限类型。存储单元是由有限的字节构成的,每一个存储单元存放数据的范围是有限的,不可能存放无穷大的数,也不能存放循环小数。如用C程序计算和输出1/3;printf(“f/z1.03.0)得到的结果是0.333333,只能得到6位小数,而不是无穷位的小数。所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同的类型分配不同的长度和存储形式。