1123面试
笔试(面试官说我基本上都做对了)
1、
int i=0; i+=i>0?i++:i--; int b=i; b=?
答案:-1
2、
f(10)中f()被调用多少次?
int f(int x){ i++; if(x<=2) return 1; return f(x-2)+f(x-4)+1; }
答案:15
3、
#include<bits/stdc++.h> using namespace std; class A{ public: virtual void f(){cout<<"A::f() "; } void f() const{cout<<"A::f() const ";} }; class B:public A{ public: void f(){ cout<<"B::f() "; } void f() const{ cout<<"B::f() const "; } }; void g(const A* a){ a->f(); } int main(){ A* p=new B(); p->f(); g(p); delete(p); return 0; }
输出结果?
答案: B::f() A::f() const
(虚函数实现的多态我忘记了,静态函数我没看过)
4、
int x=10; int y=10; x=y=++y; cout<<x<<" "<<y<<endl;
输出结果?
答案:11 11
5、定义虚函数的目的?
A、为了简洁
B、节省时间开销
C、实现多态
D、压缩代码空间
答案:C
6、数组和链表的区别?
A、有序情况下的搜索
B、插入和删除
C、随机访问
D、存储结构
答案:全选
7、股票交易只能在非节假日进行而不能在节假日中进行,现已设计出数据结构datetime并对<、>、==进行运算符重载以得出日期的先后,以bool返回
(1)若多次查询一个日期是否非节假日,应当用什么数据结构存储非节假日?
答案:二叉排序树以提高搜索操作的效率
(2)若多次查询两个非节假日之间的节假日天数,应当如何实现?
我写的用链表以时间顺序存放再设置到下一个非节假日中间的节假日数,面试官说还是用二叉排序树,没听懂他说什么意思
面试
对象在内存中的存放?(我说我只知道字节对齐竟然答对了)
虚函数?
纯虚函数?
内存泄漏?
进程和线程的区别?
线程之间怎么通信?
操作系统中的堆和栈分别存放什么?
什么是共享指针?(不会)
用过STL吗?