- 0
- 0
- 约3.78千字
- 约 9页
- 2026-02-15 发布于北京
- 举报
2013创新【软件开发工程师】笔试
2015-08-27Katrina
时间:2012年9月27日
地点:鼎好10层
考试时长:1小时
一、选择题
1、求z的结果
[cpp]viewincopyprint?#defineN3
#defineY(n)((N+1)*n)z=2*(N+Y(5+1));
解答:48
2、有关多线程,多进程的描述错误的是
A、子进程获得父进程的数据空间,堆和栈的品
B、线程可以与同进程的其他线程共享数据,但它拥有自己的栈空间且拥有独立
的执行序列
C、线程执行开销小,但是不利于和保护
D、进程适合在SMP机器上进行,而线程则可以跨机器迁移
解答:D
3、
[cpp]viewincopyprint?structs{intx:3;inty:4;inty:5;doublea;
}
求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]viewincopyprint?#typedefchar(*func)(int,char*)
解答:定义了一个函数指针的数据类型;该数据类型可以用来定义函数指针;定
义的函数指针指向的函数的参数为[cpp]viewincopyprint?(int,char*)返
回值为char型。
3、求输出结果[cpp]viewincopyprint?
inta[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));
解答:127
考察多级指针,一定要明确指针指向的,才能知道它加1后跳过了多少字
节。a是个四级指针,指向的是a这样的数组,所以它加1,就会跳过整个数
组。
4、求输出结果
[cpp]viewincopyprint?
#includeiostream
usingnamespacestd;
classA
{
public:
virtualvoidprint()
{coutA::print()endl;}
};
classB:publicA
{
public:
virtualvoidprint()
{coutB::print()endl;}
};
classC:publicA
{
public:
virtualvoidprint()
{coutC::print()endl;}
};
voidprint(Aa)
{
a.print();
}
voidmain()
{
Aa,*aa,*ab,*ac;
Bb;
原创力文档

文档评论(0)