版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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”;B、char a=”
2、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、<CTRL>+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. 局域网的网络地址/24,局域网络连接其它网络的网关地址是。主机0访问/24网络时,其路由设置正确的是 B 。A、route add net gw netmask metric 1B、route add net gw netmask metric 1C、route add net gw 172.16.1
5、.1 netmask metric 1D、route add default netmask 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
8、10 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+iInp
10、utNum; Print(“n iCount =%d”,icount+iInputNum);for(i=1;i<3;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<4;i+=2) Printf(“%d”,pi);A.5 7B.5 9C.1 3D.1 529. 以下语句中,能够判断uiNum(unsigned int)可以
11、被8整除的有( ACD)A、If (uiNum / 8)*8)= uiNum)B、if (uiNum % 8)= 1)C、if (uiNum &×7) =)D、if (uiNum >> 3) << 3 )=uiNum )30. 关于以下代码,描述正确的有(ABCD)代码: const char * pcStr=”abcdefg”;char *pcStr=”abcdefg”代码:void string_sizeof(char szStr110) char szStr210=”12345”;printf(“%u,”, sizeof(szStr1);prin
12、tf(“%urn,”, sizeof(szStr2);return;int main( ) string_sizeof(”12345”);代码pcStr3=”a”;代码unsigned int uiA=100;printf(“%srn,”, uiA);return 0;A、代码,const修饰符表明pcStr指针不能再次被赋值,也就是说不能指向其他缓冲区.B、代码,程序的运行结果是“4,10”.C、代码,对pcStr3的赋值会导致程序访问非法地址.D、代码,打印unsigned int时不应该使用“%s”,会导致程序访问非法地址。31. 关于结构的大小,以下描述正确的有(AB)struct A
13、_S struct B_S unsigned short us1; unsigned char uc1; unsigned short us2; unsigned int uc2; unsigned short us3; unsigned short us3; ;union C_U union D_U unsigned int ui1 unsigned char uc2;unsigned char uc2; unsigned short us3;unsigned short us3; unsigned int ui1; ;A、结构struct A_S的大小是6B、结构struct B_S的大小
14、是12C、联合union C_U的大小是12D、联合union D_U的大小是1232.有如下链表和节点D,将D替换B,并删除B,以下代码正确的有( AD )单链表:ACBAApstNext pstNext PstA pstB D partD 双链表:pstNextCBA pstNext pstPre pstPre PstA pstBD pstD struct SLL struct SLL *pstNext;/* 下一结点*/ ; struct DLL struct DLL*pstNext;/* 下一结点*/struct DLL*pstPrev;/* 前一结点*/; A.pstB=pstB-&
15、gt;patNext;pstD->pstNext=pstB;pstA->pstNext=pstD;free(pstB);B.pstA->pstNext=pstD;pstD->pstNext=pstA->pstNext-pstNext;free(pstB);CpstA->pstNext-pstNext-pstpre=pstD;pstD->pstNext=pstA->pstNext->pstNext;pstD->pstpre=pstB->pstpre;pstA->pstNext=pstB->pstNext-pstpre;
16、free(pstB);D.pstD->pstNext=pstB->pstNext;pstD->pstNext->pstpre=pstD;pstD->pstpre=pstA;pstA->pstNext=pstD;free(pstB);33实现从IP地址到以太网MAC地址转换的命令为: C 。A、ping B、ifconfig C、arp D、traceroute34在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。A、<a> B、<o> C、<I> D、A35用命令ls -al显示出文件ff的描述如下所示
17、,由此可知文件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、网络 B、MAC C、TCP D、IP38为了保证在启动服务器时自动启动DHCP进程,应将 A文件中的dhcpd=no改为dhcpd=yes。A、rc.inet1 B、lilo.conf C、inetd.conf D、
18、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 B、16 C、15 D、1842. 某32位系统下, C程序,请计算sizeof的值(B)char str = “”char *p = str ;int n = 10;请计算sizeof ( p ) =()?A
19、、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在给定文件中查找与设定条件相符字符串的命令为: A 。A、grep
20、 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 手工态、自动态和自由态50crontab文件由六
21、个域组成,每个域之间用空格分割,其排列如下: 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、栈和队列有何区别?答:1、队列先进先出,
22、栈先进后出 2、队列一口插入一口删除,而栈都是一个口 3、遍历数据的速度不同,栈需要开辟空间来遍历数据,而队列只需要指针完成。3、TCP和UDP之间的区别?答:TCP:传输控制协议,是一个基于连接的可靠的字节流服务,双方交换数据是必须先建立连接,才能传输数据。超时重发,数据校验,丢弃重复数据,保证数据从一端传到另一端。 UDP:用户数据报协议,是一个简单的面向数据报的运输层协议,不可靠,效率高。4、进程和线程的区别?答:1、线程是组成进程的基本单位。 2、进程有独立的地址空间,线程也有一些自己的堆栈和局部变量,但是线程没有独立地址空间,一个进程死掉,整个程序就死掉5、进程间通信的方式都有哪些,
23、有何区别?答:1、管道,socket,共享内存,消息队列,信号量级 2、共享内存:效率非常高6、哪些情况会导致内存泄露?如何避免内存泄露?答:1、堆内存泄露,一般是指malloc,realloc,New,而未对应的用free或delete释放。2、系统资源泄漏,指程序使用系统分配的资源或函数,如socket,handle等,而未用相应的函数释放掉。避免方法:养成良好的编码习惯,在涉及内存代码编写时要谨慎。7、声明和定义的区别?答:声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。8、int(*a10)(int)表示什么?答:int (*s1
24、0)(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)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在
25、函数体内),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。11、inline与宏的区别答:宏:预处理阶段不经过安全检查直接替换,不可以对数据成员进行操作。 Inline:编译器经过安全检查之后替换函数调用,既提高代码效率,又经过安全检查,而且还可以对数据成员进行操作。12、有关内存的思考题void GetMemory(char *p)p = (char *)malloc(100);void Test(void)char
26、*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(voi
27、d)char *str = NULL;str = GetMemory(); printf(str); 请问运行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&q
28、uot;); printf(str); 请问运行Test函数会有什么样的结果?答:(1)能够输出hello(2)内存泄漏 void Test(void)char *str = (char *) malloc(100); strcpy(str, “hello”); free(str); if(str != NULL
29、) strcpy(str, “world”);printf(str);请问运行Test函数会有什么样的结果?答:篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,str成为野指针,if(str != NULL)语句不起作用。 13. 写一个“标准”宏,这个宏输入两个参数并返回较小的一个。答案: #define Min(X, Y) (X)>(Y)?(Y):(X) 14. 什么是预编译,何时需要预编译: 答案
30、: 、总是使用不经常改动的大型代码体。 、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 15. 请问以下代码有什么问题: int main() char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0; 答案:没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。16. 关键字volatile有什么含意?并举出
31、三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。 17. 交换两个变量的值,不使用第三个变量。即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)
32、 一个整型数(An integer) b)一个指向整型数的指针( A pointer to an integer) c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)r d)一个有10个整型数的数组( An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers) f) 一个指向有10个整型数数组的指针( A pointer to an array of 10
33、integers) g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes 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 integer
34、60;b) int *a; / A pointer to an integer c) int *a; / A pointer to a pointer to an integer d) int 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 integers g) int (*max_function)(int a); / A
35、 pointer to a function a that takes an integer argument and returns an integerh) int (*a10)(int); / An array of 10 pointers to functions that take an integer argument and return an integer20、 简述嵌入式Linux系统开发流程。答案:1.操作系统的裁剪。2.嵌入式操作系统内核的配置和编译。3.文件系统的建立。4用户程序的编写和简单的仿真调试。5.整体系统的目标板仿真调试。6.系统下载和脱机运行。三编程题。1
36、. 在Linux操作系统下,完成下列任务:编程实现以下功能²主程序hello.c(打印Hello World!)²主程序通过头文件hello.h调用message函数²头文件hello.h(声明message函数)² message函数由message.c定义(打印This is a message!)参考答案:hello.c:# include <stdio.h># include <stdlib.h># include <string.h># include "head.h"int main (
37、int argc,char *argv) printf("Hello World!n"); message(); return 0; head.h:void message(void);message.c:# include <stdio.h>void message (void) printf("This is a message!n");2. 假定你在目录/home/arm下有一个C程序,他由几个单独的文件组成,而这几个文件又分为包含了其他文件,如下图所示:文件包含文件文件包含文件main.cstdio.h, table.hlist.cl
38、ist.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.c table.h symbol.h list.h gcc -c -o main.o main.clist.o: li
39、st.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<stdio.h>#define LEN 5Int aLEN=5,4,3,2,1;void bubble_sort(void)int i,j,flag=1;int temp;for( i=1; (i<LEN)&& (flag=1); i+)flag=0;flag=1;temp=aj;aj=aj+1;aj+1=temp;printf("%d,%d,%d,%d,%dn",a0,a1,a2,a3,a4);/-Int main(void)bubble_sort();return0;4. 编写str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂区拍摄合同范本模板
- 伸缩雨棚买卖合同范本
- 厂家授权合作合同范本
- 合同延期付款补充协议
- 农村装饰装修合同范本
- 公司更名合同更名协议
- 2026年一级注册建筑师之建筑结构考试题库300道含答案(满分必刷)
- 一级2026年注册建筑师之设计前期与场地设计考试题库300道及答案【历年真题】
- 公司法律顾问合同范本
- 修补地砖施工合同范本
- 医学伦理与职业操守
- 华为体验店开业方案
- 《风力发电技术概论》课件
- 城市设计实践类型 城市设计实践教程电子书
- 电气设备空载试运行及负荷试运行记录
- 全等三角形-倍长中线法
- 心肺复苏与电除颤指南课件
- GB/T 9162-2001关节轴承推力关节轴承
- 建筑机电安装工程标准化施工做法图集课件
- DB4401-T 6-2018园林绿地养护技术规范-(高清现行)
- 可下载打印的公司章程
评论
0/150
提交评论