嵌入式工程师笔试题目
嵌入式工程师是指具有C/C++语言、汇编语言等基础,熟悉模拟电子技术等硬件知识,了解处理器体系结构,做嵌入式系统设计和开发,包括硬件系统的建立和相关软件开发、移植、调试等工作的人,下面就是小编整理的嵌入式工程师笔试题目,请看:
嵌入式工程师笔试题目【1】 1、一根金条长31厘米,如果把它切成数段,使其中的一段或几段能够接成长为1到31中任何整数的金条,请问要切几次?
A.4
B.5
C.6
D.7
参考答案:A
2、运行在多核处理器上的Linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用下列哪种机制满足上述需求并且性能最好?
A.SpinLock
B.Mutex
嵌入式工程师笔试题目【1】 1、一根金条长31厘米,如果把它切成数段,使其中的一段或几段能够接成长为1到31中任何整数的金条,请问要切几次?
A.4
B.5
C.6
D.7
参考答案:A
2、运行在多核处理器上的Linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用下列哪种机制满足上述需求并且性能最好?
A.SpinLock
B.Mutex
C.Semaphore
D.Condition variable
参考答案:A
3、以下程序输出的结果是()
#include
int main(){
int x=10,y=10;
printf("%d %d",x--,--y);
}
A.10 10
B.9 9
C.9 10
D.10 9
参考答案:D
4、下面所述步骤中,不是创建进程所必须的步骤是?
D.Condition variable
参考答案:A
3、以下程序输出的结果是()
#include
int main(){
int x=10,y=10;
printf("%d %d",x--,--y);
}
A.10 10
B.9 9
C.9 10
D.10 9
参考答案:D
4、下面所述步骤中,不是创建进程所必须的步骤是?
A.由调度程序为进程分配CPU
B.建立一个进程控制块
C.为进程分配内存
D.将进程控制块链入就绪队列
参考答案:A
5、下面描述中,表达正确的有()
A.公有继承是基类中的public成员在派生类中仍是public的
B.公有继承是基类中的private成员在派生类中仍是private的
C.公有继承是基类中的protected成员在派生类中仍是protected的
D.私有继承是基类中的public成员在派生类中仍是private的
参考答案:ACD
6、int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?
A.是否打开log信息
B.是否打开后台log信息嵌入式多线程编程
C.后台等待连接队列的最大限制值
B.建立一个进程控制块
C.为进程分配内存
D.将进程控制块链入就绪队列
参考答案:A
5、下面描述中,表达正确的有()
A.公有继承是基类中的public成员在派生类中仍是public的
B.公有继承是基类中的private成员在派生类中仍是private的
C.公有继承是基类中的protected成员在派生类中仍是protected的
D.私有继承是基类中的public成员在派生类中仍是private的
参考答案:ACD
6、int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?
A.是否打开log信息
B.是否打开后台log信息嵌入式多线程编程
C.后台等待连接队列的最大限制值
D.后台等待连接队列的最小限制值
参考答案:C
7、Java程序中的类名称必须与存放该类的文件名相同。
A.对
B.错
参考答案:B
8、造成软件危机的主要原因是以下里的哪几个?
①用户使用不当 ②硬件不可靠 ③对软件的错误认识 ④缺乏好的开发方法和手段 ⑤软件本身特点 ⑥开发效率低
A.(①②③)
B.(②③④)
C.(③⑤⑥)
D.(④⑤⑥)
参考答案:D
9、下面有个hibernate延迟加载,说法错误的是?
参考答案:C
7、Java程序中的类名称必须与存放该类的文件名相同。
A.对
B.错
参考答案:B
8、造成软件危机的主要原因是以下里的哪几个?
①用户使用不当 ②硬件不可靠 ③对软件的错误认识 ④缺乏好的开发方法和手段 ⑤软件本身特点 ⑥开发效率低
A.(①②③)
B.(②③④)
C.(③⑤⑥)
D.(④⑤⑥)
参考答案:D
9、下面有个hibernate延迟加载,说法错误的是?
A.Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)
B.Hibernate3 提供了属性的延迟加载功能
C.get支持延迟加载,load不支持延迟加
D.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性
参考答案:C
10、确定模块的功能和模块的接口是在软件设计的那个阶段完成的?
A.需求分析
B.概要设计
C.详细设计
D.编码
参考答案:B
嵌入式工程师笔试题目【2】 1、下面有关servlet中init,service,destroy方法描述错误的是?
A.init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法
B.Hibernate3 提供了属性的延迟加载功能
C.get支持延迟加载,load不支持延迟加
D.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性
参考答案:C
10、确定模块的功能和模块的接口是在软件设计的那个阶段完成的?
A.需求分析
B.概要设计
C.详细设计
D.编码
参考答案:B
嵌入式工程师笔试题目【2】 1、下面有关servlet中init,service,destroy方法描述错误的是?
A.init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法
B.Service()方法处理客户机发出的所有请求
C.destroy()方法标志servlet生命周期的结束
D.servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的
参考答案:D
2、下面有关java和c++的描述,错误的是?
A.java是一次编写多处运行,c++是一次编写多处编译
B.c++和java支持多重承
C.Java不支持操作符重载,操作符重载被认为是c++的突出特征
D.java没有函数指针机制,c++支持函数指针
参考答案:B
3、()设计模式将抽象部分与它的实现部分相分离。
A.Singleton(单例)
B.Bridge(桥接)
C.Composite(组合)
D.Facade(外观)
C.destroy()方法标志servlet生命周期的结束
D.servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的
参考答案:D
2、下面有关java和c++的描述,错误的是?
A.java是一次编写多处运行,c++是一次编写多处编译
B.c++和java支持多重承
C.Java不支持操作符重载,操作符重载被认为是c++的突出特征
D.java没有函数指针机制,c++支持函数指针
参考答案:B
3、()设计模式将抽象部分与它的实现部分相分离。
A.Singleton(单例)
B.Bridge(桥接)
C.Composite(组合)
D.Facade(外观)
参考答案:B
4、哪些设计模式是降低资源使用率:
A.prototype
B.singleton
C.flyweight
D.abstract factory
参考答案:BC
5、运行在多核处理器上的Linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用下列哪种机制满足上述需求并且性能最好?
A.SpinLock
B.Mutex
C.Semaphore
D.Condition variable
参考答案:C
6、Unix系统中,哪些可以用于进程间的通信?()
4、哪些设计模式是降低资源使用率:
A.prototype
B.singleton
C.flyweight
D.abstract factory
参考答案:BC
5、运行在多核处理器上的Linux环境中,若临界区非常短,且不允许线程上下文切换的情况下,使用下列哪种机制满足上述需求并且性能最好?
A.SpinLock
B.Mutex
C.Semaphore
D.Condition variable
参考答案:C
6、Unix系统中,哪些可以用于进程间的通信?()
A.Socket
B.共享内存
C.消息队列
D.信号量
参考答案:ABCD
7、对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行?
A.onPause()
B.onCreate()
C.onResume()
D.onStart()
参考答案:A
8、在android中使用Menu时可能需要重写的方法有?
A.onCreateOptionsMenu()
B.onCreateMenu()
C.onOptionsItemSelected()
B.共享内存
C.消息队列
D.信号量
参考答案:ABCD
7、对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行?
A.onPause()
B.onCreate()
C.onResume()
D.onStart()
参考答案:A
8、在android中使用Menu时可能需要重写的方法有?
A.onCreateOptionsMenu()
B.onCreateMenu()
C.onOptionsItemSelected()
D.onItemSelected()
参考答案:AC
二、解答题
1、编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh” 函数头是这样的:
//pStr是指向以'\0'结尾的字符串的指针
//steps是要求移动的n
void LoopMove ( char * pStr, int steps )
{
//请填充...
}
参考答案
正确解答1:
void LoopMove ( char *pStr, int steps )
{
参考答案:AC
二、解答题
1、编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh” 函数头是这样的:
//pStr是指向以'\0'结尾的字符串的指针
//steps是要求移动的n
void LoopMove ( char * pStr, int steps )
{
//请填充...
}
参考答案
正确解答1:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
strcpy ( tmp, pStr + n );
strcpy ( tmp + steps, pStr);
*( tmp + strlen ( pStr ) ) = '\0';
strcpy( pStr, tmp );
}
正确解答2:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
memcpy( tmp, pStr + n, steps );
memcpy(pStr + steps, pStr, n );
memcpy(pStr, tmp, steps );
char tmp[MAX_LEN];
strcpy ( tmp, pStr + n );
strcpy ( tmp + steps, pStr);
*( tmp + strlen ( pStr ) ) = '\0';
strcpy( pStr, tmp );
}
正确解答2:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
memcpy( tmp, pStr + n, steps );
memcpy(pStr + steps, pStr, n );
memcpy(pStr, tmp, steps );
}
【剖析】
这个试题主要考查面试者对标准库函数的熟练程度,在需要的时候引用库函数可以很大程度上简化程序编写的工作量。
最频繁被使用的库函数包括:
(1) strcpy
(2) memcpy
(3) memset
2、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
参考答案:
大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告
初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。 接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。
【剖析】
这个试题主要考查面试者对标准库函数的熟练程度,在需要的时候引用库函数可以很大程度上简化程序编写的工作量。
最频繁被使用的库函数包括:
(1) strcpy
(2) memcpy
(3) memset
2、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
参考答案:
大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告
初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。 接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。
软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论