2017

1.下列函数的时间复杂度是

1

2

3

4

5

int func(int n){

 int i=0, sum=0;

 while(sum < n) sum += ++i;

 return i;

}

A.O(logn)                         B.O(n1/2)                        C.O(n)                         D.O(nlogn)

 

  • i++ :先引用后增加
    ++i :先增加后引用
    i++ :先在i所在的表达式中使用i的当前值,后让i加1
    ++i :让i先加1,然后在i所在的表达式中使用i的新值

  • 时间复杂度

  • 疑问:这题不该是O(n^{2})?  答,肯定不会是n^{2},因为明显肯定小于n,排除法只能选A,B,然后没有明显的乘法,只有加法,所以选B

2.下列关于栈的叙述中,错误的是 。 C

Ⅰ.采用非递归方式重写递归程序时必须使用栈

Ⅱ.函数调用时,系统要用栈保存必要的信息

Ⅲ.只要确定了入桟次序,即可确定出栈次序

Ⅳ.栈是一种受限的线性表,允许在其两端进行操作

 

  • 仅 I
  • 仅I、Ⅱ、Ⅲ
  • 仅I、Ⅲ、Ⅳ
  • 仅Ⅱ、Ⅲ、Ⅳ

解析:

I的反例:计算斐波拉契数列迭代实现只需要一个循环即可实现。Ⅲ的反例:入栈序列为1、2,进行如下操作PUSH、PUSH、POP、POP,出栈次序为2、1;进行如下操作PUSH、POP、PUSH、POP,出栈次序为1、2。Ⅳ,栈是一种受限的线性表,只允许在一端进行操作。Ⅱ正确。

3.

左子树,右子树结点的度均为1.此题其实C也可以选择,不过没那么准确,因为结点度为1,还有一种可能就是只有左子树,

解:,所以选B

解析:

无向图边数的两倍等于各顶点度数的总和。由于其他顶点的度均小于3,可以设它们的度都为2,设它们的数量是x,可列出这样的方程4*3+3*4+2*x=16*2,解得x=4。4+4+3=11,B正确。

 

关于解析:B项,就是3的右边就是4.5除2向上取整,9的左边就是7.8除2向下取整

折半查找判定树

解析:

B+树是应文件系统所需而产生的B-树的变形,前者比后者更加适用于实际应用中的操作系统的文件索引和数据库索引,因为前者磁盘读写代价更低,查询效率更加稳定。编译器中的词法分析使用有穷自动机和语法树。网络中的路由表快速查找主要靠高速缓存、路由表压缩技术和快速查找算法。系统一般使用空闲空间链表管理磁盘空闲块。所以B正确。

B+树主要应用与索引

数据结构常见的八大排序算法

解:时钟周期:M1:1 / 1.5       M2:1 /1.2             M1运行时间:1 / 1.5 * 2    M2运行时间:1/1.2 * 1

个人理解:每次最多读取32位数据,说明这个是低位交叉编址,因为是4块DRAM,所以需要低2位代表块号,804001AH中,A即1010 ,10代表2,但是是从0开始,所以是从第三块读取数据,一个double有64位,所以需要读取3次

解析:选A

temp被多次引用,a【j】附近被多次引用

16.某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是

解析:
三地址指令有29条,所以它的操作码至少为5位。
以5位进行计算,它剩余32-29=3种操作码给二地址。
而二地址另外多了6位给操作码,因此它数量最大达3*64=192。所以指令字长最少为23位( 6 + 6 +6 + 5 = 26)
,因为计算机按字节编址,需要是8的倍数,所以指令字长至少应该是24位,选A。

解析:

超标量是指在CPU中有一条以上的流水线,并且每个时钟周期内可以完成一条以上的指令,其实质是以空间换时间。Ⅰ错误,它不影响流水线功能段的处理时间;Ⅱ、Ⅲ正确。选C。

解析:

主存储器就是我们通常说的主存,在CPU外,存储指令和数据,由RAM和ROM实现。控制存储器用来存放实现指令系统的所有微指令,是一种只读型存储器,机器运行时只读不写,在CPU的控制器内。CS按照微指令的地址访问,所以B错误。

解析:

五阶段流水线可分为取指IF、译码/取数ID、执行EXC、存储器读MEM、写回Write Back。数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路,包括程序计数器、算术逻辑运算部件、通用寄存器组、取指部件等等,不包括控制部件,选A。

解析:

多总线结构用速率高的总线连接高速设备,用速率低的总线连接低速设备。一般来说,CPU是计算机的核心,是计算机中速度最快的设备之一,所以A正确。突发传送方式把多个数据单元作为一个独立传输处理,从而最大化设备的吞吐量。现实中一般用支持突发传送方式的总线提高存储器的读写效率,B正确。各总线通过桥接器相连,后者起流量交换作用。PCI-Express总线都采用串行数据包传输数据,所以选D。

解析:

I/O端口又称I/O接口,是CPU与设备之间的交接面。由于主机和I/O设备的工作方式和工作速度有很大差异,I/O端口就应运而生。在执行一条指令时,CPU使用地址总线选择所请求的I/O端口,使用数据总线在CPU寄存器和端口之间传输数据。所以选D。

解析:  (注意多重中断和普通中断不一样)

CPU在响应处理中断过程中,允许响应处理更高级别的中断请求,这种方式称为多重中断。

多重中断系统在保护被中断进程现场时关中断,执行中断处理程序时开中断,B错误。CPU一般在一条指令执行结束的阶段采样中断请求信号,查看是否存在中断请求,然后决定是否响应中断,A、D正确。中断请求一般来自CPU以外的事件,异常一般发生在CPU内部,C正确。

23.假设4个作业到达系统的时刻和运行时间如下表所示。

解析:

先来先服务调度算法是作业来得越早,优先级越高,因此会选择J1。短作业优先调度算法是作业运行时间越短,优先级越高,因此会选择J3。所以D正确。

解析:

执行系统调用的过程是这样的:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态。所以C正确

解析:

回收起始地址为60K、大小为140KB的分区时,它与表中第一个分区和第四个分区合并,成为起始地址为20K、大小为380KB的分区,剩余3个空闲分区。在回收内存后,算法会对空闲分区链按分区大小由小到大进行排序,表中的第二个分区排第一。所以选择B。

解析:

绝大多数操作系统为改善磁盘访问时间,以簇为单位进行空间分配,因此选D

解析:

进程切换带来系统开销,切换次数越多,开销越大,A正确。当前进程的时间片用完后,它的状态由执行态变为就绪态,B错误。时钟中断是系统中特定的周期性时钟节拍。操作系统通过它来确定时间间隔,实现时间的延时和任务的超时,C正确。现代操作系统为了保证性能最优,通常根据响应时间、系统开销、进程数量、进程运行时间、进程切换开销等等因素确定时间片大小,D正确

解析:

多道程序系统通过组织作业(编码或数据)使CPU总有一个作业可执行,从而提高了CPU的利用率、系统吞吐量和I/O设备利用率,Ⅰ、Ⅲ、Ⅳ是优点。但系统要付出额外的开销来组织作业和切换作业,II错误。所以选D。

解析:注意逻辑格式化和物理格式化

一个新的磁盘是一个空白版,必须分成扇区以便磁盘控制器能读和写,这个过程称为低级格式化(或物理格式化)。低级格式化为磁盘的每个扇区采用特别的数据结构,包括校验码,Ⅲ错误。为了使用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上。这分为两步。第一步是将磁盘分为由一个或多个柱面组成的分区,每个分区可以作为一个独立的磁盘,Ⅰ错误。在分区之后,第二步是逻辑格式化(创建文件系统)。在这一步,操作系统将初始的文件系统数据结构存储道磁盘上。这些数据结构包括空闲和已分配的空间和一个初始为空的目录,Ⅱ、Ⅳ正确。所以选B。

解析:

可以把用户访问权限抽象为一个矩阵,行代表用户,列代表访问权限。这个矩阵有4行5列,1代表true,0代表false,所以需要20位,选D                                ---这题有点蛋疼

解析:

硬链接指通过索引结点进行连接。一个文件在物理存储器上有一个索引节点号。存在多个文件名指向同一个索引节点,Ⅱ正确。两个进程各自维护自己的文件描述符,Ⅲ正确,Ⅰ错误。所以选择B。

解析:

在开始DMA传输时,主机向内存写入DMA命令块,向DMA控制器写入该命令块的地址,启动I/O设备。然后,CPU继续其他工作,DMA控制器则继续下去直接操作内存总线,将地址放到总线上开始传输。当整个传输完成后,DMA控制器中断CPU。因此执行顺序是2、3、1、4,选B。

解析:

OSI参考模型共7层,除去物理层和应用层,剩五层。它们会向PDU引入20B*5=100B的额外开销。应用层是最顶层,所以它的数据传输效率为400B/500B=80%,选A。

30 = 10lg(r)        ----->  r = 1000     = S/N   (香农定理中的S/N)      2Wlog_{2}N中的N是信号状态数

解析:

IEEE 802.11数据帧有四种子类型,分别是IBSS、From AP、To AP、WDS。这里的数据帧F是从笔记本电脑发送往访问接入点(AP),所以属于To AP子类型。这种帧地址1是RA(BSSID),地址2是SA,地址3是DA。RA是receiver address的缩写,BSSID是basic service set identifier的缩写,SA是source address的缩写,DA是destination address的缩写。因此地址1是AP的MAC,地址2是H的MAC,地址3是R的MAC,选B。

解析:
0.0.0.0表示所有不清楚的主机和目的网络的集合,主机刚启动时,没有有效的IP地址,就默认是0.0.0.0。它通过255.255.255.255(泛洪地址)发送广播,DHCP服务器会给它分配一个有效地址。因而0.0.0.0可以作为源IP地址,不能作为目的IP地址,选A   扩展255.255.255.255是广播地址,不能作为源地址

解析:

RIP是一种分布式的基于距离向量的路由选择协议,通过广播UDP报文来交换路由信息。OSPF是一个内部网关协议,不使用传输协议,如UDP或TCP,而是直接用IP包封装它的数据。BGP是一个外部网关协议,用TCP封装它的数据。因此,选D。

解析:

按照慢开始算法,发送窗口=min{拥塞窗口,接收窗口},初始的拥塞窗口为最大报文段长度1KB。每经过一个RTT,拥塞窗口翻倍,因此需至少经过5个RTT,发送窗口才能达到32KB,所以选A。这里假定乙能及时处理接收到的数据,空闲的接收缓存≥32KB。

解析:

FTP协议使用控制连接和数据连接,控制连接存在于整个FTP会话过程中,数据连接在每次文件传输时才建立,传输结束就关闭,A对,B对。默认情况下FTP协议使用TCP 20端口进行数据连接,TCP 21端口进行控制连接。但是是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定,C错,D对。所以选C。

解答:

(1)算法的基本设计思想

表达式树的中序序列加上必要的括号即为等价的中缀表达式。可以基于二叉树的中序遍历策略得到所需的表达式。(3分)

表达式树中分支结点所对应的子表达式的计算次序,由该分支结点所处的位置决定。为得到正确的中缀表达式,需要在生成遍历序列的同时,在适当位置增加必要的括号。显然,表达式的最外层(对应根结点)及操作数(对应叶结点)不需要添加括号。(2分)

(2)算法实现(10分)

将二叉树的中序遍历递归算法稍加改造即可得本题答案。除根结点和叶结点外,遍历到其他结点时在遍历其左子树之前加上左括号,在遍历完右子树后加上右括号。

void BtreeToE(BTree *root){
 BtreeToExp(root, 1);             //根的高度为 1
}
void BtreeToExp( BTree *root, int deep)
{
 if(root == NULL) return;           //空结点返回
 else if(root->left==NULL&&root->right==NULL)   //若为叶结点
 printf(“%s”, root->data);     //输出操作数,不加括号
 else{
 if(deep>l) printf(“(”);       //若有子表达式则加1层括号
 BtreeToExp(root->left, deep+1);
 printf(“%s”, root->data);     //输出操作符
 BtreeToExp(root->right, deep+1);
 if(deep>l) printf(“)”);       //若有子表达式则加1层括号
 }
}

 

解答:

(1)Prim算法属于贪心策略。算法从一个任意的顶点开始,一直长大到覆盖图中所有顶点为止。算法每一步在连接树集合S中顶点和其他顶点的边中,选择一条使得树的总权重增加最小的边加入集合S。当算法终止时,S就是最小生成树。

①S中顶点为A,候选边为(A,D)、(A,B)、(A,E),选择(A,D)加入S。

②S中顶点为A、D,候选边为(A,B)、(A,E)、(D,E)、(C,D),选择(D,E),加入S。

③S中顶点为A、D、E,候选边为(A,B)、(C,D)、(C,E),选择(C,E)加入S。

④S中顶点为A、D、E、C,候选边为(A,B)、(B,C),选择(B,C)加入S。

⑤S就是最小生成树。

依次选出的边为:

(A,D),(D,E),(C,E),(B,C) (4分)

 

【评分说明】每正确选对一条边且次序正确,给1分。若考生选择的边正确,但次序不完全正确,酌情给分。

(2)图G的MST是唯一的。(2分)第一小题的最小生成树包括了图中权值最小的四条边,其他边都比这四条边大,所以此图的MST唯一。

(3)当带权连通图的任意一个环中所包含的边的权值均不相同时,其MST是唯一的。(2分)此题不要求回答充分必要条件,所以回答一个限制边权值的充分条件即可。

【评分说明】①若考生答案中给出的是其他充分条件,例如“带权连通图的所有边的权值均不相同”,同样给分。

②若考生给出的充分条件对图的顶点数和边数做了某些限制,例如,限制了图中顶点的个数(顶点个数少于3个)、限制了图的形状(图中没有环)等,则最高给1分。

③答案部分正确,酌情给分。

43.如图

2017年计算机统考408考研真题(含答案)

  • 24
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
2017年C生成器,是指在2017年出现的一种工具或者软件,用于生成C语言代码的工具。C语言是一种高级程序设计语言,广泛应用于计算机软件开发和系统编程。C生成器是为了提高软件开发效率和代码质量而设计的工具。 2017年C生成器的出现,带来了很多好处。首先,它可以帮助程序员自动化生成大量的C代码,节省了大量的编程间和精力。对于那些需要频繁编写相似功能或有规律代码的项目,使用C生成器可以快速生成模板代码,减少了手动编写的麻烦和出错的可能性。其次,C生成器还可以提高代码的可读性和可维护性。生成的代码通常遵循一定的命名规范和代码风格,使得整个项目的代码风格统一,易于其他开发人员阅读和修改。 2017年C生成器的应用范围非常广泛。它可以用于各种软件开发项目,包括嵌入式系统开发、网络编程、图形界面开发等。无论是大型企业级应用程序还是小型个人项目,C生成器都可以提供帮助。随着人工智能和自动化技术的发展,预计未来C生成器的功能还会进一步扩展,可能会实现更复杂的代码生成和优化。 总而言之,2017年C生成器是一种用于生成C语言代码的工具,可以提高软件开发效率和代码质量。它的应用范围广泛,对于任何需要编写C代码的项目都可以发挥重要作用。随着技术的不断发展,C生成器还将不断进化和完善,为软件开发人员提供更多便利和效率。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值