嵌入式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 ] 全双工
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_deviceplatform_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状态;
第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包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小时内删除。