百度研发工程师2015深圳笔试卷
2015-03-26 13:45
274 查看
1 C++有哪些数据类型?为什么long和int都是4字节?
数据类型有char、short、bool、int、long、float、double,long long等,并不是所有的int和long都是4字节的,在16位机中int就是2字节的,而在64位机中long是8字节的。C++中对int的长度约束是大于等于short型的长度,小于等于long型的长度,且最短长度是2字节。
long型则规定长度大于等于int型,且最短长度为4字节。
2 J***A和C++的区别是什么?分别用在什么情景比较好?
java是解释性语言,执行过程是先编译成.class字节码文件,再用JVM执行
c++是编译性语言,执行时直接编译成可供机器识别的二进制代码
因此java的速度相对c++慢
但是java支持跨平台,一次编译,处处执行
C++不支持跨平台操作
c++有指针,java没有
c++支持多重继承,java没有,但是java提出了接口,可以通过继承多个借口来实现c++多重继承的问题
移植性: C++困难,依赖机器底层实现; J***A容易,基于JVM。
垃圾回收: C++无;J***A有,自动回收空间。
适用场景:
C++: 对于效率要求高的底层架构式系统。
J***A: 面向对象的大规模系统, ERP, WEB等。
3 编程题:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对。
4 给定一个奇数n,比如n=3,生成1到n平方的数,如1到9,填入九宫格,使得横竖斜的和都相等。
5 C和C++有什么区别,能用C实现C++所有功能吗?C能实现多态吗?
c++是面向对象语言,c不是。c不能实现所有c++功能,比如函数重载,虚函数。c不能实现多态
C是面向过程的语言,C++是面向对象的语言,C++比C多了三大特性:继承、封装和多态。C++兼容绝大部分C的语法,理论上用C是可以实现C++的所有功能
6 逻辑题:25匹马,5条赛道,一匹马一个赛道,比赛只能得到5匹马之间的快慢程度,而不是速度,求决胜1,2,3名至少多少场。
一匹马只有跑了才能看出其速度,25匹马至少都跑了一次,最少五轮,且每轮能排出名次;由于最终只要最快的三名,顾每组只有1、2、3有意义继续比下去,4、5名直接淘汰。每组的3有意义的前提是该组的2就是总排名的2、1就是总排名的1,每组的2有意义的前提是该组的1至少第二;归根到底还是看每组第一的情况,故5个第一比一次,第一就是总的第一;第四、第五及其所在的组全部被淘汰;故第一的组的二、三名,第二的组第一、二名;第三的组的第一名比最后一次,前两名就是总的二、三名;共七轮。
a1,a2,a3,a4,a5;------>a1,a2,a3;
b1,b2,b3,b4,b5;------>b1,b2,b3;
c1,c2,c3,c4,c5;------>c1,c2,c3;
d1,d2,d3,d4,d5;------>d1,d2,d3;
e1,e2,e3,e4,e5;------>e1,e2,e3;
a1,b1,c1,d1,e1;------> a1 ,b1,c1
a2,a3,b1,b3,c1;------> a2,a3 ;
7请用c++
实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能。
数据类型有char、short、bool、int、long、float、double,long long等,并不是所有的int和long都是4字节的,在16位机中int就是2字节的,而在64位机中long是8字节的。C++中对int的长度约束是大于等于short型的长度,小于等于long型的长度,且最短长度是2字节。
long型则规定长度大于等于int型,且最短长度为4字节。
2 J***A和C++的区别是什么?分别用在什么情景比较好?
java是解释性语言,执行过程是先编译成.class字节码文件,再用JVM执行
c++是编译性语言,执行时直接编译成可供机器识别的二进制代码
因此java的速度相对c++慢
但是java支持跨平台,一次编译,处处执行
C++不支持跨平台操作
c++有指针,java没有
c++支持多重继承,java没有,但是java提出了接口,可以通过继承多个借口来实现c++多重继承的问题
移植性: C++困难,依赖机器底层实现; J***A容易,基于JVM。
垃圾回收: C++无;J***A有,自动回收空间。
适用场景:
C++: 对于效率要求高的底层架构式系统。
J***A: 面向对象的大规模系统, ERP, WEB等。
3 编程题:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对。
// language : C++ #include <bits/stdc++.h> using namespace std; class Solution { public: vector<pair<string, string> > solve(vector<string> str) { vector<pair<string, string> > ret; unordered_map<string, int> Map; for(int i = 0; i < str.size(); ++i) { int tmp = Map[str[i]]; if(tmp == 0) { Map[str[i]] = 1; } if(tmp == 1) { string tmpstr = str[i]; reverse(str[i].begin(), str[i].end()); if(Map[str[i]] == 1) { ret.push_back(make_pair(tmpstr, str[i])); Map[str[i]] = Map[tmpstr] = 2; } } } } return ret; } };
4 给定一个奇数n,比如n=3,生成1到n平方的数,如1到9,填入九宫格,使得横竖斜的和都相等。
/* n奇数幻方口诀: 1. 数字1放在第一行中间 2. 依次放在上一个数的右上角 2.1如果右边出去了就回到左边(3,4) 2.2 如果上面出去了就放下面(1,2) 2.3 如果右上角有了就放在这个数的下面(参考5,6) */ #include<iostream> #include<cstring> using namespace std; int map[20][20]; int main() { int n,i,j,k;; while(cin>>n) { memset(map,0,sizeof(map)); i=1; j=n/2+1; map[i][j]=1; for(k=2;k<=n*n;k++) { if(j+1<=n&&i-1>=1)//右上角 { if(map[i-1][j+1]==0) { i--; j++; } else//数没有 { i++; } } else if(j+1>n&&i-1<=0)//最右上角 { if(map [1]==0) { i=n; j=1; } else//数没有 { i++; } } else if(j+1>n) { j=1; i--; } else { i=n; j++; } map[i][j]=k; } for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { cout<<map[i][j]<<" "; } cout<<endl; } } return 0; }
5 C和C++有什么区别,能用C实现C++所有功能吗?C能实现多态吗?
c++是面向对象语言,c不是。c不能实现所有c++功能,比如函数重载,虚函数。c不能实现多态
C是面向过程的语言,C++是面向对象的语言,C++比C多了三大特性:继承、封装和多态。C++兼容绝大部分C的语法,理论上用C是可以实现C++的所有功能
6 逻辑题:25匹马,5条赛道,一匹马一个赛道,比赛只能得到5匹马之间的快慢程度,而不是速度,求决胜1,2,3名至少多少场。
一匹马只有跑了才能看出其速度,25匹马至少都跑了一次,最少五轮,且每轮能排出名次;由于最终只要最快的三名,顾每组只有1、2、3有意义继续比下去,4、5名直接淘汰。每组的3有意义的前提是该组的2就是总排名的2、1就是总排名的1,每组的2有意义的前提是该组的1至少第二;归根到底还是看每组第一的情况,故5个第一比一次,第一就是总的第一;第四、第五及其所在的组全部被淘汰;故第一的组的二、三名,第二的组第一、二名;第三的组的第一名比最后一次,前两名就是总的二、三名;共七轮。
a1,a2,a3,a4,a5;------>a1,a2,a3;
b1,b2,b3,b4,b5;------>b1,b2,b3;
c1,c2,c3,c4,c5;------>c1,c2,c3;
d1,d2,d3,d4,d5;------>d1,d2,d3;
e1,e2,e3,e4,e5;------>e1,e2,e3;
a1,b1,c1,d1,e1;------> a1 ,b1,c1
a2,a3,b1,b3,c1;------> a2,a3 ;
7请用c++
实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能。
#include <utility> #include <string.h> classString { public: String():data_(newchar[1]) { *data_ = '\0'; } String(const char * str):data_(newchar[strlen(str) + 1]) { strcpy(data_, str); } String(const String & rhs) : data_(newchar[rhs.size() + 1]) { strcpy(data_, rhs.c_str()); } /* Delegate constructor in C++11 String(const String& rhs):String(rhs.data_) { } */ ~String() { delete[] data_; } /* Traditional: String& operator=(const String& rhs) { String tmp(rhs); swap(tmp); return *this; } */ String &operator=(String rhs)// yes, pass-by-value { swap(rhs); return*this; } // C++ 11 String(String &&rhs): data_(rhs.data_) { rhs.data_ = nullptr; } String &operator=(String && rhs) { swap(rhs); return*this; } // Accessors size_t size() const { return strlen(data_); } const char * c_str() const { return data_; } void swap(String & rhs) { std::swap(data_, rhs.data_); } private: char *data_; };
相关文章推荐
- 百度2015校园招聘笔试题——研发工程师(西安站)
- 百度2015校园招聘笔试题——研发工程师(西安站)
- 百度2014校园招聘 软件研发工程师 笔试题
- 百度2014校园招聘-研发工程师笔试题
- 2012年5月6日 百度实习研发工程师笔试题(通用)
- 腾讯2015校园招聘研发工程师笔试题(西安站)
- 阿里巴巴2015基础平台研发工程师实习生笔试卷
- 百度2014校园招聘-研发工程师笔试题(济南站)
- 百度 2014 校园招聘 软件研发工程师 笔试题(天津站)
- 百度2014校园招聘笔试题(深圳-软件研发岗)
- 百度2014校园招聘笔试题 ——深度学习算法研发工程师.
- 百度2014校园招聘笔试题 ——深度学习算法研发工程师.
- 最长连续字母序列的长度(阿里2015在线研发工程师笔试题)
- 百度2014校园招聘笔试题 ——深度学习算法研发工程师.
- 百度2015校园招聘 自然语言处理工程师笔试
- 腾讯研发工程师B笔试卷/腾讯2015春招移动客户端开发练习卷
- 百度2013校园招聘软件研发工程师笔试题 高清扫描版(网络首发)
- 百度2014校园招聘-研发工程师笔试题(济南站)
- HTTP的会话有四个过程,请选出不是的一个()----百度2016研发工程师笔试题(六)
- 百度2014校园招聘笔试题 ——深度学习算法研发工程师.