面试笔试题Word格式.docx
- 文档编号:16238577
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:13
- 大小:22.87KB
面试笔试题Word格式.docx
《面试笔试题Word格式.docx》由会员分享,可在线阅读,更多相关《面试笔试题Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
#defineMAX_SIZE1000
usingnamespacestd;
//插入排序,pa为指向数组的指针,n为数组元素个数
voidinsert_sort(int*pa,intn)
{
inti,key,j;
for(j=1;
j<
n;
j++)
{
i=j;
key=*(pa+i);
while(i>
0&
&
key<
*(pa+i-1))
*(pa+i)=*(pa+i-1);
i--;
}
*(pa+i)=key;
}
intmain()
intA[MAX_SIZE],i;
for(i=0;
i<
10;
i++)
A[i]=10-i;
int*p=A;
insert_sort(p,10);
cout<
<
A[i]<
endl;
return1;
合并排序
//定义数组中的最大值
#defineMAX_NUM1000
//定义数组元素个数
//pa是指向A数组的指针,p,q,r为数组下标
//假设A[p..q],A[q+1..r]已经排好序,返回A[p..r]已经排好序的A
//思路是将A[p..q],A[q+1..r]分别赋值给数组A1,A2,并将最后一个元素设为最大值,作为哨兵
//然后用两个指针i,j从小到大赋值到A
voidmerge(int*pa,intp,intq,intr)
intn1,n2,i,j,k;
n1=q-p+1;
n2=r-q;
//p1,p2分别为指向A1,A2的指针
int*p1,*p2;
p1=newint[n1+1];
p2=newint[n2+1];
//将A[p..q],A[q+1..r]分别赋值给数组A1,A2
n1;
*(p1+i)=*(pa+p+i);
r-q;
*(p2+i)=*(pa+q+i+1);
//将最后一个元素设为最大值,作为哨兵
*(p1+n1)=MAX_NUM;
*(p2+n2)=MAX_NUM;
//用指针i,j从小到大赋值到A
i=0;
j=0;
for(k=p;
k<
=r;
k++)
if(*(p1+i)>
=*(p2+j))
*(pa+k)=*(p2+j);
j++;
else
*(pa+k)=*(p1+i);
i++;
free(p1);
free(p2);
//合并排序,pa为指向数组A的指针,p,r为下标,对A[p..r]进行合并排序
voidmerge_sort(int*pa,intp,intr)
if(p<
r)
intq=(p+r)/2;
merge_sort(pa,p,q);
merge_sort(pa,q+1,r);
merge(pa,p,q,r);
int*pa=A;
merge_sort(pa,0,9);
堆排序
intheap_size;
//返回父节点序号:
i/2
intparent(inti)
returni>
>
1;
//返回左孩子节点序号:
2i
intleft(inti)
returni<
//返回右孩子节点序号:
2i+1
intright(inti)
returnleft(i)+1;
//交换指针p1,p2指向的值
voidexchange(int*p1,int*p2)
inttemp=*p1;
*p1=*p2;
*p2=temp;
//保持最大堆的性质,pa为指向A[]的数组,i为下标
//假设left(i),right(j)满足最大堆的性质,但A[i]可能小于其左右子树
//该过程保持其最大堆的性质,使A为最大堆
voidmax_heapify(int*pa,inti)
intl,r,largest;
l=left(i);
r=right(i);
if(l<
=heap_size&
*(pa+l)>
*(pa+i))
largest=l;
largest=i;
if(r<
*(pa+r)>
*(pa+largest))
largest=r;
if(largest!
=i)
exchange((pa+i),(pa+largest));
max_heapify(pa,largest);
//建堆,pa为指向A[]的数组,n为数组大小
voidbuild_max_heap(int*pa,intn)
inti;
heap_size=n;
for(i=n/2;
i>
0;
i--)
max_heapify(pa,i);
//对每个非叶子节点调用一次max_heapify()
//堆排序,pa为指向A[]的数组,n为数组大小
//注意:
要排序的元素下标从1开始
voidheap_sort(int*pa,intn)
//建堆
build_max_heap(pa,n);
for(i=n;
exchange(pa+1,pa+heap_size);
heap_size--;
max_heapify(pa,1);
for(i=1;
=10;
A[i]=i;
//堆排序
heap_sort(pa,10);
快速排序
#defineMAX_SIZE100
//pa为指向A[]的数组,p,r为下标,对A[p..r]进行就地重排,以A[r]为主元
//划分为小于主元和大于主元的两部分,返回主元的下标q
//例如:
A[1..6]={18,8,16,6,9,10}结果:
A[1..6]={8,6,9,10,18,16}q=4
//(元素顺序可能与结果不一致,但小于10的元素在10前面,大于10的元素在10后面)
intpartition(int*pa,intp,intr)
intx=*(pa+r);
//主元
inti=p-1,j;
//i表示小于主元的最后一个元素
for(j=p;
r;
if(*(pa+j)<
x)
exchange((pa+i),(pa+j));
exchange((pa+r),(pa+i+1));
returni+1;
//快速排序
voidquick_sort(int*pa,intp,intr)
intq=partition(pa,p,r);
quick_sort(pa,p,q-1);
quick_sort(pa,q+1,r);
A[i]=11-i;
//快速排序
quick_sort(pa,1,10);
计数排序
memory>
#defineMAX_SIZE1000//数组大小
#defineMAX_NUM1000
//数组中最大值
{
intA[MAX_SIZE],i,n=10;
=n;
A[i]=n-i+1;
//计数排序,A[]为初始数组,下标从1开始,B[]为结果数组,下标从1开始,C[]为辅助数组
intC[MAX_NUM],max_element=0;
intB[MAX_SIZE],temp;
memset(C,0,4*MAX_NUM);
temp=A[i];
if(temp>
max_element)
max_element=temp;
C[temp]++;
=max_element;
C[i+1]+=C[i];
=1;
B[C[A[i]]]=A[i];
C[A[i]]--;
B[i]<
(转帖,更多请访问原链接)
汤森路透:
软开题目:
分5大类,包括c++,UML,网络安全,数据库,面向对象建模和设计
做题前有一个很长的instruction,如果能看的话最好看一下,里面有详细的算分方法,题目都是多选,每个题5个选项,正确答案的数目是1到3个,选错、漏选都会倒扣分,不过每个题目和每个答案的权重都是不一样的,所以有时候可以跳过题目,如果我没记错的话,跳过的题目是按照漏选来算的。
这个题库应该是智能题库,做对的话后面的题目会变难,但我的最后一个题和第二个题是题干一样的(囧~~,说明前面那个做错了)。
时间很充裕,考的内容偏理论。
全英文题目,有些词难免不认识。
下面是我记下来的一些东西:
考过的知识点:
c++类:
main()的标准形式?
什么是函数指针?
分配内存失败后返回什么?
多态实现的必要条件?
codeexcerpt?
如何在子类中更改父类的成员函数?
实现多态的机制?
friend的用法?
多继承?
数据库:
correlative?
firstnormalform/second/third第一第二第三范式
redundancy冗余
约束完整性
normalization
网络安全:
valid防火墙体系
screeningrouter阻塞网络的条件
sequentialflowsofcontrol
trojan木马的功能
蠕虫的功能
在连接过程中返回错误数目的是?
telnet/ipconfig/netstat/ping/nslookup
UML:
各种UML图,读图说明图的意思
singletonclass
utilityclass
abstractclass
面向对象分析与设计:
面向对象中的子系统所反映的原理:
抽象/多态/实现/封装和模块化/联合
polymorphism
汤森路透上机笔试+TPLink一面
汤森,路透,笔试,上机
今天下午刚参加完实习面试,开门见山,面试过程如下:
约的下午4点面试,我3:
15就到了,因为怕晚了。
早到一点还是有好处的,可以熟悉一下环境,这样可以使心里放松一些、并再准备一下。
结果面试官4点15才到,我等了一个小时。
面试官晚到的那15分钟我就再想,他们进来第一句肯定是向我道歉,我就说没关系(我还想了一下英文版的itdoesn'
tmatter)。
但是我又一转念,可以说一句:
“实际上我正好用这几分钟熟悉了一下环境”。
面试官(总共两个,一个hr,一个技术)进来果真跟我道歉,然后我就使上那一句了,当时感觉那个面试官看着我很amazing,估计在心想:
“小伙还挺会说话!
”。
第一步算是意外的占了点优势。
接下来进行正式面试,分三个部分。
第一部分:
全英文。
让我首先自我介绍一下,我准备好了的说完了,但刚开始还是有点紧张,说的磕磕绊绊的。
然后让我用英文介绍了一下我感觉涉及较深的几个项目(有一个小黑板,在上面便携边画。
。
)。
说的也是磕磕绊绊的,但是总算把几个项目的框架给整出来了。
当时我出来时想起来一个动作不应该做的动作:
我当时讲解的时候一手插兜,挺得的。
第二部分:
开始使用汉语。
他们看我的本科不是特别出名——中国民航大学(CAUC,天津的,也顺便向大家宣传一下母校^-^),就让我介绍了一下CAUC,可能顺便考察我的表达能力吧。
然后问我对什么编程语言比较熟悉,我说c++,PowerBuilder,然后就问了我1个C++题目:
什么情况下定义虚拟的构造函数;
2个PB的问题:
其优点是什么;
其数据窗口中的group功能是否用过,怎么用的。
最后问我数据库熟不熟,我说sql语言还可以,然后问了我两个查询问题:
1一个成绩单,里面有学生的不同科目的考试成绩,让选出每门课的最高分;
2还是那个成绩单,让选出每门课成绩出现最多的分数。
例如假设只有数学、语文,数学中有80分的出现最多,则选出80来,语文中60出现的最多则选出60来。
第二个问题整的有点蒙。
第三部分:
面试官问我有什么优点、缺点,在老师同学眼中是一个什么样的人。
最后问我将来的职业规划,如果可以的话是否想成为正式员工。
最最后问我是否有问题问他们。
我说没有。
晕,应该提几个问题的。
偶是第一次发贴,虽是在CS行当整了好几年了,有啥问题大家指正,希望对大家有点帮助。
相互学习啊!
加油!
微软笔试题:
题目:
1、已知矩形区域和一个正方形结构体数组,将正方形以最紧凑的方式摆放在矩形中(周长最小)。
完成算法及程序设计,题目给出正方形结构体。
structrectangles
inttop;
intleft;
intwidth;
intheight;
structsquare
intd;
个人分析如下(未付程序实现),请各位批评指正:
分析:
按题目要求,需要完成的要点有二:
1、最紧凑;
2、合并之后的区域不能超过矩形区域。
解决方案:
2、不超过矩形区域的解决办法是:
Ø
指定起点;
每添加之前测试是否可以添加。
1、最紧凑的解决方案:
将正方形数组排序;
设计一个双向循环链表,将所有外围的节点存入该链表;
设计一个指针单链表,每个节点保存一个可以插入新正方形的节点;
第一次放正方形,放入指定点(left,top),建立循环链表,由于此时不存在凹角型节点,并将正方形的第一个节点放入指针链表;
第二次放入时,按凹角型节点放入,如果有多个此类节点,比较其优劣择优;
如果无此类节点,则选择双向循环链表的第一个节点放入。
放入之后,修改双向循环链表和但指针链表,按照新正方形边长和凹角两边的关系去除不需要的节点,添加新的节点;
依次,知道所有的正方形都就位或者剩余区域无法再加入新的正方形。
淘宝笔试:
把一个正整数变为1,求最少的步数?
具体是这样的,如果这个数是偶数,那么直接除2,如果是奇数,加1或减1后再除2,这样反复,一直到变为1,求最少需要几步?
下面是我的程序:
bitset>
unsignedlongInput;
std:
:
bitset<
32>
btInput;
intcount(0);
do
std:
cout<
"
Pleaseinputanumber:
"
<
ends;
cin.clear();
cin.sync();
cin>
Input;
}while(!
(std:
cin.good()));
btInput.reset();
btInput=Input;
while(btInput!
=1)
//std:
btInput.to_ulong()<
if(btInput.test
(1)&
btInput.test
(2)&
btInput.test(0))
Input=btInput.to_ulong();
Input++;
btInput=Input;
count++;
+1"
continue;
if(btInput.test(0))
btInput.reset(0);
-1"
if(!
btInput.test(0))
btInput=btInput>
1;
/2"
endl<
Theresultis:
count<
cin.get();
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试笔 试题