嵌入式Linux C语言应用开发试题及答案
一:选择题
1.下面不是对Linux操作系统特点描述的是( B )。
[A] 良好的可移植性 [B] 单用户 [C] 多用户 [D] 多任务
2.查看创建目录命令mkdir的帮助文档,可以使用命令( D)。
[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir
3.在C语言中,要求运算数必须是整型的运算符是( D )。
[A] / [B] ++ [C] != [D] %
4.C语言程序的三种基本程序是嵌入式linux开发书籍( A )。
[A] 顺序结构,选择结构,循环结构
[B] 递归结构,循环结构,转移结构
[C] 嵌套结构,递归结构,顺序结构
[D] 循环结构,转移结构,顺序结构
5.数据结构包含的内容不包括(a)
A.线性结构
B.存储结构
C.逻辑结构
D.数据运算
6.向一个单链表linklist中的节点t后面插入一个节点p,下列操作正确的是(a)
A.p->next = t->next;t->next = p;
B.t->next = p->next;t->next = p;
C.t->next = p;p->next = t->next;
D.t->next = p;t->next = p->next;
7.下列哪种打开文件的方式不能修改文件已有的内容 ( B )
[A] r+ [B] r [C] w+ [D] a+
8.以下哪种不是进程的状态 ( B )
[A] 运行态 [B] 锁定态 [C] 睡眠态 [D] 停止态
9.常用来进行多任务同步的机制是( B )
[A]管道[B] 信号量 [C]信号 [D]共享内存
10.下列对于有名管道描述错误的是 ( D )
[A] 可以用于互不相关的进程间
[B] 通过路径名来打开有名管道
[C] 在文件系统中可见
[D] 管道内容保存在磁盘上
11.不能被用户进程屏蔽的信号是 ( B )
[A] SIGINT [B] SIGSTOP [C] SIGQUIT [D] SIGILL
12.fread()返回值的含义是 ( B )
[A] 读取的字节数 [B] 读取的对象数 [C] 缓冲区的首地址 [D] 0
13.以下不属于socket的类型的是 ( )。 D
[A] 流式套接字
[B] 数据报套接字
[C] 原始套接字
[D] 网络套接字
14.下面说法错误的是( ) C
[A] accept函数连接建立成功会返回一个连接套接字
[B] listen函数会把普通套接字编程监听套接字
[C] TCP网络通信编程中不能使用sendto函数
[D] TCP网络通信中在close函数和接受函数之间进行四次挥手
15.Socket API中,使用SOCK_STREAM,套接字是什么类型() (联发科)A
[A] 流式套接字 [B] 数据报套接字 [C] 原始套接字 [D] 其他套接字
16.CPSR寄存器中反映处理器状态的位是____。(D)
[A] J位 [B] I位 [C ] F位 [D ] T位
17.I2C协议中有几根线____。(B)
[A] 1 [B] 2 [C ] 3 [D ] 4
18.ATPCS规定中,栈是____。(B)
[A] 满加栈 [B] 满减栈 [C ] 空加栈 [D ] 空减栈
19.linux要求bootloader在运行内核前,让系统进入何种模式(B)
[A] user [B] svc [C] system
20.u-boot的命令中,设置环境变量的命令是(A)
[A] setenv [B] printenv [C] tftp [D] bootm
21.下列哪些命令可以加载外部模块(C)
A: lsmod
B: rmmod
C: insmod
D: modprobe
22.通常情况下,kmalloc函数能分配的最大内存是(C)
A: 4K
B: 64K
C: 128K
D: 4M
23.如果键盘输入为abcdef,程序如下所示,打印结果应该是( A )
char buffer[6];
……
fgets(buffer, 6, stdin);
printf(“%s”, buffer);
[A] abcde [B] abcdef [C] abcdef 后出现乱码 [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.read函数执行成功的返回值不可能是为( D )
[A] 期望读取的字节数 [B] 0 [C] 实际读取的字节数 [D] -1
二:简答题
1、简述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状态,完成三次握手,客户端与服务器开始传送数据。
2、简述TCP和 UDP的异同点(10分)
相同点:都是传输层协议
不同点:tcp协议面向连接,提供可靠的传输;udp协议无连接,不保证可靠的传输
3、请描述进程和程序的区别?(5分)
进程和程序的区别
程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念
进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡
进程是一个独立的可调度的任务
进程是一个抽象实体。当系统在执行某个程序时,分配和释放的各种资源
进程是一个程序的一次执行的过程
进程是程序执行和资源管理的最小单位
4、已知遍历结果如下,试画出对应的二叉树
前序: A B C E H F I J D G K
中序: A H E C I F J B D K G
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、描述u-boot启动流程( 10分)
第一阶段汇编实现。设置CPU模式,屏蔽中断,关闭MMU和cache,
初始化内存控制器,搬运u-boot到内存,设置堆栈(sp),清空BSS段
第二阶段C实现。填充板级信息,初始化外设,执行命令
7、 简述命令mknod /dev/zero c 1 5 的作用和命令各部分的含义,并写出创建一个块设备节点的命令。
mknod //创建设备节点命令
/dev/zero //指定要创建的设备节点的名称
c //要创建的设备节点为字符设备节点
1//指定主设备号
5 //指定次设备号
创建块设备节点:mknod /dev/block1 b 254 2
8、用文件IO分别实现标准IO中的(r, r+, w, w+, a, a+),文件名由argv[1]传入程序.
(O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_TRUNC, O_APPEND)(10分)
r: open(argv[1],O_RDONLY);
r+: open (argv[1],O_RDWR);
w: open(argv[1],O_WRONLY | O_CREAT | O_TRUNC,0666);
w+: open(argv[1],O_RDWR | O_CREAT | O_TRUNC,0666);
a: open(argv[1],O_WRONLY | O_CREAT | O_APPEND,0666);
a+: open(argv[1],O_RDWR | O_CREAT | O_APPEND,0666);
三、程序题:
1、写程序,创建一个具有十个节点的完全二叉树
要求:先定义二叉树的节点,该程序返回创建的二叉树的根节点地址
typedef int datatype;
typedef struct _tree{
datatype data;
struct _tree *lchild,*rchild;
}bitree;
bitree *create_bitree(int i,int n){
bitree *root;
root = (bitree*)malloc(sizeof(bitree));
root->data = i;
if(2 * i <= n){
root->lchild = create_bitree(2 * i,n);
}else{
root->lchild = NULL;
}
if(2 * i + 1 <= n){
root->rchild = create_bitree(2 * i + 1,n);
}else{
root->rchild = NULL;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论