资料: 模拟上机软件 密码:q9d2(抽一一段时间,像高考模拟考试一样,看看自己能得多少分,只能用电脑运行。)
计算机二级公共知识(二级语言都考察的内容,大概有10分左右,很多题都是背下来就能秒选的)密码:9ch6
C语言基础知识(基础,不多说了,有不懂的地方多看看)密码:61pi
前言(扯扯谈)
这份指南是某人而写的,不过都写了,顺便写全一点,大家觉得好的话素质随手三连一波吧(点赞收藏评论)。让我博客排名涨涨。
做了几套题之后感觉这个考试的知识点和题型很固定,而将这些知识点和做法概括总结出来可以帮助以后考试的同学。
对于没有相应基础的绝大多数同学,如果想考过二级,首先要克服见到陌生复杂题目的恐惧感。话说回来,其实这些题没有哪一道是真正需要动脑进行复杂思考的,只是知识点没见过,做题的方法不清楚,一旦知道了就能写对。这个考试没有什么含金量,一周的练习基本上足够了。
另外,需要强调一下,本文档以应试为目的指在帮助你通过考试,而非掌握C语言(这考试真的很水,编程也不是这样学的)。
如果发现有错误或者有其他建议请与我联系,多谢。也可以在评论下留言给我啦。
忘啦介绍一下自己了:某计算机专业一名学生,ACMer(不懂百度哦)。
我的邮箱:1006255603@qq.com
后续补充:我发现有很多人不知道这个证书有什么用,我根据和学长老师的聊天以及社会经验跟大家聊聊。首先这个等级考试是面向非计算机专业的(没有什么含金量),面向计算机专业有个叫软考(计算机技术与软件专业技术资格(水平)考试)的(这个金量就高了,我正在备考中)。当然这没有规定一定要是计算机专业才能考,像我们学院,因为领导脑门一闪,突然号召全体大一学生报名,我本来是不打算考。。。被逼无奈考了。
虽然含金量不高,但是也是很有用的,有些文职工作要求有这个证书,特别某政府部门,有这个证书你可以吹一波自己会计算机(去到那里只需要会重装系统,会一些office软件的操作就好了,并不需要你编程),有好多这样的政府部门的计算机方面的职务都是空缺的,为啥,因为学计算机有点上进心的都去互联网公司做开发了,当程序员,当然这个比较难,要学的东西很多。
要不要考三四级?
计算机等级考试基本是给非计算机专业设置的考试,所以本来就没什么含金量,我没有考。还想考计算机方面的证,可以去考软考[计算机技术与软件专业技术资格(水平)考试]。
听说计算机等级考试四级比二级还简单,也是买题做题就行了。考考考,给自己大学生活找点事情做。都考了二级,为啥不考三四级呢。
考试大纲:
全国计算机等级考试二级c语言程序设计考试大纲(2018 年版)(这部分看看就好,看看自己有哪些知识点不会的,)
基本要求
1.熟悉 Visual C++集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。
3. 掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4. 在 Visual C++集成环境下,能够编写简单的 C 程序,并具有基本的纠错和调试程序的能力。
考试内容
一、C 语言程序的结构
1. 程序的构成,main 函数和其他函数。
2. 头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3. 源程序的书写格式。
4. C 语言的风格。
二、数据类型及其运算
1.C 的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2. C 运算符的种类、运算优先级和结合性。
3. 不同类型数据间的转换与运算。
4. C 表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句
1. 表达式语句,空语句,复合语句。
2. 输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计
1. 用 if 语句实现选择结构。
2. 用 switch 语句实现多分支选择结构。
3. 选择结构的嵌套。
五、循环结构程序设计
1. for 循环结构。
2. while 和 do-while 循环结构。
3. continue 语句和 break 语句。
4. 循环的嵌套。
六、数组的定义和引用
1. 一维数组和二维数组的定义、初始化和数组元素的引用。
2. 字符串与字符数组。
七、函数
1. 库函数的正确调用。
2. 函数的定义方法。
3. 函数的类型和返回值。
4. 形式参数与实际参数,参数值的传递。
5. 函数的正确调用,嵌套调用,递归调用。
6. 局部变量和全局变量。
7. 变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理
1. 宏定义和调用(不带参数的宏,带参数的宏)。
2. “文件包含”处理。
九、指针
1. 地址与指针变量的概念,地址运算符与间址运算符。
2. 一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。
3. 用指针作函数参数。
4. 返回地址值的函数。
5. 指针数组,指向指针的指针。
十、结构体(即“结构”)与共同体(即“联合”)
1. 用 typedef 说明一个新类型。
2. 结构体和共用体类型数据的定义和成员的引用。
3. 通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。
十一、位运算
1. 位运算符的含义和使用。
2. 简单的位运算。
十二、文件操作
只要求缓冲文件系统(即高级磁盘 I / O 系统),对非标准缓冲文件系统(即低级磁盘 I / O 系统)不要求。
1. 文件类型指针(FILE 类型指针)。
2. 文件的打开与关闭(fopen,fclose)。
3. 文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf 函数的应用),文件的定位(rewind,fse
ek 函数的应用)。
考试方式
上机考试,考试时长 120 分钟,满分 100 分。
1. 题型及分值
单项选择题 40 分(含公共基础知识部分 10 分)。 操作题 60 分(包括程序填空题、程序修改题及程序设计题)。
2.考试环境
操作系统:中文版 Windows 7。 开发环境:Microsoft Visual C++ 2010 学习版
准备:
去淘宝买一套未来教育的二级书,好像领劵之后才19块钱
下载未来教育的模拟软件,找个时间自己上机模拟考试一次(把手机关机哦)。里面好像还有视频,可以看一下啦。
上面资料要认真看看,会的话可以不看了,下面体现这份指南的优越性了。真题讲解
下列叙述中正确的是
A)程序可以作为算法的一种表达方式
B)算法的有穷性是指算法的规模不能太大
C)算法的复杂度用于衡量算法的控制结构
D)算法的效率与数据的存储结构无关
解析:算法是计算机科学非常重要的一部分,例如一个很简单的例子,计算1加到100,最暴力的方法是一个个慢慢加。但我想出一个方法,1+100 = 2+99 = 2+98。。。然后50*101 = 5050 。这个方法就算一种算法。这个很简单
算法这种东西只有你们深入学习才会知道有多难,天天被算法折磨的我,脑壳疼。
回归题目,这道题用排除法吧。首先看A,好像没什么错误,看B,算法的有穷性是指算法必须在一段时间内终止,这个很好理解,你不能永远都算不出来吧,那要你何用?C.算法的复杂度用来衡量算法所占用的资源的,分为时间复杂度和空间复杂度(扩展一下,因为不可能只考这到题,把这个题解看懂,别的题你也会了)。空间复杂度是指占用内存大小,那肯定是越少越好了,不过算法有一条很经典的思想,用空间换时间,意思是用程序占用更大的空间我不管,我只要更快就好了。
时间复杂度,就是程序运行所需要的时间,为了方便计算,时间复杂度在计算是求极限的,忽略常数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。
D选项 计算机有句话,程序 = 算法 +数据结构。所以两者关系大着呢,可以说是密不可分的。所以选A。
顺序表的长度为40,对该表进行冒泡排序。在最坏的情况下需要比较的次数为()。
A.820 B.780 C.40 D.41
解析:这题考的算法时间复杂度分析。
首先我当你是小白,我们一个个词分析。顺序表,就是一种存储结构,你不懂没关系,(顺序表的长度为40)这句话的意思就是告诉你有40个元素。冒泡排序,就是一种排序方法冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。例如我们需要将(12 35 99 18 76)这5 个数进行从大到小的排序。既然是从大到小排序,
也就是说越小的越靠后,你是不是觉得我在说废话,但是这句话很关键(∩_ ∩)。 首先比较第1 位和第2 位的大小,现在第 1 位是12 ,第 2 位是35。发现 12比35要小。因为我们希望越小越靠后嘛,因此需要交换这两个数的位置。交换之后这5 个数的顺序是
35 12 99 18 76 。 按照刚才的方法,继续比较第2 位和第 3 位的大小,第 2 位是12,第 3 位是 99 。12 比99要小,因此需要交换这两个数的位置。交换之后这 5 个数的顺序是 35 99 12 18 76 。 根据刚才的规则,继续比较第 3 位和第 4 位的大小,如果第 3 位比第4 位小,则交换位置。交换之后这5 个数的顺序是 35 99 18 12 76。 最后,比较第4 位和第5 位。4 次比较之后 5 个数的顺序是 35 99 18 76 12。 经过4 次比较后我们发现最小的一个数已经就位(已经在最后一位,请注意 12这个数的移动过程),是不是很神奇。现在再来回忆一下刚才比较的过程。每次都是比较相邻的两个数,如果后面的数比前面的数大,则交换这两个数的位置。一直比较下去直到最后两个数比较完毕后,最小的数就在最后一个了。就如同是一个气泡,一步一步往后“滚”,直到最后一位。所以这个排序的方法有一个很好听的名字“冒泡排序”。
上面可以不看。 算法有上界和下界之分。上界就是排序的数就是已经排好了,这样一次遍历就可以完成排序了。时间是O(n).
下界就是最坏的情况,如从小到大排序,但这组数刚刚是完全从大到小的,这样就需要O(n^2)的时间复杂度。这题就是
40*(40-39)= 1560 次操作。但是这题有个点啊啊。问的是比较的次数,排序有两个操作:1是比较,2是交换。
所以就是1560/2 = 780次操作了
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)2的排序方法是()
A)快速排序
B)冒泡排序
c)直接插入排序
d)堆排序
选d堆排序 。这个解释有点复杂,你只要记住快速 ,选择,冒泡,插入在最坏的情况下排序都是要比较n(n-1)/2就行了。
堆排序不是。