嵌入式linux测试题2套.docx
- 文档编号:5630772
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:16
- 大小:23.81KB
嵌入式linux测试题2套.docx
《嵌入式linux测试题2套.docx》由会员分享,可在线阅读,更多相关《嵌入式linux测试题2套.docx(16页珍藏版)》请在冰豆网上搜索。
嵌入式linux测试题2套
一:
选择题
1.下面不是对Linux操作系统特点描述的是(B)。
[A]良好的可移植性[B]单用户[C]多用户[D]多任务
2.查看创建目录命令mkdir的帮助文档,可以使用命令(D)。
[A]mkdir–h[B]helpmkdir[C]mkdir-p[D]manmkdir
3.在C语言中,要求运算数必须是整型的运算符是(D)。
[A]/[B]++[C]!
=[D]%
4.C语言程序的三种基本程序是(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.SocketAPI中,使用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)
charbuffer[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)到服务器,并进入SYNSEND状态,等待服务器确认;
第二次握手:
服务器收到SYN包,必须确认客户的SYN(ACK=i+1),同时自己也发送一个SYN包((SYNj)}即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:
客户端收到服务器的SYN十ACK包,向服务器发送确认包ACK(ACK=j+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。
2、简述TCP和UDP的异同点(10分)
相同点:
都是传输层协议
不同点:
tcp协议面向连接,提供可靠的传输;udp协议无连接,不保证可靠的传输
3、请描述进程和程序的区别?
(5分)
进程和程序的区别
程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念
进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡
进程是一个独立的可调度的任务
进程是一个抽象实体。
当系统在执行某个程序时,分配和释放的各种资源
进程是一个程序的一次执行的过程
进程是程序执行和资源管理的最小单位
4、已知遍历结果如下,试画出对应的二叉树
前序:
ABCEHFIJDGK
中序:
AHECIFJBDKG
5、简述ARM发生异常时,ARM核心会自动做哪些事情?
从异常返回时,我们要做哪些事情?
(10分)
答:
当异常产生时,ARMcore:
1.拷贝CPSR到SPSR_
2.设置适当的CPSR位:
1>改变处理器状态进入ARM状态
2>改变处理器模式进入相应的异常模式
3>设置中断禁止位禁止相应中断(如果需要)
3.保存返回地址到LR_
4.设置PC为相应的异常向量
返回时,异常处理需要:
1.从SPSR_
2.从LR_
Note:
这些操作只能在ARM态执行.
6、描述u-boot启动流程(10分)
第一阶段汇编实现。
设置CPU模式,屏蔽中断,关闭MMU和cache,
初始化内存控制器,搬运u-boot到内存,设置堆栈(sp),清空BSS段
第二阶段C实现。
填充板级信息,初始化外设,执行命令
7、简述命令mknod/dev/zeroc15的作用和命令各部分的含义,并写出创建一个块设备节点的命令。
mknod//创建设备节点命令
/dev/zero//指定要创建的设备节点的名称
c//要创建的设备节点为字符设备节点
1//指定主设备号
5//指定次设备号
创建块设备节点:
mknod/dev/block1b2542
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、写程序,创建一个具有十个节点的完全二叉树
要求:
先定义二叉树的节点,该程序返回创建的二叉树的根节点地址
typedefintdatatype;
typedefstruct_tree{
datatypedata;
struct_tree*lchild,*rchild;
}bitree;
bitree*create_bitree(inti,intn){
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;
}
returnroot;
}
2、
编写程序实现如下功能(10分):
reader.c从argv[1]所指定的文件中读取内容,依次写到管道
/home/linux/myfifo中
writer.c从管道/home/linux/myfifo中读取内容,写到argv[1]所指定
的文件中并保存
代码中可省略头文件,/home/linux/myfifo无需创建
Read.c
intmain(intargc,constchar*argv[])
{
intfd,fd_src;
charbuf[32];
intbytes;
if(argc<2)
{
printf("Usage%ssrc_file\n",argv[0]);
return-1;
}
if((fd=open("/home/linux/myfifo",O_WRONLY))<0)
{
perror("failtoopen");
return-1;
}
if((fd_src=open(argv[1],O_RDONLY))<0)
{
perror("failtoopen");
return-1;
}
while((bytes=read(fd_src,buf,32))>0)
{
write(fd,buf,bytes);
}
close(fd);
close(fd_src);
return0;
}
Write.c
intmain(intargc,constchar*argv[])
{
intfd,fd_dest;
charbuf[32];
intbytes;
if(argc<2)
{
printf("Usage%sdest_file\n",argv[0]);
return-1;
}
if((fd=open("/home/linux/myfifo",O_RDONLY))<0)
{
perror("failtoopen");
return-1;
}
if((fd_dest=open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0666))<0)
{
perror("failtoopen");
return-1;
}
while((bytes=read(fd,buf,32))>0)
{
write(fd_dest,buf,bytes);
}
close(fd);
close(fd_dest);
return0;
}
一:
选择题
1.删除文件命令为(D)
A.mkdirB.moveC.mvD.rm
2.下面不是对Linux操作系统特点描述的是(B)。
[A]良好的可移植性[B]单用户[C]多用户[D]多任务
3.任何时候用户需要回到用户主目录时可以使用命令 (A) 。
A. cd B. pwd C. path D. cd .
4.刷新文件时间戳可以使用的命令为(D)。
chmodB.moreC.lsD.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.SocketAPI中,使用SOCK_STREAM,套接字是什么类型()(联发科)A
[A]流式套接字[B]数据报套接字[C]原始套接字[D]其他套接字
17.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_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)到服务器,并进入SYNSEND状态,等待服务器确认;
第二次握手:
服务器收到SYN包,必须确认客户的SYN(ACK=i+1),同时自己也发送一个SYN包((SYNj)}即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:
客户端收到服务器的SYN十ACK包,向服务器发送确认包ACK(ACK=j+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。
3、已知遍历结果如下,试画出对应的二叉树
前序:
ABCEHFIJDGK
中序:
AHECIFJBDKG
4、列出任意四种进程间通信的方式(5分)
传统的进程间通信方式
无名管道(pipe)、有名管道(fifo)和信号(signal)
SystemVIPC对象
共享内存(sharememory)、消息队列(messagequeue)和信号灯(semaphore)
BSD
套接字(socket)
5、简述ARM发生异常时,ARM核心会自动做哪些事情?
从异常返回时,我们要做哪些事情?
(10分)
答:
当异常产生时,ARMcore:
1.拷贝CPSR到SPSR_
2.设置适当的CPSR位:
1>改变处理器状态进入ARM状态
2>改变处理器模式进入相应的异常模式
3>设置中断禁止位禁止相应中断(如果需要)
3.保存返回地址到LR_
4.设置PC为相应的异常向量
返回时,异常处理需要:
1.从SPSR_
2.从LR_
Note:
这些操作只能在ARM态执行.
6、请简述armlinux内核启动流程
第一阶段:
内核的重定位和内核的自解压
第二阶段:
执行没有压缩的内核的汇编代码部分
获取CPU信息
检查平台设备号
创建页表
打开MMU
清除BBS段
执行内核C语言部分入口函数
第三阶段:
获取uboot给内核传递的参数
控制台初始化
执行init命令
挂载文件系统
执行用户控件的第一个程序
7、回答以下文件系统相关问题(10分)
(1)你移植嵌入式文件系统时,使用的是什么工具(2分)
busybox
(2)内核启动后,执行的第一个应用程序是哪一个应用程序(2分)
/linuxrc
(3)inittab语法,下面这句话是什么功能(2分)
:
:
sysinit:
/etc/init.d/rcS
系统初始化要执行的一个脚本程序
(4)BusyBoxinittab文件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分)
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.写出程序删除单链表中的所有节点
intdelete_all(linknode*head){
if(head==NULL){
return-1;
}
linknode*temp=NULL;
while(head->next!
=NULL){
temp=head->next;
head->next=temp->next;
free(temp);
temp=NULL;
}
return0;
}
2.编写程序实现如下功能(10分):
reader.c从argv[1]所指定的文件中读取内容,依次写到管道
/home/linux/myfifo中
writer.c从管道/home/linux/myfifo中读取内容,写到argv[1]所指定
的文件中并保存
代码中可省略头文件,/home/linux/myfifo无需创建
Read.c
intmain(intargc,constchar*argv[])
{
intfd,fd_src;
charbuf[32];
intbytes;
if(argc<2)
{
printf("Usage%ssrc_file\n",argv[0]);
return-1;
}
if((fd=open("/home/linux/myfifo",O_WRONLY))<0)
{
perror("failtoopen");
return-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 linux 测试
![提示](https://static.bdocx.com/images/bang_tan.gif)