嵌入式Linux工程师笔试记录 -- 2020.8.7 (六)
嵌入式Linux工程师笔试记录 – 2020.8.7 (六)
广州海格通信集团股份有限公司院校招聘试题
记录错题及一些知识点
一、选择题
1.一个变量既可以是const也可以是volatile。
const 修饰变量用于提醒编译器在此程序段中不能对该变量进行修改操作。但是可以是外部对它进行修改呀!
volatile 修饰变量表示该变量易变,是防止读取它的时候被编译器优化成读取它在寄存器中的拷贝,那就没法读到外部(其他线程、中断等)对它的修改了。
综上,两个修饰符并不冲突,可以同时修饰。
2. 一个变量不能用register和static同时修饰
register修饰的变量,是建议存放在CPU的寄存器中,以求更快的执行速度。static修饰的变量要长期存放,放在寄存器中就"永久"霸占了寄存器,浪费资源。
3. 中断响应时间是指从发出中断请求到进入中断处理
4. SQL语言具有数据定义、数据操纵、数据控制的功能
5. 线程拥有独立的errno
参考:线程之间共享的资源有哪些
由于同一个进程中有很多个线程在同时运行,可能某个线程进行系统调用 后设置了errno值,而在该 线程还没有处理这个错误,另外一个线程就在此时被调度器投入运行,这样错误值就有可能被修改。所以不同线程应该有自己的错误返回码变量。
6. 线程维护自己的堆栈
参考:线程之间共享的资源有哪些
堆栈是保证线程独立运行所必须的。线程函数可以调用函数,而被调用函数中又是可以层层嵌套的,所以线程必须拥有自己的函数堆栈, 使得函数调用可以正常执行,不受其他线程的影响。
7. 有两台计算机A\B网段不同,经过一台二层交换机相连,可以配置A默认网关为B,B默认网关为A
使用ensp测试如下(交换机需进行配置):
8. 以函数指针为返回值的形式
void (*signal(int sig , void(*func)(int)))(int)
解析:
signal()表示函数
void *signal() 表示signal函数返回一个void类型指针
void (*signal())(int) 后面的(int)表示一个函数,说明signal函数返回一个返回值为void*类型的函数指针。
贼拗。。
9. 白盒测试一般适用于单元测试。
白盒测试是指测试人员了解整个程序内部结构,以及具体的代码实现过程进行的测试。也称透明测试。
黑盒测试是指不考虑程序内部结构和处理过程,根据软件说明数来检查是否符合预期功能要求。
10. DBMS的基本单位是事务。
DBMS 数据库管理系统
11. 内存泄漏的概念
内存泄漏是指由于疏忽或者错误造成程序未能释放已经不再使用的内存的情况。
12. typedef和define
define是在预编译时处理的,只能进行简单的字符替换。
typedef是在编译时处理的,实际上不是做简单的替换,例如:
typedef int NUM[10]
并不是用NUM[10]去替换"int",而是采用如同定义变量的方法来声明一个类型。
13. 指针相减与地址相减
指针相减=(地址1-地址2)/sizeof(类型)
地址相减=(地址1-地址2);
14. enum类型默认int类型存储,占用4个字节
15. pragma pack宏的使用
#pragma pack(n)
// 在这之间的操作按照n字节对齐,比如结构体
//
#pragma pack()
16. 在循环链表中的p结点处插入s结点。
原来是这样:
进行 操作 : s->pre = p->pre
接着p->pre->next = s
p->pre = s
最后s->next = p ;完成插入
发布评论