2023年软件水平考试考试《(中级) 嵌入式系统设计师》经典试题汇总(含答案解析)

|类别:软件水平考试

【单选题】用标准C语言库进行文件操作时,若要以a+方式打开一个己经存在的文件,则下列叙述中正确的是( )。

A、原有的文件内容保留,位置指针移动到文件的末尾,可进行读写操作

B、原有的文件内容保留,位置指针移动到文件的开头,可进行读写操作

C、原有的文件内容保留,位置指针移动到文件的末尾,可进行只读操作

D、原有的文件内容被删除,可进行写操作

答案:A

解析:fopen文件打开模式r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表textr=rt,打开只读文件,该文件必须存在r+=rt+,打开可读可写的文件,该文件必须存在rb,只读,打开一个二进制文件,该文件必须存在rb+,打开一个二进制文件,允许读和写,该文件必须存在w=wt,新建一个文本文件,已存在的文件将被删除,只允许写w+=wt+,新建一个文本文件,已存在的文件将被删除,可读可写wb,新建一个二进制文件文件,已存在的文件将被删除,只允许写wb+,新建一个二进制文件,已存在的文件将被删除,可读可写a=at,打开或新建一个文本文件,只允许在文件末尾追写a+=at+,打开或新建一个文本文件,可以读,但只允许在文件末尾追写ab,打开或新建一个二进制文件,只允许在文件末尾追写。ab+,打开或新建一个二进制文件,可以读,但只允许在文件末尾追写


【单选题】算法是为解决某个问题而设计的步骤和方法。以下关于算法的叙述中,不正确的是______。

A、解决同一个问题,不同的人(甚至是同一个人)可能会写出几种不同的算法

B、常用算法主要有迭代法、穷举搜索法、递推法、递归法、贪婪法、回溯法等

C、递推法是利用所解问题本身所具有的递推关系来求得问题解的一种算法

D、任何可以用递推法解决的问题,亦可用递归法解决,反之亦然

答案:D

解析:本题考查关于算法方面的基础知识。算法是为解决某个问题而设计的步骤和方法,有了算法,就可以据此编写程序。常用算法主要有迭代法、穷举搜索法、递推法、递归法、贪婪法、回溯法等。解决同一个问题,不同的人(甚至是同一个人)可能会写出几种不同的算法,但算法有优劣之分。递推法是利用所解问题本身所具有的递推关系来求得问题解的一种算法。递推法与递归法的关系是,任何可以用递推法解决的问题,可以很方便的用递归法写出程序解决。反之,许多用递归法解决的问题不能用递推法解决。这是因为递归法利用递归时的压栈,可以有任意长度和顺序的前效相关性,这是递推法所不具备的。


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

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

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

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

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

答案:C

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


【单选题】下列做法中不利于嵌入式应用软件移植的是______。

A、在软件设计上,采用层次化设计和模块化设计

B、在软件体系结构上,在操作系统和应用软件之间引入一个中间件层

C、将不可移植的部分局域化,集中在某几个特定的文件之中

D、在数据类型上,尽量直接使用C语言的数据类型

答案:D

解析:本题考查嵌入式系统的基础知识。嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通信技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以满足系统对功能、成本、体积和功耗等要求。嵌入式软件通常分为嵌入式操作系统、嵌入式支撑软件和嵌入式应用软件。嵌入式操作系统负责嵌入系统的全部软、硬件资源的分配、调度工作,控制、协调并发活动;嵌入式支撑软件用于帮助和支持软件开发的软件,通常包括一些嵌入式中间件等;嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于用户任务可能有时间和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。嵌入式软件的特点有:①嵌入式软件具有独特的实用性。嵌入式软件是为嵌入式系统服务的,这就要求它与外部硬件和设备联系紧密。嵌入式系统以应用为中心,嵌入式软件是应用系统,根据应用需求定向开发,面向产业、面向市场,需要特定的行业经验。每种嵌入式软件都有自己独特的应用环境和实用价值。②嵌入式软件应有灵活的适用性。嵌入式软件通常可以认为是一种模块化软件,它应该能非常方便灵活的运用到各种嵌入式系统中,而不能破坏或更改原有的系统特性和功能。首先它要小巧,不能占用大量资源;其次要使用灵活,应尽量优化配置,减小对系统的整体继承性,升级更换灵活方便。综上所述,嵌入式软件和硬件平台密切相关,不同的硬件平台可能使用不同的编译器,直接使用C语言的数据类型,会引入硬件平台和软件平台带来的差异,不利于软件移植。


【单选题】在某嵌入式系统中采用PowerPC处理器,若C语言代码中定义了如下的数据类型变量X,则X所占用的内存字节数是( )。

A、8

B、13

C、16

D、24

答案:A

解析:C语言中,union的使用与struct的用择非常类似,主要区别在于union维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union中所有的数据成员共用一个空间,同1时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。—个union只配置—个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是double型态,所以X的空间大小就是double数据类型的大小。Double为双精度浮点数,占用8个字节空间。


【单选题】求解两个长度为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.


【单选题】以下关于死锁的叙述中,不正确的是______。

A、死锁涉及的资源必须遵循申请、分配、使用和释放的管理模式

B、发生死锁时,系统中一定至少存在一个资源等待的回路

C、死锁是用户之间循环等待资源而引起的僵局

D、死锁只可能在单个进程中发生,不可能在多个进程中发生

答案:D

解析:本题考查计算机死锁方面的基础知识。死锁是涉及操作系统全局的问题,出现死锁的主要原因是在资源共享的情况下,由于分配算法不当,在动态运行时多个用户之间出现循环等待,而且系统将无法自动摆脱这种现象。发生死锁时,系统中一定至少存在一个资源等待的回路。死锁的形成必须有若干必要的条件。首先,死锁涉及的资源必须是独占资源,对它的管理必须实行用户申请、系统分配、用户使用、用户释放的模式。死锁不可能在某个单个进程中发生,但却可能只在某些进程中产生。


【单选题】更适合用来开发操作系统的编程语言是( )。

A、C/C++

B、Java

C、Python

D、JavaScript

答案:A

解析:开发常识,C/C++是编译型语言,常用于系统级软件的开发。


【单选题】某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是( )。

A、9

B、10

C、11

D、12

答案:B

解析:3个进程要想不死锁,每个进程都需要4个同类资源,所以只要每个进程都有3个资源,另外一个在给一个额外的资源。那么3个进程中有一个可以运行。运行完以后,释放资源然后其余的进程在申请资源就可以了。


【单选题】通常嵌入式文件系统不具有( )功能。

A、提供建立、修改、改变和删除目录等服务

B、提供创建、打开、读写、关闭和撤销文件等服务

C、提供对文件的加密和解密功能

D、设置、修改对文件和目录的存取权限

答案:C

解析:通常嵌入式文件系统比较简单,主要提供文件存储、检索和更新等功能,一般不提供保护和加密等安全机制。它以系统调用和命令方式提供以下3种文件的操作服务:①提供建立、修改、改变和删除目录等服务;②提供创建、打开、读写、关闭和撤销文件等服务,③设置、修改对文件和目录的存取权限。通常,嵌入式文件系统可支持FAT32等标准的文件系统,还可支持自定义的实时文件系统和多种存储设备,具有可裁减和可配置等特点。