(2011 阿里) 

 #pragma pack(2) 

 class A{ 

     int i; 

     union U{ 

         char buff[13]; 

         int i; 

     }u; 

     void foo() { } 

    typedef char *(*f)(void *); 

     enum{red,green,blue} color; 

 }a;


sizeof(a)的值是(22)
函数以及类型重定义不占字节。 #pragma pack(2)使union结构体大小为14;
总的大小是:14+4+4 = 22
malloc/free与new/delete
相同点:都可用于申请动态内存与释放内存
不同之处:malloc与free是c/c++语言的标准库函数,new/delete是c++操作符;
                new自动计算需要分配的空间,而malloc需要手工计算字节数
                new是类型安全的,而malloc不是
                new调用operator new分配足够的空间,并调用相关对象的构造函数,而malloc不能调用构造函数;delete将调用该实例的构造函数,然后调用类的operator delete,以释放该实例占用的空间,而free不能调用析构函数
               malloc/free需要库文件支持,new/delete不需要

先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。 因此选A;

短作业优先调度算法 (SPF): 就是优先调度并处理短作业,所谓短是指作业的运行时间短。而在作业未投入运行时,并不能知道它实际的运行时间的长短,因此需要用户在提交作业时同时提交作业运行时间的估计值。  

最高响应比优先算法(HRN):FCFS可能造成短作业用户不满,SPF可能使得长作业用户不满,于是提出HRN,选择响应比最高的作业运行。响应比=1+作业等待时间/作业处理时间。 因此选C;

基于优先数调度算法(HPF):每一个作业规定一个表示该作业优先级别的整数,当需要将新的作业由输入井调入内存处理时,优先选择优先数最高的作业。