嵌入式linux 工程师笔试题,嵌入式工程师笔试题目整理-for CVTE

试题取之于网络,用之于网络。深刻的理解这些面点还是很有必要的,所以在此总结记录,相信会用到的。

CVTE嵌入式工程师笔试与面试的流程

1.说出你知道的文件系统,至少3种。

FAT16 文件系统.FAT32 文件系统,NTFS 文件系统,CDFS 文件系统,Linux 文件系统.RAW 文件系统.UNIX 文件系统.JFS 文件系统

Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等

详情参考此blog

2.可重入函数的条件有哪些?

1)不要使用全局变量。

2)在和硬件发生交互的时候,关闭硬件中断,完成交互记得打开中断,在有些系列上,这叫做“进入/ 退出核心”。

3)不能调用其它任何不可重入的函数。

4)谨慎使用堆栈。

详情参考此blog,也可以参考这个blog

3.C语言中如何防止头文件的重复定义。

#ifndef XXX

#define XXX

#include

#endif

详情参考此blog

4.N个顶点的强连通图,至少有多少条边?

至少有N条边

5.虚拟内存的概念

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。虚拟内存技术主要有以下优点:虚拟内存可以大于物理内存,一般为物理内存的1.5倍到3倍,从而可以运行比物理内存大的程序,进而使得更多的程序可以同时执行,提高了多道程序的程度,增加了CPU的使用率,并且使得进程之间的独立性得到了更好的体现。

详情参考此blog

6.中断的性质:执行时间,能否延时等?

1)中断与异常的区别:

中断的描述主体是外设,而异常的描述主体是CPU。

中断是一个过程,是CPU在执行当前的程序的过程中因硬件或软件的原因插入了另一段程序运行的过程。

异常主要是从CPU角度,接受信号的。

中断主要是从外设角度,向CPU发送信号。

http://www.sohu.com/a/131476363_505803

中断执行时间:从发出中断请求到进入中断处理所用的时间。

通常在中断子程序中是不调用延时子程序的,这样会增加中断处理时间,如果有其它低级中断了,就会延误响应中断了。CPU利用率降低,代码执行周期较长。

详情参考此blog。

7.如果一个完全二叉树的结点总数为768个,求叶子结点的个数

由二叉树的性质知:n0=n2+1,将之带入768=n0+n1+n2中得:768=n1+2n2+1,因为完全二叉树度为1的结点个数要么为0,要么为1,那么就把n1=0或者1都代入公式中,很容易发现n1=1才符合条件。所以算出来n2=383,所以叶子结点个数n0=n2+1=384。

总结规律:如果一棵完全二叉树的结点总数为n,那么叶子结点等于n/2(当n为偶数时)或者(n+1)/2(当n为奇数时)

详情请参考此blog。

8.C语言的位操作

https://blog.csdn.net/full_speed_turbo/article/details/41114339

9.Linux文件权限8个符号代表的含义

01.D 02.B 03.C 04.C 05.B 06.C 07.B 08.C 09.A 10.B 11.A 12.C 13.C 14.C 15.B 16.A 17.D 18.D 19.B 20.B

21.C 22.B 23.C 24.C 25.B 26.D 27.A 28.B 29.B 30.A 31.A 32.C 33.A 34.D 35.D 36.B 37.D 38.A 39.A 40.D

41.B 42.D 43.B 44.D 45.B 46.B 47.A 48.B 49.A 50.C 51.C 52.C 53.D 54.A 55.A 56.B 57.D 58.A 59.D 60.D

61.B 62.A 63.B 64.C 65.D 66.B 67.D 68.C 69.A 70.A 71.A 72.C 73.D 74.A 75.A 76.D 77.D 78.B 79.B 80.C

81.D 82.A 83.B 84.B 85.D 86.B 87.A 88.C 89.B 90.A 91.D 92.C 93.D 94.A 95.B 96.A 97.C 98.A 99.B 100.B

Linux题目的答案为上,题目在此链接

8. Proc文件系统、

1)proc目录最初只是存放进程相关的信息,但是现在它还存放系统的状态信息和配置信息。

例如

cat /proc/interrupts //查看系统中断的相关信息

cat /proc/devices //查看系统中的设备信息

cat /proc/kallsyms |grep super_blocks //查看超级块的信息

cat /proc/meminfo //查看内存的使用情况

在/proc文件下使用ls得到可以得到很多以数字命名的目录,这些数字代表的就是相应进程的pid。

进入一个目录,使用cat maps 可以查看相应进程的地址空间。

/proc文件系统是内核的一个映像,只存在于内存中,不占用磁盘空间。

因此,它可以作为内核和用户交互的接口。一方面,用户可以从/proc文件系统中读取内核的信息;另一方面,内核可以从/proc文件系统中获取用户的输入,改变系统的状态和配置。

2)通过/proc实现用户态和内核态的通信

其他详情请参考此blog

9.线程与进程区别;

一、关于进程和线程,首先从定义上理解就有所不同

1、进程是什么?

是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序。

2、线程又是什么?

线程进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源。 在运行时,只是暂用一些计数器、寄存器和栈 。

二、他们之间的关系

1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程(通常说的主线程)。

2、资源分配给进程,同一进程的所有线程共享该进程的所有资源。

3、线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

4、处理机分给线程,即真正在处理机上运行的是线程。

5、线程是指进程内的一个执行单元,也是进程内的可调度实体。

三、从三个角度来剖析二者之间的区别

1、调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。

2、并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行。

3、拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。

10.ICMP报文都包括哪些;

ICMP类型报文总的来说分为2类:

(1)差错报告报文

类型值为3时:表示终点不可达

类型值为4时:表示源点抑制

类型值为5时:表示改变路由(Redirect)

类型值为11时:表示超时

类型值为12时:表示参数问题

(2)询问报文

类型值为8或者0时:表示回送(Echo)请求或应答

类型值为13或14时:表示时间戳(Timestamp)请求或应答

详情参考此blog

11.下列排序算法中,空间复杂度最大的是哪个

下列四种排序中()的空间复杂度最大(A)

A 快速排序

B 冒泡排序

C 希尔排序

D 堆

5751339e978cad885946745123bb077b.png

详情参考此blog

12.this指针的性质;

this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向正在被该成员函数操作的那个对象。

当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用

this 指针。

当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。

this 指针被隐含地声明为: ClassName const this,这意味着不能给 this 指针赋值;在 ClassName类的 const 成员函数中,this 指针的类型为:const ClassName const,这说明不能对 this 指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作);

this 并不是一个常规变量,而是个右值,所以不能取得 this 的地址(不能 &this)。

在以下场景中,经常需要显式引用 this 指针:

为实现对象的链式引用;

为避免对同一对象进行赋值操作;

在实现一些数据结构时,如 list。

详情请参考此网站

13.函数调用的内存分配;栈空间;静态局部变量性质

参考此blog

14.无线和有线的OSI模型;

2f4502964874d748ab3d9f49b3660b86.png

TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。

TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。

TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。

相关知识点参考此网站还可以参考这个网站。

15. Linux语法命令,grep -i 的效果

参考此网站

16.栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此,()必须用栈。

A.将一个元素序列进行逆序

B.实现函数或过程的递归调用及返回处理时

C.可执行程序的装入与卸载

D.链表节点的申请和释放

KEY:B

解答:栈是一种后进先出的数据结构。将一个元素序列逆置时,可以使用栈也可以不用。链表节点的申请和释放次序与应用要求相关,不存在“先申请后释放”的操作要求。可执行程序的装入与卸载,也不存在“后进先出”的操作要求。对于函数的递归调用与返回,一定是后被调用执行的先返回。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值