[高频考点]2023年软件水平考试考试《(中级) 嵌入式系统设计师》高频考点学习打卡

|类别:软件水平考试

【单选题】文件系统中,打开文件(open)操作的功能是( )。

A、把文件信息从辅存读到内存

B、把磁盘的超级块从辅存读到内存

C、把文件的FAT表信息从辅存读到内存

D、把文件的控制管理信息从辅存读到内存

答案:D

解析:在使用已经存在的文件之前,要通过“打开(Open)”文件操作建立起文件和用户之间的联系,目的是把文件的控制管理信息从辅存读到内存。打开文件应完成如下功能:①在内存的管理表中申请一个空表目,用来存放该文件的文件目录信息;②根据文件名在磁盘上查找目录文件,将找到的文件目录信息复制到内存的管理表中。如果打开的是共享文件,则应进行相关处理,如共享用户数加1;③文件定位,卷标处理等。文件一旦打开,可被反复使用直至文件关闭。这样做的优点是减少查找目录的时间,加快文件存取速度,提高系统的运行效率。


【单选题】以下关于直接存储器访问(DM A)的叙述中,错误的是( )。

A、DMA是一种快速传递大数据的技术

B、DMA将传输的数据从一个地址空间复制到另一个地址空间

C、DMA数据传送过程中,由CPU和DMA控制器共同控制

D、在DMA控制器控制下,主存和外设之间直接交换数据

答案:C

解析:DMA直接在主存和外设之间建立一条数据传输通道,无需CPU来控制传输过程,是一种快速传递大数据块的技术。


【单选题】求解两个长度为n的序列X和Y的一个最长公共子序列(如序列ABCBDAB和BDCABA的一个最长公共子序列为BCB A)可以采用多种计算方法。如可以采用蛮力法,对X的每一个子序列,判断其是否也是Y的子序列,最后求出最长的即可,该方法的时间复杂度为( )。经分析发现该问题具有最优子结构,可以定义序列长度分别为i和j的两个序列X和Y的最长公共子序列的长度为c[i,j],如下式所示。 采用自底向上的方法实现该算法,则时间复杂度为(请作答此空)

A、O(n^2)

B、O(n^21gn)

C、O(n^3)

D、O(n2^n)

答案:A

解析:蛮力法,对X的每一个子序列,判断是否也是Y的子序列,其中,长度为n的序列X共有2^n个子序列,判断其是否是Y的子序列时间是n,因此是n*2^n;采用动态规划法自底向上实现时,根据递归公式,实际是关于i和j的两重循环,因此时间复杂度是n^2.


【单选题】POP3协议采用______模式,客户端代理与POP3服务器通过建立TCP连接来传送数据。

A、Browser/Server

B、Client/Server

C、Peer to Peer

D、Peer to Server

答案:B

解析:本题考查POP3协议及POP3服务器方面的基础知识。POP3协议是TCP/IP协议簇中用于邮件接收的协议。邮件客户端通过与服务器之间建立TCP连接,采用Client/Server计算模式来传送邮件。


【单选题】执行下面C语言程序段的结果是( )。main( ){int x=l,a=l,b=l;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf(”a=%d,b=%d“,a,b);}

A、a=2,b=2

B、a=3,b=2

C、a=2,b=l

D、a=3,b=3

答案:B

解析:switch case语句语法,当匹配到了一个case条件,会从该条件开始往下执行其余所有条件语句,不再进行判断,因此这里x=1匹配到了case1,其会执行case1及case2的语句。


【单选题】在某一分页存储管理系统中,页面的大小为4 KB。现有一作业,其部分页表如表6-1所示。若给定一个十进制逻辑地址为8644,则其十进制物理地址是( )。表6-1某分页存储管理系统部分页表

A、6186

B、12 330

C、33 220

D、因产生缺页中断,暂时无法获得

答案:C

解析:由于页面的大小为4 KB=22×210=4096 B,逻辑地址8644=4096×2+452,得页号为2,偏移量为452。查表7-15可知,页号为2所对应的物理块号是8,因此所求物理地址=4096×8+452=33 220。


【单选题】以下协议中属于应用层协议的是(请作答此空),该协议的报文封装在( )中传送。

A、SNMP

B、ARP

C、ICMP

D、X.25

答案:A

解析:ARP和ICMP是网络层协议,X.25是数据链路层协议,只有SNMP是应用层协议。SNMP协议的报文是封装在UDP协议中传送。


【单选题】阅读下面的C语言程序,请给出正确的输出结果( )。#include#define N 10#define s(x)x*x#define f(x)(x*x)#define g(x)((x)*(x))main( ){int i1,i2,i3,i4;i1=1000/s(N);i2=1000/f(N);i3=f(N+1);i4=g(N+1);printf(“i1=%d,i2=%d,i3=%d,i4=%d\n”,i1,i2,i3,i4);}

A、i1=1000,i2=10,i3=21,i4=121

B、i1=10,i2=10,i3=121,i4=121

C、i1=1000,i2=1000,i3=21,i4=21

D、i1=10,i2二1000,i3=121,i4=21

答案:A

解析:本题考查宏概念,以及宏替换相关的基础知识。表达式1000/s(N)宏替换后为:1000/10*10,因此结果为1000,而不是期待的10。表达式1000/f(N)宏替换后为:1000/(10*10),因此结果为10,是期待的结果。表达式f(N+1)宏替换后为:(10+1*10+1),因此结果为21,而不是期待的121。表达式g(N+1)宏替换后为:((10+1)*(10+1)),结果为121,是期待的结果。因此,题中程序运行结果为“i1=1000,i2=10,i3=21,i4=121”。


【单选题】求解两个长度为n的序列X和Y的一个最长公共子序列(如序列ABCBDAB和BDCABA的一个最长公共子序列为BCB A)可以采用多种计算方法。如可以采用蛮力法,对X的每一个子序列,判断其是否也是Y的子序列,最后求出最长的即可,该方法的时间复杂度为(请作答此空)。经分析发现该问题具有最优子结构,可以定义序列长度分别为i和j的两个序列X和Y的最长公共子序列的长度为c[i,j],如下式所示。 采用自底向上的方法实现该算法,则时间复杂度为( )

A、O(n^2)

B、O(n^21gn)

C、O(n^3)

D、O(n2^n)

答案:D

解析:蛮力法,对X的每一个子序列,判断是否也是Y的子序列,其中,长度为n的序列X共有2^n个子序列,判断其是否是Y的子序列时间是n,因此是n*2^n;采用动态规划法自底向上实现时,根据递归公式,实际是关于i和j的两重循环,因此时间复杂度是n^2.


【单选题】执行下面的一段C程序后,输出结果变量应为______。 sub (int x, int y, int *z) { *z=y-x; } main() { int a, b, c; sub (10, 5, &a); sub(7, a, &b); sub(a, b, &c); printf ("%d, %d, %d\n", a, b, c); }

A、5, 2, 3

B、-5, -12, -7

C、-5, -12, -17

D、5, -2, -7

答案:B

解析:本题考查C语言方面的基础知识。sub()函数的作用是将形参y和x的差值存入z指向的那个内存地址,所以在sub(10,5,&a)中,10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元。在执行函数后,a的值随*z变化,所以,此次函数被调用后a的值为以y-x=-5。同理可知,执行sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12。执行sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。