• 158.12 KB
  • 2022-07-28 发布

C语言复习资料 新颖 完整 优质 复习资料

  • 31页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
优质完整新颖C语言复习资料第一章C语言概述C语言的特点(1)语言简洁,紧凑,使用方便灵活。(2)运算符丰富。(3)数据类型丰富。(4)具有结构化的控制语句。(5)语法限制不太严格,程序设计自由度大。(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。(7)生成目标代码质量高,程序执行效率高。(8)用C语言编写的程序可移植性好。简单的C程序介绍#includevoidmain(){Printf(“thisisaCprogram.\n”);31\n优质完整新颖}main是函数的名字,表示“主函数”,void表示此函数是“空类型”,void是“空”的意思,即执行此函数不产生一个函数值,每个C程序都必须有一个main的主函数。Printf是C编译系统提供的标准数据库中的输出函数。编译系统要求程序提供有关的信息(例如队输入输出函数的声明)“#include”就是提供这些信息的。函数体由花括号{}括起来。#includevoidmain(){inta,b,sum;/*注释*/int指定为整型变量a=123;b=456;赋值语句sum=a+b;printf(“sumis%d\n,sum”);“%d”是输入输出的“格式字符串”,“%d”代表十进制,右端的sum是要输出的变量,它出现在“%d”的位置上31\n优质完整新颖}#includevoidmain(){intmax(intx,inty);对被调函数max的声明inta,b,c;scanf(“%d,%d”&a,&b);&a,&b中的&的含义是取地址c=max(a,b);调用函数,并赋值给cprintf(“max=%d\n”,c);}intmax(intx,inty);定义函数,函数值为整形,形式参数为整形{intz;if(x>y)z=x;elsez=y;return(z);将值返回给主调函数}31\n优质完整新颖第一章程序的灵魂---算法一个程序应包含两个内容(1)对数据的描述。指定数据的类型和数据的组织形式,即数据结构(datastructure)(2)对操作的描述,即操作步骤,也就是算法(algorithm)。数据结构+算法=程序算法的特性(1)有穷性(2)确定性(3)有零个或多个输入(4)有一个或多个输出(5)有效性第二章数据类型,运算符与表达式31\n优质完整新颖整型(12,0,-3)字符型(‘a’,‘b’)基本类型单精度型浮点型双精度型枚举类型数据类型数组类型构造类型结构体类型共用体类型指针类型空类型在程序中对用到的所有数据都必须指定其数据类型。数据有常量和变量之分,它们都属于以上这些类型。常量:在程序运行过程中,其值不能改变的量。31\n优质完整新颖例符号常量的使用#definePRICE30/*用#define命令PRICE代表常量30;用一个标识符代表一个常量的符号,称为符号常量,符号常量的值在其作用域(本例中为主函数)内不得更改也不能再被赋值*/#includevoidmain(){intnum,total;num=10;total=num*PRICE;printf(“total=%d\n”,total);}习惯上,符号常量名用大写,变量名用小写,好处有(1)含义清楚(2)在需要改变一个常量时能做到“一改全改”31\n优质完整新颖变量;代表内存中具有特定属性的一个储存单元,它用来存放数据,也就是变量的值3变量名(代表一个地址)a变量值储存单元C标识符只能由字母,数字和下划线3种字符组成,且第一个字符必须为字母或者下划线。编译系统将大写字母和小写字母认为是两个不同的字符。变量名的长度最好不要超过8个字符。在选择变量名和标识符时应做到见名知义,以增加程序可读性。在C语言中所有的变量必须“先定义,后使用”作用是(1)凡未被事项定义的,系统不把它认作变量名,这就保证程序中变量名使用得正确。(2)每一个变量被指定为一个确定类型,在编译时能为其分配相应的存储单元。31\n优质完整新颖(1)指定每一个变量属于一个类型,这就便于在编译时据此检查在程序中要求对该变量的运算是否合法。整型数据整型常量:常数(1)十进制整数,如123,-456。(2)八进制整数,以0开头的数是八进制整数。如0123表示八进制数123,其值为1乘以8的2次方加上2乘以8的1次方加上3成以八的0次方,等于10进制数83,-011表示八进制数11,即十进制数-9(3)十六进制整数,以0x开头的数是十六进制数。如0x123代表十六进制数123,等于十进制数291整型变量在内存中的存放形式数据在内存中是以二进制的形式存放的。十进制数10的二进制形式为1010,VisualC++6.0为一个整型变量分配4个字节,本书中假定整型变量在内存中占两个字节,一个字节是八个比特位。31\n优质完整新颖010100000000000010ii(a)(b)数据的存放示意图数据在内存中的实际存放情况实际上数值是以补码形式表示的。正数的补码就是该数二进制形式本身(原码),(b)图就是以补码形式表示的。如果值是负的,在内存中同样需用补码的形式表示,求负数补码的方法是:先求该数的绝对值的二进制形式,取反,再加1。例如求-10的补码(1)取-10的绝对值10(2)求10的原码(3)求10的反码(4)反码加1得-10的补码000000000000010131\n优质完整新颖10的原码101011111111111110的反码1111111111110110反码加1得-10的补码可知:再存放整数的储存单元中,最左面一位是表示符号的,该位为0,表示数值为正;该位为1则表示数值为负。有三类整型变量(1)基本整型,以int表示。(2)短整型,以shortint或者short表示。(3)长整型,以longint或者long表示。一个int型的变量值的范围是-215~(215-1),即-32768~32767。为了充分运用变量的值的范围,我们也可将变量定义为“无符号类型”。对以上三类都可以加上修饰符unsigned。有符号基本整型[singed]int31\n优质完整新颖无符号基本整型unsingedint有符号短整型[singed]short[int]无符号短整型unsingedshort[int]有符号长整型[singed]long[int]无符号长整型unsingedlong[int]上面的方括号表示其中的内容是可选的,既可以有也可以没有。无符号变量只能存放不带符号的整数,范围为0~65535。符号位1111111111111110=32767有符号整型变量a数据位1111111111111111=65535无符号整型变量b31\n优质完整新颖将一个整型常量赋值给一个整型变量是应注意(1)如果其值在-32768~32767范围内,可以赋值给int和long型变量。(2)如果超出了上个范围,可赋值给long型变量。(3)一个常量后面加一个字母U或u,认为是unsigned型,如果写成-12345u,则先将-12345转换成其补码53191,然后按无符号数存储。(4)在一个整型常量后加一个字母L或l,则认为是long型常量,这往往用于函数调用中,如果函数的形参为long型,则要求实参也为long型。浮点数据C语言中的浮点数就是平常说的实数。浮点数有以下两种表示形式:(1)十进制小数形式。它由数字和小数点组成。0.123,123.0都是十进制小数形式。(2)指数形式。如123e3或123E3都代表123×103。但注意e之前必须有数字,且e后面的指数必须为整数。31\n优质完整新颖一个浮点型数据的规范形式为:在字母e之前的小数部分中,小数点左边应有一位非零的数字。例如2.3478e2,一个浮点型数在用指数形式输出时,是按规范化得指数形式输出的。如5689.65按指数形式输出是5.68965e+003浮点型变量在内存中的存放形式一个浮点型数据在内存中占4个字节(32)位,与整型数据不同,浮点型数据是按指数形式储存的。系统把一个浮点型数据分为小数部分和指数部分,分别存放。浮点型变量的分类浮点型变量分为:单精度(float)比特位32位有效数字6到7位双精度(double)比特位64位有效数字15到16位长双精度(longdouble)比特位128位有效数字18到19位对每一个浮点型变量都应该在使用前加以定义。like:floatx,y;31\n优质完整新颖doublez;longdoublet;由于浮点型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。应当避免一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数。like:f=2.45678*4523.65;系统先把2.45678和4523.65作为双精度度数,然后相乘,等到一个双精度的数。最后再把前七位赋值给flike:floata;a=111111.111;由于float只能接受7位有效数字,因此后两位小数不起作用。如果a改为double型,则能全部接受上述9位有效数字。字符型数据C语言中,字符型常量是用单撇号括起来的一个字符。如‘a’‘x’‘D’‘?’等都是字符常量。31\n优质完整新颖除上述形式的字符常量外,C还允许用一种特殊形式的字符常量,就是以一个字符‘\’开头的序列。这是一种“控制字符”,在屏幕上是不能显示的。转义字符及其作用字符形式含义ASCII代码\n换行,将当前位置跳到下一行开头10\t水平制表(跳到下一个tab位置9\b退格,将当前位置移到前一列8\r回车,将当前位置移到本行开头13\f换页,将当前位置移到下页开头12\\代表一个反斜杠字符“\”92\’代表一个单引号字符39\”代表一个双引号字符34\ddd1到3位八进制数所代表的字符\xhh1到2位十六进制数所代表的字符字符变量31\n优质完整新颖字符变量用来存放字符常量,它只能存放一个字符,不要以为在一个字符变量中可以放一个字符串。字符变量的定义:charc1,c2;它表示c1和c2为字符型变量,可对其赋值c1=‘a’;c2=‘b’;所有编译系统中都规定用一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中,而是将该字符的相应的ASCII代码放到存储单元中,例如字符‘a’的ASCII代码为十进制数97,‘b’的ASCII代码为十进制数98,在内存中变量c1,c2的值如下图所示c1c2979831\n优质完整新颖c1c20110001001100001在内存中的实际存放形式既然在内存中,字符数据以ASCLL码储存,它的存储形式就与整数的存储形式类似。这样使字符型数据和整形数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需先将存储单元中的ASCLL码转换成相应字符,然后输出。以整数形式输出时,直接将ASCLL码作为整数输出。也可以对字符进行算术运算,此时相当于对他们的ASCLL码进行算术运算。#includevoidmain(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);31\n优质完整新颖printf(“%d%d\n”,c1,c2);}输出结果:ab9798可见:字符型数据和整型数据是通用的。它们既可以用字符形式输出,也可以用整数形式输出。但是应注意字符数据只占一个字节,它只能存放0~255范围内的整数。小写字母比它相应的大写字母的ASCLL码大32。字符型数据与整型数据可以相互赋值。例如:inti;charc;i=‘a’;c=97;有些系统将字符变量定义为signedchar型。它的取值范围为-128~127字符串常量31\n优质完整新颖字符常量是由一对单撇号括起来的单个字符,字符串常量是一对双撇号括起来的字符序列。like:“Hoedoyoudo.”,“CHINA”,“$123.45”不要将字符常量与字符串常量混淆。‘a’是字符常量,“a”是字符串常量。二者不同c=‘a’;是正确的,c=“a”是错误的。不能把一个字符串常量赋值给一个字符变量。C规定:在没每一个字符串常量的结尾加一个“字符串结束标志”like:“CHINA”,实际在内存中是:CHINA\03.6变量赋初值程序中长需要对一些变量预先设置初值。C语言允许在定义变量的同时使变量初始化。可以使被定义的变量的一部分赋初值。例如:31\n优质完整新颖inta,b,c=5;如果对几个变量赋予同一个初值,应写成:inta=3,b=3,c=3;不能写成:inta=b=c=3;初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋初值的,相当于一个赋值语句。例如:inta=3;相当于:inta;a=3;3.7各类数值型数据间的混合运算例如:10+‘a’+1.5-8765.1234*‘b’是合法的。在进行运算时,不同类型的数据要先装换成同一类型,然后进行运算。转换的规则按图3-10所示。31\n优质完整新颖doublefloat高longunsigned低intchar、short图中横向向左的箭头表示必定的转换,如字符数据必定先转换为整数,short型转换为int型,float型数据在运算时一律先转换成双精度型,以提高运算精度(即使是两个float型数据相加,也先都化成double型,然后再相加)。纵向箭头表示当运算对象为不同类型时转换的方向。例如int型与double型数据进行运算,先将int转换为double型再运算。3.8算术运算符和算术表达式31\n优质完整新颖4.自增自减运算符作用是使变量的值增1或减1,例如:++i,--i(在使用i之前,先使i的值加(减)1)i++,i--(在使用i之后,使i的值加(减)1)粗略的看,++i和i++的作用相当于i=i+1。但++i和i++不同之处在于++i是先执行i=i+1后再使用i的值;而i++是先使用i的值后,再执行i=i+1。如果i的值等于3,分析下面的赋值语句:(1)j=++i;(i的值先变成4,再赋值给j,j的值为4)(2)j=i++;(先将i的值3赋给j,j的值为3,然后i变为4)第一章最简单的C程序设计4.1C语句概述C语句分为以下5类。控制语句:31\n优质完整新颖(1)if()…else…(条件语句)(2)for()…(循环语句)(3)while()…(循环语句)(4)do…while()(循环语句)(5)continue(结束本次循环语句)(6)break(中止执行switch或循环语句)(7)switch(多分支选择语句)(8)goto(转向语句)(9)return(从函数返回语句)函数调用语句:表达式语句:空语句:复合语句:4.2赋值语句4.3数据输入输出的概念及在C语言中的实现。4.4字符数据的输入输出4.5格式输入与输出31\n优质完整新颖4.6顺序结构程序设计举例第一章选择结构程序设计5.1关系运算符和关系表达式算术运算符(高)关系运算符赋值运算符(低)5.1.2关系表达式5.2逻辑运算符和逻辑表达式5.3if语句1.if(表达式)语句2.if(表达式)语句1else语句23.if(表达式1)语句131\n优质完整新颖elseif(表达式2)语句2elseif(表达式3)语句3...elseif(表达式m)语句melseif(表达式n)语句n5.4switch语句switch语句是多分支选择语句switch(表达式){case常量表达式1:语句1case常量表达式2:语句2...case常量表达式n:语句ndefault:语句n+131\n优质完整新颖}说明:(1)switch后面括号内的“表达式”,ANSI标准允许它为任何类型。(2)当表达式的值与某一个case后面的常量表达式的值相等时,就执行此,case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。(3)每一个case的常量表达式的值必须不同;否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。(4)各个case和default的出现次序不影响执行结果。例如,可以先出现default:…再出现caseD:…(5)执行完一个case后面的语句后,流程控制转到下一个case继续执行。“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下,不再进行判断。5.5.程序举例第一章循环控制6.1概述31\n优质完整新颖6.2goto语句以及用goto语句构成循环6.3用while语句实现循环6.4用do…while语句实现循环6.5用for语句实现循环6.6循环嵌套6.7几种循环的比较6.8break语句和continue语句6.8.1break语句break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。还可以用来从循环体内跳出循环体。continue作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。6.9程序举例第一章数组31\n优质完整新颖数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。7.1一维数组的定义和引用7.2二维数组的定义和引用7.3数组字符第一章函数8.1概述8.2函数定义的一般形式8.3函数参数和函数的值8.4函数的调用8.5函数的嵌套调用8.6函数的递归调用8.7数组作为函数参数8.8局部变量和全局变量8.8.1局部变量在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量”。31\n优质完整新颖8.8.2全局变量程序的编译单位是源程序文件,一个源文件可以包含一个或若干个函数。在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。8.9变量的存储类别第一章预处理命令第二章指针10.1地址和指针的概念10.2变量的指针和指向变量的指针变量变量的指针就是变量的地址,存放地址的变量是指针变量,它用来指向另一个变量。为了表示指针变量和它所指向的变量之间的联系,在程序中用“*”符号表示“指向”,如果已定义i-pointer为指针变量,则(*i-pointer)是i-pointer所指向的变量。10.2.1定义一个指针变量inti,j;int*pointer-1,*pointer-2;(指向整型的变量)31\n优质完整新颖31\n优质完整新颖31

相关文档