第三套嵌入式软件工程师考试试题B卷Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#嵌入式Linux软件工程师认证考试 B卷20个小题,每小题1分,共20分)1、在下列ARM处理器的各种模式中,()模式有自己独立的R8-R14寄存器。
A、系统模式(System)、B、终止模式(Abort)C、中断模式(IRQ)D、快中断模式(FIQ)2、按照ARM过程调用标准(APCS),栈指针使用()寄存器,A、R0B、R13C、R14D、R153、在ARM体系结构中,()寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;()寄存器作为处理器的程序计数器指针。
A、R0,R14B、R13,R15C、R14,R15D、R14,R04、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法()A、直接修改CPU状态寄存器(CPSR)对应的模式B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态C、使用软件中断指令(SWI)D、让处理器执行未定义指令5、下面关于MMU和Linux描述错误的是:()A、MMU是内存管理单元Memory Management Unit的缩写B、uClinux可以运行在有MMU的处理器上C、Linux内核功能强大,内存管理功能丰富,即使在没有MMU的处理器上,也可以通过软件实现地址映射。
D、Linux系统正是利用MMU,才能使得各个进程有独立的寻址空间6、DNS域名系统主要负责主机名和()之间的解析。
A、IP地址B、MAC地址C、网络地址D、主机别名7、在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用()命令。
A、上箭头B、下箭头C、<.>D、<*>8、进程有三种状态:()。
A 、准备态、执行态和退出态B 、精确态、模糊态和随机态C 、运行态、就绪态和等待态D 、手工态、自动态和自由态9、下列变量名中有效的shell变量名是()。
A、-1-timeB、_2$3C、bo_chuang_1D、2009file10、文件系统的主要功能是()。
A、实现对文件的按名存取B、实现虚拟存储C、提高外存的读写速度D、用于保存系统文档11、在ARM Linux体系中,用来处理外设中断的异常模式是()A、软件中断(SWI)B、未定义的指令异常C、中断请求(IRQ)D、快速中断请求(FIQ)12、在ARM Linux系统中,中断处理程序进入C代码以后,ARM的处于()工作模式A、超级用户(SVC)B、中断(IRQ)C、快速中断(IRQ)D、和进入中断之前的状态有关系13、在ARM体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在何时被清除()A、当中断处理程序结束以后,才可以清除B、进入相应的中断处理程序,即可以清除C、产生IRQ中断的时候,处理器自动清除D、任何时候都可以清除14、在操作系统中,Spooling技术是用一类物理设备模拟另一类物理设备的技术,实现这种技术的功能模块称做()。
A、可林斯系统B、斯普林系统C、图灵机系统D、虚拟存储系统15、通过修改下面文件哪个文件,可以设定开机时候自动安装的文件系统()A. /etc/mtaB. /etc/fastbootC. /etc/fstabD. /etc/16、下面关于Shell的说法,不正确的是:()A. 操作系统的外壳B. 用户与Linux内核之间的接口程序C. 一个命令语言解释器D. 一种和C类似的程序语言17、假设root用户执行“init 0”命令,系统将会()。
A.暂停B.关机C.重新启动D.初始化18、嵌入式系统应用软件一般在宿主机上开发,在目标机上运行,因此需要一个()环境。
A、交互操作系统B、交叉编译C、交互平台D、分布式计算19、已知有变量data1定义如下:union data{ int i;char ch;float f;} data1;则变量data1所占的内存存储空间可表示为()。
A、sizeof(int)B、sizeof(char)C、sizeof(float)D、sizeof(int)+sizeof(char)+sizeof(float)20、软件开发模型给出了软件开发活动各阶段之间的关系,()不是软件开发模型。
A、瀑布模型B、螺旋模型C、原型模型D、程序模型二、填空(本大题共7个小题,每空1分,共20分)1. 嵌入式操作系统不同于通用操作系统的功能是:_____、______2. 片内总线是大规模集成电路(Large Scale Integrated Circuit:LSI)和超大规模集成电路(VLSI)内部各寄存器或功能单元之间的信息交换通道,它由生产厂家决定,下列属于片内总线的有 _____、______、_______3. 常用的软件开发模型有 ______、_____、_______4. ARM处理器的工作模式中属于异常模式的有 ________、________、________5. 芯片总线又称元件级总线,它是指系统内或插件板内各元件之间所使用的总线,下列属于芯片总线的有_______ 、_________、________6. 在ARM汇编语言程序设计中主程序和子程序参数的传递需要满足ATPCS规则,ATPCS规则中用来传递参数的寄存器是_____、______、______、________ 编辑器具有两种工作模式: ________和 ________ 。
三、判断题(本大题共12个小题,每题1分,共12分)1、()在vi编辑器中的命令模式下,删除当前光标处的字符使用d命令。
2、()在单机系统中可采用关中断的方式保证操作的原子性。
3、()根文件系统是系统启动时首先加载的文件系统,因此需要快速加载的内容应放置于其中,以加快系统的运行速度。
4、()线程切换成本小于进程,因此Linux系统中的多线程程序的调度开销要小于多进程程序。
5、( )写回Cache是指CPU在执行写操作时,必须把数据同时写入Cache和主存。
6、()在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用下箭头命令。
7、()文件系统的主要功能是实现虚拟存储。
8、()进程有三种状态是准备态、执行态和退出态。
9、()目前Linux平台上的各种线程库使得Linux能够在内核空间能够支持多线程。
10、()Linux允许内核以NFS的形式连接根文件系统11、()EXT3文件系统是一种日志型的文件系统。
12、()BootLoader是嵌入式系统运行的第一个程序。
四、简答题(本大题共2小题,共8分)1、简述Bootloader有何作用(5分)2、程序、进程、线程有何区别(3分)五、编程题(本大题共4个小题,共40分)1、编写程序,在一个字符串中找到可能的最长的子字符串(10分)2、编写程序,定义一函数char *strscony(char *p),该字符串用于将指定字符串逆序(10分)3、仔细阅读下面代码,并填空(10分)#include ""#include ""typedef struct tree{char data;struct ___________;struct tree *rchild;}*Ptree,Dtree;void postOrder(Ptree t){if(t){___________________;___________________;printf("%c",t->data);}}int main(){int num[10]={0};int height;int i;Ptree t;t=createTree();postOrder(t);return 0;}4、仔细阅读下面的代码,然后填空,该问题解决N个鸡蛋放到M个篮子里(10分)说明:+ (M-m)*Min > N 剪枝条件:放n个鸡蛋后,后面的篮子里即使都放Min个,总鸡蛋数都超过了N个。
说明鸡蛋太少了2.当前篮子放n个鸡蛋,下一个篮子放鸡蛋的个数为Min~n+1,也就是最多放n+1个,再下一个篮子最多放2n+2,4n+4...(n+1)*2^(M-m-1)当前篮子放n个,如果以后按最多的放,所有篮子的鸡蛋总和如果小于N,说明鸡蛋太多,放不完,要剪枝。
即n+(n+1)(2^0+2^1+2^2+2^3+...+2^(M-m-1))<N化简得:N > pow2[M-m]*n + pow2[M-m]-1#include <iostream>using namespace std;long pow2[20];int N,M;int ans[1000];void solve( int n , int m , int Min ){if(n == N && m == M){for(int i=0;i<M;i++){cout<<ans[i]<<" ";}cout<<endl;return ;}else if( _________________________________) return ;else{for(int i = Min; i <= n+1; i++){ans[m] = i;_________________________;}}}int main(){pow2[0] = 1;for(int i=1;i<20;i++){pow2[i] =__________________;}cin>>N>>M;if( M > N || ___________________){cout<<"没有有效解"<<endl;}solve( 0 , 0 , 1 );system("pause");return 0;}。