嵌入式Linux面试试题库.doc

上传人:豆**** 文档编号:33470980 上传时间:2022-08-11 格式:DOC 页数:23 大小:76KB
返回 下载 相关 举报
嵌入式Linux面试试题库.doc_第1页
第1页 / 共23页
嵌入式Linux面试试题库.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《嵌入式Linux面试试题库.doc》由会员分享,可在线阅读,更多相关《嵌入式Linux面试试题库.doc(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除 嵌入式Linux系统基础试题库一不定项选择题:1. 对于如下的定义,说法正确的有( A )int * pb,pc;A、pb是一个指向整数的指针,pc是一个整数 B、pb和pc都是指向整数的指针 C、这个定义是错的 D、这个定义是对的,但在编译时会出现告警2. 以下描述正确的有( D )A、sizeof(long)等于4.B、short类型的指针p,p+表示指向下一个字节。C、int a=0xffff0000,a的值为-65535.D、unsigned char类型的取值范围是0256.3. 以下代码正确的是( C )A、char a=“ABC”

2、;B、char a=”k”;c、char a4=0;d、char a11=”Hello word!”;4. 下面的网络协议中,面向连接的的协议是: A 。A、传输控制协议 B、用户数据报协议 C、网际协议 D、网际控制报文协议5. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 C 。A、文件类型 B、文件所有者的权限C、文件所有者所在组的权限 D、其他用户的权限6. 终止一个前台进程可能用到的命令和操作 B 。A、kill B、+C C、shut down D、halt7在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 D 。A、-m B、-d C、

3、-f D、-p8. 下面关于i节点描述错误的是 A 。A、i节点和文件是一一对应的(每个文件都有唯一一个索引结点号与之对应,而对于一个索引结点号,却可以有多个文件名与之对应)B、i节点能描述文件占用的块数C、i节点描述了文件大小和指向数据块的指针D、通过i节点实现文件的逻辑结构和物理结构的转换9. 一个文件名字为rr.Z,可以用来解压缩的命令是: D 。A、tar B、gzip C、compress D、uncompress10. 一台主机要实现通过局域网与另一个局域网通信,需要做的工作是 C 。A、配置域名服务器B、定义一条本机指向所在网络的路由C、定义一条本机指向所在网络网关的路由D、定义

4、一条本机指向目标网络网关的路由11. 局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是 B 。A、route add net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1B、route add net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1C、route add net 172.16.1.0 gw 172.16.1.

5、1 netmask 255.255.255.0 metric 1D、route add default 192.168.1.0 netmask 172.168.1.1 metric 112. 下列提法中,不属于ifconfig命令作用范围的是 D 。A、配置本地回环地址 B、配置网卡的IP地址C、激活网络适配器 D、加载网卡到内核中13. 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 C。A、主机IP设置有误B、没有设置连接局域网的网关C、局域网的网关或主机的网关设置有误D、局域网DNS服务器设置有误14. 不需要编译内核的情况是

6、 D 。A、删除系统不用的设备驱动程序时 B、升级内核时C、添加新硬件时 D、将网卡激活15. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称 A 。A、直接赋值 B、使用read命令C、使用命令行参数 D、使用命令的输出16. D 命令可以从文本文件的每一行中截取指定内容的数据。A、cp B、dd C、fmt D、cut17. 下列不是Linux系统进程类型的是 D 。A、交互进程 B、批处理进程 C、守护进程 D、就绪进程18. 内核不包括的子系统是 D 。A、进程管理系统 B、内存管理系统 C、I/O管理系统 D、硬件管理系统19若一台计算机的内存为128MB,则交

7、换分区的大小通常是 C 。A 64MB B 128MB C 256MB D 512MB20在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中, B 是能够实现本地与远程主机之间的文件传输工作。A telnet B FTP C SNMP D NFS21 用ls al 命令列出下面的文件列表, D 文件是符号连接文件。A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 helloB -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbeyC drwxr-r- 1 hel users 1024 Sep 1

8、0 08:10 zhangD lrwxr-r- 1 hel users 2024 Sep 12 08:12 cheng22 DNS域名系统主要负责主机名和 A 之间的解析。A IP地址 B MAC地址 C网络地址 D主机别名23 WWW服务器是在Internet上使用最为广泛,它采用的是 B 结构。A 服务器/工作站 B B/S C 集中式 D 分布式24NFS是 C 系统。A 文件 B 磁盘 C 网络文件 D 操作25Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 C 目录中。A /bin B /etc C /dev D /lib26. 如果限

9、定程序的栈的大小是1K字节,则以下代码,运行时会出错的有( C )Afoo.cstatic int iA512;int main( )return ;B. foo.cint main( )static int iA512return ;C. foo.cint main( )int iA512return ;D. foo.cint main( )Int*piApiA=malloc(512*sizeof(int);return ;27. 以下代码最后一次打印结果是(C )void fun(int iInputNum) static int iCount=1; iCount=iCount+iInpu

10、tNum; Print(“n iCount =%d”,icount+iInputNum);for(i=1;i3;i+) Fun(i);A.iCount =3 B.iCount =4 C.iCount =6 D.iCount =528. 关于以下代码,输出结果是( A )Void Fun( ) Int i; Int x33=1,2,3,4,5,6,7,8,9; Int *p; P=& x 11; For(i=0;i 3) patNext;pstD-pstNext=pstB;pstA-pstNext=pstD;free(pstB);B.pstA-pstNext=pstD;pstD-pstNext=

11、pstA-pstNext-pstNext;free(pstB);CpstA-pstNext-pstNext-pstpre=pstD;pstD-pstNext=pstA-pstNext-pstNext;pstD-pstpre=pstB-pstpre;pstA-pstNext=pstB-pstNext-pstpre;free(pstB);D.pstD-pstNext=pstB-pstNext;pstD-pstNext-pstpre=pstD;pstD-pstpre=pstA;pstA-pstNext=pstD;free(pstB);33实现从IP地址到以太网MAC地址转换的命令为: C 。A、pi

12、ng B、ifconfig C、arp D、traceroute34在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。A、 B、 C、 D、A35用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 A 。-rwxr-xr- 1 root root 599 Cec 10 17:12 ffA、普通文件 B、硬链接 C、目录 D、符号链接36删除文件命令为: D 。A、mkdir B、rmdir C、mv D、rm37DHCP是动态主机配置协议的简称,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机分配_D_地址。A、网络

13、B、MAC C、TCP D、IP38为了保证在启动服务器时自动启动DHCP进程,应将 A文件中的dhcpd=no改为dhcpd=yes。A、rc.inet1 B、lilo.conf C、inetd.conf D、httpd.conf39对文件进行归档的命令为 D 。A、dd B、cpio C、gzip D、tar40改变文件所有者的命令为 C 。A、chmod B、touch C、chown D、cat41. 某32位系统下, C程序,请计算sizeof的值(A).char str = “”;char *p = str ;int n = 10;请计算sizeof (str ) =?()A、17

14、 B、16 C、15 D、1842. 某32位系统下, C程序,请计算sizeof的值(B)char str = “”char *p = str ;int n = 10;请计算sizeof ( p ) =()?A、5 B、4 C、6 D、343. 这段程序的输出是(B)void f(char*);main() char * argv = ab ,cd , ef ,gh, ij ,kl ; f( argv );void f( char *p ) char* t; t=(p+=sizeof(int)-1; printf(%s,t);A、ab B、cd C、ef D、gh44在给定文件中查找与设定条

15、件相符字符串的命令为: A 。A、grep B、gzip C、find D、sort45建立一个新文件可以使用的命令为 D 。A、chmod B、more C、cp D、touch46在下列命令中,不能显示文本文件内容的命令是: D 。A、more B、less C、tail D、join47文件权限读、写、执行的三种标志符号依次是 A 。A、rwx B、xrw C、rdx D、srw48Linux 文件名的长度不得超过 C 个字符。A、64 B、128 C、256 D、51249进程有三种状态: C A 准备态、执行态和退出态 B 精确态、模糊态和随机态C 运行态、就绪态和等待态 D 手工态

16、、自动态和自由态50crontab文件由六个域组成,每个域之间用空格分割,其排列如下: B 。A、MIN HOUR DAY MONTH YEAR COMMANDB、MIN HOUR DAY MONTH DAYOFWEEK COMMANDC、COMMAND HOUR DAY MONTH DAYOFWEEKD、COMMAND YEAR MONTH DAY HOUR MIN二 简答题1、简述堆和栈的区别答:栈是编译器自动分配和释放,申请空间小,申请速度快,向低地址扩展的连续区域,存放内容多数有自动进行。堆是程序员申请和释放,申请空间较大,相对较慢,向高地址扩展的不连续区域,存放内容程序员自己安排。2

17、、栈和队列有何区别?答:1、队列先进先出,栈先进后出 2、队列一口插入一口删除,而栈都是一个口 3、遍历数据的速度不同,栈需要开辟空间来遍历数据,而队列只需要指针完成。3、TCP和UDP之间的区别?答:TCP:传输控制协议,是一个基于连接的可靠的字节流服务,双方交换数据是必须先建立连接,才能传输数据。超时重发,数据校验,丢弃重复数据,保证数据从一端传到另一端。 UDP:用户数据报协议,是一个简单的面向数据报的运输层协议,不可靠,效率高。4、进程和线程的区别?答:1、线程是组成进程的基本单位。 2、进程有独立的地址空间,线程也有一些自己的堆栈和局部变量,但是线程没有独立地址空间,一个进程死掉,整

18、个程序就死掉5、进程间通信的方式都有哪些,有何区别?答:1、管道,socket,共享内存,消息队列,信号量级 2、共享内存:效率非常高6、哪些情况会导致内存泄露?如何避免内存泄露?答:1、堆内存泄露,一般是指malloc,realloc,New,而未对应的用free或delete释放。2、系统资源泄漏,指程序使用系统分配的资源或函数,如socket,handle等,而未用相应的函数释放掉。避免方法:养成良好的编码习惯,在涉及内存代码编写时要谨慎。7、声明和定义的区别?答:声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。8、int(*a10

19、)(int)表示什么?答:int (*s10)(int) 函数指针数组,每个指针指向一个int func(int param)的函数。9、gdb调试的用法?以file.c为例答:编译gcc g file.c o file,然后gdb file运行即可进入GDB调试环境,这时可以设置断点进行跟踪调试例如:break main,然后run,接下来next(简称n),回车就直接默认前一个命令,可以打印变量或指针值print i,遇见函数输入step会进入函数执行,否则不进入。10、关键字static的作用是什么?答:关键字static有三个明显的作用:1)在函数体,一个被声明为静态的变量在这一函数被

20、调用过程中维持其值不变。2)在模块内(但在函数体内),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。11、inline与宏的区别答:宏:预处理阶段不经过安全检查直接替换,不可以对数据成员进行操作。 Inline:编译器经过安全检查之后替换函数调用,既提高代码效率,又经过安全检查,而且还可以对数据成员进行操作。12、有关内存的思考题void GetMemory(char *p)p = (char *)malloc(100)

21、;void Test(void)char *str = NULL;GetMemory(str);strcpy(str, hello world);printf(str);请问运行Test函数会有什么样的结果?答:程序崩溃。因为GetMemory并不能传递动态内存,Test函数中的 str一直都是 NULL。strcpy(str, hello world);将使程序崩溃。char *GetMemory(void)char p = hello world;return p;void Test(void)char *str = NULL;str = GetMemory();printf(str);请

22、问运行Test函数会有什么样的结果?答:可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。void GetMemory2(char *p, int num)*p = (char *)malloc(num);void Test(void)char *str = NULL;GetMemory(&str, 100);strcpy(str, hello);printf(str);请问运行Test函数会有什么样的结果?答:(1)能够输出hello(2)内存泄漏void Test(void)char *str = (char

23、 *) malloc(100);strcpy(str,“hello”);free(str);if(str != NULL)strcpy(str,“world”);printf(str);请问运行Test函数会有什么样的结果?答:篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,str成为野指针,if(str != NULL)语句不起作用。13. 写一个“标准”宏,这个宏输入两个参数并返回较小的一个。答案: #define Min(X, Y) (X)(Y)?(Y):(X)14. 什么是预编译,何时需要预编译: 答案: 、总是使用不经常改动的大型代码体。 、程序由多个模块

24、组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 15. 请问以下代码有什么问题: int main() char a; char *str=&a; strcpy(str,hello); printf(str); return 0;答案:没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。16. 关键字volatile有什么含意?并举出三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。 17. 交换两个变量的值,

25、不使用第三个变量。即a=3,b=5,交换之后a=5,b=3; 答案:有两种解法, 一种用算术算法, 一种用(异或) a = a + b; b = a - b; a = a - b; or a = ab;/ 只能对int,char. b = ab; a = ab; or a = b = a; 18、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环?答案:第一方案:while(1);第二方案:for(;);第三个方案是用 gotoLoop:.goto Loop;19、用变量a给出下面的定义a) 一个整型数(An integer)b)一个指向整型数的指针( A pointer to an int

26、eger)c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)rd)一个有10个整型数的数组( An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes

27、 an integer as an argument and returns an integer)h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )答案:a) int a; / An integerb) int *a; / A pointer to an integerc) int *a; / A pointer to a pointer to an integerd) in

28、t a10; / An array of 10 integerse) int *a10; / An array of 10 pointers to integers等价于int *(a10);f) int (*a)10; / A pointer to an array of 10 integersg) int (*max_function)(int a); / A pointer to a function a that takes an integer argument and returns an integerh) int (*a10)(int); / An array of 10 po

29、inters to functions that take an integer argument and return an integer20、 简述嵌入式Linux系统开发流程。答案:1.操作系统的裁剪。2.嵌入式操作系统内核的配置和编译。3.文件系统的建立。4用户程序的编写和简单的仿真调试。5.整体系统的目标板仿真调试。6.系统下载和脱机运行。三编程题。1. 在Linux操作系统下,完成下列任务:编程实现以下功能主程序hello.c(打印Hello World!)主程序通过头文件hello.h调用message函数头文件hello.h(声明message函数) message函数由me

30、ssage.c定义(打印This is a message!)参考答案:hello.c:# include # include # include # include head.hint main (int argc,char *argv) printf(Hello World!n); message(); return 0;head.h:void message(void);message.c:# include void message (void) printf(This is a message!n);2. 假定你在目录/home/arm下有一个C程序,他由几个单独的文件组成,而这几个

31、文件又分为包含了其他文件,如下图所示:文件包含文件文件包含文件main.cstdio.h, table.hlist.clist.hsymbol.csymbol.htable.ctable.htable.hsymbol.h, list.h完成下列任务:(1)编写makefile文件,最终的目标文件为hello(交叉编译器为arm-linux-gcc) (2)给出程序编译执行步骤答案:第一步:编写makefile文件hello: main.o list.o symbol.o table.o gcc -o prog main.o list.o symbol.o table.omain.o: main

32、.c table.h symbol.h list.h gcc -c -o main.o main.clist.o: list.c list.h gcc -c -o list.o list.csymbol.o: symbol.c symbol.h gcc -c -o symbol.o symbol.ctable.o: table.c table.h symbol.h list.hgcc -c -o table.o table.cclean:rm hello *.o第二步:#make第三步:执行程序,检测结果。 ./hello3. C语言实现冒泡排序算法#include#define LEN 5I

33、nt aLEN=5,4,3,2,1;void bubble_sort(void)int i,j,flag=1;int temp;for( i=1; (inext;/* if head is null or the next node of head is null then return */if (temp = NULL) | (temp-next = NULL) return;header-next = NULL;while(temp_next != NULL) temp_n_next = temp_next-next;temp_next-next = temp;temp = temp_next;temp_next = temp_n_next;head = temp;return head;【精品文档】第 23 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com