单选

1.
下列关于关键路径的叙述中错误的是(D)
A
关键路径是指在带权有向图中从源点到汇点的所有路径中具有最大路径长度的路径;
B
关键路径上的所有活动都是关键活动,可通过加快关键活动来缩短整个工程的工期;
C
AOE网中,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少;
D
AOE网中的关键路径并不唯一,可通过加快某一条关键路径中关键活动速度来缩短整个工程工期;
单选题
2.
对于数列4、5、6、7、9、12、18、23,如果采用折半查找元素9,请问需要查找几次?(B)
A
2
B
3
C
4
D
5
单选题
3.
一棵二叉树的前序遍历结果为ABCDEFG,则其中序遍历结果不可能为?(D)
A
CBDAFEG
B
CBAEDGF
C
CBAEDFG
D
CBFADEG
单选题
4.
现有一字符串"hello world",使用哈夫曼编码最少使用多少bit内存:(B)
A
4
B
32
C
64
D
88
单选题
5.
已知现有一个大小为4初始状态为空的栈,现在有一组数据经过这个栈后,最终的数据顺序是:2 5 4 1 3,问原始的进栈数据不可能是以下的哪组D
A
1 4 5 2 3
B
5 2 3 1 4
C
3 4 5 2 1
D
4 1 3 5 2
单选题
6.
浏览器的事件模型使用了下面哪种设计模式的概念?A
A
发布者/订阅者模式
B
原型模式
C
中介者模式
D
代理模式
单选题
7.
假设有必修课成绩表course,每位学生的期末考试成绩以及补考成绩都录入到course表中,学号为20190001的同学想查询一下自己未通过的课程的课程编号与课程名称,那么下面正确的sql语句是C
create table course(
id int(11) not null auto_increment,
sid int(11) not null comment ‘学号’,
cid int(11) not null comment ‘课程编号’,
cname char(50) not null comment ‘课程名称’,
score int(11) not null comment ‘分数’,
primary key(id)
)engine = innodb;

A
select distinct cid,cname from course where cid not in (select cid from course where score > 60 and sid=20190001)
B
select distinct cid,cname from course where cid in (select cid from course where score < 60) and sid=20190001
C
select distinct cid,cname from course where cid not in (select cid from course where score > 60) and sid=20190001
D
select distinct cid,cname from course where cid in (select cid from course where score < 60 and sid=20190001)
单选题
8.
序列{20, 23, 28, 41, 61, 31, 71, 76, 15, 30}构造为完全二叉树,完全二叉树再变为最小堆后,堆所对应的的中序遍历序列可能为(B)
A
76, 23, 41, 61, 20, 30, 31, 15, 28, 71
B
76, 23, 41, 20, 61, 30, 15, 31, 28, 71
C
76, 20, 41, 23, 30, 61, 15, 31, 28, 71
D
76, 23, 20, 41, 61, 15, 31, 20, 28, 71
单选题
9.

#include <iostream>
class Parent {public:Parent() { std::cout << "1"; }Parent(const Parent &p) { std::cout << "2"; }const Parent &operator=(const Parent &p) {std::cout << "3";return *this;}
};
int main() {Parent p;Parent p1(p);Parent p2 = p;p2 = p1;
}

以上代码的输出为:B
A
1123
B
1223
C
1233
D
1322
E
1332
单选题
10.
有如下递归函数 test(n),其时间复杂度为多少?E

int  test(int n) {if (n <= 1) return 1;return (2 *  test(n - 1) + 3 *  test(n - 2));
}

A
O(logn)
B
O(nlogn)
C
O(n^2)
D
O(n^3)
E
O(2^n)
单选题
11.
关于以下代码说法正确的有?B

#include <iostream>
using namespace std;
class A {public:virtual void testA() = 0;virtual void print() = 0;
};
class B :public A
{public:virtual void testA() = 0;virtual void print() override{std::cout << "B::print" << std::endl;}virtual void testB(){std::cout << "testB" << std::endl;}
};
class C :public B
{public:virtual void testA(){}virtual void print() override{std::cout << "C::print" << std::endl;}
};
int main() {C c;c.print();c.testB();return 0;
}

A
会出现编译出错
B
会成功输出C::print 以及 testB
C
main函数里可以生成B的对象,代码不会报错
D
main函数里可以生成A的对象,代码不会报错
单选题
12.
假设磁头当前位于116道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为48, 59, 37, 81, 125, 195, 185, 205采用电梯调度SCAN算法得到的磁道访问序列是:A
A
125, 185, 195, 205, 81, 59, 48, 37
B
125, 185, 195, 205, 37, 48, 59, 81
C
37, 48, 59, 81, 125, 185, 195, 205
D
125, 195, 185, 205, 48, 59, 37, 81
单选题
13.
属于同一进程的两个线程 T1和 T2并发执行,共享初值为 0 的全局变量 X。T1和 T2实现对全局变量 x 加 1 的伪代码分别如下:
T1:
temp1=X;
temp1=temp1+1;
X=temp1;
T2:
temp2=X;
temp2=temp2+1;
X=temp2;
2个线程进行到任意一步都能被对方打断,执行另外一个线程的代码,请问在所有可能的执行序列中,使 x 的值为 2 的序列个数有几种?B
A
1
B
2
C
3
D
4
E
5
单选题
14.
shell脚本中,需求如下:如果 ls /tmp 执行成功输出True,否则输出Fail,下列哪项正确 D
A
ls /tmp; [[ $# -eq 0 ]] && echo True || echo Fail
B
ls /tmp; [[ $* -eq 0 ]] && echo True || echo Fail
C
ls /tmp; [[ $0 -eq 0 ]] && echo True || echo Fail
D
ls /tmp; [[ $? -eq 0 ]] && echo True || echo Fail
多选题
15.
在C++中,"std::cout"中的"std"和"cout"分别是什么?BE
A

B
命名空间
C
运算符
D
函数
E
对象
F
模板

多选题

16.
假设一个数组采用快速排序,则下面的选项中,不可能是第3趟排序结果的是ACD
A
4, 8, 6, 10, 12, 16, 14
B
10, 4, 6, 8, 12, 14, 16
C
8, 4, 6, 12, 10, 14, 16
D
4, 8, 6, 12, 10, 16, 14
多选题
17.
c++以下哪些情况会调用拷贝构造函数?BCD
A
初始化构造一个函数
B
当类的一个对象去初始化该类的另一个对象
C
函数的形参是类的对象
D
函数的返回值是类对象
E
类的一个对象加上该类的另一个对象
多选题
18.
某进程创建的若干个线程,这些线程不能共享的是AB
A
程序计数器
B
某线程的栈指针
C
进程打开的文件
D
全局变量
E
进程的堆空间
多选题
19.
tcp发送报文数据时,可能将多个数据包合并成一个大的数据包发送,就有可能发生粘包问题。以下可以用来解决这个问题的是?ABD
A
发送固定长度的消息
B
包结尾增加分隔符
C
慢开始算法
D
把消息分成消息头和消息体,其中消息头上包含长度
E
利用滑动窗口实现控制
多选题
20.
下列PHP变量中命名合法是(BCD)
A
$1abc
B
$_1abc
C
$哈哈abc
D
$abc1

编程题

21.
最小公倍数与最大公约数
度度熊请你找出两个数\mathit a,ba,b,满足1 \leq a,b \leq n1≤a,b≤n且\mathit lcm(a,b)-gcd(a,b)lcm(a,b)−gcd(a,b)尽量大。输出最大的\mathit lcm(a,b)-gcd(a,b)lcm(a,b)−gcd(a,b).
其中\mathit lcm(a,b)lcm(a,b)表示\mathit aa和\mathit bb的最小公倍数,\mathit gcd(a,b)gcd(a,b)表示\mathit aa和\mathit bb的最大公约数。

#include <iostream>
using namespace std;
int main(){long long n;cin>>n;cout<<n*(n-1)-1;
}

22.
石子游戏
今天,度度熊和牛妹在玩取石子的游戏,开始的时候有n堆石头,第i堆有a^i个石头,两个人轮流动作,度度熊先走,在每个回合,玩家选择一个非空堆,并从堆中移除一块石头。如果一个玩家在轮到他之前所有的石碓都是空的,或者如果在移动石头之后,存在两个堆包含相同数量的石头(可能为都为0),那么他就会输。假设两人都在游戏时选择最佳方式,度度熊和牛妹谁会赢?如果度度熊获胜,输出“man”,如果牛妹获胜,输出“woman”(输出不包含双引号)。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main(){int n;cin >> n;for(int i = 0; i < n; i++){int m;cin >> m;vector<int> a(m);for(int j = 0; j < m; j++) cin >> a[j];// 只有一堆, 奇偶决定胜负if(m == 1){if((a[0] & 1) == 0)cout << "woman\n";else cout << "man\n";continue;}// 多堆, 需要排序sort(a.begin(), a.end());// 全为零, 先手直接败if(a.back() == 0){cout << "woman\n";continue;}// 排序后, 统计相邻数字相同的对数int close_count = 0;for(int j = 0; j < m - 1; j++){if(a[j] == a[j + 1]) close_count++;if(close_count > 1) break;}// 该数目大于1, 则先手败if(close_count > 1){cout << "woman\n";continue;}// 如果只有一对, 检查左右是否都只差1if(close_count == 1){int j;for(j = 0; j < m - 1; j++) if(a[j] == a[j + 1]) break;if((j - 1 >= 0 && a[j] - a[j - 1] == 1) || (j + 2 < m && a[j + 2] - a[j + 1] == 1)){cout << "woman\n";continue;}}// 一般情况bool even = true;for(int j = 0; j < m; j++) if(((a[j] - j) & 1) == 1) even = !even;if(even) cout << "woman\n";else cout << "man\n";}
}

23.
穿越银河
在浩瀚深邃的星空中,有若干个可以被视为质点的星球,以及坐着飞船想要探索宇宙奥秘的度度熊。
我们假定银河是一个n×m的区域,顶点在(0,0)和( n,m),度度熊从最左边任意一点进入,打算穿越这片区域并从右边任意一点离开。在银河中分布着k个星球,每个星球以及银河的上下两个边缘都有引力,处于安全考虑,度度熊要离他们越远越好。
试求度度熊穿越银河的路径上,距离所有星球以及上下边界的最小距离的最大值可以为多少?

#include <iostream>
#include <iomanip>
#include <sstream>
#include <array>
using namespace std;const int KMAX = 6000, PRECISION = 4;
array<int, KMAX> x, y, parents;
array<bool, KMAX> cover_up, cover_down;  // 星球引力范围是否与边界引力范围相接
array<array<double, KMAX>, KMAX> distance_squares;// 计算距离平方
double get_distance_square(int x1, int y1, int x2, int y2){return (double)(x1 - x2) * (x1 - x2) + (double)(y1 - y2) * (y1 - y2);
}int find_set(int x){if(x != parents[x]) parents[x] = find_set(parents[x]);return parents[x];
}// 将cover_up和cover_down也合并, 并且如果合并后上下边界都覆盖, 返回true
bool union_set(int x1, int x2){int p1 = find_set(x1), p2 = find_set(x2);parents[p2] = p1;cover_up[p1] |= cover_up[p2];cover_down[p1] |= cover_down[p2];return cover_up[p1] && cover_down[p1];
}bool digits_same(double d1, double d2, int precision){stringstream stream1, stream2;stream1 << fixed << setprecision(4) << d1;stream2 << fixed << setprecision(4) << d2;return stream1.str() == stream2.str();
}int main(){int n, m, k;cin >> n >> m >> k;for(int i = 0; i < k; i++) cin >> x[i] >> y[i];// 计算各点间距离平方for(int i = 0; i < k; i++)for(int j = i + 1; j < k; j++)distance_squares[i][j] = get_distance_square(x[i], y[i], x[j], y[j]);double low = 0, high = m / 2.0;// 二分法while(!digits_same(low, high, PRECISION)){double mid = (high + low) / 2, rr = 4 * mid * mid;bool can_go_through = true;  // 标记使用mid是否能穿越// 初始化并查集for(int i = 0; i < k && can_go_through; i++){parents[i] = i;cover_up[i] = y[i] + mid > m - mid;cover_down[i] = y[i] - mid < mid;if(cover_up[i] && cover_down[i]) can_go_through = false;}// 用n^2时间将星球合并, 若合并过程中发现有集合cover_up且cover_down, 则不能穿越for(int i = 0; i < k && can_go_through; i++)for(int j = i + 1; j < k && can_go_through; j++)if(distance_squares[i][j] < rr)if(union_set(i, j))can_go_through = false;// 根据结果设置low或highif(can_go_through) low = mid;else high = mid;}// 结果保留4位小数cout << fixed << setprecision(PRECISION) << low;
}

百度2020校招C++/PHP研发工程师笔试卷(第三批)相关推荐

  1. 百度2021校招C /PHP研发工程师笔试卷(第一批)

    单选 1.以下代码会发生什么?D #include <iostream> #include <memory> using namespace std; void fun(std ...

  2. 网易游戏雷火2020春招web前端工程师笔试卷0425

    网易游戏雷火2020春招web前端工程师笔试卷0425 考试信息 笔试题型 详情 单选 不定项 编程题 问答题 考试信息 招聘单位:网易游戏雷火事业群校园招聘 岗位:前端开发工程师 回复时间:2020 ...

  3. 【恒生公司2016研发工程师笔试卷选择题分析】

    static局部变量相关知识 静态变量在内存的静态存储区,静态数据一直占有着该存储区单元直到程序结束: 静态局部变量只声明一次,一旦申请内存成功,不再接受重复申请: 静态局部变量的作用域与一般局部变量 ...

  4. 【题解】百度2020校招Web前端工程师笔试卷(第二批):单选题、多选题

    题目来源:牛客网公司真题_免费模拟题库_企业面试|笔试真题 (nowcoder.com) 若有错误请指正! 单选题 1 FIFO为先进先出的顺序来完成页面的访问,而如果在采用先进先出页面淘汰算法的系统 ...

  5. (5) 百度2011研发工程师笔试卷

    1 题目描述 给定两个数A,B(0,100000),求A^B最后三位数是多少 2 思路 * A^B 含义是A的B次方,而不是位运算 异或  * 思路 : A ^ B可能是一个很大的数,但只要求最后三位 ...

  6. (4) 百度2011研发工程师笔试卷

    1 题目描述 仅用o(1)的空间,将整数数组按奇偶数分成2部分,数组坐标是奇数,右边是偶数 2 采用插入排序的思想来解决. 3 java代码 /*** 题目描述:* 仅用o(1)的空间,将整数数组按奇 ...

  7. (3) 百度2011研发工程师笔试卷

    1 题目描述 判断一个括号字符串是否匹配正确,如果括号有多种,怎么做?如(([]))正确,[[(()错误. 2 思路 假设左括号为  ({[ 右括号为  )}] 采用栈来解决该问题,扫描字符串, 当前 ...

  8. 错题集之腾讯2016研发工程师笔试题(三)

    1.什么是内存对齐 假设我们同时声明两个变量: char a; short b; 用&(取地址符号)观察变量a, b的地址的话,我们会发现(以16位CPU为例): 如果a的地址是0x0000, ...

  9. 百度2020校招:技术改变世界,不负AI韶华

    莘莘学子与人工智能的故事,今天正在这片古老大地上加速上演. 自去年4月,教育部印发<高等学校人工智能创新行动计划>以来,我国高校教育体系明显对AI学科建设进行了提速,国内大批一流高校在今年 ...

最新文章

  1. 面试热点|理解TCP/IP传输层拥塞控制算法
  2. 【Socket网络编程】15. 发送端和接收端数据大小不一致时 的分析
  3. Python 判断一个数是不是质数
  4. 复制百度文库的文字加什么后缀_WORD文档中如何复制样式
  5. scipy.ndimage.zoom上采样与下采样
  6. std::bind 详解及参数解析
  7. 串操作指令及其应用程序的设计与调试运行——汇编实验四 用8086汇编完成下题 编制一程序,从键盘输入两个长度不同的字符串,设字符串长度小于25个字符。要求在屏幕上以右边对齐的形式显示出
  8. VS 编写 x64 内联汇编
  9. 大数据学习——Hadoop第一天
  10. django框架之模板系统
  11. 【转】我的opengl编程学习(二)(混合、深度测试、雾化、
  12. 计算机毕业设计java+ssm校园在线投票系统(源码+系统+mysql数据库+Lw文档)
  13. html渐变显示动画效果,css3实现背景动态渐变效果
  14. 新闻分类:多分类问题
  15. mysql三个表连接语句_INNER JOIN连接两个表、三个表、五个表的SQL语句
  16. ITSM系统_CMDB设计_业务要件
  17. 阿里云建站云企业官网标准版/高级版/尊贵版功能对比及选择方法
  18. 代理服务 SQUID 测试
  19. elementUI 表格宽度自适应、不换行
  20. 从Idea到付诸实践,你必须要知道的

热门文章

  1. 【知识蒸馏】Knowledge Review
  2. Android开发-基于ijkplayer框架开发网络电视直播播放器的实现
  3. 写给人类的机器学习 2.3 监督学习 III
  4. excel 置信区间 计算_如何用excel计算95%的置信区间 | 在excle中如何进行区间估计...
  5. 泰戈尔《世界上最远的距离》
  6. 【NLP】使用 BERT 和 PyTorch Lightning 进行多标签文本分类
  7. [渝粤题库]广东开放大学 社会调查与方法 形成性考核
  8. [转载]你遇见的事都是因你而生,你所遇见的人都是为你而来(自赵星)
  9. IOS设置微信URL Schemes
  10. MP之自定义分页,多表查询带分页带条件(Error evaluating expression ‘ew.customSqlSegment‘.或 Invalid bound statement)