以下是一套某嵌入式公司出的一套面试题,以便于测试一位合格的工程师!此试题的每一道题附着答案,方便各位工程师校对答案。
(资料图)
1、两个等价线程并发的执行下列程序,a为全局变量,初始为0,假设printf、++、--操作都是原子性的,则输出肯定不是哪个?
void foo() {
if(a <= 0) {
a++;
}
else {
a--;
}
printf("%d", a);
}
A 01
B 10
C 12
D 22
2、在有序表(5,8,36,48,50,58,88)中二分查找字58时所需进行的关键字比较次数是(),对应的判定树高度为()。
A 2,2
B 2,3
C 3,2
D 3,3
3、对于一个已经不被任何变量引用的对象,当垃圾回收器准备回收该对象所占用的内存时,将自动调用该对象的哪个方法()
A finalize
B notify
C notifyAll
D hashCode
4、#include
void test(void *data) {
unsigned int value = (此处应填入)
printf("%u", value);
}
using namespace std;
int main() {
unsigned int value = 10;
test(&value);
return 0;
}
A *data
B (unsigned int)(*data)
C (unsigned*)data
D *((unsigned int *)data)
5、将一个递归算法改为对应的非递归算法时,通常需要使用( )。
A 优先队列
B 队列
C 循环队列
D 栈
6、关于linux的I/O复用接口select和epoll,下列说法错误的是()
A select调用时会进行线性遍历,epoll采用回调函数机制,不需要线性遍历
B select的最大连接数为FD_SETSIZE
C select较适合于有大量并发连接,且活跃链接较多的场景
D epoll较适用于有大量并发连接,但活跃连接不多的场景
E epoll的效率不随FD数目增加而线性下降
F epoll通过共享存储实现内核和用户的数据交互
7、请说出const与#define 相比,有何优点 ?
A 宏常量有数据类型,而const常量没有数据类型
B 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试
C 编译器可以对const进行类型安全检查。而对#define只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
8、稀疏矩阵压缩的存储方法是:()
A 三元组
B 二维数组
C 散列
D 十字链表
9、文件aaa的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列哪些命令是正确的?
A chmod a+x g+w aaa
B chmod 764 aaa
C chmod 775 aaa
D chmod o+x g+w aaa
10、下列说法错误的是 ()
A 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,这种形式的栈也称为顺序栈
B top=0 时为空栈,元素进栈时指针 top 不断地减 1
C 当top等于数组的最大下标值时则栈满
D 栈不能对输入序列部分或全局起求逆作用
参考答案:
一、1~5:ABADD 6~10:C BC AD AC BD
定期以通俗易懂的方式分享嵌入式知识,关注公众号,加星标,每天进步一点点。
声明:
本号原创、转载的文章、图片等版权归原作者所有,如有侵权,请联系删除。
Copyright @ 2008-2015 www.tzkxw.cn All Rights Reserved 投资快讯 版权所有 联系邮箱:528 683 189@qq.com