QQ笔试『转』
1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 #define check(a,b) char*r=((a)-(b))==abs((a)-(b))? "greater":"less" cout<<"Filename"<<_ _FILE__<<"Line"<<__LINE__<<endl; 3、两个数相乘,小数点后位数没有限制,请写一个高精度算法 while(1) { int *p=new int [10000000]; } CD过10 B回来2分 12 AB过2分 共计3+2+12=17 1, 计算 a^b << 2 (运算符优先级问题) :<<的优先级高于^ 1。有一栋十层楼的楼,在每个电梯门口放上一颗钻石,这些钻石的大小不同,一人坐电梯从一楼,电梯每到一层楼都开一次门,而且这个人能准确的分辨钻石的大小,请问怎么样能拿到最大的钻石,只有一次机会(就是出了电梯门就进不来了) 2。请估计广州中信大厦是否坚固,写出推理过程。 1,为节省空间,两个栈共用一个空间,栈底在两边,问什么时候表明空间用完 wangyi 1、10个人分成4组 有几种分法? 7. 希尔 冒泡 快速 插入 哪个平均速度最快? 8. enum的声明方式 9. 频繁的插入删除操作使用什么结构比较合适,链表还是数组? 10. *p=NULL *p=new char[100] sizeof(p)各为多少? 11. 顺序查找的平均时间 12. for(i=0,sum=0; i<10; ++i,sum+=i);的运行结果 13. 不能做switch()的参数类型是: 14.不使用其他变量,交换两个整型a,b的值 15. 写出float x 与“零值”比较的if语句。 16. 两个数相乘,小数点后位数没有限制,请写一个高精度算法 操作系统 网络 =========================================================================================== 2. Internet采用哪种网络协议?该协议的主要层次结构? 3. Internet物理地址和IP地址转换采用什么协议? 4. IP地址的编码分为哪俩部分?
1 计算 a^b << 2 (运算符优先级问题)
2 根据先序中序求后序
3 a[3][4]哪个不能表示 a[1][1]: *(&a[0][0]) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4)
4 for(int i...)
for(int j...)
printf(i,j);
printf(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[100] sizeof(p)各为多少 4
13 频繁的插入删除操作使用什么结构比较合适,链表还是数组
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 [_______2_____];
if(*sDest == NULL)
return NULL;
sDest[sLen] = '\0';
while(_____3____)
sDest[sLen] = toLowerChar(sSrcStr[sLen]);
}
return sDest;
}
2 把字符串转换为整数 例如:"-123" -> -123
main()
{
.....
if( *string == '-' )
n = ____1______; -1* num(string+1)
else
n = num(string);
.....
}
int num(char* string)
{
for(;!(*string==0);string++)
{
int k;
k = __2_____; *string
j = --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"的学生no
2 成绩最高的学生号
3 每科大于90分的人数
待遇:硕士年薪10万,本科年薪7万
1)笔试: C++,基础题目与程序员考试水平相当。
附加题:
1.有10亿个浮点数,从中找出1万个最大的数。写一个高性能的算法
2.Unix后台进程的实现
3.MFC的多文档模板的加载
4.数据库SQL语句查询
2)面试
技术1面:感觉腾讯的面试安排不是很合理,进去之后有12个面试官,随便找一个面。面我的是个铁面判官,问了几个问题,DirectX技术有没有接触过? 2D,3D引擎原理?我一头雾水,跟他没什么好谈的,感觉,彼此都不感兴趣。然后他就问了一个很基础的问题,写一个程序:从双向循环链表中删除一个节点。 这个当然没有什么问题。不过出来后感觉就没戏
2.如何输出源文件的标题和目前执行行的行数
4、写一个病毒
5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?
AB过2分 A回来1分 3
2005年腾讯招聘
选择题(60)
c/c++ os linux 方面的基础知识 c的Sizeof函数有好几个!
程序填空(40)
1.(20) 4空x5
不使用额外空间,将 A,B两链表的元素交叉归并
2.(20) 4空x5
MFC 将树序列化 转存在数组或 链表中!
2 根据先序中序求后序
3 a[3][4]哪个不能表示 a[1][1]: *(&a[0][0]) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4) :*(&a[0][0]+4)应加5 *(&a[1]+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+=i
6 10个数顺序插入查找二叉树,元素62的比较次数
7 10个数放入模10hash链表,最大长度是多少
8 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参 :两个,其中括号内的","为逗号运算符
9 希尔 冒泡 快速 插入 哪个平均速度最快
10 二分查找是 顺序存储 链存储 按value有序中的哪些
11 顺序查找的平均时间
12 *p=NULL *p=new char[100] sizeof(p)各为多少 :都是4
13 频繁的插入删除操作使用什么结构比较合适,链表还是数组 :链表
14 enum的声明方式 enum COLOR{RED,BLUE,GREEN};
15 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,
B说我不知道这2个数,但是C也肯定不知道
C说我开始确实不知道,但是现在知道了
B说这样我也知道了
求这2个数.为什么?
B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少
大题:
1 把字符串转换为小写,不成功返回NULL,成功返回新串
char* toLower(char* sSrcStr)
{
char* sDest= NULL;
if( __1___)
{
int j;
sLen = strlen(sSrcStr);
sDest = new [_______2_____];
if(*sDest == NULL)
return NULL;
sDest[sLen] = '\0';
while(_____3____)
sDest[sLen] = toLowerChar(sSrcStr[sLen]);
}
return sDest;
}
1sSrcStr!=NULL 2 sLen+1 3--sLen&&isUpper(sSrcStr[sLen])
2 把字符串转换为整数 例如:"-123" -> -123
main()
{
.....
if( *string == '-' )
n = ____1______;
else
n = num(string);
.....
}
int num(char* string)
{
for(;!(*string==0);string++)
{
int k;
k = __2_____;
j = --sLen;
while( __3__)
k = k * 10;
num = num + k;
}
return num;
}
-num(*string++) int(*string) j--
附加题:
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"的学生no
2 成绩最高的学生号
3 每科大于90分的人数
学校里成绩的高低好坏,对人生来说还言之过早。
2、如图:
7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
设“1”的坐标为(0,0) “7”的坐标为(-1,-1) 编写一个小程序,使程序做到输入坐标(X,Y)之后显示出相应的数字。
3、#include<stdio.h>
//example input and output
//in 1 2 3 out 1 3 1
//in 123456789 2 100 out 123456789 100 21
long mex(long a,long b,long c)
{ long d;
if(b==0) return 0;
if(b==1) return a%c;
d=mex(a,b/2,c); d*=d;这里忘了;d*=mex(a,b%2,c);d%=c;
return d;
}
int main(void)
{ long x,y,z;
while(1)
{ if(scanf(%d %d %d,&x,&y,&z)>3) return 0;
if(x<0) { printf("too small ");continue;}
if(y<0) { printf("too small ");continue;}
if(z<1) { printf("too small ");continue;}
if(y>z) { printf("too big ");continue;}
if(z>1000000010) {printf("too big ");continue}
printf(%d %d %d,x,z,mex(x,y,z);
}}
根据这个程序,当已知一个输入,算出输出,如:输入 1 3
答案:快速排序
快速排序、归并排序和基数排序在不同情况下都是最快最有用的。
答案:enum 枚举类型名 {
枚举常量1,
枚举常量2,
...
枚举常量n
};
For example:
enum weekday { sunday, monday, tuesday, wednesday, thursday, friday, saturday};
enum weekday week_day;//week_day 就是一个枚举类型变量
答案:链表
答案:都为4。因为都是指针类型,所占存储空间必然为4。
答案:(1+2+3+...+n)/n = (n+1)/2
答案:sum = 55
答案:switch的参数不能为浮点型。
答案:x = x+y; y = x-y; x = x-y
if(x>=0.000001 && x<=-0.000001)(x不为0的比较)
float: 6位精度
double: 16位精度
*************************************************************************************
数据库
*************************************************************************************
1. 有个表tableQQ,有整型的ID项和字符类型的Nickname项,这两个项都不允许为空
(1)写出建立该表的SQL语句
(2)找出Nickname为QQ的用户,按ID降序排列的SQL语句
(3)写出删除ID为1234用户记录的SQL语句
(4)写出添加ID为5555,Nickname为'1234'的SQL语句
答案:
(1) CREATE TABLE tableQQ
(
ID NUMBER(12) NOT NULL,
Nickname Varchar2(30) NOT NULL
);
(2) select * from tableQQ where Nickname = 'QQ' order by ID desc;
(3) delete from tableQQ where >
(4) insert into tableQQ values(5555,'1234');
//删除表
(5)drop table tableQQ;
2. 有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade)
1 问上课程 "db"的学生
2 成绩最高的学生号
3 每科大于90分的人数
答案:
(1)select a.sno, a.cno, b.cno, b.cname from sc a, c b where a.cno = b.cno and b.cname = 'db';
(2)select sno, max(grade)from sc group by sno;
(3)select cno, count(sno) from sc where grade > 90 group by cno;
*****************************************************************************************
===========================================================================================
1. 描述实时系统的基本特性
答案:在特定时间内完成特定的任务,实时性与可靠性。
答案:TCP/IP协议。应用层、传输层、网络层、数据链路层和物理层。
答案:地址解析协议ARP address resolution protocol
答案:网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
0 意見:
发表评论