1. 简述一个Linux驱动程序的主要流程与功能。
2. 请列举一个软件中时间换空间或者空间换时间的例子。
数组成倍增长(空间换时间)。
3. 简述进程与线程的区别。
进程和线程的区别在于:
线程的划分尺度小于进程,使得多线程程序的并发性搞。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
4. static有什么用途?(请至少说明两种)
static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).
(1)局部静态变量
(2)外部静态变量/函数
(3)静态数据成员/成员函数
5. 头文件中的ifndef/define/endif做什么用?条件编译
6. 请问一下程序将输出什么结果?
乱码
char *RetMenory(void)
{
char p[] = “hellow world”;
return p;
}
void Test(void)
{
char *str = NULL;
str = RetMemory();
printf(str);
}
7. 引用与指针有什么区别?
8. 描述实时系统的基本特性
9. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
10. 什么是平衡二叉树?
11. 堆栈溢出一般是由什么原因导致的?
递归调用深度过深(栈)
12. 什么函数不能声明为虚函数?
一个类中将所有的成员函数都尽可能地设置为虚函数总是有益的。
设置虚函数须注意:
1:只有类的成员函数才能说明为虚函数;
2:静态成员函数不能是虚函数;
3:内联函数不能为虚函数;
4:构造函数不能是虚函数;
5:析构函数可以是虚函数,而且通常声明为虚函数。
13. 冒泡排序算法的时间复杂度是什么?n*n
14. #include <filename.h> 和 #include “filename.h” 有什么区别?
用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
15. 写出float x 与“零值”比较的if语句。
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
16. 操作系统中进程调度策略有哪几种?
先来先服务 短作业优先 高优先权优先 时间片轮转
17. Internet采用哪种网络协议?该协议的主要层次结构?TCP/IP
18. Internet物理地址和IP地址转换采用什么协议?ARP RARP
19. IP地址的编码分为哪俩部分?网络号 主机号