计算机二级c语言历年常考知识点精粹

更新时间:2024-04-26 05:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

历年常考知识点精粹

考点一 算法复杂度

算法的时间复杂度是指执行算法所需要的计算工作量。算法的空间复杂度是指执行这个算法

所需要的时间。

考点二 线性结构与非线性结构 一般将线性结构分为两大类型:线性结构与非线性结构。一个非空的线性结构满足两个条件:(1)有且只有一个根节点;(2)每一个节点最多有一个前件,也最多有一个后件。不满足线性结构条件的数据结构是非线性结构。

栈、队列、双向链表都是线性结构,树、二叉树是非线性结构。 考点三 栈和队列

1. 栈先按照“先进后出”或“后进先出”的原则组织数据。 2. 栈的基本运算有三种:入栈、退栈与读栈顶元素。

3. 列队是允许在一端进行插入、而在另一端进行删除的线性表,他又被称为“先进先出”

或“后进后出”的线性表。 考点四 树和二叉树

树是一种简单的非线性结构。

结点的度:在树结构中,每一个结点所拥有的后件的个数。 树的度:树的最大层数。

二叉树是一种特殊的树形结构,每个结点最多只有两棵子树,且有左右之分不能互换。 二叉树的性质:(1)在二叉树的第k层,最多有2k-1(k≥1)个结点。 (2)深度为m的二叉树最多有2m-1个结点。

(3)在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结

点多一个。

考点五 查找方法

1. 顺序查找是指在一个给定的数据结构中查找某个特定的元素。在下列两种情况下只能用顺序查找。

(1) 如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用顺序查找。 (2) 即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。

2. 二分法查找只适用于顺序存储的有序表。对于长度为n的有序线性表,在最坏的情况下,二分查找只需要比较㏒2n次。 考点六 交换类排序法

1. 冒泡排序法:在最坏的情况下,冒泡排序需要比较的次数为n (n-1)/2。

2. 快速排序法:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟

排序,将待排序元素分为左右两个子序列,左序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列进行排序,直至整个序列有序。 考点七 软件生命周期

软件生命周期是指软件产品从提出、实现、使用维护到停止适用退役的过程,可以分为软件定义、软件开发软件运行维护三个阶段。 考点八 数据库设计基础

1. 数据库管理系统是数据系统的核心。数据库系统包含数据库、数据库管理系统、数据库

管理员、硬件平台和软件平台五部分。

2. 数据管理发展至今经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。 3. 数据模型主要分为:概念数据模型、逻辑数据模型、物理数据模型。

4. 关系模型及相关概念关系 一个关系对应一张二维表。

一个关系就是一张二维表,但是个二维表不一定是一个关系。 元组:表中的一行称为一个元组。

属性:表中的一列称为一个属性,给每一个属性起一个名称称为属性名。 5. 数据库设计中有两种方法:面向数据的方法和面向过程的方法。 考点九 E-R模型

1. 两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有以下几种:一

对一、一对多或多对一、多对多。 2. E-R模型的图示法

(1) 实体:用矩形表示,在矩形内写上该实体集的名字。 (2) 属性:用椭圆形表示,在椭圆形内写上给属性的名字。 (3) 联系:用菱形表示,菱形内写上联系名。 考点十 面向对象方法的基本概念

面向对象的程序设计以对象为核心,强调对象的抽象性,封装性,继承性和多样性。

对象(object):面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。 对象的基本特点:(1)标识唯一性。(2)分类性。(3)多态性。(4)封装性。(5)模块独立性好。 继承:是使用已有的类定义作为基础建立新类的定义技术,广义指能够直接获得已有的性质和特征,而不用重复定义它们。继承具有传递性。

多态性:是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。 考点十一 C程序

C语言程序结构有三种:顺序结构循环结构选择结构。每个C语言程序中main函数有且只有一个。读程序都要从main( )入口,然后从最上面顺序往下读。 考点十二 书写格式

每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 考点十三 标识符

1. 合法标识符的命名规则:标识符是由字母、数字、下划线组成,并且第一个字符必须为

字母或下划线。

1. C语言的标识符分为以下三类:

(1) 关键字。它们在程序中有固有的含义,不能另作他用。如int、for、switch等。 (2) 预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3) 用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字重合。 注意:关键字不可以作为用户标识符。 考点十四 实型数据

1. 实型数据的合法形式:小数形式和指数形式。

2. 判定指数形式合法性:字母e或E之前必须要有数字,且e或E后面的指数必须为整数。 考点十五 字符

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);” 得

到的输出结果是65。 考点十六 转义字符

1. 转义字符常量,如‘\\n’、‘101’、‘141’只代表一个字符。 2. 反斜线后的八进制数可以不用0开头。

3. 反斜线后的十六进制数只可由小写字母x开头,不允许用大写字母X,也不能用0x开

头。

考点十七 算术运算

算术运算符一共有“+、-、*、/、%”这五个。 考点十八 强制类型转换

强制类型转换是将一个运算对象转换成制定类型,格式为:(类型名)(表达式)。 要注意格式是(int) a不是int a,注意类型上一定要有括号。 考点十九 赋值

1. 赋值表达式的形式:变量名=表达式。赋值运算符的左侧只能是变量,不能是常量或表

达式。

2. 符合赋值运算符:a * = m + 2 是 a = a * ( m + 2 )。

3. 自加、自减表达式:考试口诀:++在前先加后用,++在后先用后加(--亦是如此)。 考点二十 位运算

C语言中提供了6种运算符:按位求反~、按位左移<<、按位右移>>、按位与&、按位异或、按位或|。(优先级从高到低)

总的处理方法:先把十进制变为二进制再变为十进制。

异或运算的规则:相同为0,不同为1。左移一位,表示乘以2;右移一位,表示除以2。 考点二十一 printf函数与scanf函数

Printf函数格式为:printf(输出控制,输出列表)。输出控制是用一对双引号括起来的,包括格式说明和原样信息、输出列表包含若干输出项。“%d”对应整型,“%f”对应实数型,“%c”对应字符型,“%o”对应八进制无符号整型,“%x”对应无符号十六进制整型,“%u”对应无符号整型,“%e”对应指数型,“%s”对应字符串型。可在%和格式字符之间加一个数来控制数据所占的宽度和小数位数。

Scanf函数的格式为:scanf(格式控制,地址列表)。

注意:scanf函数中的“格式控制”后面应是变量地址,而不是变量名。 考点二十二 putchar函数与getchar函数

putchar函数用于输出单个字符。Getchar函数用于输入单个字符。例如:char a = getchar ( )是没有参数的,从键盘输入一个字符给变量a。putchar(‘y’)表示把字符输出到屏幕中。

考点二十三 如何交换两个变量

不可以把x = y,y = x;要用中间变量t,语句为:t = x;x = y;y = t。 考点二十四 关系运算与逻辑运算

1. 关系运算符有6个,分别是>,>=,<,<=,==,!=,前四种优先级高于后两

种。

2. 关系表达式:关系表达式真时为1,假时为0。

3. 由逻辑运算符和运算对象组成的表达式称为逻辑表达式。逻辑表达式的运算结果或者为

1或者为0。

逻辑运算符有三种:逻辑非(!),逻辑与(&&),逻辑或(||)。

注意:短路现象。例如a++||b++,如果表达式a++的值非零,则表达式b++不在执行,考试中比较常见。

考点二十五 if语句

If语句可以单独出现,也可以与else匹配出现。If语句可以嵌套,这是else总是与离它最近的且没有与else匹配的if匹配。

注意:if语句的子句是紧接if或else的一句,如有多句需要用{}括起来。 考点二十六 条件运算

条件运算符是唯一的三目运算符,格式为:表达式1?表达式2:表达式3。

表达式1的值是非零时,整个表达式的值为表达式2的值,表达式1的值是令时,整个表达式的值是表达式3的值。 考点二十七 switch语句

1. switch语句通常总是和break语句联合适用,使得switch语句真正起到分支的作用。 2. switch只可以和break一起用,不可以和continue一起用。

3. switch后小括号里面的表达式不能为实型,case后表达式不能有变量。 考点二十八 三种循环结构

三种循环为:for( ),while( ),do-while( )

1. for循环当中必须是两个分号,千万不要忘记。 2. 循环一定要有结束的条件,否则就成了死循环。

3. do-while 循环最后的分号一定不能够丢。do-while循环是至少执行一次的循环。 考点二十九 break和continue 1. break:用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构

中终止本层循环体,从而提前结束本层循环。

2. continue:语句的作用是结束本次循环,即循环体内剩下的语句不再执行,跳到循环开

始,然后判断循环条件,进行新一轮的循环。 考点三十 循环的嵌套

1. 循环的嵌套就是循环里面还有嵌套。一般只考查两层嵌套,讯混嵌套通常是处理二维数

组。

2. 循环结构的重点,笔试所占分值一般在13分左右,在上机考试中也是必考知识点,应

用性很强。、

考点三十一 函数的的定义和函数的返回值 1. 函数是具有一定功能的一个程序块,是C语言的基本组成单位,在函数定义中不可以再

定义函数,即不能嵌套定义函数。函数返回值的类型默认为int型。

2. 函数的首部为:函数的返回值类型名 函数名(类型名 形参1,类型名 形参2,?), 3. 函数通过return语句返回以个值,返回值的类型与函数类型一样。Teturn语句值执行

一次,执行完或函数体结束后退出函数。 考点三十二 库函数、函数的返回值

1. 调用C语言标准库函数时要包含include命令行,include命令行以#开头,后面是“”

或<>括起来的后缀为“.h”的头文件。以#开头的一行称为编译预处理命令行,编译预处理不是C语言语句,不加分号,不占运行时间。 2. 常用的库函数有:sqrt( )算术平方个函数,fabs( )绝对值函数,sin( )正弦函数,pow( )

幂函数,printf( )输出字符函数,scanf( )输入字符函数,strlen( )求串中字符个数函数等。

考点三十三 函数的声明、函数的参数即值传递

1. 函数要“先定义后调用”或“先声明再调用后定义”。函数的定义一定要有函数名、函

数返=返回值类型、函数参数类型,但不一定要有形参的类型。

2. 形式参数简称形参,是定义函数时函数名后面括号中的参数。实在参数简称实参,是调

用函数时函数名后面括号中的参数。形参和实参分别占用不同的存储单元,实参向形参单向传递数值。

考点三十四 函数的递归调用

函数直接或间接的调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归的条件。

考点三十五 指针变量

1. 指针表里是用来存储地址的。

2. 定义格式为:类型名 *指针变量名1,类型名 *指针变量名2,?;指针 * * p可以理

解为基类型为int的指针类型。 考点三十六 指针变量的初始化

指针变量在使用前必须先初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”即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 a[2][ ]={2,3,4};合法。

数据初始化元素默认为0,没有初始化元素值为随机。例如在int a[5]={0,1,2};中,元素a[4]值为0;而在int a[5];中,元素a[4]为一不确定的随机数。 考点三十八 数组元素的引用和行指针

1. 数组元素的下标从0开始,到数组长度减1结束。所以int a[5];中数组最后一个元

素是int a[4]。要把数组元素看成一个整体,可以把a[4]看作一个整型变量。 2. 行指针是一个执着变量。行指针指向一行连续数据,形式为:int(*p)[2];,p只能存

放含有两个整型元素的一维数组的首地址。注意(*p)两边的括号不能省略,否则就成了指针数组,是若干指针元素的集合。 考点三十九 数组名和二维数组

1. 数组名是元素的首地址。数组名不能单独引用,不能通过一个数组名代表全部元素。数

组名是地址常量,不能对数组名赋值。但数组名可以作为地址与一个整数相加得到一个新的地址。

2. 数组a[2][3]={1,2,3,4,5,6};中含有6个元素,有2行3列。第一行为a[0]行,第二

行为a[1]行,a[0]、a[1]也叫行首地址,是地址常量。 考点四十 字符串常量及表示

字符串常量是有双引号括起来的一串字符,如“ABC”。在存储字符串时,系统会自动在其尾部加一个空值‘\\0’。空值也要占用一个字节,也就是字符串“ABC”要占用4个字节。 考点四十一 字符数组和字符串赋值

1. C语言中字符串是借助于一维数组来存放的。数组的大小应该比它将要存实际放的最长

字符串至少要多一个元素,用来存放‘\\0’。

2. 字符串赋值的两种形式:char str[ ]=“Hello!”;或char *p;p=“Hello!”,但不

能用下面的形式:char str[10];str=“Hello!”;因为str是一个地址常量,不能用来赋值。

考点四十二 字符串的输入与输出与字符串函数

1. 字符串的输入、输出可以用scanf和printf函数,也可以用专门处理字符串的两个函

数gets和puts函数,还可以对字符数组的逐个元素进行赋值,但一定要在最后赋一个‘\\0’。使用gets函数可以接收空格,使用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. 结构体是有若干个称为成员(或域)的成分组成。 结构体类型说明格式:

Struct结构体标识名{类型名1 结构成员名表1;类型名2 结构成员名表2;?}以上整个部分是一个数据类型,与整型的int同等地位。可用typedef把结构体类型替换成一个只有几个字母的简短标识符。

2. 结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事,一个

结构体变量所占字节数为所有成员所占字节数之和 3. 可以用以下三种方法来引用结构体变量成员 (1) 结构体变量名.成员 (2) 指针变量->成员名 (3) (*指针变量名).成员名

点(.)称为成员变量名,箭头(->)称为结构只想运算符 考点四十四 共用体

共用体的使用格式与结构体相似,共用体定义的关键字为union,共用体所占字节数是所有成员中字节数最大的那个所占的字节数。 考点四十五 链表

链表是由一个个结点组成的,一个结点就是一的结构体变量,每个结点可以分为分数域与指针域两部分,分数域是用来存放要存储的数据,指针域用来只想下一个结点。 考点四十六 文件类型指针、文本文件、二进制文件

1. 文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。

2. 文本形式存放的是字符的ASCII码,二而二进制形式存放的是数据的二进制代码。 考点四十七 打开文件函数fopen fopen函数的格式 :fopen(文件名,文件使用方式);函数返回一个指向FILE类型的指针。 常用的文件使用方使及其含义:r,文件内容可读、w,文件内容可写、a,在文件后面添加内容

考点四十八 文件函数

判断文件结束是函数是feof

移动文件指针位置的函数是fseek 获得文件位置的函数是ftell

文件位置移到开头的函数是rewind

文件输入函数是fscanf,输出函数是fprint 二进制文件读函数为fread,写函数为fwrite

能用下面的形式:char str[10];str=“Hello!”;因为str是一个地址常量,不能用来赋值。

考点四十二 字符串的输入与输出与字符串函数

1. 字符串的输入、输出可以用scanf和printf函数,也可以用专门处理字符串的两个函

数gets和puts函数,还可以对字符数组的逐个元素进行赋值,但一定要在最后赋一个‘\\0’。使用gets函数可以接收空格,使用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. 结构体是有若干个称为成员(或域)的成分组成。 结构体类型说明格式:

Struct结构体标识名{类型名1 结构成员名表1;类型名2 结构成员名表2;?}以上整个部分是一个数据类型,与整型的int同等地位。可用typedef把结构体类型替换成一个只有几个字母的简短标识符。

2. 结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事,一个

结构体变量所占字节数为所有成员所占字节数之和 3. 可以用以下三种方法来引用结构体变量成员 (1) 结构体变量名.成员 (2) 指针变量->成员名 (3) (*指针变量名).成员名

点(.)称为成员变量名,箭头(->)称为结构只想运算符 考点四十四 共用体

共用体的使用格式与结构体相似,共用体定义的关键字为union,共用体所占字节数是所有成员中字节数最大的那个所占的字节数。 考点四十五 链表

链表是由一个个结点组成的,一个结点就是一的结构体变量,每个结点可以分为分数域与指针域两部分,分数域是用来存放要存储的数据,指针域用来只想下一个结点。 考点四十六 文件类型指针、文本文件、二进制文件

1. 文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。

2. 文本形式存放的是字符的ASCII码,二而二进制形式存放的是数据的二进制代码。 考点四十七 打开文件函数fopen fopen函数的格式 :fopen(文件名,文件使用方式);函数返回一个指向FILE类型的指针。 常用的文件使用方使及其含义:r,文件内容可读、w,文件内容可写、a,在文件后面添加内容

考点四十八 文件函数

判断文件结束是函数是feof

移动文件指针位置的函数是fseek 获得文件位置的函数是ftell

文件位置移到开头的函数是rewind

文件输入函数是fscanf,输出函数是fprint 二进制文件读函数为fread,写函数为fwrite

本文来源:https://www.bwwdw.com/article/893p.html

Top