2015年诺基亚C/C++笔试题
以下5个题是根据当时的笔试回忆的,不是特别准确,但是大致的意思是已表达到,希望对正在求职C/C++开发工程师的人有所帮助。
1.
class A{ char c_A; }; class B : public A{ int i_A; virtual funcA(); virtual funcB(); };
sizeof(A) = _____;
sizeof(B) = _____.
2.
已知一个结构体:
struct A{ int a; float *b; char c; double d; };
其中,a占用_____字节,b占用_____字节。
3.
试着说明一下foo1为什么比foo2性能比较好。
void foo1(){ ... for(int i=0; i < 100; i++){ A; B; C; } ... } void foo1(){ ... for(int i=0; i < 100; i++){ A; } for(int i=0; i < 100; i++){ ; } for(int i=0; i < 100; i++){ C; } ... }
4.
写一个算法,一个给定的字符串,计算其对应的二进制码中,所有“0”的个数,比如字符串“Hello World”的二进制码“0100100001100101011011000110110001101111”,所有“0”的个数是20。
5.
写一个算法,将一个整型序列用链表的形式反写。
struct Linka{ int Data; struct Linka *next; }; void reserve( Linka &head){ }