海康威视嵌入式软件开发工程师(BSP)笔试题(附超详细解答)

上传人:suij****uang 文档编号:209247819 上传时间:2023-05-13 格式:DOCX 页数:14 大小:43.86KB
收藏 版权申诉 举报 下载
海康威视嵌入式软件开发工程师(BSP)笔试题(附超详细解答)_第1页
第1页 / 共14页
海康威视嵌入式软件开发工程师(BSP)笔试题(附超详细解答)_第2页
第2页 / 共14页
海康威视嵌入式软件开发工程师(BSP)笔试题(附超详细解答)_第3页
第3页 / 共14页
资源描述:

《海康威视嵌入式软件开发工程师(BSP)笔试题(附超详细解答)》由会员分享,可在线阅读,更多相关《海康威视嵌入式软件开发工程师(BSP)笔试题(附超详细解答)(14页珍藏版)》请在装配图网上搜索。

1、1、若有8个待排序元素,采用冒泡排序和插入排序最大时 间复杂度分别是()。64、2464、6416、6416、16KEY : B解答:9大内部排序的时间复杂度和空间复杂度如下表所示:九大内部排序分类方法时间复杂度空间复杂度稳定性最好最坏平均交换排序O(n)or )2or )o(i)稳定交换排序冒泡排序O(n)or)or)o(1)稳定快速排序O()or)o(wo(Vj不稳定插入排序直接插入排序O(n)or)or )o(1)稳定希尔排序or)or )o(1)不稳定选择排序简单选择排序2or )or )2or )o(1)不稳定堆排序)o(w)o(1)不稳定其他归并排序O(ZJ)o( J W)o(ZJ

2、)o(n)稳定计数排序O(d(r+n)o(d(r+n)o(d(r+n)o(r)稳定2、下面程序中b的值是()。1. int a15 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ;2. int *p = & a5;3. int b = p7;14131112KEY : B3、下列代码中数组data最终的数据是哪个()。1. #define MAX_DATA_SIZE (10)2.2. int main()3. 4. unsigned int i = 0;5. unsigned char dataMAX_DATA_SIZE = 1,2,3,4,5,6,7,8,9,0

3、 ;7.6. memcpy(&data2, data, MAX_DATA_SIZE / 2);9.7. return 0;8. 123456789012121218901212345890其他结果都不对KEY : D解答:由于本题中data数组里直接放的是数字,直接强制转化为char类型,按照ASCII码进行查询,显然不会是这些数字了。也就是说,如果改成以下的定义:unsigned char dataMAX_DATA_SIZE= 1,2,3,4,5,6,7,8,9,0 ; 那么答案就是C 了。4、下面哪个命令用来卸载一个内核模块?modprobedelmodunmodrmmodKEY : D5

4、、使用快速排序对n个数进行排序,其在最佳情况、平均 情况、最差情况下的时间复杂度分别是()。n、nlogn、nlognnlogn、nlogn、n2nlogn、nlogn、nlognn、nlogn、n2KEY : B6、关于互斥锁的如下表述错误的是()。互斥锁的加锁和解锁必须由同一线程分别对应使用互斥锁只能为0/1互斥锁的解锁过程不需要关心顺序,只需要成对使用即可互斥锁用于线程的互斥KEY : C解答:互斥量和信号量的区别:互斥用于线程的互斥,信号量用于线程的同步。这是互斥和信号量的根本 区别,也就是互斥和同步之间的区别互斥量值只能为0/1,信号量值可以为非负整数。也就是说,一个互斥量只能 用于

5、一个资源的互斥访问,它不能实现多个资源的多线程互斥问题。信号量可 以实现多个同类资源的多线程互斥和同步。当信号量为单值信号量是,也可以 完成一个资源的互斥访问;互斥的加锁和解锁必须由同一线程分别对应使用,信量可以由一个线程释 放,另一个线程得到。这里区分一下互斥和同步:互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它 性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的;同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源 的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的 情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

6、参考文章:线程同步(互斥锁与信号量的作用与区别)7、Linux在某目录下查找某字符串通常如下哪个指令?findgrepcat其他都不对KEY : A解答:Linux的find命令用来在指定目录下查找文件,可以使用-name选项来完 成:/不忽略大小写/忽略大小写1. find /home -name *.txt2. find /home -iname *.txtsaffl0 - Amy职旺女回一EgSBfflr旧曇蛊一nnDKK( ) s 舊 nd。專帐Q韻fflKIIK 6Q - Amy朵叵吐w叵鱼悝理ii 08ffi少KEY - inr+main()swi-tch(i)宀case9-i+j

7、10H.+-11H.+- de-faulr+H.+jcasecase10 12prinr+f ( = resulr+H 贰 dn=i)13二14KEY - B12 a .iHa2=3ll(012)(345)=iHa2=3ll亠012 丈345三iHa2=3ll亠p二P3丈 4cnmiH2=31101234*KEY - B13、下面程序的输出值,正确的是()。1.2.3.4.5.6.7.8.9.#define CALC(x,y) x*y+xintmain()int a = CALC(2 * 3, 3 + 2); printf(result= %dn, a);return 0;26302436KE

8、Y:下面程序的输出值,正确的是()。1.voidswap(int *a,int *b) 2.int *t;3.t = a;4.a = b;5.b = t;6.7.8.intmain()9.10.int x = 1,y = 2;11.int *p = &x:,*q = &y;12.swap(p, q);13.printf(%d%dn, *p,14.15.return 0;16.*q);m - Amy卜99 寸oocmlxo6卜99 寸oocmlxo0卜99 寸oocmlxo代99 寸oocmlxoQS34(*4UH) h dJS34* 4uhzH 80X00X0 r 90X0 “S0X0 r 寸

9、 0x0m0x0 r 00X0 J0X0 ) H8vlell。 HZ 兪WJWSKsEdf)(q*(03rxoa)deMS匸M qs H roF 4uh4uhre* 4uH)deMS(O3rxoa)deMSPHO16、在C语言程序中,下面程序运行后,n的值是多少?1. int n = 0;2. int f = 17;3. n = 4 * f % 3 + 1;3920KEY : A17、下面那个操作可以将flag的bit2(假定bit31.0 对应flag的32位)置0?flag|=4flagA=4flag&=4flag|=4KEY : C18、下面程序的运行结果为?1.#define TEST

10、(a,b) a*b2.3.intmain()4.5.int a = TEST(1 + 2, 3);6.printf(result= %dn, a7.8.return 0;9.9KEY : C19、对于堆、栈、队列描述错误的是()。队列空间缓冲由进程申请,栈的空间缓冲由OS分配堆总是一棵完全二叉树堆的数据类型和队列相似队列先进先出,栈后进先出KEY : B20、以下对字符数组test赋值方式错误的是()。char test1O; strcpy(test,”test”);char test10; test=test;char test=t,e,s,t;char test1O=t,e,s,t;KEY

11、 : Btasklet工作队列软中断双向链表KEY : ABC解答:上半部是不能中断的,仅仅是响应中断;下半部是可以中断的。对于适时要 求高的,必须放在上半部。下半部的实现主要是通过软中断tasklet工作队列 来实现的。上半部的功能是响应中断。当中断发生时,它就把设备驱动程序中中断处理例程的 下半部挂到设备的下半部执行队列中去,然后继续等待新的中断到来。这样一来, 上半部的执行速度就会很快,它就可以接受更多它负责的设备所产生的中断了。上 半部之所以快,是因为它是完全屏蔽中断的,如果它没有执行完,其他中断就不能 及时地处理,只能等到这个中断处理程序执行完毕以后。所以要尽可能多的对设备 产生的中

12、断进行服务和处理,中断处理程序就一定要快。下半部的功能是处理比较复杂的过程。下半部和上半部最大的区别是可中断,而上 半部却不可中断。下半部几乎完成了中断处理程序所有的事情,因为上半部只是将 下半部排到了它们所负责的设备中断的处理队列中去,然后就不做其它的处理了。 下半部所负责的工作一般是查看设备以获得产生中断的事件信息,并根据这些信息 (般通过读设备上的寄存器得来)进行相应的处理。下半部是可中断的,所以在 运行期间,如果其它设备产生了中断,这个下半部可以暂时的中断掉,等到那个设 备的上半部运行完了,再回头运行这个下半部。下面对实现中断下半部工作的3种机制进行总结,便于在实际使用中决定使用哪 种

13、机制:中断下半部下半部机制上下文复杂度执行性能顺序执行软中断中断高(需要自己确保软中断的执行顺序及锁机制)好(全部自己实现,便于调优)没有tasklet中断中(提供了简单的接口来使用软中断)中同类型不工作队列进程低(在进程上下文中运行,与写用户程序差不多)差没有(和参考文章:如何理解中断的上半部和下半部。22、有函数funO定义如下,在main函数调用fun函数执 行过程中,使用了哪些函数参数传递方式?1. int fun(int a, short *ptr, int &c)2. .3. 数组传递指针传递引用传递值传递KEY : BC23、关于链表,描述正确的选项有().在运行时可以动态添加物

14、理空间不连续,空间开销更大查找元素不需要顺序查找可在任意节点位置插入元素KEY : ABD24、对运算符优先级的判断,正确的是()。取余运算符加运算符+逻辑与运算符&赋值运算符=数组下标 自增运算符+左移运算符VV大于运算符KEY : ABCD25、能在Linux内核态执行的是()。缺页中断。 qodpoLUttuspoiud p -略皿M期g 妲g曲W伺為。乂 EOTWE、IhwfK略皿回甲ttMm POESU 一抵汕、 qodpolu Mm* POESU一、n。籤叵糅理耿窿摄K-POESU 一E-g能氷糅理窣細侏廿反(qq.)dP.SQnpollv - lueun 芟$吕011|5=自眠卩

15、、能氷糅理gE2PIP0LU peo 一Mm qodpoLU Hhtt命凶、空粼 poiusu 一 启qodpoLU - So Essisss sssi -CM)osswn、OOOE 启 POESU二二 ESHmsKwm。wsgw fifr&sfrf fr - sQm - Amymse廿曲5解答:Linux内核的五大模块:进程调度模块、内存管理模块、文件系统模块、进 程间通信模块、网络接口模块。进程调度模块:用来负责控制进程对CPU资源的使用。所采取的调度策略是 各进程能够公平合理地访问CPU,同时保证内核能及时地执行硬件操作;内存管理模块:用于确保所有进程能够安全地共享机器主内存区,同时,内存 管理模块还支持虚拟内存管理方式,使得Linux支持进程使用比实际内存空间 更多的内存容量。并可以利用文件系统,对暂时不用的内存数据块交换到外部 存储设备上去,当需要时再交换回来;文件系统模块:用于支持对外部设备的驱动和存储。虚拟文件系统模块通过向 所有的外部存储设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细 节。从而提供并支持与其它操作系统兼容的多种文件系统格式;进程间通信模块:用于支持多种进程间的信息交换方式;网络接口模块:提供对多种网络通信标准的访问并支持许多网络硬件。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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