嵌入式linux应用程序开发期末考试题库及答案 联系客服

发布时间 : 星期三 文章嵌入式linux应用程序开发期末考试题库及答案更新完毕开始阅读

(√)守护进程,即通常所说的Daemon进程,是Linux操作系统中的后台服务进程。 (√)守护进程的生存期较长。

(×)守护进程常常在终端打开时启动,在终端关闭时终止。

(√)Linux系统有很多守护进程,大多数服务都通过守护进程实现。

(×)在Linux系统中,每一个系统与用户进行交流的界面称为图形用户界面。

(√)每一个从终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。 (√)守护进程不因为用户或终端或其他的变化而受影响。 (√)会话组是一个或多个进程组的集合。

(√)一个会话通常开始于用户登录,终止于用户退出,在此期间该用户运行的所有进程都属于这个会话期。

(√)syslog是Linux操作系统中的系统日志管理服务,通过守护进程syslogd来维护。 (√)在Linux系统中,每当系统发现一个孤儿进程,就会自动由init进程收养它。 (×)守护进程中用printf输出的字符可以在终端上显示出来。

(√)OSI协议参考模型是基于国际标准化组织(ISO)的建议发展起来的,从上到下共分为7层。

(×)TCP/IP协议模型将TCP/IP的7层协议模型简化为3层。 (√)TCP/IP协议模型是一个庞大的协议族。 (×)ping命令是基于TCP协议的。

(×)TCP协议和UDP协议都是处于网络层的协议。

(√)socket接口是一种特殊的I/O,也是一种文件描述符。

(√)有时将内核模块也称做驱动程序,因此,加载驱动时就是加载内核模块。 (√)mknod用于创建相关模块。

(×)insmod可以根据模块间依存关系以及/etc/modules.conf文件中的内容自动插入模块。 (√)设备通常在/dev下面存在一个对应的逻辑设备节点,这个节点以文件的形式存在。

(√)设备文件(即设备节点)可通过mknod命令来创建,其中指定了主设备号和次设备号。

(×)大多设备以查询方式向设备驱动程序发出输入/输出请求。

(√)设备驱动程序是内核的一部分,如果驱动程序出错,则可能导致系统崩溃。 (√)设备驱动程序必须为内核或者其子系统提供一个标准接口。 (√)设备驱动程序使用一些标准的内核服务

(×)设备驱动开发时模块在调用insmod命令时被加载,此时的入口点是main函数。 (√)模块在调用insmod命令时被加载,通常在init_module函数中完成设备注册。 (×)内核空间使用printk和printf函数实现信息打印。

(√)proc伪文件系统让用户可以和内核内部数据结构进行交互,获取有关进程的有用信息。

(×)proc存在于内存和硬盘上。

(√)块设备驱动程序包括一个request请求队列。

(√)Linux操作系统顶层运行的GUI系统兼容X标准的XFree86系统。 (√)Qt使用单一的API进行跨平台的编程。

(√)GUI是指计算机与其使用者之间的对话接口。 (×)Qt/E基于一个X服务器或是Xlib库。 (√)Qt的核心机制是信号和插槽。

1.嵌入式的英文为__EMBEDDED___。

2.Linux操作系统下的程序开发一般均遵守___GPL___协议。

3.Linux内核版本号格式是x.y.zz-www,数字x代表版本类型,数字y为__偶数__时是稳定版本。

4.Linux内核版本号格式是x.y.zz-www,数字x代表版本类型,数字y为__奇数__时是开发版本。 5.Linux操作系统的文件系统是一个__文件树___。 6.Linux常见的默认文件系统为__EXT3__。 7.Linux中把DOS中采用的FAT文件系统(包括FAT12,FAT16 和FAT32)称为_VFAT_文件系统。 8.硬盘可分为主分区、扩展分区、__逻辑分区__。

9.Linux系统中具有超级权限的用户称为_ROOT__用户。 10.Linux下与设备相关的文件一般都在/__DEV__目录下。 11.Linux 对目录和设备都当作_文件___来进行处理。 12.将分区与目录相对应的过程叫做__挂载__。

13.块设备文件是指数据的读写以__块__为单位的设备。 14.Linux 中文件属性第一个字符“d”表示_目录___文件。

15.Linux下软驱、光驱、硬盘的挂载点一般位于/_MNT__目录下。 16.服务的日志信息一般位于/_VAR__目录下。 17.Linux中添加用户账号的命令为__USERADD__。

18.Linux中显示当前系统中由该用户运行的进程列表的命令为__PS__。 19.Linux中改变工作目录的命令为_CD__。 20.Linux中建立符号链接的命令为__LN__。 21.Linux中对目录进行打包的命令为_TAR___。

22.Linux中显示网络连接、路由表和网络接口信息命令为__NETSTAT__。 23.FTP内部命令中使用__LCD__切换本地工作目录。 24.Linux中最常用的编译器是__GCC__编译器。

25.vi有3种模式,分别为命令行模式、插入模式及_底行___模式。 26.编辑器按功能可以分为_行___编辑器和全屏幕编辑器两大类。

27.gdb对__可执行__文件进行调试。

28.工程管理器make读入的配置文件为__MAKEFILE__。 29.工程管理器make定义了_隐式___规则和模式规则。

30.ARM处理器支持__THUMB__(16 位)/ARM(32 位)双指令集。 31.ARM处理器支持16 位/__8__位器件。

32.大端格式中,数据的高字节存储在__低__地址中 。 33.小端格式中,数据的高字节存储在_高_地址中 。 34.ARM7处理器采用_3_级流水线设计。

35.嵌入式软件开发所采用的编译过程为__交叉__编译。

36.在嵌入式软件开发中,将程序实际的运行环境称为_目标___机。 37.__JTAG__标准所采用的主要技术为边界扫描技术。

38.arm-linux-gcc 交叉编译工具主要包括binutils、__GCC__、glibc等软件。 39.API即__用户编程接口__。

40.API遵循UNIX中的应用编程界面标准_POSIX___。

41.操作系统提供给用户程序调用的一组“特殊”接口称为__系统调用__。

42.进行系统调用时,程序运行空间需要从用户空间进入__内核__空间,处理完后再返回到用户空间。

43.系统调用编程接口主要通过C库(_LIBC___)实现。 44.一个进程启动时,通常都会打开__3__个文件。 45.不带缓存的文件I/O操作,主要用到的5个函数为open、close、read、write和__LSEEK__。 46.fopen函数返回一个__指针__。

47._并行___通信是指利用多条数据传输线将一个资料的各位同时传送。

48.在Linux中,实现文件上锁的函数有lock和_FCNTL___。 49.Linux中最常见最基础的操作对象是_文件___。

50.当用户在系统中键入命令执行一个程序的时候,它将启动一个_进程___。 51.系统调度的单位__进程__。

52._进程控制块_包含了进程的描述信息、控制信息以及资源信息,它是进程的一个静态描述。 53.进程执行态说明该进程正在执行,即进程正在占用__CPU__。 54.Linux系统是一个__多___进程的系统。

55.Daemon进程即通常所说的_守护___进程,是Linux中的后台服务进程。。 56.在Linux中使用_FORK___函数创建一个新进程。

57.fork函数调用后出现父进程与子进程,其中_子进程___的返回值为0。 58.__EXEC__函数族就提供了一个在进程中启动另一个程序执行的方法。

59.exit()函数与_exit()函数最大的区别就在于__EXIT()__函数在exit系统调用之前要检查文件的打开情况,并将文件缓冲区中的内容写回文件。

60._WAIT_函数是用于使父进程阻塞,直到一个子进程结束或者该进程接到了一个指定的信号为止。 61.在Linux中,所有的孤儿进程自动由__INIT__进程收养。

62._SETSID___函数用于创建一个新的会话,并担任该会话组的组长。 63.系统日志文件位于/__VAR/LOG__目录下。

64.TCP/IP的协议参考模型包括网络接口层、_网络层___、传输层和应用层。 65.TCP为协议参考模型包中_传输___层的协议。 66.__TCP__对话通过三次握手来完成初始化。

67.对数据要求高可靠性的应用应选择__TCP__协议。 68.Linux中的网络编程通过__SOCKET__接口来进行。 69.SOCK_DGRAM为__数据报__套接字。

70.在实验中,实验平台采用的CPU为Intel__XSCALL__处理器。 71.在内核更新与加载实验中,设置的串口波特率为__115200__。 72.在内核更新与加载实验中,设置的串口数据位为__8__。 73.在内核更新与加载实验中,设置的数据流控制为__无__。 74.在内核更新与加载实验中,设置的数据停止位为__1__。

75.在内核更新与加载实验中,实验平台上使用的串口为COM__1__。 76.在内核更新与加载实验中,内核映像的后缀部分为__ZIMAGE__。

77.在内核更新与加载实验中,通过__USB__将内核映像下载到实验平台。 78.压缩的内核映像通常名为__ZIMAGE__。 79.未压缩的内核映像通常名为__VMLINUX__。

80.操作系统内核运行之前运行的一段程序称为__BOOTLOADER__。

程序设计选择题

1.下面的程序实现对字符串倒序输出。请选出应填写在空白处的选项。 int display1 (char *string)

{ printf (\ char *string2; int size,i; size = strlen (string1); string2 = (char *) malloc (size + 1); for (i = 0; i< size; i++) ____A______ ; string2[size+1] = ' '; printf(\{ char string[] = \ display1 (string); display2 (string); } A、string2[size - i -1] = string1[i] C、string2[size - i + 1] = string1[i]

B、string2[size - i ] = string1[i] D、string2[size - i ] = string1[i+1]

2.下面的程序打开一个文件,并设置该文件权限为0666。请选出应填写在空白处的选项。 int

main(void) { int fd; if((fd = open(\O_CREAT | O_TRUNC | O_WRONLY , 0666 ))<0) { perror(\ exit(1); } else { printf(\file: hello.c %d\\n\ } if( ____D____ ) { perror(\ exit(1); } else printf(\ exit(0); } A、open(fd) > 0

B、open(fd) < 0

C、close(fd) > 0

D、close(fd) < 0

3.下面的程序打开一个文件,写入字符串“Hello! I'm writing to this file!”,使用lseek 函数将文件

指针移到文件开始处,并读出10个字节并将其打印出来。请选出应填写在空白处的选项。 int main(void) { int i,fd,size,len; char *buf=\ char buf_r[10]; len = strlen(buf); if((fd = open(\O_CREAT | O_TRUNC | O_RDWR,0666 ))<0) { perror(\ exit(1); } else printf(\file:hello.c %d\\n\ if((size = write( fd, buf, len)) < 0) { perror(\ exit(1); } else printf(\ lseek( _____C_____ ); if((size = read( fd, buf_r, 10))<0) { perror(\ exit(1); } else printf(\form file:%s\\n\ if( close(fd) < 0 ) { perror(\ exit(1); } else printf(\ exit(0); } A、fd, 0, SEEK_CUR

B、fd, 0, SEEK_END

C、fd, 0, SEEK_SET

4.下面的程序说明文件记录锁函数。首先给flock 结构体的对应位赋相应值,接着使用两次fcntl

函数分别用于给相关文件上锁和判断文件是否可以上锁,这里用到的cmd值分别为F_SETLK 和F_GETLK。请选出应填写在空白处的选项。 void lock_set(int fd, int type) { struct flock lock; lock.l_whence = SEEK_SET; lock.l_start = 0; lock.l_len =0; while(1) { lock.l_type = type; if( ____B____ ) { if( lock.l_type == F_RDLCK ) printf(\ else if( lock.l_type == F_WRLCK ) printf(\lock set by %d\\n\ else if( lock.l_type == F_UNLCK ) printf(\lock by %d\\n\ return; } fcntl(fd, F_GETLK, &lock); if(lock.l_type != F_UNLCK) { if( lock.l_type == F_RDLCK ) printf(\lock already set by %d\\n\ else if( lock.l_type == F_WRLCK ) printf(\ getchar(); } } } A、(fcntl(fd, F_SETLK, &lock)) < 0 C、(fcntl(fd, F_SETLK, &lock)) > 0

B、(fcntl(fd, F_SETLK, &lock)) == 0

5.下面的程序测试文件的写入锁。首先创建hello文件,之后对其上写入锁,最后释放写入锁。

请选出应填写在空白处的选项。 int main(void) { int fd; fd=open(\0666); if(fd < 0) { perror(\ exit(1); } _____B_____; getchar(); lock_set(fd, F_UNLCK); getchar(); close(fd); exit(0); } void lock_set(int fd, int type) { struct flock lock; lock.l_whence = SEEK_SET; lock.l_start = 0; lock.l_len =0; while(1) { lock.l_type = type; if((fcntl(fd, F_SETLK, &lock)) == 0 ) { if( lock.l_type == F_RDLCK ) printf(\set by %d\\n\ else if( lock.l_type == F_WRLCK ) printf(\lock set by %d\\n\ else if( lock.l_type == F_UNLCK ) printf(\lock by %d\\n\ return; } fcntl(fd, F_GETLK,&lock); if(lock.l_type != F_UNLCK) { if( lock.l_type == F_RDLCK ) printf(\ else if( lock.l_type == F_WRLCK ) printf(\lock already set by %d\\n\ getchar(); } } }

A、lock_set(fd, F_RDLCK) C、lock_set(fd, O_RDONLY)

B、lock_set(fd, F_WRLCK) D、lock_set(fd, O_WRONLY)