嵌入式Linux C语言模拟题及答案
一:选择题
1.删除文件命令为( D )
A.mkdir B.move C.mv D.rm
2.下面不是对Linux操作系统特点描述的是( B )。
[A] 良好的可移植性 [B] 单用户 [C] 多用户 [D] 多任务
3.任何时候用户需要回到用户主目录时可以使用命令 ( A ) 。
A. cd B. pwd C. path D. cd .
4.刷新文件时间戳可以使用的命令为( D )。
chmod B.more C.ls D.touch
5.下列结构,属于线性结构的是(c)
A.二叉树
B.有向无环图
C.循环队列
D.霍夫曼树
6.判断有头单链表head为空的条件是(b)
A.Head == NULL;
B.Head->next == NULL;
C.Head->next != NULL;
D.Head != NULL;
7.二叉树的第k层最多有几个节点(d)
A.2k-1
B.2k+1
C.2k+1
D.2k-1
8.以读写方式打开一个已存在的标准I/O流时应指定哪个mode参数( B )
[A] r [B] r+ [C] w+ [D] a+
9.fork()的返回值不可能是( C )
[A] -1 [B] 0 [C] 1 [D] 大于10000的正整数
10.下列哪个函数无法传递进程结束时的状态 ( A )
[A]close [B] exit [C] _exit [D] return
11.下列对无名管道描述错误的是 ( C )
[A] 半双工的通信模式
[B]有固定的读端和写端
[C]可以使用lseek函数
[D] 只存在于内存中
12.下列哪个是不带缓存的( C )
[A] stdin [B] stdout [C] stderr [D]都不是
13.默认情况下,不会终止进程的信号是 ( D )
[A] SIGINT [B] SIGKILL [C] SIGALRM [D] SIGCHLD
14.以下对早期ARPAnet的描述不正确的是 ( ) D
[A] 使用NCP协议 [B] 不能互联不同类型的计算机
[C] 没有纠错功能 [D] 可以互联不同类型的操作系统
15.将套接字和某个地址绑定可用下面那个函数() B
[A] listen函数
[B] bind 函数
[C] accept函数
[D] connect函数
16.Socket API中,使用SOCK_STREAM,套接字是什么类型() (联发科)A
[A] 流式套接字 [B] 数据报套接字 [C] 原始套接字 [D] 其他套接字
printf输出格式linux17.I2C传输是____方式传输。(B)
[A] 单工 [B] 半双工 [C ] 全双工
[A] 单工 [B] 半双工 [C ] 全双工
18.ARM7是____级流水线,ARM9是____级流水线。(B)
[A] 3,3 [B] 3,5 [C ] 5,3 [D ]5,7
19.ATPCS规定中,推荐子函数参数最大为____个。(D)
[A] 1 [B] 2 [C ] 3[D ] 4
20.linux要求bootloader在运行内核前,让系统进入何种模式(B)
[A] user [B] svc [C] system
21.下列二进制工具哪个是用来反汇编的(B)
[A] nm [B] objdump [C] objcopy [D] string
22.当platform_device和platform_driver匹配时,会执行的函数是(C)
A: 驱动模块加载函数
B: 驱动模块卸载函数
C: 驱动的probe函数
D: 驱动的remove函数
23.以下机制中,可以在Linux设备驱动程序中实现延迟机制的是(ACD)
A: tasklet
B: 等待队列
C: 内核定时器
D: 工作队列
24.以下哪种用法可以等待接收进程号为pid的子进程的退出状态 ( A )
[A] waitpid(pid, &status, 0) [B] waitpid(pid, &status, WNOHANG)
[C] waitpid(-1, &status, 0) [D] waitpid(-1, &status, WNOHANG)
25.下列对于有名管道描述错误的是 ( D )
[A] 可以用于互不相关的进程间
[B] 通过路径名来打开有名管道
[C] 在文件系统中可见
[D] 管道内容保存在磁盘上
二:简答题
1、简述TCP和 UDP的异同点(10分)
相同点:都是传输层协议
不同点:tcp协议面向连接,提供可靠的传输;udp协议无连接,不保证可靠的传输
2、简述TCP/IP建立连接的过程。(傲天动联笔试面试题)(10分)
第一次握手:建立连接时,客户端发送SYN包((SYN=i)到服务器,并进入SYN SEND状态,等待服务器确认;
第二次握手:服务器收到SYN包,必须确认客户的SYN (ACK=i+1 ),同时自己也发送一个SYN包((SYN j)}即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN十ACK包,向服务器发送确认包ACK(ACK=j+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。
3、已知遍历结果如下,试画出对应的二叉树
前序: A B C E H F I J D G K
中序: A H E C I F J B D K G
4、列出任意四种进程间通信的方式(5分)
传统的进程间通信方式
无名管道(pipe)、有名管道(fifo)和信号(signal)
System V IPC对象
共享内存(share memory)、消息队列(message queue)和信号灯(semaphore)
BSD
套接字(socket)
5、简述ARM发生异常时,ARM核心会自动做哪些事情?从异常返回时,我们要做哪些事情?(10分)
答:
当异常产生时, ARM core:
1. 拷贝 CPSR 到 SPSR_<mode>
2. 设置适当的 CPSR 位:
1>改变处理器状态进入 ARM 状态
2>改变处理器模式进入相应的异常模式
3>设置中断禁止位禁止相应中断 (如果需要)
3. 保存返回地址到 LR_<mode>
4. 设置 PC 为相应的异常向量
返回时, 异常处理需要:
1. 从 SPSR_<mode>恢复CPSR
2. 从LR_<mode>恢复PC
Note:这些操作只能在 ARM 态执行.
6、请简述arm linux内核启动流程
第一阶段:内核的重定位和内核的自解压
第二阶段:执行没有压缩的内核的汇编代码部分
获取CPU信息
检查平台设备号
创建页表
打开MMU
清除BBS段
执行内核C语言部分入口函数
第三阶段:
获取uboot给内核传递的参数
控制台初始化
执行init命令
挂载文件系统
执行用户控件的第一个程序
7、回答以下文件系统相关问题( 10分)
(1)你移植嵌入式文件系统时,使用的是什么工具 (2分)
busybox
(2)内核启动后,执行的第一个应用程序是哪一个应用程序 (2分)
/linuxrc
(3)inittab语法,下面这句话是什么功能( 2分)
::sysinit:/etc/init.d/rcS
系统初始化要执行的一个脚本程序
(4)BusyBox inittab 文件 Actions 中,当按下Ctrl-Alt-Delete 组合键时执行的程序,使用哪一个Action? (4分)
ctrlaltdel
8、用文件IO分别实现标准IO中的(r, r+, w, w+, a, a+),文件名由argv[1]传入程序.
(O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_TRUNC, O_APPEND)(10分)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论