C++面试题集(2)
11下列哪两个是等同的
intb;
Aconstint*a=&b;
Bconst*inta=&b;
Cconstint*consta=&b;
Dintconst*consta=&b;
12内联函数在编译时是否做参数类型检查
13三个float:a,b,c
问值
(a+b)+c==(b+a)+c
(a+b)+c==(a+c)+b
14把一个链表反向填空
voidreverse(test*head)
{
test*pe=head;
test*ps=head->next;
while(ps)
{
pe->next=ps->next;
ps->next=head;
head=ps;
ps=pe->next;
}
}
15设计一个重采样系统,说明如何anti-alias
16某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最化了,换到另一个系统(300M的CPU,50M的SDRAM)中运行,还需要优化吗?
17.下面哪种排序法对12354最快
aquicksort
b.bublesort
c.mergesort
18.哪种结构,平均来讲,获取一个值最快
a.binarytree
b.hashtable
c.stack
19请问C++的类和C里面的struct有什么区别?
答:c++的类的成员默认情况下是私有的,c的struct的成员默认情况下是公共的.
20请讲一讲析构函数和虚函数的用法和作用?
答:析构函数的作用是当对象生命期结束时释放对象所占用的资源。析构函数用法:析构函数是特殊的类成员函数
它的名字和类名相同,没有返回值,没有参数不能随意调用也没有重载。只是在类对象生命期结束时有系统自动调用。
虚函数用在继承中,当在派生类中需要重新定义基类的函数时需要在基类中将该函数声明为虚函数,作用为使程序支持动态联遍。
21全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
答:一些变量整个程序中都是可见的,它们称为全局变量,一些变量在函数内部定义且只在函数中可知,则称为局部变量。
全局变量由编译器建立且存放在内存的全局数据区,局部变量存放在栈区
22一些寄存器的题目,主要是寻址和内存管理等一些知识。
238086是多少尉的系统?在数据总线上是怎么实现的?
24多态。overload和override的区别。
答:重载在相同范围(同一个类中),函数名字相同,参数不同,virtual关键字可有可无。
覆盖是指派生类函数覆盖基类函数,不同的范围,函数名字相同,参数相同,基类函数必须有virtual关键字。