00:01
同学们,我们来看全国计算机等级考试C语言的第十六道题,十六道题呢,它仍然是一套笔试题,也就是说这里边仍然是以选择题还有填空题为主,我们来看一下。那打开这里哈,我们先看一下这个试卷。跟它放在这,便于我们的一个解答。打开我们的第十六道题。我们来看一下它的内容。首先呢,我们来看第一个选择题,它说下列叙述正确的是哪一项?前面十个题呢,是属于公共基础部分,所以说这些呢,是需要大家经常去积累的。第一个选项,战士先进先出的线性表,这个肯定是不对的,我们是不是在前面已经讲过很多遍了,对不对,站它是先进后出的。是先进,先进后出。
01:04
所以说第一个答案呢,AA选项就是错误的,第二个队列是先进后出的,这个也不对,他刚好说反了,队列是什么呢?是先进先出。对不对,也就是说你先进来的呢,先出去排队嘛。谁先排的队,那谁就先去买票。是这样子的吧,所队列呢,是先进先出第三个选项。循环队列是非线性结构,这也是不对的,只要是队列,我们说的啊,队列。都是什么呢?它都是。都是我们所谓的线性结构。因此呢,C答案也是不对的,那只能是D档案了。D答案说有序线性表既可以采用顺序存储结构,也可以采用链式存储结构,这是可以的。顺序存储结构说白了就是数组,链式存储结构说白了就是链表,这是可以的。
02:06
没有问题,那这个是对的,我们说的顺序存储结构呢,就是我们常见的数组。那链式存储结构呢?就是我们常说的链表。对,所以说答案呢,就应该选择D。当然。选择D,答案没有问题,我放在这里。第二题,支持子程序调用的数据结构是哪一个?这个呢也是属于基本常识问题。支持子程序调用的数据结构就是这我们以前不是讲过吗?程序函数之间调用它会产生一个新的站,所以说这个呢是选A答案这个没问题,这直接就是常识性问题,选择A。第三题某二叉数有五个度为二的节点,则该二叉树的叶子节点数注意听,大家一定要小心哈,这里他问的是叶子节点,不是所有节点。
03:04
那叶子节点呢,其实在这里就应该是几呢?就应该选择我们的C答案。选择C,就是你这个有五个度嘛,五个五个度为二的节点,那么你叶子节点就应该是五加一等于六了,这是个常识性问题。第四题,它说下列排序方法中,最坏情况下比较次数最少的是哪一种排序?那么冒泡。选择直接插入,还有堆排序,我先说一下他们各自的最差时间哈分析。嗯,冒泡排序。冒泡排序最坏情况比较次数,也就是他的时间复杂度呢,其实是呃,这样写的,用个大O大写的O。然后呢,它是N的平方。2N的平方,所以说它是一个平方阶。
04:03
平方街。这个平方阶是这个阶哈平方阶,那么这这是冒泡排序最差时间呢,冒泡最差。因为为什么是这样的呢?因为它是它是两个嵌套负循环对不对,所以它是N的平方,就N乘以N,就是两个N相乘。那么我们再来看。我们再来看这一个简单选择排序,它最差呢?OK,它最差也是一个平方阶。它也是一个N的平方。叫恩相乘。那么直接插入排序榜呢,它最差。它最差是多少呢?它也是这个平方阶。所以说ABC其实他们的最坏情况下比较次数都是比较大的,属于平方阶,而到了我们这个堆排序呢,堆排序告诉大家它最差实际上是这样一个。
05:11
它的时间排序是N的log log。N,也就是说它是一个线性。它是线性对数阶。线性对数阶。所以说他是哪个最少呢?如果稍微学过学过一点这个对数,还有呃,数学知识的人都知道,那么这个答案就应该选择是我们的D答案。那有些同学说了,说老师,那这些排序方法到底他们最坏情况是多少次,有没有一个表呢?是有的,同学们看我在上硅谷呢,曾经出过一套视频,也是由我主讲的是Java数据结构和算法,在这里面呢,我们是对各种排序做了详细介绍的。
06:02
只是我们C语言呢,要求没有这么高,所以说我把这个图拿过来。对这个图就把所有的排序方法。他的一个情况展现出来了,大家看一下就可以哈,我放在这里。大家知道是这么一个情况。你看在这里冒泡排序,它最坏情况是N的平方。选择排序也是N的平方,插入排序呢,也是N的平方,而我们的堆排序呢,它是。一个线性阶对数阶,线性对数阶,所以说它其实在最坏情况下呢,它花的时间也是最少的,因此答案就应该选择堆排序。好的,那明白这个道理过后呢,我们继续往下看哈,第五一个软件功能,软件功能可以分为,从功能上来分,可以分为应用软件,系统软件和支撑软件。
07:04
那么他说下面属于应用软件的是哪一个?首先同学们要知道什么叫应用软件。应用软件就是它是站在用户的角度来解决用户,普通用户的一个需求的这种软件,比如说某某系统,比如学生管理系统,比如说交通管理系统,比如说CRM系统,ERP系统,财务软件等等,这些呢都属于应用软件。那大家看这里面各个软件是什么编译程序,显然编译程序呢,它应该是属于。支撑软件的,它属于一个工具软件,因为它是属于对一个程序进行编译的,而操作系统呢,它是属于系统软件的。教务管理系统,显然它是应用性很强的,所以说教务管理系统应该是属于我们的应用软件,而汇编程序这个不好说。因为这个汇编程序,他没说这个程序是用来干什么的。
08:02
对不对,他到底是来做一个应用呢,还是做一个系统的,还是做一个支撑的,这个就说不清楚了,所以说这个答案呢,各位同学。好选我说明分析一下哈,分析第一个就是编译程序呢,一般我们把它归结为什么呢。属于他是。他是。属于我们所谓的工具软件,也叫支撑软件。对,然后呢,我们操作系统当然大家听其名而知其意了,它是属于什么呢?OK,属于我们的系统软件。它是在系统这个级别的,而我们教务管理系统呢,OK,它是属于。它是属于什么呢?应用软件。就是它应用性很强,它是用来干什么的吗?它是用来进行教务管理的,你再比如说CM系统,财务软件,还有电商,这些都是属于应用软件的,那么汇编程序呢,这个不定啊,不确定。
09:11
不确定。为什么说不确定呢?因为你这个汇编程序到底是干什么的,我不知道啊,对不对,就好像有人说C程序。C程序你知道它是系统软件还是应用软件呢?你得看它干什么呀。如果你是用C语言写了一个操作系统,那它就是系统软件,你用C语言写了某某系某某某管理系统,那它就是一个应用软件,所以说它单说是一个程序,你无法判断它是什么,因此答案就应该选择哪一个呢?各位同学,答案出来了。答案就应该选择我们的C。没问题,同学们。挺简单的。第六题下面叙述中错误的是哪一个?我们来分析一下。我们先看第一个软件测试的目的是发现错误并改正错误,这个是不对的。
10:05
六这个就不对,为什么呢?软件测试的目的主要是发现错误,改正错误是程序员的事儿。对软件测试啊,再说一遍软件测试。他这个是错误的,这是错误的。作物。软,我们叫做软件测试的目的是干什么呢?它是发现错误。但是发现错误。改正错误是另外一回事了,是由程序员自己去改动的啊,我们前讲过。第二个,对被调试的程序进行错误定位是程序调试的必要步骤,这个都不知道在说什么哈。你调试错误嘛,就是去找这个错误吗?怎么又是必要必要步骤,这个不知道在说什么程序调试啊,这个是对的啊,这个是对的,为什么呢?呃,刚才老师老师说错了啊,这个地方他说对被调试程序进行错误定位。
11:06
那错误定位其实在这里是不是就是发现错位错误的具体的行和就是在哪一行啊,说他这个呢,是一个,呃,是一个必要的步骤,就是先要找到这一个错误,然后再去改错啊刚才老师说的说有问题。第二个程序调试,通常也称debug,对的。Debug,我们经常说程序员之前说你debug一个错误,就是指的是调试错误,软件测试应应严格的执行测试计划,排除测试的随意性,这个呢。也是正确的,就是咱们软件测试呢,是有一个比如说一个步骤的,先单元测试,在集成测试。对不对应应该是这样子的,先单元测试,在集成测试等,它是有个步骤和一个计划的。那么软件测试呢,要跟我们的软件开发是有一个对应关系的,你开发到什么阶段,我们就要测试到什么阶段,你开发了一个模块,我们就进行模块测试,你把整个都开发完了,我们要进行进行集成测试,好,所以说呢,这个答案选择的就是。
12:17
对答案选什么呢?选择B答案,那选择A答案,我这老老看这个B啊,那么第七个题我们再看一下,耦合性和内聚性是对模块独立衡量的两个标准,下列叙述正确的是,我们来看一下分析。首先我们看第一个,他说提高耦合性,降低内聚性,有利于提高模块的独立性,这个刚好说反了。同学们,第七题,第七个选择的第一个,他刚好说反了,刚好说反。刚好说反了。为为,为什么说反了呢?就是我们编程呢,其实是要降低。
13:02
就是要降低耦合性,而提高内聚性,才能提高我们模块的独立性,也就是说他刚好说反,这个事情刚好说反了。那显然你说反了,那就是错的呗。我们再看第二个,他说降低耦合性,提高内聚性,有利于提高模块的独立性,那当然这个就对了呀。这个就刚好说对了吗?就是正确的。正确。正确。那么第三一个耦合性是指一个模块内部各元素之间。彼此结合的秘密紧密程度,这不对的,它是耦合性啊,它是指的模块和模块之间的。也也说耦合性,它是指的比如说你的一个A模块。你的一个B模块,诶他们之间的这个联系,我们就称之为耦合性,那他说的是什么模块内部,那你模块内部就是B模块里面还有一些子模块,这个呢,它是指的内聚性能,明白吧,所以说这个C答案说错了。
14:11
C、不正确。C错误。好了,我们再看D,内聚性指的是模块间,这也说错了,不是模块间,是模块内部的各个元素的紧密程度,好,这个呢,它也是说的不对的。错误。错误你应该是改成什么呢?应该是指的模块内部元素之间的紧密程度,所以说这个答案呢,就应该选择哪一个说的是正确的呢?呃,我们第二个也是B说的是正确的答案,选B。选择B没有问题吧,同学们,我放这了。选择B。那么第八个题,他说数据库应用系统中核心问题是什么?那这个是个常识性问题。
15:00
那这个没什么可说的,肯定不是数据库维护了。也肯定不是对数据库管理员的培训,C和D啊,同学们,C和D是很容易排除的。那现在只留下A和B,一个呢是数据库设计,一个是数据库系统设计这两个说法呀。其实你感觉没有什么太大区别,在我们在我们这一个编程领域呢,我们一般就直接叫做数据库设计了。就叫数据库设计好吧,因为也就是设计是核心问题。好,那这个呢,我们就直接说选择A答案。没问题吧,同学们,那我们就选择A答案八题选A。好的八题选A,那这边呢,我们看一下OK,第九题。他第九题呢,他说有两个关系,R和S。R里面呢?有这么几个元素,ABCA1,二,B2,一,B3,一。他说S呢,有ABCC31,他问,由关系R通过运算得到关系S,就说R。
16:08
是通过R呢,可以得到S,他问所使用的运算是哪一个,大家看一下你觉得是哪一个呀?你看这有个ABC,这有个CC32C31啊,你看R里面是不是有个ABC,这里面也有一个C32,显然这应该是选择。也就是说S呢,是通过选择R这个关系里面的两个部件或者两个元素构成的,对不对?所以这个答案呢,应该选择A答案这个没什么可说的,很简单。来我们看第十题,将ER图转为关系模型时,实体和联系都可以表示,为什么显然是关系,它它都已经说了转为关系模式,那现在呢?显然这个就应该选择什么呀?选择C答案,因为你把ERER我们讲过是实体关系图。
17:03
那么它如果转成关系模式的话呢,那显然实体和联系呢都可以变成关系,因此答案呢,应该选择C。也就是说第十题我们选C,好,同学们,那前十个题的评讲就到这里,大家先消化一下第前面十个题啊,同学们都是属于公共基础部分,这些题呢,大部分都要靠我们平时多去积累,也就是说老师告诉你,或者自己自己多看一些,呃,这些常识性的问题就可以了。各位这一讲,我们就到这里。
我来说两句