柏楚电子 - 嵌入式开发工程师 - 笔试

❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗

alt

本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。

岗位:嵌入式开发工程师(J10383)

题型:8 道选择题,2 道填空题, 3 道问答题,2 道编程题

1、选择题

1.1

若处理器有 32 位地址,则它的虚拟地址空间为 ==(B)== 字节

  1. A. 2G
  2. B. 4G
  3. C. 100k
  4. D. 640K

解答:

32 位地址能访问 2^32 个不同的地址,2^32=4GB,因此选项 B 正确

1.2

在操作系统中,进程是 (1) 的最小单位,而线程是 (2) 的最小单位 ==(A)==

  1. A. 资源分配,CPU 调度
  2. B. CPU 调度,资源分配
  3. C. 内存管理,文件管理
  4. D. 文件管理,内存管理

1.3

以下程序运行后的输出结果为 ==(D)==

#include <stdio.h>

void fun(const char** p) {
    int i;
    for (i = 0; i < 3; i++)
        printf("%s", p[i]);
}

int main() {
    const char* s[6] = {"ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWX"};
    
    fun(s);
    printf("\n");
    return 0;
}
  1. A. ABC
  2. B. ABCDEFGH
  3. C. AEI
  4. D. ABCDEFGHIJKL

1.4

对于如下 C++ 程序,请问输出结果是 ==(C)==

#include <iostream>

int main() {
    int a = 1, b = 3, c = 2;
    
    while (a < b < c) {
        ++a;
        --b;
        --c;
	}
	
	std::cout << a << " " << b << " " << c << "\n";
    return 0;
}
  1. A. 1 3 2
  2. B. 2 2 1
  3. C. 3 1 0
  4. D. 4 0 -1

解答:

关键通过循环条件判断循环执行了几次
第一次判断循环条件 a < b < c 从左向右依次判断,首先 a < b 满足(a=1,b=3),因此为 1 (true),后面判断 1 < c 仍然满足(c=2),因此循环条件满足进入循环
第二次判断循环条件,首先 a < b 不满足(a=2,b=2),因此为 0 (false),后面判断 0 < c 满足(c=1),因此最终循环条件满足再次进入循环
第三次判断循环条件,首先 a < b 不满足(a=3,b=1),因此为 0 (false),后面判断 0 < c 也不满足(c=0),因此最终不再进入循环,此时 a=3,b=1,c=0;

1.5

若给定如下定义,如果令指针 p 指向 array 数组,那么,*(p+3) 表示的是 ==(C)==

int array[8];
int *p;
  1. A. 元素 a[4] 对应的数据
  2. B. 元素 a[4] 对应的地址
  3. C. 元素 a[3] 对应的数据
  4. D. 元素 a[3] 对应的地址

1.6

【多选】堆和栈的区别包括 ==(ABD)==

  1. A. 栈(stack)是由系统自动分配的。例如,声明函数中一个局部变量 int b;,那么系统自动在栈中为 b 开辟空间。堆(heap)需要程序员自己申请,并在申请时指定大小
  2. B. 堆在操作系统中有一个记录空闲内存地址的链表,当系统收到程序的申请时,系统就会开始遍历该链表,寻找第一个空间大于所申请空间的堆节点,然后将该节点从空闲节点链表中删除,并将该节点的空间分配给程序
  3. C. 堆是向高地址扩展的数据结构,是一块连续的内存区域,栈是向低地址扩展的数据结构,是不连续的内存区域
  4. D. 堆是由 malloc() 等语句分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来很方便。栈由系统自动分配,速度较快,但程序员一般无法控制

解答:

堆栈都是连续的内存区域,但是从堆或栈上申请内存时可能申请的内存间连续,也可能不连续

1.7

关于 virtual void Draw() =0,下面说法正确的是?==(ACD)==

  1. A. 它是纯虚函数
  2. B. 它在定义它的类中必须实现
  3. C. 定义它的类不可实例化
  4. D. 如果一个类要继承一个 ADT 类,必须要实现其中的所有纯虚函数

解答:

C++ 中定义一个纯虚函数时需要使用关键词 virtual 和 =0 对函数修饰,拥有纯虚函数的类称为抽象类,该纯虚函数仅仅提供了一个接口,无需在基类中实现,派生类在继承过程中则必须重新实现该纯虚函数

1.8

有关 Linux 进程和线程的描述,正确的有?==(ABCD)==

  1. A. 在 linux 中,进程比线程安全的原因是进程之间不会共享数据
  2. B. 进程有独立的地址空间,线程没有单独的地址空间(同一进程内的线程共享进程的地址空间)
  3. C. 进程一资源分配的最小单位,线程程序执行的最小单位
  4. D. 进程有独立的地址空间,线程没有单独的地址空间

2、填空题

2.1

有如下类定义。请问在 32 和 64 位操作系统中,sizeof(B) 的值分别为 (1)(2)

class A {
public:
    int fun1() { 
        return _a1;
    }

    virtual void fun2() {}

private:
    int _a1;
    static int _a2;
};

解答:

  1. 8
  2. 16

int _a1; 定义了一个私有成员变量,在 32/64 位操作系统上均占用 4 字节
static int _a2; 定义了一个静态成员变量,不属于某个对象,不计入对象大小
virtual void fun2() 定义了一个虚函数,虚函数会引入虚函数表指针,指针在 32/64 位操作系统上分别占用 4/8 个字节
考虑字节对齐,在 32 位系统上占 8 字节,在 64 位系统上占 16 字节

2.2

查看下列代码,在大端模式下,请问 result 的值是多少 (1)

unsigned int val[2];
unsigned short result;

val[0] = 0x12345678;
val[1] = 0xAA5555AA;

unsigned short *pVal = (unsigned short *)val;
pVal = pVa

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。

全部评论

相关推荐

20单选&nbsp;&nbsp;+&nbsp;&nbsp;两道编程涉及的知识还挺多的C语言、8051、stm32、各种协议、PCIE、linux、RTOS(freertos/μC/OS-II)、驱动-网络设备驱动,linux开发相关知识点1、can中crc校验不包含哪部分?&nbsp;&nbsp;&nbsp;&nbsp;ACK2、8051&nbsp;和&nbsp;stm32&nbsp;单片机的位数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;323、8051&nbsp;支持几个中断,几个优先级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;.2&nbsp;4.Linux文件描述符文件描述符是非负整数文件描述符是&nbsp;Linux&nbsp;系统中对文件、管道、套接字等&nbsp;I/O&nbsp;资源的抽象通过文件描述符,程序可以对文件进行读写操作。5、C语言文件指针,fopen&nbsp;参数modefopen返回指向文件结构体的指针,参数mode是rb+&nbsp;以二进制的方式打开文件进行读写操作c语言C语言可以处理的大文件类型主要包括文本文件和二进制文件。&nbsp;&nbsp;数据流文件?6、struct&nbsp;内存对齐&nbsp;7、freertos&nbsp;切换任务任务调度,中断,发送任务通知?8.linux中一些函数exec()函数、kill()函数9.kmalloc,flags参数的设置,GFP_KERNEl的效果void&nbsp;*kmalloc(size_t&nbsp;size,&nbsp;gfp_t&nbsp;flags);10.&nbsp;μC/OS-II系统相关,初始化相关&nbsp;μC/OS-II&nbsp;可以中断嵌套吗?osinit()&nbsp;作用,会做什么11.PCIE相关的12&nbsp;网络设备驱动。。。。。。。。#牛客AI配图神器#等等。。。。编程题目1、调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。牛客https://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f5932.f(a,b),a是b的倍数,就f(a,b)为1,否则为0求给定范围a在&nbsp;&nbsp;l1&nbsp;-&nbsp;l2&nbsp;&nbsp;b在&nbsp;r1&nbsp;-r2&nbsp;&nbsp;&nbsp;b的范围更大,也就是r2可能的范围更大r2&lt;10^9求值两个区间范围的组合中&nbsp;f(a,b)的值。有第二次笔试机会可以申请#笔试##技术岗笔试题求解#
查看14道真题和解析 投递美团等公司10个岗位 笔试
点赞 评论 收藏
分享
评论
1
7
分享

创作者周榜

更多
牛客网
牛客企业服务