嵌入式培训 百分网手机站

嵌入式软件助理工程师认证考试试题题库(6)

时间:2018-04-01 11:42:31 嵌入式培训 我要投稿

2016年嵌入式软件助理工程师认证考试试题题库

  {

  if(Edit1->text() == "example")

  {

  QMessageBox::warning(this, "warning", "Pass!", QMessageBox::Yes);

  }

  else

  {

  QMessageBox::warning(this, "warning", "Error!", QMessageBox::Yes);

  }

  }

  #include

  #include "window.h"

  int main(int argc, char* argv[])

  {

  QApplication app(argc, argv);

  CWinDlg dlg;

  return dlg.exec();

  }

  答案要点:

  1)什么是Qt中的信号插槽机制?与回调函数机制有何不同?(3分)

  答案要点:回调函数机制是事先将一个回调函数指针传递给一个处理过程,当这个处理过程得到执行时,回调预先定义好的回调函数以期实现激活其他处理程序的目的。不同与回调函数机制,Qt提供了信号和插槽机制,信号是一个特定的标识;一个槽就是一个函数,与一般函数不同,槽函数既能和信号关联,当某个事件出现时,通过发送信号,可以将与之相关联的槽函数激活,执行相应代码。

  2)应用程序中用到了哪些控件,列举2个并说明该控件的特点?(4分)

  答案要点:应用程序中用到的控件有(1)文本框控件Edit,文本框控件主要用来显示或接收用户的输入信息。(2)按钮控件Button,按钮控件主要响应用户单击功能。

  3)根据注释完成程序中相应的语句?(4分)

  (1)setLayout(Layout1);

  (2)connect(Button1, SIGNAL(clicked()), this, SLOT(function()));

  9、 在Linux操作系统下,完成下列任务:

  1、 编程实现以下功能

  ² 主程序hello.c(打印Hello World!)

  ² 主程序通过头文件hello.h调用message函数

  ² 头文件hello.h(声明message函数)

  ² message函数由message.c定义(打印This is a message!)

  1、答:

  hello.c:

  # include

  # include

  # include

  # include "head.h"

  int main (int argc,char *argv[])

  {

  printf("Hello World!\n");

  message();

  return 0;

  }

  head.h:

  void message(void);

  message.c:

  # include

  void message (void){

  printf("This is a message!\n");

  }

  10. 用C语言编写一个源程序main.c,(1)用以在打开当前目录下的文件“test.txt”,如果没有创建该文件,并使其具有读写属性,(2)编写一个makefile实现自动编译,生成可执行文件main。注:头文件可忽略。

  1、

  (1)(5分)

  Void main(void)

  {

  int fid;

  fid = open(“./test.txt”,O_RDWR|O_CREAT);

  if(fid==-1)

  {

  Printf(“open or create error \n”);

  exit(0);

  }

  Close(fid);

  }

  (2)(5分)

  objects = main.o

  exec = main

  all:$(objects)

  gcc –o $(exec) $(objects)

  main.o:main.c

  gcc –c main.c

  clean:

  rm –r $(exec) $(objects)

  11、假如你需要设计并编写一个音频采集程序。该程序每50ms采集一次数据,大小为1480个字节。为了进一步压缩处理的需要,你需要建立一个能够至少保存5次所采集数据的缓存,该缓存的大小会根据系统的负载情况动态调整。请利用你所学的C语言内存管理及相关数据结构的知识,设计一个缓存结构,包括其内存分配的形式(如堆、栈等)及其组织结构(如数组、链表等)。

  参考答案:

  堆适合大块连续内存的分配,需要自行管理(2分)

  栈适合小块局部使用内容的分配,程序自动管理(2分)

  数组查找快,但大小固定,而链表正好相反。(2分)

  题目需要大容量存储,且需要动态改变大小,因此可设计为采用动态(堆)分配的链表型缓存结构。每个链表节点为1480B。(4分)

  12、 假定你在目录/home/arm下有一个C程序,他由几个单独的文件组成,而这几个文件又分为包含了其他文件,如下图所示:

文件

包含文件

main.c

stdio.h, table.h

list.c

list.h

symbol.c

symbol.h

table.c

table.h

table.h

symbol.h, list.h

  完成下列任务:

  1. 编写makefile文件,最终的目标文件为hello(交叉编译器为arm-linux-gcc)

  2. 在目标机上通过网络文件系统挂载/mnt 到宿主机上的/home/arm目录

  1、答:

  hello: main.o list.o symbol.o table.o

  gcc -o prog main.o list.o symbol.o table.o

  main.o: main.c table.h symbol.h list.h

  gcc -c -o main.o main.c

  list.o: list.c list.h

  gcc -c -o list.o list.c

  symbol.o: symbol.c symbol.h

  gcc -c -o symbol.o symbol.c

  table.o: table.c table.h symbol.h list.h

  gcc -c -o table.o table.c

  clean:

  rm hello *.o

  2、Mount –t nfs –o noclock 192.168.0.10:/home/armtest/hello /mnt

  13、假如你需要设计一个BootLoader,在具体开发之前,你需要确定哪几个主要问题?

  参考答案:

  需要考虑的问题:(1)与主机连接的方式(2)硬件CPU类型,如何初始化(3)内存空间大小以及如何使用 (4)内核运行前需要准备哪些条件(5)BootLoader需要支持几种模式。(每点各2分)

  14、Linux系统中线程的同步方式有互斥量、信号量和条件变量等。假设现在需要设计一个多线程的应用程序,试分析一下以上几种同步方式分别可在什么场合下使用。

  参考答案:

  Mutex互斥量,用于操作某个临界资源时对该资源上锁,以实现互斥地对独占资源的使用(3分)

  Semophore信号灯,信号灯内有一计数器,可以用于对多个同类资源的分配。当资源用完时,申请资源的线程会在信号量上睡眠,有线程释放资源时,再将该线程唤醒继续运行。(3分)

  Condition条件变量,条件变量用于等待信号。当一个线程需要等待某个信号时,就可到条件变量上等待,当信号具备时,系统会唤醒该线程继续运行。(4分)

  15、进程间通信的方式有多种,假设需要在Linux系统上设计本地运行的两个进程,一个负责采集视频,另一个负责播放。试为两者设计一种数据的通信方式。进一步考虑当两个进程处于不同机器上时,需要采用的通信方式。说明你的设计理由。

  参考答案:

  本地:共享内存+信号量, 适合于大量数据传输。Linux支持系统V和POSIX的共享内存和信号量。(5分)

  远程:Socket+应用协议。适合于跨网络的(大量)数据传输。Linux支持BSD的socket。应用层协议需要自行设计。(5分)

【2016年嵌入式软件助理工程师认证考试试题题库】相关文章:

1.2016年嵌入式硬件助理工程师认证考试试题题库

2.ADOBEphotoshop国际认证题库

3.photoshop国际认证题库

4.关于Photoshop认证试题题库

5.2016年微软认证考试试题库及答案

6.2016年Adobe认证试题题库「Photoshop」

7.IBM公司认证试题题库(附答案)

8.2017年华为初级认证题库