- 相关推荐
2013创新工场笔试题
时间:2012年9月27日 地点:鼎好大厦10层
考试时长:1小时
一,
选择题
1,求z的结果
[cpp] view plaincopyprint?
#define N 3
#define Y(n) ((N+1)*n)
z = 2*(N+Y(5+1));
解答:48
2,有关多线程,多进程的描述错误的是
A,
子进程获得父进程的数据空间,堆和栈的复制品
B,
线程可以与同进程的其他线程共享数据,但是它拥有自己的栈空间且拥有独立的执行序列
C,
线程执行开销小,但是不利于资源管理和保护
D,
进程适合在SMP机器上进行,而线程则可以跨机器迁移
解答:D
3,
[cpp] view plaincopyprint?
struct s
{ int x:3;
int y:4;
int y:5;
double a;
}
求sizeof(s)
解答:20或者24;和平台有关。
4,序列{2,1,4,9,8,10,6,20}是某排序算法第二轮排序的结果,则该算法只能是
A快速排序 B冒泡排序
C选择排序 D插入排序
解答:A
5,我们需要监听一个事件状态,让它在状态发生改变时主动发出通知,请问需要哪种设计模式?
A装饰者模式 B建造者模式
C创新工场模式 D观察者模式
解答:D
6,有2012瓶矿泉水,其中有一瓶有毒,请问需要多少只老鼠才能一次性找到有毒的矿泉水?
解答:11只
二,问答题
1,
有0-n这n+1个数,但是其中丢了一个数,请问如何找出丢了哪个数?
解答:
求这n个数的sum,然后计算n(n+1)/2-sum可得。
2,
解释
[cpp] view plaincopyprint?
#typedef char (*func)(int,char*)
解答:
定义了一个函数指针的数据类型;
该数据类型可以用来定义函数指针;
定义的函数指针指向的函数的参数为
[cpp] view plaincopyprint?
(int,char*)
返回值为char型。
3,
求输出结果
[cpp] view plaincopyprint?
int a[2][2][3]= { {{1,2,3},{4,5,6}},{{7,8,9},{10,11,12}}};
int *ptr=(int *)(&a+1);
printf(r=(int *)(&a+1);(a+1), *(ptr-1));
解答:
12 7
考察多级指针,一定要明确指针指向的是什么,才能知道它加1后跳过了多少字节。
&a是个四级指针,指向的是a这样的数组,所以它加1,就会跳过整个数组。
4,求输出结果
[cpp] view plaincopyprint?
#include
using namespace std;
class A
{
public:
virtual void print()
[size=9pt] { cout };
class B: public A
{
public:
virtual void print()
[size=9pt] { cout };
class C: public A
{
public:
virtual void print()
[size=9pt] { cout };
void print(A a)
{
a.print();
}
void main()
{
A a,*aa,*ab,*ac;
B b;
C c;
aa=&a;
ab=&b;
ac=&c;
a.print();
b.print();
c.print();
aa->print();
ab->print();
ac->print();
print(a);
print(b);
print(c);
}
解答:
A::print();
B::print();
C::print();
A::print();
B::print();
C::print();
A::print();
A::print();
A::print();
【创新工场笔试题】相关文章:
创新工场现场笔试试题08-10
创新工场笔试题2014年校园招聘08-10
迅雷2011.10.21笔试题08-10
中兴2015笔试题08-02
笔经:加强型试题07-22
创新力面试题11-28
海尔04年笔试题及答案07-31
银行2014笔试题目及经验分享03-16