经纬恒润 - 嵌入式软件工程师 - 笔试
❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗
本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。
岗位:嵌入式软件工程师-campus-2025
题型:10 道单选题,6 道不定项,5 道填空题,2 道编程题
1、单选题
1.1
以下哪个选项一定可以将 flag 的第二个 bit 置为 0 ==(A)==
flag &= ~2
flag |= 2
flag ^= 2
flag >>= 2
解答:
- 清除
flag
的第二个位- 将
flag
的第二个位置一,其他位不变- 将
flag
的第二个位取反- 将
flag
的所有位右移 2 位,低位移出,高位补 0
1.2
以下语句,int *p, a=4;
和 p=&a;
下面均代表地址的一组选项是:==(D)==
a, p, *&a
&*a, &a, *p
*&p, *p, &a
&a, &*p, p
解答:
a
、*&a
、*p
均表示值,*&p
、&*p
、p
和&a
均表示地址,&*a
语法错误,选项 D 正确
1.3
下面关于哈佛结构描述正确的是 ==(A)==
- 程序存储空间与数据存储空间分离
- 存储空间与 IO 空间分离
- 程序存储空间与数据存储空间合并
- 存储空间与 IO 空间合并
解答:
哈佛结构:程序存储空间 和 数据存储空间 分离的计算机体系结构
冯·诺依曼结构:程序存储空间 和 数据存储空间 合并的计算机体系结构
1.4
下面程序段的输出是 ==(B)==
#include <stdio.h>
int fun(char *str1) {
char *str2 = str1;
while (*++str1);
return (str1 - str2);
}
int main() {
char *str = "GeeksQuiz";
printf("%d\n", fun(str));
return 0;
}
- 10
- 9
- 8
- 随机值
解答:
str1 - str2
两个指针相减 = (指针str1
地址 - 指针str2
地址) /sizeof(char)
实际上fun
函数的功能是计算字符串的长度,类似于strlen
库函数
1.5
如下所示 C 代码片段,其中 main 函数的输出结果为 ==(A)==
#include <stdio.h>
#pragma pack(4)
struct example1 {
short a;
short b;
int c;
};
struct example2 {
short a;
int c;
};
struct example3 {
char c;
struct example2 s2;
short e;
};
int main(void) {
printf("sizeof(struct example1) = %lu\n", sizeof(struct example1));
printf("sizeof(struct example2) = %lu\n", sizeof(struct example2));
printf("sizeof(struct example3) = %lu\n", sizeof(struct example3));
return 0;
}
- 8, 8, 16
- 8, 16, 16
- 8, 8, 8
- 16, 16, 16
解答:
#pragma pack(4)
表示默认 4 字节对齐
sizeof(struct example1)
:a
(2字节) +b
(2字节) +c
(4字节)= 8字节
sizeof(struct example2)
:a
(2字节) + 填充(2字节) +c
(4字节)= 8字节
sizeof(struct example3)
:c
(1字节) + 填充(3字节) +s2.a
(2字节)+ 填充(2字节) +s2.c
(4字节)+e
(2字节)+ 填充(2字节)= 16字节
1.6
关于下面代码描述正确的是 ==(C)==
#include <stdio.h>
char *GetMemory(void) {
char p[] = "hello world";
return p;
}
void Test(void) {
char *str = NULL;
str = GetMemory();
printf(str);
}
- printf 函数使用有问题
- 程序正常打印 hello world
- GetMemory 函数返回的地址无法正常使用
- 程序存在内存泄露
解答:
不能将局部变量的地址作为函数返回值
1.7
对于语句:int *p1,*p2;
此处的 int 所指的是 ==(D)==
p1
的类型*p1
和*p2
的类型p2
的类型p1
和p2
所指向变量类型
1.8
LINUX 所有服务的启动脚本都存放在 ==(A)== 目录中
/etc/rc.d/init.d
/etc/init.d
/etc/rc.d/rc
/etc/rc.d
解答(存疑):
一般存放在
/etc/rc.d/
中,可能存放在 中
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,同时还整理了嵌入式软件相关的八股知识。专栏内容涵盖C/C++基础、嵌软常见通信协议、ARM、FreeRTOS、Linux OS相关问题汇总,希望能帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。