C++和操作系统面试问题分类

inline的使用是有所限制的,inline只适合函数体内代码简单的函数使用,不能包含复杂的结构控制语句例如while switch,并且不能内联函数本身不能是直接递归函数(自己内部还调用自己的函数)

C++多态实现机制:C++中,对于有virtual的类,其sizeof会比正常情况多处4个字节。既在类的最开始四个字节,放的是VTABLE表的地址(void *类型)。而在VTABLE中,所有虚函数是以指针数组的形式存放。 对于派生的类,即时没有重载基类的虚函数,也会在其VTABLE占用一格。造成空间上的浪费。非虚基类没有VTABLE,VTABLE是在构造的时候编译器生成的。

    线程和进程:进程是操作系统资源分配的最小单位,线程是CPU运行的最小单位。linux中,使用的是用户线程(对应核心线程:线程管理由内核实现),而且是1:1形式,既每一个线程,都对应内核中的一个轻量级进程,调度由内核实现,但是线程的管理(比如产生和结束),均有一个管理线程实现。管理线程在第一次调用pthread_create的时候生成。

软件开发流程:

    需求分析和项目计划:可行性计划,项目计划,需求分析,测试计划

    软件设计说明书:功能设计说明书,实现设计说明书

    使用手册

测试报告

    项目总结

C++继承机制:

    n类成员的访问控制方式

    public:类本身、派生类和其它类均可访问;

    protected:类本身和派生类均可访问,其它类不能访问;

    private(默认):类本身可访问,派生类和其它类不能访问。

继承成员的访问控制规则

    ——由父类成员的访问控制方式和继承访问控制方式共同决定

    private+public(protectd,private)=>不可访问

    pubic(protected)+public=>public(protected)

    public(protected)+protected=>protected

    public(protected)+private(默认)=>private

    C++中的模板和virtual异同? ==>?

    private继承和public继承区别? ==>?

6. static有什么用途?(请至少说明两种)

    1.限制变量的作用域

    2.设置变量的存储

7. 引用与指针有什么区别?

    1) 引用必须被初始化,指针不必。

    2) 引用初始化以后不能被改变,指针可以改变所指的对象。

    3) 不存在指向空值的引用,但是存在指向空值的指针。

8. 描述实时系统的基本特性

    在特定时间内完成特定的任务,实时性与可靠性

9. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

    全局变量储存在静态数据区,局部变量在堆栈

10. 什么是平衡二叉树?

    左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1

11. 堆栈溢出一般是由什么原因导致的?

    没有回收垃圾资源

12. 什么函数不能声明为虚函数?

    constructor  ==>C++中的类的构造函数声明

13. 冒泡排序算法的时间复杂度是什么?

    O(n^2)

14. 写出float x 与“零值”比较的if语句。

    if(x>0.000001&&x<-0.000001)

  16. Internet采用哪种网络协议?该协议的主要层次结构?

    tcp/ip 应用层/传输层/网络层/数据链路层/物理层

17. Internet物理地址和IP地址转换采用什么协议

    ARP (Address Resolution Protocol)(地址解析协议)

18.IP地址的编码分为哪俩部分?

    IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

19.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。

    循环链表,用取余操作做  ——>??

20.不能做switch()的参数类型是:

    SWITH(表达式),表达式可以是整型、字符型以及枚举类型等表达式。

    switch的参数不能为实型。

posted @ 2009-08-26 09:29  回忆1919  阅读(579)  评论(0编辑  收藏  举报