上
表示已有答案
表示没有处理
表示答案不确定
C++笔试题
1.多态类中的虚函数表是 Compile-Time ,还是 Run-Time 时建立的 ?
,
答案:虚拟函数表是在编译期就建立了 各个虚拟函数这时被组织成了一个虚拟函数的入口地址的
. -- -- ,
数组 而对象的隐藏成员 虚拟函数表指针是在运行期 也就是构造函数被调用时进行初始化的 这是
实现多态的关键.
3.main 主函数执行完毕后,是否可能会再执行一段代码 ? (朗讯的一道笔试题)
答案:可以,可以用_onexit 注册一个函数,它会在 main 之后执行;
如果你需要加入一段在 main 退出后执行的代码,可以使用 atexit()函数,注册一个函数。
语法:
#include
int atexit(void (*function")(void));
#include
#include
void fn1( void ), fn2( void ), fn3( void ), fn4( void );
int main( void )
{
atexit(fn1);
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}
void fn1()
{
printf( "next.\n" );
}
void fn2()
{
printf( "executed " );
}
void fn3()
{
printf( "is " );
}
void fn4()
{
printf( "This " );
}
结果:
This is executed first.
This is executed next.
4.一个父类写了一个 virtual 函数,如果子类覆盖它的函数不加 virtual ,也能实现多态 ?
在子类的空间里,有没有父类的这个函数,或者父类的私有变量 ? (华为笔试题)
答案:只要基类在定义成员函数时已经声明了 virtue 关键字,在派生类实现的时候覆盖该函数时,virtue 关键字可加
可不加,不影响多态的实现。 (static )
子类的空间里有父类的所有变量 除外 。
5.给一个字符串、例如 “ababc”要求返回“ ab”. 因为“ab”连续重复出现且最长。
用 C/C ++语言写一函数完成该算法,给出复杂度
6.对序列 1、 1、 、 3、 5、 8、 13。。。。 是 Fab..数列
、 3、 5、 13...是 Fab..质数数列,因为他们与自己前面的 Fab...数列都互质
给出 k ,返回第 k 小的 Fab..质数
7.101 个硬币 100 真、 1 假,真假区别在于重量。请用无砝码天平称两次给出真币重还是假币
重的结论。
8.完成字符串拷贝可以使用 sprintf、 strcpy 及 memcpy 函数,请问这些函数有什么区别
,你喜欢使用哪个,为什么?
答案:这些函数的区别在于 实现功能 以及 操作对象 不同。
1.strcpy 函数操作的对象是 字符串 ,完成 从 源字符串 到 目的字符串 的 拷贝 功能。