(1912制作)两份腾讯笔试题.doc_第1页
(1912制作)两份腾讯笔试题.doc_第2页
(1912制作)两份腾讯笔试题.doc_第3页
(1912制作)两份腾讯笔试题.doc_第4页
(1912制作)两份腾讯笔试题.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Tencent 笔试题一 基础题:1 智力题1.1有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?1.2 1-20的两个数把和告诉A,积告诉B,A说不知道是多少, B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少?1.3 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少?1.4 某人去玩具店买小熊,单价30元. 付给玩具店老板100元 玩具店老板没零钱, 去水果店换了100元零钱回来找给那人70元. 那人走后, 水果店老板找到玩具店老板说刚才的100元是假币,玩具店老板赔偿了水果店老板100元 问:玩具店老板损失了多少钱?2 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句3 计算 ab 24 如何输出源文件的标题和目前执行行的行数?5 a34哪个不能表示 a11: *(&a00+5) *(*(a+1)+1) *(&a1+1) *(&a00+4)6 fun(exp1,exp2),(exp3,exp4,exp5)有几个实参?7. 希尔 冒泡 快速 插入 哪个平均速度最快?8. enum的声明方式 9. 频繁的插入删除操作使用什么结构比较合适,链表还是数组?10. *p=NULL *p=new char100 sizeof(p)各为多少?11. 顺序查找的平均时间12. for(i=0,sum=0; i2 mins1 mins 10 mins 2 mins 2 mins一共 2 1 10 2 2 17 mins1.2答案:2和31.3 1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/961.4 答案: 70小熊的进价2 答案:#define max(a,b) (long)(a)-(b)&0x80000000)?b:a) 若a b ,则a-b的二进制最高位为0,与上任何数还是0,所以大数为a;否则,a-b为负数,二进制最高位为1,与上0x80000000(最高位为1其他为0)之后为1,所以此时的大数为b.3 答案:运算符优先级:括号,下标,-和.(成员)最高;单目的比双目的高; 算术双目的比其他双目的高; 位运算 高于 关系运算;关系运算 高于 按位运算(与,或,异或); 按位运算 高于 逻辑运算; 三目的只有一个 条件运算,低于逻辑运算;赋值运算仅比 , (顺序运算)高。在此题中,位左移 优先级高于 按位异或,所以b先左移两位(相当于乘以4),再与a异或。例如: 当 a = 6; b = 4 时; 则 ab=0.000001 & x (4) insert into tableQQ values(5555,1234);/删除表(5)drop table tableQQ;三 网络1. 答案:在特定时间内完成特定的任务,实时性与可靠性。2. 答案:TCP/IP协议。应用层、传输层、网络层、数据链路层和物理层。3. 答案:地址解析协议ARP address resolution protocol4. 答案:网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。选择题(60)c/c+ os linux 方面的基础知识 c的Sizeof函数有好几个!程序填空(40)1.(20) 4空x5不使用额外空间,将 A,B两链表的元素交叉归并2.(20) 4空x5MFC 将树序列化 转存在数组或 链表中!1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句/ 这样转向定义应该不算违规吧!_#include “stdafx.h”#include #include using namespace std;#define Cmp(x,y) compare(x,y)int compare( int a, int b)a=(131); b=(131);int i=31;while (i-1) & !(a&(1i)(b&(1i)&1)?1:-1):0;int _tmain()int c;c = Cmp(5,4);coutcendl;return 0;jruv (一叶落而知天下秋) 的答案:#define COMPARE(a,b) (a)-(b) /0: a0:ab2.如何输出源文件的标题和目前执行行的行数cout “Filename ” _FILE_ ” Line ” _LINE_ endl;3.两个数相乘,小数点后位数没有限制,请写一个高精度算法算法提示:输入 string a, string b; 计算string c=a*b; 返回 c;1, 纪录小数点在a,b中的位置l1,l2, 则需要小数点后移动位置数为l=length(a)+length(b)-l1-l2-2;2, 去掉a,b中的小数点,(a,b小数点后移,使a,b变为整数)3, 计算c=a*b; (同整数的大数相乘算法)4, 输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)du51(郁郁思扬)的答案:变为整数求就行了.输入的时候记一下,小数点位置.输出再做点文章就行了.下面的是大整数的运算.#includeusing namespace std;#define MAX 10000struct Nodeint data;Node *next;void output(Node *head)if(!head-next&!head-data)return;output(head-next);coutdata;void Mul(char *a,char *b,int pos)char *ap=a,*bp=b;Node *head=0;head=new Node;head-data=0,head-next=0; /头Node *p,*q=head,*p1;int temp=0,temp1,bbit;while(*bp) /若乘数不为空 ,继续.p=q-next;p1=q;bbit=*bp-48; /把当前位转为整型while(*ap|temp) /若被乘数不空,继续if(!p) /若要操作的结点为空,申请之p=new Node;p-data=0;p-next=0;p1-next=p;if(*ap=0)temp1=temp;else temp1=(p1-data)+(*ap-48)*bbit+temp;ap+; p1-data=temp1%10; /留当前位temp=temp1/10; /进位以int的形式留下.p1=p;p=p-next; /被乘数到下一位ap=a;bp+;q=q-next; /q进下一位p=head;output(p); /显示coutnext;delete head;head=p;int main()cout”请输入两个数”endl;char test1MAX,test2MAX;cin.getline(test1,MAX,n);cin.getline(test2,MAX,n);Mul(strrev(test1),strrev(test2);system(”PAUSE”);return 0;上面大整数已经写了.你加几个东西就行了.#includeusing namespace std;#define MAX 10000struct Nodeint data;Node *next;void output(Node *head,int pos)if(!head-next&!head-data)return;output(head-next,pos-1);coutdata;if(!pos)coutdata=0,head-next=0; /头Node *p,*q=head,*p1;int temp=0,temp1,bbit;while(*bp) /若乘数不为空 ,继续.p=q-next;p1=q;bbit=*bp-48; /把当前位转为整型while(*ap|temp) /若被乘数不空,继续if(!p) /若要操作的结点为空,申请之p=new Node;p-data=0;p-next=0;p1-next=p;if(*ap=0)temp1=temp;else temp1=(p1-data)+(*ap-48)*bbit+temp;ap+; p1-data=temp1%10; /留当前位temp=temp1/10; /进位以int的形式留下.p1=p;p=p-next; /被乘数到下一位ap=a;bp+;q=q-next; /q进下一位p=head;output(p,pos); /显示coutnext;delete head;head=p;int main()cout”请输入两个数”endl;char test1MAX,test2MAX,*p;int pos=0;cin.getline(test1,MAX,n);cin.getline(test2,MAX,n);if(p=strchr(test1,.)pos+=strlen(test1)-(p-test1)-1;dop+;*(p-1)=*p;while(*p);if(p=strchr(test2,.)pos+=strlen(test2)-(p-test2)-1;dop+;*(p-1)=*p;while(*p);Mul(strrev(test1),strrev(test2),pos);system(”PAUSE”);return 0;4.写一个病毒cout”一个病毒”endl;(开玩笑的,没搞过,_)5.让你在100000000个浮点数中找出最大的10000个,要求时间复杂度优。/本算法使用快排,O(n*lg(n)/最低可以找到线性算法,使用预先区域统计划分!类试于构造Quad Trees! 写起来代码会长些!#include #include #define Max 100000000int aMax+10;int cmp( const void *a, const void *b)int *x = ( int *) a;int *y = ( int *) b;return *x-*y;int main()int n=0;while (scanf(”%d”,&an)=1) n+;qsort(a,n,4,cmp);for ( int i=0;i3;i+) printf(”%d”,a i );return 1;5 、有 A 、 B 、 C 、 D 四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时 1 、 2 、 5 、 10 分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在 17 分钟内这四个人都过桥?Solution:关键是时间最长的两个人必须同时过桥The First Time : A(1) 和 B(2) 过桥, A(1) 返回 Cost : 1+2The Second Time : C(5) 和 D(10) 过桥, B(2) 返回 Cost : 10+2The Third Time A(1) 和 B(2) 过桥 Cost : 2Total Time Cost : (1+2)+(10+2)+2=17 minutes1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句2.如何输出源文件的标题和目前执行行的行数3.两个数相乘,小数点后位数没有限制,请写一个高精度算法4.写一个病毒1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句2、如何输出源文件的标题和目前执行行的行数3、两个数相乘,小数点后位数没有限制,请写一个高精度算法4、写一个病毒5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?一 基础题:1 智力题1.1有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?1.2 1-20的两个数把和告诉A,积告诉B,A说不知道是多少, B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少?1.3 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少?1.4 某人去玩具店买小熊,单价30元. 付给玩具店老板100元 玩具店老板没零钱, 去水果店换了100元零钱回来找给那人70元. 那人走后, 水果店老板找到玩具店老板说刚才的100元是假币,玩具店老板赔偿了水果店老板100元 问:玩具店老板损失了多少钱?2 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句3 计算 ab 24 如何输出源文件的标题和目前执行行的行数?5 a34哪个不能表示 a11: *(&a00+5) *(*(a+1)+1) *(&a1+1) *(&a00+4)6 fun(exp1,exp2),(exp3,exp4,exp5)有几个实参?7. 希尔 冒泡 快速 插入 哪个平均速度最快?8. enum的声明方式9. 频繁的插入删除操作使用什么结构比较合适,链表还是数组?10. *p=NULL *p=new char100 sizeof(p)各为多少?11. 顺序查找的平均时间12. for(i=0,sum=0; i2 mins1 mins 10 mins2 mins 2 mins一共 2 1 10 2 2 17 mins1.2答案:2和31.3 1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/961.4 答案: 70小熊的进价2 答案:#define max(a,b) (long)(a)-(b)&080000000)?b:a)若a b ,则a-b的二进制最高位为0,与上任何数还是0,所以大数为a;否则,a-b为负数,二进制最高位为1,与上080000000(最高位为1其他为0)之后为1,所以此时的大数为b.3 答案:运算符优先级:括号,下标,-和.(成员)最高; 单目的比双目的高; 算术双目的比其他双目的高; 位运算 高于关系运算;关系运算 高于 按位运算(与,或,异或);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论