腾讯笔试题目
考研2.18W
选择题(60)
c/c++ os linux 方面的基础知识,c的Sizeof函数有好几个!
程序填空(40)
1.(20) 4空x5
不使用额外空间,将 A,B两链表的元素交叉归并
2.(20) 4空x5
MFC 将树序列化 转存在数组或 链表中!
1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
// 这样转向定义应该不算违规吧!^_^
#include "stdafx.h"
#include <string.h>
#include <iostream>
using namespace std;
#define Cmp(x,y) compare(x,y)
int compare(int a,int b)
{
a^=(1<<31); b^=(1<<31);
int i=31;
while((i^-1) && !((a&(1<<i))^(b&(1<<i)))) i--;
return (i^-1)?(((a>>i)&1)?1:-1):0;
}
int _tmain()
{
int c;
c = Cmp(5,4);
cout<<c<<endl;
return 0;
}
2.如何输出源文件的标题和目前执行行的行数(不晓得怎么搞,在等兄弟给我答案在!)
3.两个数相乘,小数点后位数没有限制,请写一个高精度算法
算法提示:
//想法来自北师大一个同学给我看的另一个题目以及他的java程序。
输入 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; (要么用java的BigInterger搞, 要么自己用C++写高精度数乘法,超过百万位,用FFT,我就不细说,这都预先写过就别做了)
4)输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)
4.写一个病毒(没搞过,^_^)
5.让你在100000000个浮点数中找出最大的10000个,要求时间复杂度优。
//本算法使用快排,O(n*lg(n))
//最低可以找到线性算法,使用预先区域统计划分!类试于构造Quad Trees! 写起来代码会长些!
#include <stdio.h>
#include <stdlib.h>
#define Max 100000000
int a[Max+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",&a[n])==1) n++;
qsort(a,n,4,cmp);
for(int i=0;i<3;i++) printf("%d",a);
return 1;
}
5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?
Solution:
The First Time: A(1)和B(2)过桥,A(1)返回 Cost:1+2
The Second Time: C(5)和D(10)过桥,B(2)返回 Cost:10+2
The Third Time A(1)和B(2)过桥 Cost:2
Total Time Cost: (1+2)+(10+2)+2=17 minutes
c/c++ os linux 方面的基础知识,c的Sizeof函数有好几个!
程序填空(40)
1.(20) 4空x5
不使用额外空间,将 A,B两链表的元素交叉归并
2.(20) 4空x5
MFC 将树序列化 转存在数组或 链表中!
1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
// 这样转向定义应该不算违规吧!^_^
#include "stdafx.h"
#include <string.h>
#include <iostream>
using namespace std;
#define Cmp(x,y) compare(x,y)
int compare(int a,int b)
{
a^=(1<<31); b^=(1<<31);
int i=31;
while((i^-1) && !((a&(1<<i))^(b&(1<<i)))) i--;
return (i^-1)?(((a>>i)&1)?1:-1):0;
}
int _tmain()
{
int c;
c = Cmp(5,4);
cout<<c<<endl;
return 0;
}
2.如何输出源文件的标题和目前执行行的行数(不晓得怎么搞,在等兄弟给我答案在!)
3.两个数相乘,小数点后位数没有限制,请写一个高精度算法
算法提示:
//想法来自北师大一个同学给我看的另一个题目以及他的java程序。
输入 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; (要么用java的BigInterger搞, 要么自己用C++写高精度数乘法,超过百万位,用FFT,我就不细说,这都预先写过就别做了)
4)输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)
4.写一个病毒(没搞过,^_^)
5.让你在100000000个浮点数中找出最大的10000个,要求时间复杂度优。
//本算法使用快排,O(n*lg(n))
//最低可以找到线性算法,使用预先区域统计划分!类试于构造Quad Trees! 写起来代码会长些!
#include <stdio.h>
#include <stdlib.h>
#define Max 100000000
int a[Max+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",&a[n])==1) n++;
qsort(a,n,4,cmp);
for(int i=0;i<3;i++) printf("%d",a);
return 1;
}
5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?
Solution:
The First Time: A(1)和B(2)过桥,A(1)返回 Cost:1+2
The Second Time: C(5)和D(10)过桥,B(2)返回 Cost:10+2
The Third Time A(1)和B(2)过桥 Cost:2
Total Time Cost: (1+2)+(10+2)+2=17 minutes
-
2017考研现场确认时间
考研现场确认是考研报名的一个重要环节,下面是小编搜集整理的2017年考研现场确认时间,欢迎阅读查看。2017考研现场确认时间2016年11月4日至11月12日确认地点不同身份的考生报考点不同(1)推荐免试生根据毕业院校按所在地省级教育招生考试管理机构要求办理网上报名...
-
南京财经大学2015年考研复试通知发布
近日,南京财经大学研究生院发布《南京财经大学2015年报考攻读硕士学位研究生复试通知》,从中获悉南京财经大学2015年考研复试相关信息。2015年硕士研究生复试定于3月30日-4月1日进行,请务必于2015年3月30日15:00前到我校办理报到手续并参加复试,报到时间及地点见复...
-
2015考研国家线分析预测
教育部依据硕士生培养目标,结合年度招生计划、生源情况及总体初试成绩情况,确定报考统考、MBA及法律硕士专业学位考生进入复试的基本要求标准,其中包括应试科目总分要求和单科分数要求;对应届本科毕业生和非应届毕业生实行统一的进入复试基本分数要求。考研国家线...
-
2017年安徽中医药大学考研临床医学综合能力(中医)考研大纲
随着考研的到来,考研大纲也开始出台了。下面是小编为大家整理收集的关于2017年安徽中医药大学考研临床医学综合能力(中医)考研大纲的相关内容,仅供大家参考。Ⅰ考试性质临床医学综合能力(中医)是为医学高等院校及科研院所招收中医临床医学专业学位硕士研究生而设...