C 部分:
- int* p = (int*)malloc(sizeof(int)*2), sizeof(*p)= —— (考察对指针的理解)
- 一个32 地址的内存,向0x12345678 地址写一个0x78654321 用C 语言如何实现 (考察指针对内存的基础操作)
- 请描述static,volatile, 和const 在C语言中的含义和用法(C基础)
- 请你描述C 编程中,堆和栈的区别?(考察堆和栈)
- 在头文件中能否定义变量?请说明理由。
linux 部分
- 你使用过那个linux? 该系统的安装软件包的命令是什么?(判断是否接触过linux)
- linux下,file1 权限744 表示什么?(判断对shell 有没有基础认识)
- 进程和线程的区别? 在编程时,一般如何选择使用?(操作系统基础考察)
- 请描述linux 下常见进程间通信方式?
- 请简述交叉编译的过程。 (是否学过嵌入式应用)
- 请简述linux 机器的启动流程? (判断是否做过移植的工作)
- 请简要描述linux 下open函数调用过程?(判断是否对系统调用有深入理解)
网络部分:
- IP 地址127.0.0.1表示什么?已知一主机的IP地址是203.123.1.135,子网掩码是255.255.255.192 ,求其网络地址(网络基础)
- 请你描述下TCP 的三次握手和4次挥手?(深入考察)
- TCP 和UDP 的区别?
硬件理解:
- 请描述ROM 和RAM 的区别?
- 请描述推挽输出和开漏输出的区别,什么情况下需要加上拉电阻?
- GPIO 在代码中将其拉高,但实际中并未拉高的一些常见原因?(考察目的同2)
- RS232 无法发送或者接受数据, 常见的原因有哪些?(经验考察)
- 请简述linux 下USB 的枚举过程。(拔高)
- 请简述linux 下PCIe 的枚举过程。 (拔高)
编程部分:
-
试着写出九九乘法表并打印結果.
-
单纯使用C语法实现标准函数库中的字符串复制, 过程中不呼叫其他函数.
程序声明: char *strcpy(char *destination, const char *source); -
请说明下面程序代码所想要实现的功能, 并试着找出其中的 bug.
int Aaa(const char* sL, const char * sR) {
While ( *sL++ || *sR++ ) {
If (*sL != *sR) {
return(*sL - *sR);
}
}
return(0);
} -
请评论下面两段代码的异同.
#if defined _Level1
printf(“This is level1”);
#endif
……
if (level == 1)
printf(“This is Level1”);
…