下载此文档

嵌入式Linux面试试题库汇总.pdf


文档分类:IT计算机 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
该【嵌入式Linux面试试题库汇总 】是由【小屁孩】上传分享,文档一共【25】页,该文档可以免费在线阅读,需要了解更多关于【嵌入式Linux面试试题库汇总 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..:,说法正确的有(A)int*pb,pc;A、pb是一个指向整数的指针,pc是一个整数B、pb和pc都是指向整数的指针C、这个定义是错的D、这个定义是对的,(D)A、sizeof(long)、short类型的指针p,p++表示指向下一个字节。C、inta=0xffff0000,a的值为-、unsignedchar类型的取值范围是0~(C)A、chara[]={“ABC”};B、chara=”k”;c、chara[4]={0};d、chara[11]=”Helloword!”;,面对连接的的协议是:A。A、传输限制协议B、用户数据报协议C、网际协议D、,分成四段,第三段表示的内容是C。:..A、文件类型B、文件全部者的权限C、文件全部者所在组的权限D、。A、killB、<CTRL>+CC、shutdownD、,在其父书目不存在时先创建父书目的选项是D。A、-mB、-dC、-fD、-。A、i节点和文件是一一对应的(每个文件都有唯一一个索引结点号与之对应,而对于一个索引结点号,却可以有多个文件名与之对应)B、i节点能描述文件占用的块数C、i节点描述了文件大小和指向数据块的指针D、,可以用来解压缩的吩咐是:D。A、tarB、pressD、,须要做的工作是C。A、配置域名服务器B、定义一条本机指向所在网络的路由C、定义一条本机指向所在网络网关的路由D、,局域网络连接其它网络的网关:..。,其路由设置正确的是B。A、、、、,不属于ifconfig吩咐作用范围的是D。A、配置本地回环地址B、配置网卡的IP地址C、激活网络适配器D、,而不能与公网连通,问题可能是C。A、主机IP设置有误B、没有设置连接局域网的网关C、局域网的网关或主机的网关设置有误D、。A、删除系统不用的设备驱动程序时B、升级内核时C、添加新硬件时D、,其中,采纳name=12的方法:..称A。A、干脆赋值B、运用read吩咐C、运用吩咐行参数D、。A、cpB、ddC、fmtD、。A、交互进程B、批处理进程C、守护进程D、。A、进程管理系统B、内存管理系统C、I/O管理系统D、,则交换分区的大小通常是C。,应用层包含了全部的高层协议,在下列的一些应用协议中,B是能够实现本地与远程主机之间的文件传输工作。–al吩咐列出下面的文件列表,D文件是符号连接文件。A-rw-rw-rw-2hel-susers56Sep0911:05helloB-rwxrwxrwx2hel-susers56Sep0911:05goodbeyCdrwxr--r--1helusers1024Sep1008:10zhangDlrwxr--r--1helusers2024Sep1208:。AIP地址BMAC地址C网络地址D主机别名:..。A服务器/工作站BB/。,对于外部设备文件,一般应将其放在C书目中。A/binB//devD/,则以下代码,运行时会出错的有(C)[512];intmain(){returnθ;}(){staticintiA[512]returnθ;}:..intmain(){intiA[512]returnθ;}(){Int*piApiA=malloc(512*sizeof(int));returnθ;}(C)voidfun(intiInputNum){staticintiCount=1;iCount=iCount+iInputNum;Print(“\niCount=%d”,icount+iInputNum);}for(i=1;i<3;i++){Fun(i);:..}====,输出结果是(A)VoidFun(){Inti;Intx[3][3]={1,2,3,4,5,6,7,8,9};Int*p;P=&x[1][1];For(i=0;i<4;i+=2)Printf(“%d”,p[i]);},能够推断uiNum(unsignedint)可以被8整除的有(ACD)A、If(((uiNum/8)*8)==uiNum)B、if((uiNum%8)==1)C、if((uiNum&θ×θ7)==θ):..D、if(((uiNum>>3)<<3)==uiNum),描述正确的有(ABCD)代码Ⅰ:constchar*pcStr=”abcdefg”;char*pcStr=”abcdefg”代码Ⅱ:voidstring_sizeof(charszStr1[10]){charszStr2[10]=”12345”;printf(“%u,”,sizeof(szStr1));printf(“%u\r\n,”,sizeof(szStr2));return;}intmain(){string_sizeof(”12345”);代码ⅢpcStr[3]=”a”;代码ⅣunsignedintuiA=100;printf(“%s\r\n,”,uiA);return0;:..}A、代码Ⅰ,const修饰符表明pcStr指针不能再次被赋值,、代码Ⅱ,程序的运行结果是“4,10”.C、代码Ⅲ,对pcStr[3]、代码Ⅳ,打印unsignedint时不应当运用“%s”,会导致程序访问非法地址。,以下描述正确的有(AB)structA_SstructB_S{{unsignedshortus1;unsignedcharuc1;unsignedshortus2;unsignedintuc2;unsignedshortus3;unsignedshortus3;};};unionC_UunionD_U{{unsignedintui1unsignedcharuc2;unsignedcharuc2;unsignedshortus3;unsignedshortus3;unsignedintui1;:..};};A、结构structA_S的大小是6B、结构structB_S的大小是12C、联合unionC_U的大小是12D、,将D替换B,并删除B,以下代码正确的有(AD)单链表:AAApstNextpstNextBCPstApstBDpartD双链表:pstNextpstNextABCpstPrepstPrePstApstBDpstDstructSLL{structSLL*pstNext;/*下一结点*/};structDLL{structDLL*pstNext;/*下一结点*/structDLL*pstPrev;/*前一结点*/:..};=pstB->patNext;pstD->pstNext=pstB;pstA->pstNext=pstD;free(pstB);->pstNext=pstD;pstD->pstNext=pstA->pstNext-pstNext;free(pstB);->pstNext-pstNext-pstpre=pstD;pstD->pstNext=pstA->pstNext->pstNext;pstD->pstpre=pstB->pstpre;pstA->pstNext=pstB->pstNext-pstpre;free(pstB);->pstNext=pstB->pstNext;pstD->pstNext->pstpre=pstD;pstD->pstpre=pstA;:..pstA->pstNext=pstD;free(pstB);:C。A、pingB、ifconfigC、arpD、,键入B可在光标当前所在行下添加一新行。A、<a>B、<o>C、<I>D、-al显示出文件ff的描述如下所示,由此可知文件ff的类型为A。-rwxr-xr--1rootroot599Cec1017:12ffA、一般文件B、硬链接C、书目D、:D。A、mkdirB、rmdirC、mvD、,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机安排___D______地址。A、网络B、、TCPD、,应将A文件中的dhcpd=no改为dhcpd=yes。A、、、、。A、ddB、cpioC、gzipD、tar:..。A、chmodB、touchC、chownD、,C程序,请计算sizeof的值(A).charstr[]=“ibegroup”;char*p=str;intn=10;请计算sizeof(str)=?()A、17B、16C、15D、,C程序,请计算sizeof的值(B)charstr[]=“ibegroup”char*p=str;intn=10;请计算sizeof(p)=()?A、5B、4C、6D、(B)voidf(char**);main(){char*argv[]={"ab","cd","ef","gh","ij","kl"};f(argv);:..}voidf(char**p){char*t;t=(p+=sizeof(int))[-1];printf("%s",t);}A、abB、cdC、efD、:A。A、grepB、gzipC、findD、。A、chmodB、moreC、cpD、,不能显示文本文件内容的吩咐是:D。A、moreB、lessC、tailD、、写、执行的三种标记符号依次是A。A、rwxB、xrwC、rdxD、。A、64B、128C、256D、:CA打算态、执行态和退出态B精确态、模糊态和随机态C运行态、就绪态和等待态D手工态、,每个域之间用空格分割,其排列如:..下:B。A、MANDB、MANDMANDHOURDAYMONTHDAYOFWEEKMANDYEARMONTHDAYHOURMIN二简答题1、简述堆和栈的区分答:栈是编译器自动安排和释放,申请空间小,申请速度快,向低地址扩展的连续区域,存放内容多数有自动进行。堆是程序员申请和释放,申请空间较大,相对较慢,向高地址扩展的不连续区域,存放内容程序员自己支配。2、栈和队列有何区分?答:1、队列先进先出,栈先进后出2、队列一口插入一口删除,而栈都是一个口3、遍历数据的速度不同,栈须要开拓空间来遍历数据,而队列只须要指针完成。3、TCP和UDP之间的区分?答:TCP:传输限制协议,是一个基于连接的牢靠的字节流服务,双方交换数据是必需先建立连接,才能传输数据。超时重发,数据校验,丢弃重复数据,保证数据从一端传到另一端。UDP:用户数据报协议,是一个简洁的面对数据报的运输层协议,不行靠,效率高。4、进程和线程的区分?答:1、线程是组成进程的基本单位。2、进程有独立的地址空间,线程也有一些自己的堆栈和局部变量,但是线程没有独立地址空间,一个进程死掉,整个程序就死掉5、进程间通信的方式都有哪些,有何区分?答:1、管道,socket,共享内存,消息队列,信号量级2、共享内存:效率特别高:..6、哪些状况会导致内存泄露?如何避开内存泄露?答:1、堆内存泄露,一般是指malloc,realloc,New,而未对应的用free或delete释放。2、系统资源泄漏,指程序运用系统安排的资源或函数,如socket,handle等,而未用相应的函数释放掉。避开方法:养成良好的编码****惯,在涉及内存代码编写时要谨慎。7、声明和定义的区分?答:声明是仅仅告知编译器,有个某类型的变量会被运用,但是编译器并不会为它安排任何内存。而定义就是安排了内存。8、int(*a[10])(int)表示什么?答:int(*s[10])(int)函数指针数组,每个指针指向一个intfunc(intparam)的函数。9、gdb调试的用法?:––ofile,然后gdbfile运行即可进入GDB调试环境,这时可以设置断点进行跟踪调试例如:breakmain,然后run,接下来next(简称n),回车就干脆默认前一个吩咐,可以打印变量或指针值printi,遇见函数输入step会进入函数执行,否则不进入。10、关键字static的作用是什么?答:关键字static有三个明显的作用:1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在函数体内),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内运用。11、inline与宏的区分答:宏:预处理阶段不经过平安检查干脆替换,不行以对数据成员进行操作。Inline:编译器经过平安检查之后替换函数调用,既提高代码效率,又经过平安检查,而且还可以对数据成员进行操作。12、有关内存的思索题voidGetMemory(char*p)char*GetMemory(void){{:..p=(char*)malloc(100);charp[]="helloworld";}returnp;voidTest(void)}{voidTest(void)char*str=NULL;{GetMemory(str);char*str=NULL;strcpy(str,"helloworld");str=GetMemory();printf(str);printf(str);}}请问运行Test函数会有什么样的结果?请问运行Test函数会有什么样的结果?答:程序崩溃。答:可能是乱码。因为GetMemory并不能传递动态内存,因为GetMemory返回的是指向“栈内存”的Test函数中的str始终都是NULL。指针,该指针的地址不是NULL,但其原现的strcpy(str,"helloworld");将使程序崩内容已经被清除,新内容不行知。溃。voidGetMemory2(char**p,intvoidTest(void)num){{char*str=(char*)malloc(100);*p=(char*)malloc(num);strcpy(str,“hello”);}free(str);voidTest(void)if(str!=NULL){{char*str=NULL;strcpy(str,“world”);GetMemory(&str,100);printf(str);strcpy(str,"hello");}printf(str);}}请问运行Test函数会有什么样的结果?答:篡改动态内存区的内容,后果难以预料,请问运行Test函数会有什么样的结果?特别危急。答:因为free(str);之后,str成为野指针,(1)能够输出helloif(str!=NULL)语句不起作用。(2)“标准”宏,这个宏输入两个参数并返回较小的一个。答案::..#defineMin(X,Y)((X)>(Y)?(Y):(X)),何时须要预编译:答案:1、总是运用不常常改动的大型代码体。2、程序由多个模块组成,全部模块都运用一组标准的包含文件和相同的编译选项。在这种状况下,可以将全部包含文件预编译为一个预编译头。:intmain(){chara;char*str=&a;strcpy(str,"hello");printf(str);return0;}答案:没有为str安排内存空间,将会发生异样问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。?并举出三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的状况下变更。,不运用第三个变量。即a=3,b=5,交换之后:..a=5,b=3;答案:有两种解法,一种用算术算法,一种用^(异或)a=a+b;b=a-b;a=a-b;ora=a^b;//只能对int,char..b=a^b;a=a^b;ora^=b^=a;18、嵌入式系统中常常要用到无限循环,你怎么用C编写死循环?答案:第一方案:while(1){;}其次方案:for(;;){;}第三个方案是用gotoLoop:...gotoLoop;19、用变量a给出下面的定义a)一个整型数(Aninteger)b)一个指向整型数的指针(Apointertoaninteger)c)一个指向指针的的指针,它指向的指针是指向一个整型数(Apointertoapointertoanintege)rd)一个有10个整型数的数组(Anarrayof10integers)e)一个有10个指针的数组,该指针是指向一个整型数的。(Anarrayof10pointerstointegers)f)一个指向有10个整型数数组的指针(Apointertoanarrayof10integers):..g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(Apointertoafunctionthattakesanintegerasanargumentandreturnsaninteger)h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(Anarrayoftenpointerstofunctionsthattakeanintegerargumentandreturnaninteger)答案:a)inta;//Anintegerb)int*a;//Apointertoanintegerc)int**a;//Apointertoapointertoanintegerd)inta[10];//Anarrayof10integerse)int*a[10];//Anarrayof10pointerstointegers等价于int*(a[10]);f)int(*a)[10];//Apointertoanarrayof10integersg)int(*max_function)(inta);//Apointertoafunctionathattakesanintegerargumentandreturnsanintegerh)int(*a[10])(int);//Anarrayof10pointerstofunctionsthattakeanintegerargumentandreturnaninteger20、简述嵌入式Linux系统开发流程。答案:。。。4用户程序的编写和简洁的仿真调试。。。。:..,完成下列任务:(打印HelloWorld!)(声明message函数)(打印Thisisamessage!)参考答案::#include<>#include<>#include<>#include""intmain(intargc,char*argv[]){printf("HelloWorld!\n");message();return0;}:voidmessage(void);:#include<>:..voidmessage(void){printf("Thisisamessage!\n");},他由几个单独的文件组成,而这几个文件又分为包含了其他文件,如下图所示:,,:(1)编写makefile文件,最终的目标文件为hello(交叉编译器为arm-linux-gcc)(2)给出程序编译执行步骤答案:第一步:编写makefile文件hello:-:-c-:-c-::..gcc-c-:-c-:rmhello*.o其次步:#make第三步:执行程序,检测结果。./#include<>#defineLEN5Inta[LEN]={5,4,3,2,1};voidbubble_sort(void){inti,j,flag=1;inttemp;for(i=1;(i<LEN)&&(flag==1);i++){flag=0;flag=1;temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}printf("%d,%d,%d,%d,%d\n",a[0],a[1],a[2],a[3],a[4]);}}//--------Intmain(void){bubble_sort();return0;}:..*strcpy(char*strDest,constchar*strSrc);其中strDest是目的字符串,strSrc是源字符串。1、不调用C++/C的字符串库函数,请编写函数strcpy答案:char*strcpy(char*strDest,constchar*strSrc);{assert((strDest!=NULL)&&(strSrc!=NULL));//2分char*address=strDest;//2分while((*strDest++=*strSrc++)!=‘\0’)//2分NULL;returnaddress;//2分}:一个链表的节点结构typedefstructstNode{intdata;structstNode*next;}Node;已知链表的头结点head,写一个函数把这个链表逆序。答案:Node*InvertList(Node*head){Node*temp=NULL;Node*temp_next=NULL;Node*temp_n_next=NULL;:..temp=head;temp_next=head->next;/*ifheadisnullorthenextnodeofheadisnullthenreturn*/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;returnhead;}

嵌入式Linux面试试题库汇总 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小屁孩
  • 文件大小900 KB
  • 时间2024-04-15