腾讯笔试
1 计算 a^b << 2 (运算符优先级问题)int a = 2;int b = 1;int c = 2;cout << (a ^ b << c);62 根据先序中序求后序3 a哪个
不能表示 a: *(&a) *(*(a+1)+1) *(&a+1) *(&a+4)cout << *(&a) << endl <<*(*(a+1)+1) << endl << *(&a+1) << endl << *(&a+4);660012fec854 for(int i...)for(int j...)printf(i,j);printf(j)会出现什么问题j没有定义,不在其作用域5 for(i=0;i<10;++i,sum+=i);的运行结果6 10
个数顺序插入查找二叉树,元素62的比较次数7 10
个数放入模10hash链表,最大长度是多少8 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参2 个9 希尔 冒泡 快速 插入 哪个平均速度最快10 二分查找是 顺序存储 链存储 按value有序中的哪些11 顺序查找的平均时间12 *p=null *p=new char sizeof(p)各为多少 413 频繁的插入删除操作使用什么结构比较合适,链表还是数组14 enum的声明
方式 enum color{red,blue,green};大题:1 把字符串转换为小写,不成功返回null,成功返回新串char* tolower(char* ssrcstr){char* sdest= null;if( __1___){int j;slen = strlen(ssrcstr);sdest = new ;if(*sdest == null)return null;sdest = '/0';while(_____3____)sdest = tolowerchar(ssrcstr);}return sdest;}char tolowerchar(char a){ if(a >= 'a' && a <= 'z') return a - 'a' + 'a';}char* tolower(char* ssrcstr){ char* sdest= null; if(ssrcstr) { int j; int slen = strlen(ssrcstr); sdest = new char; if(*sdest == null) return null; sdest = '/0'; while(slen--) sdest = tolowerchar(ssrcstr); } return sdest;}2 把字符串转换为整数 例如:"-123" -> -123main(){.....if( *string == '-' )n = ____1______; -1* num(string+1)elsen = num(string);.....}int num(char* string){for(;!(*string==0);string++){int k;k = __2_____; *stringj = --slen;while( __3__) j--k = k * 10;num = num + k;}return num;}附加题:1 linux下调试core的命令,察看堆栈状态命令2 写出socks套接字 服务端 客户端 通讯程序3 填空补全程序,按照我的理解是添入:win32调入dll的函数名查找函数入口的函数名 找到函数的调用形式把formview加到singledoc的声明 将singledoc加到app的声明4 有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade)1 问上课程 "db"的学生no2 成绩最高的学生号3 每科大于90分的人数腾讯 待遇:硕士年薪10万,本科年薪7万 1)笔试: c++,基础题目与程序员考试水平相当。 附加题: 1.有10亿个浮点数,从中找出1万个最大的数。写一个高性能的算法 2.unix后台进程的实现 3.mfc的多文档模板的加载 4.数据库sql语句查询 2)面试 技术1面:感觉腾讯的面试安排不是很合理,进去之后有12个面试官,随便找一个面。面我的是个铁面判官,问了几个问题,directx技术有没有接触过? 2d,3d引擎原理?我一头雾水,跟他没什么好谈的,感觉,彼此都不感兴趣。然后他就问了一个很基础的问题,写一个程序:从双向循环链表中删除一个节点。这个当然没有什么问题。不过出来后感觉就没戏1.请定义一个宏,比较两
个数a、b的大小,
不能使用大于、小于、if语句#define check(a,b) char*r=((a)-(b))==abs((a)-(b))? "greater":"less"2.如何输出源文件的标题和目前执行行的行数cout<<"filename"<<_ _file__<<"line"<<__line__<
个数相乘,小数点后位数没有限制,请写一个高精度算法4、写一个病毒while(1){ int *p=new int ;}5、有a、b、c、d四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?ab过2分 a回来1分 3cd过10 b回来2分 12ab过2分 共计3+2+12=17XX年腾讯招聘选择题(60) c/c++ os linux 方面的基础知识 c的sizeof函数有好几个!程序填空(40)1.(20) 4空x5 不使用额外空间,将 a,b两链表的元素交叉归并2.(20) 4空x5mfc 将树序列化 转存在数组或 链表中!1, 计算 a^b << 2 (运算符优先级问题) :<<的优先级高于^2 根据先序中序求后序3 a哪个不能表示 a: *(&a) *(*(a+1)+1) *(&a+1) *(&a+4) :*(&a+4)应加5 *(&a+1)4 for(int i...) for(int j...) printf(i,j); printf(j) 会出现什么问题 :j没有定义,不在其作用域内5 for(i=0;i<10;++i,sum+=i);的运行结果 :55先执行循环体再执行++i,sum+=i6 10个数顺序插入查找二叉树,元素62的比较次数7 10个数放入模10hash链表,最大长度是多少8 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参 :两个,其中括号内的","为逗号运算符9 希尔 冒泡 快速 插入 哪个平均速度最快10 二分查找是 顺序存储 链存储 按value有序中的哪些11 顺序查找的平均时间12 *p=null *p=new char sizeof(p)各为多少 :都是413 频繁的插入删除操作使用什么结构比较合适,链表还是数组 :链表14 enum的声明方式 enum color{red,blue,green};15 1-20的两个数把和告诉a,积告诉b,a说不知道是多少,问题:a从2到99之间抽了2个数字,把和告诉b,积告诉cb说我不知道这2个数,但是c也肯定不知道c说我开始确实不知道,但是现在知道了b说这样我也知道了求这2个数.为什么?我的解答:首先,正确答案是4和13。设b得到的和记做b,c得到的积记做c,这两个数记做x和y。1.预备结论,a)100以内的质数有25个,如下:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,b)歌德巴赫猜想,任何大于6的偶数都能写成两个奇质数的和。c)b明显大于等于6,而小于等于1962.一些更要结论。a)b不可能是偶数。因为b如果是偶数,而偶数都能写成两个奇质数的和,例如22=5+17,那么如果c=5*17=85,则因为c=85只有一种质因数分解方式,所以c知道这两个数是5和17。也就是说,b说“我不知道这2个数,但是c也肯定不知道”这句话是错误的,c有可能知道。b)b是奇数,并且一定不能写成两个质数的和。例如若b=19,那么就有可能是2和17,如果c=34=2*17,只有一种质因数分解方式,所以c知道这两个数。那么不能写成两个质数的和的奇数见下:记做集合m11,17,23,27,29,35,37,41,47,51,53,57,59,65,67,71,77,79,83,87,89,93,95,97,还有100至196之间的奇数(因为例如103,虽然=101+2,但是101一经大于100)这些数的思路是这样的,奇数=两个质数和,那一定有一个数是2。不如分析30-40的,可以用排除法,奇数有31,33,35,37,39,但是29+2=31,31+2=33,37+2=39所以要排除31,33,39剩余35,37。所以b只可能是集合m中的数。c)b可有多种可能的分解方式,但是只有一种是可以确定的。这句话如果不理解,后面有例子。3.实际这个题可以分为两个重要部分,一是找到一组这样个数,并证明这组数符合条件,而是证明其它的数组不满足条件。本人只能证明的一部分,第二部分我目前没有更好的方法,只能是列举排除法。4.下面实例分析a)若b=11x=2,y=9,那么c=18=3*6,c会这样想,如果是3和6,那么b=9,而9可以是2+7,那么我c就是14,我肯定可以知道是2和7,所以不能是3和6。也就是说若b=11,b可以判断出是x=2,y=9x=3,y=8,那么c=24=2*12=4*6,无论2+12,还是4+6都是偶数,可以排除,b可以判断出是x=2,y=9x=4,y=7,c=2*14,2+16也可以排除,b可以判断出是x=2,y=9x=5,y=6,c=2*15,2+15=17,17是集合m中的数,也就是说c知道这两个数是什么,但是b不能确定。b有三组可以确定,那么,b就不知道究竟是那组了,只有一组能判断出来才可以。一个结论:(ⅰ)c可以有多中分解方式,但分解中的x+y的和如果是m中的数,那说明这种分解方式不能排除,反之则能排除。(ⅱ)如果b的几种不同分解方式,有两个或以上的c可以确定,那么这样的b不满足条件(b说这样我也知道了)(ⅲ)如果c的分解方式中x或y是4,8,16……2^2,另一个是质数,那么这种分解方式可以排除,因为,此时c的其他分解方式不过是,把质因数2分给质数,这样两个数都是偶数了,那么和b也成了偶数,这和前面的结论是矛盾的。b)若b=17x=2,y=15,那么c=30=5*6,5+6=11,属于m,不能排除。x=3,y=14,那么c=42=2*21,2+21=23,属于m,不能排除。x=4,y=13,那么c=52=2*26,2+26=28,不属于m,可以排除。x=5,y=12,那么c=60=3*20,3+20=23,属于m,不能排除。x=6,y=11,那么c=66=2*33,2+33=35,属于m,不能排除。x=7,y=10,那么c=70=2*35,2+35=37,属于m,不能排除。x=8,y=9,那么c=72=3*24,2+24=27,属于m,不能排除。这样,只有一组可以排除,那就是说,如b=17,c根据他知道的积,只有在c=52时,c才能判断出来,其余不能判断。c)其他的排除法,我只给出可以排除的两种方法。(运用了结论(ⅲ))23=4+17=16+7。。27=4+23=8+19。。29=2+27=16+13。。35=4+31=32+3。。37=8+29=32+5。。41=4+37=32+9。。47=4+43=16+31。。51=4+47=8+43。。53=4+47=8+43。。57=4+53=16+41。。59=4+55=16+43。。65=4+61=16+49。。67=8+59=64+3。。71=4+67=64+7。。77=4+73=64+13。。79=8+71=64+15。。83=4+79=64+19。。87=4+83=64+23。。89=16+73=64+25。。91=8+83=64+27。93=4+89=64+29。。97=4+93=64+33。。超过100的奇数属于集合m,所以还要研究这些数,当实在过于繁琐,可以用64,32,尤其是64,因为它再乘以任何质数都将超过100,所以很容易找到一种,至于另一种留给读者吧。b也说不知道,这时a说我知道了,b接着说我也知道了,问这两个数是多少
相关推荐:
证券从业考试经验
字表处理题考题类型
北电笔试归来,估计被bs了--技术类
2020工行总行校招笔试经验
答题技巧与事项