《计算机二级c语言历年常考知识点精粹.pdf》由会员分享,可在线阅读,更多相关《计算机二级c语言历年常考知识点精粹.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、百度文库 - - 让每个人平等地提升自我历年常考知识点精粹考点一算法复杂度算法的时间复杂度是指执行算法所需要的计算工作量。 算法的空间复杂度是指执行这个算法所需要的时间。考点二线性结构与非线性结构一般将线性结构分为两大类型: 线性结构与非线性结构。 一个非空的线性结构满足两个条件:(1)有且只有一个根节点; (2)每一个节点最多有一个前件,也最多有一个后件。不满足线性结构条件的数据结构是非线性结构。栈、队列、双向链表都是线性结构,树、二叉树是非线性结构。考点三栈和队列1 栈先按照“先进后出”或“后进先出”的原则组织数据。2 栈的基本运算有三种:入栈、退栈与读栈顶元素。3 列队是允许在一端进行插
2、入、而在另一端进行删除的线性表,他又被称为“先进先出”或“后进后出”的线性表。考点四树和二叉树树是一种简单的非线性结构。结点的度:在树结构中,每一个结点所拥有的后件的个数。树的度:树的最大层数。二叉树是一种特殊的树形结构,每个结点最多只有两棵子树,且有左右之分不能互换。二叉树的性质: (1)在二叉树的第 k 层,最多有 2k-1(k1)个结点。(2)深度为 m 的二叉树最多有 2m-1 个结点。(3)在任意一棵二叉树中,度为0 的结点(即叶子结点)总是比度为2 的结点多一个。考点五查找方法1. 顺序查找是指在一个给定的数据结构中查找某个特定的元素。在下列两种情况下只能用顺序查找。(1)如果线性
3、表为无序表, 则不管是顺序存储结构还是链式存储结构, 只能用顺序查找。(2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。2. 二分法查找只适用于顺序存储的有序表。对于长度为n 的有序线性表,在最坏的情况下,二分查找只需要比较2n次。考点六交换类排序法1.冒泡排序法:在最坏的情况下,冒泡排序需要比较的次数为n (n-1)/2。2.快速排序法:任取待排序序列中的某个元素作为基准(一般取第一个元素) ,通过一趟排序, 将待排序元素分为左右两个子序列, 左序列元素的排序码均小于或等于基准元素的排序码, 右子序列的排序码则大于基准元素的排序码, 然后分别对两个子序列进行排序,直至整个序列有
4、序。考点七软件生命周期软件生命周期是指软件产品从提出、 实现、使用维护到停止适用退役的过程, 可以分为软件定义、软件开发软件运行维护三个阶段。考点八数据库设计基础1.数据库管理系统是数据系统的核心。 数据库系统包含数据库、 数据库管理系统、数据库管理员、硬件平台和软件平台五部分。2.数据管理发展至今经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。3.数据模型主要分为:概念数据模型、逻辑数据模型、物理数据模型。1百度文库 - - 让每个人平等地提升自我4.关系模型及相关概念关系一个关系对应一张二维表。一个关系就是一张二维表,但是个二维表不一定是一个关系。元组:表中的一行称为一个元组。
5、属性:表中的一列称为一个属性,给每一个属性起一个名称称为属性名。5.数据库设计中有两种方法:面向数据的方法和面向过程的方法。考点九E-R 模型1.两个实体集间的联系实际上是实体集间的函数关系, 这种函数关系可以有以下几种: 一对一、一对多或多对一、多对多。2.E-R 模型的图示法(1)实体:用矩形表示,在矩形内写上该实体集的名字。(2)属性:用椭圆形表示,在椭圆形内写上给属性的名字。(3)联系:用菱形表示,菱形内写上联系名。考点十面向对象方法的基本概念面向对象的程序设计以对象为核心,强调对象的抽象性,封装性,继承性和多样性。对象(object):面向对象方法中最基本的概念,可以用来表示客观世界
6、中的任何实体,对象是实体的抽象。对象的基本特点: (1)标识唯一性。 (2)分类性。 (3)多态性。 (4)封装性。 (5)模块独立性好。继承: 是使用已有的类定义作为基础建立新类的定义技术, 广义指能够直接获得已有的性质和特征,而不用重复定义它们。继承具有传递性。多态性:是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。考点十一C 程序C 语言程序结构有三种:顺序结构循环结构选择结构。 每个 C 语言程序中 main 函数有且只有一个。读程序都要从 main( )入口,然后从最上面顺序往下读。考点十二书写格式每条语句的后面必须有一个分号, 分号是语句的一部分。一行内可写多条语句,
7、一个语句可写在多行上。考点十三标识符1.合法标识符的命名规则:标识符是由字母、数字、 下划线组成,并且第一个字符必须为字母或下划线。1.C 语言的标识符分为以下三类:(1)关键字。它们在程序中有固有的含义,不能另作他用。如int、for、switch 等。(2)预定义标识符。预先定义并具有特定含义的标识符。如define、include 等。(3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字重合。注意:关键字不可以作为用户标识符。考点十四实型数据1.实型数据的合法形式:小数形式和指数形式。2.判定指数形式合法性:字母 e 或 E 之前必须要有数字, 且 e 或 E 后面的指数
8、必须为整数。考点十五字符C 语言中,程序中用单引号把一个字符括起来作为字符常量,用关键字char 定义字符变量。1.1是字符占一个字节, “1”是字符串占两个字节(含有一个结束符号“0” ) 。 0的 ASCII 码是 48, a的 ASCII 码是 97, A的 ASCII 码是 65。2.字符型和整数: “char a = 65 ;printf(“%c”,a);”得到的输出结果是 A。 “printf(“%d”,a);” 得2百度文库 - - 让每个人平等地提升自我到的输出结果是 65。考点十六转义字符1.转义字符常量,如n 、 101 、 141只代表一个字符。2.反斜线后的八进制数可以
9、不用0 开头。3.反斜线后的十六进制数只可由小写字母 x 开头,不允许用大写字母 X,也不能用 0 x 开头。考点十七算术运算算术运算符一共有“+、-、*、/、%”这五个。考点十八强制类型转换强制类型转换是将一个运算对象转换成制定类型,格式为: (类型名) (表达式) 。要注意格式是(int) a 不是 int a,注意类型上一定要有括号。考点十九赋值1.赋值表达式的形式:变量名=表达式。赋值运算符的左侧只能是变量,不能是常量或表达式。2.符合赋值运算符:a * = m + 2 是 a = a * ( m + 2 )。3.自加、自减表达式:考试口诀:+在前先加后用,+在后先用后加(-亦是如此)
10、 。考点二十位运算C 语言中提供了 6 种运算符:按位求反、按位左移、按位右移、按位与&、按位异或、按位或|。 (优先级从高到低)总的处理方法:先把十进制变为二进制再变为十进制。异或运算的规则:相同为0,不同为 1。左移一位,表示乘以2;右移一位,表示除以 2。考点二十一 printf 函数与 scanf 函数Printf 函数格式为:printf(输出控制,输出列表)。输出控制是用一对双引号括起来的,包括格式说明和原样信息、输出列表包含若干输出项。 “%d”对应整型, “%f”对应实数型,“%c”对应字符型, “%o”对应八进制无符号整型, “%x”对应无符号十六进制整型, “%u”对应无符
11、号整型, “%e”对应指数型, “%s”对应字符串型。可在%和格式字符之间加一个数来控制数据所占的宽度和小数位数。Scanf 函数的格式为:scanf(格式控制,地址列表) 。注意:scanf 函数中的“格式控制”后面应是变量地址,而不是变量名。考点二十二 putchar 函数与 getchar 函数putchar 函数用于输出单个字符。Getchar 函数用于输入单个字符。例如: char a = getchar( )是没有参数的,从键盘输入一个字符给变量 a。putchar(y)表示把字符输出到屏幕中。考点二十三如何交换两个变量不可以把 x = y,y = x;要用中间变量 t,语句为:t
12、 = x;x = y;y = t。考点二十四关系运算与逻辑运算1.关系运算符有 6 个,分别是, !,前四种优先级高于后两种。2.关系表达式:关系表达式真时为1,假时为 0。3.由逻辑运算符和运算对象组成的表达式称为逻辑表达式。 逻辑表达式的运算结果或者为1 或者为 0。逻辑运算符有三种:逻辑非(! ) ,逻辑与(&) ,逻辑或(|) 。注意:短路现象。例如 a+|b+,如果表达式 a+的值非零,则表达式 b+不在执行,考试中比较常见。3百度文库 - - 让每个人平等地提升自我考点二十五 if 语句If 语句可以单独出现,也可以与else 匹配出现。If 语句可以嵌套,这是 else 总是与离
13、它最近的且没有与 else 匹配的 if 匹配。注意:if 语句的子句是紧接 if 或 else 的一句,如有多句需要用括起来。考点二十六条件运算条件运算符是唯一的三目运算符,格式为:表达式1?表达式 2:表达式 3。表达式 1 的值是非零时,整个表达式的值为表达式2 的值,表达式 1 的值是令时,整个表达式的值是表达式 3 的值。考点二十七 switch 语句1.switch 语句通常总是和 break 语句联合适用,使得switch 语句真正起到分支的作用。2.switch 只可以和 break 一起用,不可以和 continue 一起用。3.switch 后小括号里面的表达式不能为实型,
14、case 后表达式不能有变量。考点二十八三种循环结构三种循环为:for( ),while( ),dowhile( )1.for 循环当中必须是两个分号,千万不要忘记。2.循环一定要有结束的条件,否则就成了死循环。3.dowhile 循环最后的分号一定不能够丢。dowhile 循环是至少执行一次的循环。考点二十九break 和 continue1.break: 用 break 语句可以使流程跳出 switch 语句体, 也可以用 break 语句在循环结构中终止本层循环体,从而提前结束本层循环。2.continue:语句的作用是结束本次循环,即循环体内剩下的语句不再执行,跳到循环开始,然后判断循
15、环条件,进行新一轮的循环。考点三十循环的嵌套1.循环的嵌套就是循环里面还有嵌套。 一般只考查两层嵌套, 讯混嵌套通常是处理二维数组。2.循环结构的重点,笔试所占分值一般在13 分左右,在上机考试中也是必考知识点,应用性很强。 、考点三十一函数的的定义和函数的返回值1.函数是具有一定功能的一个程序块, 是 C 语言的基本组成单位, 在函数定义中不可以再定义函数,即不能嵌套定义函数。函数返回值的类型默认为int 型。2.函数的首部为:函数的返回值类型名 函数名(类型名 形参 1,类型名 形参 2,) ,3.函数通过 return 语句返回以个值,返回值的类型与函数类型一样。 Teturn 语句值执
16、行一次,执行完或函数体结束后退出函数。考点三十二库函数、函数的返回值1.调用 C 语言标准库函数时要包含include 命令行,include 命令行以#开头,后面是“”或括起来的后缀为“ h”的头文件。以 #开头的一行称为编译预处理命令行,编译预处理不是 C 语言语句,不加分号,不占运行时间。2.常用的库函数有: sqrt( )算术平方个函数, fabs( )绝对值函数, sin( )正弦函数, pow( )幂函数,printf( )输出字符函数,scanf( )输入字符函数,strlen( )求串中字符个数函数等。考点三十三函数的声明、函数的参数即值传递1.函数要“先定义后调用”或“先声明
17、再调用后定义” 。函数的定义一定要有函数名、函数返=返回值类型、函数参数类型,但不一定要有形参的类型。2.形式参数简称形参,是定义函数时函数名后面括号中的参数。 实在参数简称实参,是调4百度文库 - - 让每个人平等地提升自我用函数时函数名后面括号中的参数。 形参和实参分别占用不同的存储单元, 实参向形参单向传递数值。考点三十四函数的递归调用函数直接或间接的调用自己称为函数的递归调用。 递归调用必须有一个明确的结束递归的条件。考点三十五指针变量1.指针表里是用来存储地址的。2.定义格式为:类型名 *指针变量名 1,类型名 *指针变量名 2,;指针 * * p可以理解为基类型为 int 的指针类
18、型。考点三十六指针变量的初始化指针变量在使用前必须先初始化, 把一个具体的地址赋给它, 否则引用时会有副作用, 如果不指向任何数据就赋“空值”即NULL。指针变量初始化的两种方法方法一:int a = 2,* p = &a; (定义的同时初始化)方法二:int a = 2,* p;p = &a; (定义之后初始化)考点三十七数组的定义及初始化1.数组的定义:一组具有相同类型的数据的集合,这些数据称为数组元素。格式为:类型名 数组名常量表达式。数据所占字节数 = 元素个数 基类型所占字节数的乘积2.数组的初始化int a =1,2;合法。int a 3=2,3,4;合法。int a2 =2,3,
19、4;合法。数据初始化元素默认为 0,没有初始化元素值为随机。例如在int a5=0,1,2;中,元素a4值为 0;而在 int a5;中,元素 a4为一不确定的随机数。考点三十八数组元素的引用和行指针1.2.数组元素的下标从 0 开始,到数组长度减 1 结束。所以 int a5;中数组最后一个元素是 int a4。要把数组元素看成一个整体,可以把a4看作一个整型变量。3.行指针是一个执着变量。行指针指向一行连续数据,形式为:int(*p)2; ,p 只能存放含有两个整型元素的一维数组的首地址。注意( *p)两边的括号不能省略, 否则就成了指针数组,是若干指针元素的集合。考点三十九数组名和二维数
20、组1.数组名是元素的首地址。 数组名不能单独引用,不能通过一个数组名代表全部元素。 数组名是地址常量, 不能对数组名赋值。 但数组名可以作为地址与一个整数相加得到一个新的地址。2.数组 a23=1,2,3,4,5,6;中含有 6 个元素,有2 行 3 列。第一行为 a0行,第二行为 a1行,a0、a1也叫行首地址,是地址常量。考点四十字符串常量及表示字符串常量是有双引号括起来的一串字符,如“ABC”。在存储字符串时,系统会自动在其尾部加一个空值0。空值也要占用一个字节,也就是字符串“ABC”要占用 4 个字节。考点四十一字符数组和字符串赋值1.C 语言中字符串是借助于一维数组来存放的。 数组的
21、大小应该比它将要存实际放的最长字符串至少要多一个元素,用来存放0 。5百度文库 - - 让每个人平等地提升自我2.字符串赋值的两种形式:char str =“Hello!”;或 char *p;p=“Hello!”,但不能用下面的形式:char str10;str=“Hello!”;因为str 是一个地址常量,不能用来赋值。考点四十二字符串的输入与输出与字符串函数1.字符串的输入、输出可以用 scanf 和 printf 函数,也可以用专门处理字符串的两个函数 gets 和 puts 函数, 还可以对字符数组的逐个元素进行赋值, 但一定要在最后赋一个0 。使用 gets 函数可以接收空格,使用
22、puts 函数在最后输出一个换行。2.scanf 和 gets 的区别:如果输入的是 good good study!那么 scanf(%s,a);只会接收good(scanf 不能接收空格),gets 会接收 good good study!(gets 可以接收空格) 。3.四个字符串处理函数:字符串拷贝函数strcpy( ),求字符串长度函数 strlen( ),字符串链接函数 strcat ( ) ,字符串比较函数 strcmp( )。使用这些函数需在预处理部分包含头文件“string.h”。字符串长度要小于字符数组长度。考点四十三结构体类型的说明、定义及引用1.结构体是有若干个称为成员
23、(或域)的成分组成。结构体类型说明格式:Struct 结构体标识名类型名 1 结构成员名表 1;类型名 2 结构成员名表 2;以上整个部分是一个数据类型, 与整型的 int 同等地位。 可用 typedef 把结构体类型替换成一个只有几个字母的简短标识符。2.结构体变量是用说明的结构体类型所定义的一个变量, 与结构体类型不是一回事, 一个结构体变量所占字节数为所有成员所占字节数之和3.可以用以下三种方法来引用结构体变量成员(1)结构体变量名.成员(2)指针变量成员名(3)(*指针变量名).成员名点(.)称为成员变量名,箭头()称为结构只想运算符考点四十四共用体共用体的使用格式与结构体相似,共用
24、体定义的关键字为union,共用体所占字节数是所有成员中字节数最大的那个所占的字节数。考点四十五链表链表是由一个个结点组成的, 一个结点就是一的结构体变量, 每个结点可以分为分数域与指针域两部分,分数域是用来存放要存储的数据,指针域用来只想下一个结点。考点四十六文件类型指针、文本文件、二进制文件1.文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。2.文本形式存放的是字符的ASCII 码,二而二进制形式存放的是数据的二进制代码。考点四十七打开文件函数 fopenfopen 函数的格式 :fopen(文件名,文件使用方式);函数返回一个指向 FILE 类型的指针。常用的文件使用方使及其含义:r,文件内容可读、 w,文件内容可写、 a,在文件后面添加内容考点四十八文件函数判断文件结束是函数是 feof移动文件指针位置的函数是fseek获得文件位置的函数是 ftell文件位置移到开头的函数是rewind文件输入函数是 fscanf,输出函数是 fprint6百度文库 - - 让每个人平等地提升自我二进制文件读函数为 fread,写函数为 fwrite7