2013年金山笔试题

2013年金山笔试题

题外话:2013年7月18日  金山网申WPS实习生笔试 这个题目是网申笔试题目,我抽取的是B卷,应该是随机发题吧(猜测)

怎么说呢!在写第一道大题时候,百度了下这道题(因为c语言里控制坐标的函数记不清怎么写了),结果发现:在2013年3月份的时候这套题就被爆出过,瞬间无兴趣,试卷都没交,真球没劲!

网址:http://emuch.net/html/201303/5618301.html 作者: 冰雨hust    发布: 2013-03-14)

状态:京城,还在边研究STL,边失业中,学艺不精!

版权如果金山不希望引用,请联系:点击我

———————————————————————————试题部分———————————————————————————————

C++试卷B卷

说明:

答题时间为 100 分钟

自我判断题(请选择最符合您本人意愿的一项)

1、你觉得你的能力特点是:(   )

a. 注重团队交流

b. 注重细节、追求完美

c. 擅长钻研

d. 重视知识积累

e. 做事仔细,思维慎密

2、你觉得你的思维特点:(   )

a. 创造力

b. 想象力

c. 把握复杂问题

d. 洞察细节

3、你最喜欢的做事方式:(   )

a. 用妥当的方式处理问题

b. 用快速的方式处理问题

c. 用直观的方式处理问题

4、对你的合作伙伴你最不能接受的缺点是:(   )

a. 浮夸

b. 粗心大意

c. 墨守成规

d. 不求上进

选择题(单项选择)

 

1、int x = 18 / 7 * 3;

x变量的数值为:(   )

a. 6        b. 7       c. 8        d. 9

 

2、c++是否是大小写敏感的:(   )

a. 是       b. 不是

 

3、以下程序的输出结果是:(   )

std::cout << “0” << std::endl;

a. 0    b. “0”     c. 48

 

4、以下哪个不是c++关键字:(   )

a. class    b. int     c. struct     d. printf

 

5、int * p = new int[10];

和上述语句匹配的释放语句是:(   )

a. free(p)        b. delete p;         c. delete [] p;        d. delete p [];

 

6、int * p = new int;

以下那行语句是合法的:(   )

a. *p = 3;     b. p = *3;     c. &p = 3;     d. p = &3;

 

7、const int x = 0x20;

printf(“%d”, x);

以上代码片段的输出是:(   )

a. 20        b. %d          c. 32

 

8、char x[] = “hello”

sizeof(x)的结果为:

a. 4    b. 5    c. 6

 

9、printf(“5432” + 1);

上述代码的输出结果是:(   )

a. 432        b. 5433       c. 54321       d. 编译不通过

 

10、std::vector<T> x;

x.resize(10);

sizeof(x)的结果为:(  )

a. 0       b. 4       c. 10       d. 不确定

 

综合题

1、请实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图,例如:

输入1234567890,输出:

 

数字转LED
数字转LED

提示:请注意每个字符的固定宽度和高度,两个数字间保留一个空格。

函数签名:void LEDprint(int num);

 

 

 

2、请编写一段代码测试以下函数执行的正确性:

void unique(std::vector<int> & v);

这个函数的职责是去除传入数组中的重复元素。

提示1:函数返回结果不一定是依照某种顺序的;

提示2:请尽可能多的考虑各种可能出现bug的情况组合;

提示3:你编写的代码应当返回一个int值,返回0表示测试通过,返回1表示出现错误。

 

 

3、实现如下函数:

void printInChinese(int num);

这个函数输入一个小于100000000(一亿)的正整数,并在屏幕上打印这个数字的中文写法。

例如:

17 -> 一十七

120 -> 一百二十

201 -> 二百零一

1074 -> 一千零七十四

65536 -> 六万五千五百三十六

1010101 -> 一百零一万零一百零一

提示:请注意‘零’的处理。

扩展:如果需要处理通用简化习惯,你将怎么处理,例如:

17 -> 十七

120 -> 一百二

 

4、已知完全弹性碰撞公式如下:

 

金山面试题
金山面试题

其中m1 m2为小球质量,v1 v2为原始速度,v1‘ v2‘是碰撞后的速度。

struct ball_t {

double m; // 质量

double v; // 速度,速度为正表示球体往x轴正方向运动

double pos; // 在x坐标轴的位置

};

请实现以下函数:

void progress(ball_t & b1, ball_t & b2, double leftWall, double rightWall, double t);

这个函数输入两个球的当前状况(包括质量,速度,在x轴的位置),以及左右墙壁的位置,输出两个球在t秒钟后的状况(包括质量,速度,在x轴的位置)。

特殊说明:球体碰撞墙面也是完全弹性碰撞,即球体速度变为原本的负数。

 

 

 

 

5、一个工程由如下文件组成:

head1.h head2.h src1.cpp src2.cpp main.cpp

最终编译结果为xxx.exe(或者xxx,如果在linux下的话)

请写出你熟悉的某种编译器将这5个文件转换为最终结果xxx.exe(或xxx)的详细过程。写出每一个步骤,并作相关的解释,如果你熟悉某编译器的话,请写出这个编译器每一步用到的命令行。