itc - 嵌入式软件 - 笔试
本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。
岗位:嵌入式工程师
题型:6 道选择题,5 道简答题,5 道逻辑题(选答 4 道),5 道编程题
1、选择题
1.1
1.2
关于 group by
子句的作用描述正确的是? ==(ABC)==
- 可用于 avg
- 可用于 having 子句
- 可用于 sum
- 可用于过滤数据
解答:
参考 关于group by子句的作用描述正确的是? 文章链接
1.3
在 Linux 内核中,以下哪些数据结构用于在不同进程之间共享数据? ==(AC)==
- mmap_region
- wait_queue_head_t
- file
- semaphore
解答(存疑):
共享内存可以用于不同进程间共享数据,选项 A 正确
等待队列是一种进程间同步的机制,不能在不同进程间共享数据,选项 B 错误
文件是不同进程之间共享数据的方式之一,选项 C 正确
信号量也是一种进程间同步的机制,选项 D 错误
1.4
以下说法错误的是 ==(C)==
- 可以通过全局变量在不同进程间传递数据
- 多个进程操作同一个文件时,应该要考虑到文件的一致性问题
- 一个进程可以访问到所有物理内存空间
- 可通过文件在不同进程间进行数据传递和共享
解答:
每个进程都有自己的虚拟地址空间,进程不能直接访问所有物理内存,因此选项 C 错误
1.5
如下 const
哪些是错误的?==(ACD)==
const char* func(); char *p = func();
int* const p = &a; *p = 100;
const int *p = &a; *p = 100;
int func(int a) const {m_a = a;};
void func(const int a){int b = a;};
解答:
选项 A 不能使用
const char*
初始化char*
类型的局部变量p
,❌ 选项 B 定义了一个指针常量p
,指针常量不能修改地址,但可以修改指向地址的值,✅ 选项 C 定义了一个常量指针p
,常量指针指向的地址可以修改,但指向地址的值不可以修改,❌ 选项 D 中非成员函数不能具有 cv 限定符,❌ 选项 E 中函数参数为只读参数,在函数体内不能修改参数的值,✅
1.6
在 Linux 内核中,以下哪些选项是正确的关于中断上下文? ==(BD)==
- 中断上下文允许睡眠
- 中断上下文中不允许访问用户空间内存
- 中断上下文总是在中断处理程序执行之前运行
- 中断上下文是内核代码在中断上下文中执行的区域
解答(存疑):
中断上下文我理解的是触发中断后进入中断前和处理完中断后退出中断后所做的一些寄存器入栈出栈操作,这个过程肯定不允许睡眠的,而且不一定总是在在中断处理程序执行之前运行,所以选项 A、C 我认为是错误的
2、简答题
2.1
解释 C++ 中的互斥锁(Mutex)和条件变量(Condition Variable),以及它们在线程同步中的使用场景。
解答:
2.2
请解释 C++ STL 中的 std::priority_queue 容器是什么,它的内部实现原理是什么?以及它在何种情况下是一个有用的数据结构?
解答:
2.3
解释 C++ 中的位域(Bit Fields)是什么?请说明位域的优缺点。
解答:
2.4
什么是虚拟函数表(VTable),它在 C++ 中的作用是什么?
解答:
2.5
请解释 C++ 中的虚拟内存(Virtual Memory)是什么,以及它如何提供更大的内存空间。
解答:
3、逻辑题
3.1
有一串数字:1, 2, 3, 4, 5, 6, 7, 8, 9。将这 9 个数字排列成一个九位的整数,使得这个整数能被 11 整除。根据 11 的整除规则,一个整数能被 11 整除,当且仅当从个位开始,将奇数位的数字相加,再将偶数位的数字相加,两个和之差能被 11 整除。
解答:
3.2
下面给出了一系列图形的变化,推测下一个图形是什么?
图形序列:
解答:
3.3
有五位员工:Alice、Bob、Cathy、Dan 和 Eva,他们分别来自不同的国家:美国、英国、法国、德国和意大利。
已知以下信息:
- Alice 不是英国人
- Bob 不是法国人
- Cathy 和 Dan 不是美国人
- Eva 不是德国人
问题是,谁来自意大利?
解答:
3.4
有一个长为 10 米的赛道,甲乙两个人同时从起点出发,以恒定的速度向终点跑去。甲每分钟跑过 2/3 米,乙每分钟跑过 1/2 米。问他们什么时候再次同时到达终点?
解答:
3.5
在一条街上有 5 个房子,彼此相邻。每个房子里住着一个人,每个人都有不同的国籍、喝不同品牌的饮料、抽不同品牌的香烟以及养不同的宠物。已知以下信息:
- 英国人住在红房子里
- 瑞典人养了一条狗
- 丹麦人喝茶
- 绿房子在白房子左边
- 绿房子主人喝咖啡
- 抽PALLMALL烟的人养了一只鸟
- 黄房子主人抽DUNHILL烟
- 住在中间那间房子的人喝牛奶
- 挪威人住第一间房子
- 抽混合烟的人住在养猫人的旁边
- 养马人住在抽DUNHILL烟的人旁边
- 抽BLUEMASTER烟的人喝啤酒
- 德国人抽PRINCE烟
- 挪威人住在蓝房子旁边
- 抽混合烟的人的邻居喝矿泉水
问题:谁养鱼?
解答:
4、编程题
4.1
一个口袋中放有 12 个球,已知其中 3 个是红的,3 个是白的,6 个是黑的,现从中任取 8 个,问共有多少种可能的颜色搭配?
解答:
4.2
请用递归方法编程实现:
一个农夫在河边带了一匹狼、一只羊和一棵白菜,他需要把这三样东西用船带到河的对岸。然而,这艘船只能容下农夫本人和另外一样东西。如果农夫不在场的话,狼会吃掉羊,羊也会吃掉白菜。请编程为农夫解决这个过河问题。
解答:
4.3
线程 A 不断生成红球,线程 B 不断生成蓝球,请控制每生产一组球(3个)必须有 2 个红球和 1 个蓝球,可以是红红蓝,也可以是蓝红红,或红蓝红等:
解答:
4.4
小明有 5 本新书,要借给 A、B、C 三位小朋友,若每人每次只能借 1 本,则可以有多少种不同的借法?
解答:
4.5
有一对兔子,从出生后的第 3 个月起每个月都生一对免子。小兔子长到第 3 个月后每个月又生一对兔子,假设所有的兔子都不死,问 30 个月内每个月的兔子总对数为多少?
解答:
#嵌入式软件##笔试##itc#
欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。