1 在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()
A 私有成员 B 公有成员 C 保护成员 D 保护成员或私有成员
2 下列程序输出结果是()
#include
void main(){
int n[][3] = { 10, 20, 30, 40, 50, 60};
int (*p)[3];
p = n;
cout << p[0][0] << "," << *(p[0] + 1) << ", " << (*p)[2] << endl;
A 10, 30, 50 B 10,20,30 C 20,40,60 D 10,30,60
3 假定A为一个类,则执行 A a(2) , b[3], *p[4] ;
语句时调用构造函数的次数为()
A 3 B 4 C 5 D 9
4 有关多态不正确的是()
A C++语法的多态性分编译时的多态和运行时的多态
B 编译时的多态性可通过函数重载实现
C 运行时的多态可通过模板和虚函数实现
D 实现运行时多态性的机制成为动态多态性
5 已知p
一个指向类A数据成员m的指针,a是类A的一个对象,如果要给m复制为5,正确做法是()
A a.p = 5
B a->p = 5
C a.*p = 5
D *a.p = 5
6 当一个类的某个函数被说明为virtual
时,该函数的在该类的所有派生类中()
A 都是虚函数
B 只有被重新说明的才是虚函数(本人注:此处题有点问题,貌似重新说明,应该是重写)
C 只有被重新说明为virtual
时才是虚函数
D 都不是虚函数
7 类B是类A的公有派生类, 类A和类B中都定义了虚函数func()
, p
是一个指向类A对象的指针,则p->A::func()
将()
A 调用类A中的函数
B 调用类B中的函数
C 根据p所指向的对象类型而确定调用类A中的函数或类B的函数
D 都调用
8 已知f1 和f2是同一个类中的两个成员函数,但是f1不能直接调用f2,这说明()
A f1和f2都是静态函数
B f1 不是静态函数, f2是静态函数
C f1 是静态函数, f2不是静态函数
D 都不是静态函数
9 程序输出结果为()
#define add(a+b) a+b
int main(){
printf("%d/n", 5*add(3+4));
return 0;
}
A 23 B 35 C 16 D 19
10 关于数据结构一下说法错误的是()
A 红黑树插入操作的平均时间不复杂度为O(logn), 最坏为O(logn)
B B+树。。。。。。。。。。。。。。。O(logn),。。。O(logn)
C Hash。。。。。。。。。。。。。。。O(logn),。。。O(n)
D 排序链表。。。。。。。。。。。。。O(n),。。。。。O(n)
11 有六个元素6,5,4,3,2,1顺序进栈,不合法的出栈顺序是()
A 5 4 3 6 2 1 B 4 5 3 1 2 6
C 3 4 6 5 2 1 D 2 3 4 1 5 6
12 36匹马,现有6个赛道,需要多少次比赛可以选出第一二三名()
A 7 B 8 C 9 D 12
13 下列语句正确的是()
A int a, &ra = a, &&ref = ra
B int &rafa[10]
C int a,&ra = a, &*refp = &ra
D int *pf, *&pref = pi
14 一个二叉树 的后序遍历为DEBFCA ,中序为DBEAFC,则前序为()(不贴选项了)
15 编译程序分析源程序阶段依次为()
A 语法分析,语法分析,语义分析
B 词法分析,语法分析,语义分析
C 语义分析,语法分析,词义分析
D 语法分析,语义分析,语法分析
16 代码执行后count的值为()
int count = 0;
for(int i = 1; i <= 13; i*= 2)
for(int j = 1; j <= i; ++j)
count++;
A 15 B 16 C 31 D 32
17 此设计模式定义一组可选算法,执行逻辑时根据环境选择算法,不同算法产生不同输出结果,则该设计模式为()
A 工厂factory
B 抽象工厂 abstract factory
C 策略 strategy
D 观察者 observer
18 选择合适的容器,需要频繁的进行插入和删除(1),需要在内存快速查找(2),需要在磁盘中快速查找(3).()
A vector/map/list
B list/hash_map/b tree
C deque/tree map/vector
D list/vector/map
19 若在有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找b的过程中,先后进行比较的关键字为()
A f e b B f d b C g c b D g db
20 68 + 78 = 201
,采用的是()进制表示。
A 12 B 13 C 14 D 15
21在32位机器上执行如下程序
unsigned char* p1;
unsigned int* p2;
p1 = (unsigned char*)0x810000;
p2 = (unsigned int*)0x820000;
请问p1 + 5
和 p2 + 5
分别等于多少()
A 0x810005, 0x820005
B 0x810005, 0x820020
C 0x810005, 0x820014
D 0x810010, 0x820020
22 程序段如下:
void GetValue(char* p){
p = (char*)malloc(100);
}
void Test(){
char* str = NULL;
GetValue(str);
strcpy(str, "Perfect");
strcpy(str + 2, "World");
printf(str);
}
运行Test()结果为()
A Perfect World B Rfect World
C PeWorld D 程序崩溃
23 静态变量的默认值是多少()
A 0 B 1 C 内存随机值 D 依赖编译器决定
24 关于tcp和udp描述中错误的是()
A
B
C
D
25 不属于linux通信方式的是()
A 线程局部变量 B共享内存 C socket D管道
26 c++ STl中list使用的迭代器类型为()
A Input iterator B Forward iterator
C Bidirectional iterator D Random Access Iterator
27 以下关于TCP的send函数描述正确的是()
A
B
C
D
28 如果一个有序的vector/map/set 中进行数据查找,哪一个查找复杂度更低()
A vector B map C set D 时间复杂度一样
29 关于stl描述正确的是()
A stl容器是多线程安全的。
B stl的vector查找效率一般比map快
C 往stl容器放入对象是直接拷贝一份对象到容易中,这部分内存由容易管理
D stl的栈是采用红黑书实现的。
30 某地非常重男轻女,若一户人家生一个女孩,可以继续生,直到男孩为止,假设生男女的概率相等。平均每户有()个女孩。
A 0.5 B 2/3 C 1 D 4/3
1 c++在c的基础上引入了4种类型转换关键字:()
2 c++函数可以通过以下方式重载(overload):(),不能通过返回值类型进行重载。原因是()。
3 c++内联函数(inline)的优点(),缺点()。
4 举例说明c和c++语言逻辑表达式中短路求值得意义()
5 为避免不知情的情况下构造某个c++对象,应该在此类的构造函数前使用()关键字
6 int n = 0; while(n = 1) n++;
while循环执行的次数是()
7 设类A的成员函数void f(void)
;若定义一个指向类成员函数的指针变量pf指向f,该指针变量声明语句是()。(可不要写成 auto pf = &A::f
,虽然这样是对的。)
8 用位操作把int最高为置零()
9 在IA32架构下,sizeof(PageLayout) 大小为()
union PageLayout{
struct{
int pi;
char key[5];
}
char d[10];
}
10
11
12
13
1
2
3 c中的malloc 和c++的new有什么区别
4 简述c++对象浅拷贝和深拷贝
5
1 链表翻转
2 实现一个函数删除vector中所有偶数(vector中元素为int)
//这是我当时的答案,仅仅得了2分
void removeEven(vector<int>& nums){
std::erase(std::remove_if(nums.begin(), nums.end(),
[](int x){return x%2 == 0;}),
nums.end());
}
3 编写类String的构造函数,析构函数,拷贝构造,复制函数
已知String的原型为:
class String{
public:
String(const char* str = NULL);
~String();
String(const String& other);
String& operator = (const String& other);
private:
char* m_data;
}
我当时是两个面试官一起面试的。
主要是c++语法比较多。
1 一个空类,编译器会自动为这个类实现哪些成员函数?
2 c++11新特性(我在简历上写了熟悉c++11)
3 智能指针,那几个指针的用途?
4 析构函数能否抛出异常?原因?(构造函数呢)
5 在构造函数中能否调用虚函数?(析构函数呢)。(此题因为说到虚函数,那么情景应该为有多态的情形)
6 写一个类似于std::shuffe的函数(唯一的代码题,不是考算法的)
7 了解socket相关的知识吗()
8 你玩过哪些游戏?(这部分比较开放了,部分题记不清楚了)
你了解bs,cs吗
你玩的游戏属于上边的哪一种 ?
几个人组建一个局域网打游戏,几台主机是如何通信的?服务器在吗?
巴拉巴拉瞎扯
巴拉巴拉瞎扯
首先笔试分为Java和C++这个比较人性化。c++部分的笔试题大部分都是考的语法级别的,看了前边的题应该晓得这点。
第二面试的时候更多也是会从语法方面问问题。
第三没有算法题。只要做过剑指offer上边的即可。
最后,去面试的时候,做好能提前半个小时到。这个时候前台会把你的试卷给你,这样你就有充足的时间看那些不会的题。因为有的面试官会针对你答错的题,再给你讨论。
对于完美来说,编程语言的语法很重要