9.12海康嵌入式软件笔试
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
《嵌入式软件笔试-2024年真题汇总》:https://blog.nowcoder.net/zhuanlan/04yYym
选择题
以下读取速度最快的介质是 () SSD NAND FLASH NOR FLASH DDR
有如下代码int a =4;int b = 9;那么表达式 a >=(b>8?: sizeof(a=b+1),a)的返回类型、返回值、以及a的值各自是多少? 整型;1;a=4 布尔;1;a=5 布尔; 0;a=10 整型: 0; a=10
ARM架构的嵌入式Linux系统, U-Boo引l导加载程序 LILO引导加载程序 RedBoot引l导加载程序 GRUB引导加载程序
64位系统中long和int类型字节长度为( ) 48 88 84 44
下面代码输入结果:
#define M 3 #define N M+2 #define SUM(M,N)(M+1)*N/2 + N #define DEL(M,N)(N+1)*N/2 -2*M int testfunc(int flag){ int ret = -1: switch(flag){ case 0: ret += SUM(M,N); break; case 1: ret += DEL(M,N); default: ret += SUM(M,N); break; } return ret; } void main(void){ int ret1 = testfunc(0); int ret2 = testfunc(1); printf("%d,%d r n", ret1, ret2); }
MMU的作用主要是() 内存分配 加快存取速度 地址转换 安全保密
以下关于内存以及变量所在位置的,描述错误的是: malloc 在堆上内分配内存 全局变量以及静态变量存在于堆中 运行时的局部变量存在于栈内中 mmap在堆上内分配内存
下列有关TCP的描述错误的是 文件传输协议FTP是基于TCP协议进行工作的 TCP是一种面向连接的协议,在网络应用程序间建立虚拟连接 在TCP连接断开的过程中,当客户端收到服务端的FIN报文后,经过1MSL(报文最大生存时间)时间后自动进入CLOSED状态 TCP为IP网络中的可靠通信提供错误检测和故障恢复功能
HTTP协议中,表示成功的状态码是 () 1 200 400 0
关于malloc和free的说法下面哪项是错误的? malloc分配已字节为单位 如果要把返回一个int*p的内存分配,需要对malloc的返回值做强制转换 malloc和free在程序中一定要成对出现 int*p = NULLfree(p)
以下关于线程同步的错误描述为 只有在多线程下才需要考虑线程同步 信号量和互斥锁是两种常用的线程同步控制方式 就算每个线程使用的资源是其他线程不会读取或修改的,仍必须做线程同步 线程同步是指多个线程需要访问并修改某资源时,采用一系列的机制以保证同时最多只能有一个线程访问并修改该资源
下列关于linux系统目录描述有误的是 () /tmp目录:用于存放用户程序运行时产生的一些临时文件 /usr目录:user的缩写,用于存放用户数据 /dev目录: device的缩写,用于存放外部设备 /etc目录:用于存放系统配置文件和目录
以下关于const int* i; 的说法,正确的是 () 指针不可以修改,指针指向的整型数可以修改 指针可以修改,指针指向的整型数可以修改; 指针不可以修改,指针指向的整型数不能修改; 指针可以修改,指针指向的整型数不可以修改
当模块中包含复杂的条件组合,只有 ()能够清晰地表达出各种动作之间的对应关系 判定表和判定树 盒图 关系图 流程图
就排序算法所用的辅助空间而言,堆排序,快速排序,归并排序的关系是 堆排序<快速排序<归并排序 堆排序<归并排序<快速排序 堆排序>归并排序>快速排序 堆排序>快速排序>归并排序
多选题
以下哪几种属于Linux中的互斥方式? 自旋锁 原子操作 信号量 中断屏蔽
关于软件设计和实现的描述,,正确的是 () 实现是将设计转变为程序的过程 我们要在设计的过程中考虑到实现的可行性 要充分考虑软件的复用性。 对不同组件的接口描述是设计过程的重要部分。
程序中,语句构造应当简单直接,为提高效率,下列表述正确的有 () 尽量防止使用逻辑“非“运算 使用括号是逻辑表达式的运算次序清晰直观 为节省空间把多个语句写在同一行 尽量防止使用复杂的组合表达式
循环需考虑的细节,下列说法正确的是( 用注释来阐明操作意图 把所有的退出条件放在一处 可从多个位置进入循环,复用代码提高效率 可直接修改下标值的方式使循环终止
以下描述正确的有() int*const a;a是一个指向int型的指针,指a的值可以被修改,指针a指向的变量不可以修改 void*(*(*fp1)(nt)[10:函数的返回值是一个指针,这个指针指向一个数组,这个数组有10个元素,每个元素是一个void*型指针; const int *a;a是一个指向int型的指针,指a的值不能被修改,指a指向的变量可以修改 定义const char *GetChar(void)0;可以这样定义返回值const char *ch= GetChar0;
简答题
用C++写个程序,如何判定一个操作系统是16位还是32位的? 不能用sizeof0函数
请简述Linux kmalloc、vmalloc、malloc函数的区别
编程题
通过函数递归方式将“hello”倒序打印
#海康##嵌入式##软件##笔试#