您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C语言程序设计》总结
有穷性:包含有限的操作步骤。确定性:算法中的每一个步骤都应当是确定的。有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息。有一个或多个输出:算法的目的是为了求解,“解”就是输出。有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果。算法的特性3.1C的数据类型数据类型空类型指针类型共用体结构体数组构造类型枚举型双精度型单精度型实型(浮点型)字符型短整型长整型基本整型整型基本类型3.2常量与变量在程序执行过程中,其值可以改变的量称为变量。在程序执行过程中,其值不能被改变的量称为常量。整型常量:98,-3浮点型常量:3.14,-0.8字符常量:′a′,′B′字符串常量:“ab”,“23”由于通过字面就能判别它们是常量,因此,这样表示的常量称为字面常量/直接常量,变量所谓变量,就是在程序执行过程中,其值可以被改变的量。通俗地讲,变量就像某高档饭店的房间,这体现在以下几个方面:对某个房间来说,一拨客人走后,另一拨客人可以进来,虽然房间不变,但里头吃饭的人在变。在C程序中,变量就是建立在内存里的房间,它用来存储不断变化的信息。存放在变量中的信息称为变量值。为了区分不同的房间,人们为每个房间起一个名字,比如百合厅、玫瑰厅等。每个变量也有变量名。房间有大小、档次之分。变量有类型之分,变量的数据类型决定了可以容纳的信息种类,也决定了所占存储单元的大小。每个房间有自己的房间号,而且房间名与房间号有对应关系。每个变量有自己的存储地址,而且变量名与存储地址有对应关系。总之,变量具有名字、类型、值、地址等属性。标识符在C语言中,变量名、常量名、数组名、函数名等统称为标识符。C语言规定,标识符只能由字母、数字和下划线组成,且第一个字符只能是字母或下划线。下列是合法的标识符,可以充当变量名等。sum,student_name,_part_1,BASIC下面这些标识符不合法,Mr.Wang,ab,1_2_3①大小写敏感,sum,Sum,SUM是3个不同的标识符。②关键字不能作为标识符。③ANSIC标准未规定标识符的最大长度,TC最多允许32个字符。④应尽量做到“见名知意”。⑤“先定义,后使用”标识符应注意问题C语言的特点-基本组成关键字C语言中又系统特殊定义的具有特定含义的标识符,不允许用户作为自定义标识符使用。autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile整型常量由于C语言把数据分为常量和变量两大类,所以整型数据也相应地分为整型常量和整型变量。1.整型常量的表示方法整型常量可以以三种形式出现在C程序中。(2)八进制形式为了避免与十进制形式混淆,这种形式要求以0开头。如0123表示八进制数123,即(123)8,其值为1×82+2×81+3×80,等于十进制的83。(1)十进制形式例如123,-5,0(3)十六进制形式这种形式要求以0x开头。如0x123表示十六进制数123,即(123)16,其值为1×162+2×161+3×160,等于十进制的291。整型变量我们可以用int变量名;来定义整型变量。例如inti;TC系统会在内存中为它分配2字节的存储单元,共计16个二进制位。整型数据以其补码形式存放。类型类型说明符长度数的范围基本型int2字节-32768~32767短整型short2字节-215~215-1长整型long4字节-231~231-1无符号整型unsignedint2字节0~65535无符号短整型unsignedshort2字节0~65535无符号长整型unsignedlong4字节0~(232-1)TurboC系统的规定浮点型常量的表示方法浮点型常量可以以两种形式出现在C程序中:(2)指数形式例如,-123.4e3,1.82E-3,-0.0073e+5(1)十进制小数形式(定点形式)例如,123.4,123.,-.123,0.0一定要有小数点。注意:①在e的前后一定要有数字,e2、1E不合法。-123.4×1031.82×10-3-0.0073×105②在e的后面务必是整数,1.3E3.5不合法。③一个实数可以用多种指数形式表示出来。123.45可表示为1234.5e-1,123.45e0,1.2345e2,0.12345e3规范化的指数形式在e前的部分中,小数点前有且仅有一位数字,而且是非0数字%f——定点形式,小数点后6位,不够补0%g——定点形式,去掉小数点后的无效0%e(%E)——指数形式类型位数数的范围有效数字float32-3.4×10-38~3.4×10386~7位double64-1.7×10-308~1.7×1030815~16位longdouble128-1.2×10-4932~1.2×10493218~19位浮点型变量的分类浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(longdouble)三类形式。floatx;longdoublez;doublex;3.5字符型数据字符常量字符常量是用单撇号括起来的单个字符,例如:’a’,’D’,’@’,’\n’,’\101’P364附录I给出了在程序中常用的字符,每个字符都有一个编码,称为ASCII码。例如,大写字母A~Z的ASCII码为65~90小写字母a~z的ASCII码为97~122数字0~9的ASCII码为48~57规律总结:①相邻字母或数字的ASCII码差1②对应大小写字母的ASCII码差32转义字符像字母、数字等字符我们可以直接从键盘上输入,但是有许多控制字符无法直接从键盘上输入。实际上,我们可以用转义字符形式表示任意字符,方法有二:①八进制:格式为\ddd,把要表示字符的ASCII码的八进制形式放在\后即可,例如,\101代表ASCII码为65=(101)8的A。②十六进制:格式为\xhh,把要表示字符的ASCII码的十六进制形式放在\x后即可,例如,\x41代表ASCII码为65=(41)16的A。C语言用以\开头的字符序列来表示这些字符,例如,用\n表示“换行符”(ASCII码为10),用\b表示“退格符”(ASCII码为8)。这种形式的字符称为“转义字符”,意思是把反斜杠\后面的字符转换为别的意义。如\n中的n不代表字母n,而代表“换行符”。常见的转义字符如P48表3-3所示。字符变量字符变量可以用来存放字符常量,它只能放一个字符。我们可以用char变量名;来定义字符变量。例如chara;我们可以用赋值语句把字符常量存放到字符变量中,例如,a=’A’;可把字符A存放到变量a中。需要特别注意的是,存储单元中实际存放的是字符A的ASCII码65,且以二进制形式。TC系统会在内存中为每个字符变量分配1字节的存储单元。显然,这种存放形式十分类似于整数65的存放形式。字符数据与整型数据可以通用由于字符数据在内存中以ASCII码存放,而且其存储形式和整数的存储形式类似,所以C语言中字符数据与整型数据之间可以通用。这体现在三方面:1.字符数据可以参加算术运算例如,100-’A’,该表达式的值为100-65=35。2.可以把整数赋值给字符变量例如,a=66;3.字符数据既能按字符形式输出,也能按整数形式输出。01000010a②当以整数形式输出时,直接将ASCII码作为整数输出。可用printf(″%d″,a);来实现。①当以字符形式输出时,系统输出的是存储单元中的ASCII码所对应的字符。可用%c格式符来实现。printf(″%c″,a);例3.6向字符变量赋以整数。#includestdio.hvoidmain(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}运行结果:ab9798字符串常量C语言除了允许使用字符常量外,还允许使用字符串常量。例如,”CHINA”就是一个字符串常量。字符串常量就是用双撇号括起来的字符序列。我们可以用printf(”CHINA”);字符常量和字符串常量比较①形式上,字符常量是单个字符用单撇号括起来,如’A’,’\0’;字符串常量是若干个字符用双撇号括起来,如”USA”,”A”,””。②存储上,为保存每个字符常量只需1字节的内存;系统为了保存字符串常量,除了要为字符串中的每个字符分配一个字节外,还要多分配一个字节用来存放”字符串结束符”即’\0’。例如,为了保存“CHINA”,需要6个字节的内存。30167302723037330478305653060设置“字符串结束符”便于函数判断字符串是否结束。例如,在用printf(“CHINA”);输出时,是一个字符一个字符的输出,直到遇到’\0’为止。NIHCA3.6变量赋初值我们可以同时对多个变量进行初始化,例如,inta=3,b,c=20;inta=3,b=3,c=3;但是,第二个式子不能写成:inta=b=c=3;C语言允许在定义变量的同时,为变量设置初值,称为变量的初始化。例如,inti=3;floatf=3.14;charc=’P’;3.7各类数值型数据间的混合运算我们知道,整型数据可以细分为short、int、long,浮点型数据可以细分为float、double,并且知道字符数据与整型数据之间可以通用。高double←float↑long↑unsigned↑低int←short、char在实际应用中,可能需要将这些不同类型的数据进行混合运算。在进行混合运算时,C系统会按照一定的规则,自动地将操作数转换成同一类型,然后再进行运算。转换原则分为两部分,如下图所示务必要做的转换务必要做的转换float型一律转化为double型,即使是两个float型数据运算。char型、short型一律转化为int型。根据操作数的类型进行转换,级别低的向级别高的转换注意:上述类型转换是由系统自动进行的。10+’a’+i*f-d/e基本算术运算符基本算术运算符包括+、-、*、/、%,其中,+:称为加法运算符,或正值运算符,如3+5,+8关于基本算术运算符,请注意以下几点:②求余运算符%要求两侧的操作数均为整数,如14.1%3是错误的。③参加算术运算的两操作数中有一个是实数,则结果必是double型的。①两个整数相除的结果还是整数,舍去小数部分。如10/3=3,-10/3=-3-:称为减法运算符,或负值运算符,如a-b,-9*:称为乘法运算符,如3*5,3.14*r*r/:称为除法运算符,如14/3,10.8/0.25%:称为模运算符,或求余运算符,如25%3=1运算符的优先级和结合性10+7/5+1510+1+15如果在一个表达式中,所有运算符是同优先级的,这时如何进行呢?为此,C中提出了结合性或结合方向的概念。结合方向规定了同优先级运算符是“从左至右”执行,还是“从右至左”执行。不同优先级的运算符,其结合方向可能不同。由P365附录III可知,基本算术运算符的结合方向是“从左至右”。11+1526在学习一种运算符时,应掌握它的功能、操作数个数、优先级、结合方向等方面。强制类型转换运算符在计算2+1.2时,系统会自动进行类型转换,表达式的值为3.2,类型是double。但在有些场合,自动类型转换不能达到目的,如3.14%3不合法,单靠C系统的自动类型转换无法使其合法化,需进行强制类型转换,(int)3.14%3。强制类型转换运算符的一般形式为(类型)其用法是(类型)(表达式)其功能是将一个表达式的值转换成所需的类型。例如,(int)(3.2+x)(double)(5%3)需要注意的是,在强制类型转换时,系统会生成一个所需类型的中间变量用来存放转换结果。若f是一个float
本文标题:《C语言程序设计》总结
链接地址:https://www.777doc.com/doc-3804378 .html