嵌入式工程师笔试题目
  嵌入式工程师是指具有C/C++语言、汇编语言等基础,熟悉模拟电子技术等硬件知识,了解处理器体系结构,做嵌入式系统设计和开发,包括硬件系统的建立和相关软件开发、移植、调试等工作的人,下面就是小编整理的嵌入式工程师笔试题目,请看:
  嵌入式工程师笔试题目【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、下面所述步骤中,不是创建进程所必须的步骤是?
  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.后台等待连接队列的最大限制值
  D.后台等待连接队列的最小限制值
  参考答案: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.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(外观)
  参考答案: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系统中,哪些可以用于进程间的通信?()
  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()
  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 )
  {
  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 );
  }
  【剖析】
  这个试题主要考查面试者对标准库函数的熟练程度,在需要的时候引用库函数可以很大程度上简化程序编写的工作量。
  最频繁被使用的库函数包括:
  (1) strcpy
  (2) memcpy
  (3) memset
  2、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
  参考答案:
  大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告
  初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。 接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。
  软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。