三七互娱2018笔试题
来源:互联网 发布:淘宝刷一个单多少钱 编辑:程序博客网 时间:2024/05/16 19:32
三七互娱,一个小时,十个简答题,也许是想用时间先刷掉一批人吧。
一、指针和引用的区别?
(1)指针可以不初始化,引用必须初始化。
(2)指针可以改变其指向,引用一经引用,无法改变。
(3)指针有二级指针,引用没有二级引用(C++11标准除外)。
(4)sizeof一个指针,32位机器下为4字节,sizeof一个引用,求的是引用对象的字节数。
指针和引用在汇编上都是一样的,都是在栈上开辟一块内存,用于存放指向对象的地址。只不过是引用直接将引用对象的地址放入寄存器中,而指针则是先将自己的地址放进去,取得指向对象的地址。
二、单链表的逆置?
{
int data;
struct Node *next;
}Node,*List;
void ListRevers(List head)
{
assert(head!= NULL);
if(head==NULL || head->next==NULL)
{
return ;
}
Node *p = head->next;
Node *q;
head->next = NULL;
while(p != NULL)
{
q = p->next;
p->next = head->next;
head->next = p;
p = q;
}
}
静态存储区 栈 堆 的内存分配
1,从静态存储区域分配内存。程序编译的时候内存已经分配好了,并且在程序的整个运行期间都存在,例如全局变量。
2,在栈上创建。在执行函数时,函数内局部变量的存储单元可以在栈上创建,函数结束时这些存储单元自动被释放。
处理器的指定集中有关于栈内存的分配运算,因此效率比较高,但是分配的内存容量有限。
3,在堆上分配内存,亦称动态内存分配,程序在运行的时候用malloc函数或new运算符申请任意大小的内存,程序员
要用free函数或delete运算符释放内存。动态内存使用非常灵活,但问题也很多。
四、STL中的容器有哪些,他们的特征?
顺序容器:vector,list,deque
关联容器:set,multiset,map,multimap
容器适配器:queue,stack
vector的底层是一个动态开辟的可变长的数组,他的内存是连续的。定义一个vector,在32位机器,VS下,栈上的大小为20字节,五个指针。bool类型的话为24字节。它所指向的堆上vector数组的初始大小为0,每次呈二倍增长方式,VS其实不为2。他适合查找和以及尾插,尾删数据。
list的底层是一个带头结点的双链表,他默认开辟一个头结点。可以使用splice方法,将一个链表上数据切下来链到另一个链表上。
deque底层是一个动态开辟的二维数组,默认开辟的大小为,int size = 4096 > sizeof(Ty) ? 4096/sizoef(Ty) : 1。
五、20个人轮流报数,数到3的人出局,求出局的序列?
void fun()
{
vector<int> ve(20,0);
int num = 0;
while(num < 20)
{
for(int i = 0; i < 20; ++i)
{
if(ve[i] == 0)
num++;
if(num == 3)
{
ve[i] = 1;
num = 0;
cout<<i<<" ";
}
}
}
cout<<endl;
}
六、写出String类的构造,拷贝构造,赋值,析构函数?
class String
{
public:
String(const char *str)
{
if(str == NULL)
{
m_data = new char[1];
m_data = '\0';
}
else
{
m_data = new char[strlen(str) + 1];
strcpy(m_data,str.m_data);
}
}
String(const String &it)
{
m_data = new char[strlen(it.m_data) + 1];
strcpy(m_data,it.m_data);
}
~String()
{
delete []m_data;
m_data = NULL;
}
String &operator=(const String &it)
{
if(this == &it)
{
return *this;
}
delete []m_data;
m_data = new char[strlen(it.m_data) + 1];
strcpy(m_data,it.m_data);
return *this;
}
private:
char *m_data;
};
其次还有一道数据库的题印象颇深,剩余的题就没有什么了。
- 三七互娱2018笔试题
- 三七互娱笔试题
- 三七互娱2018校招前端笔试题
- 2018三七互娱前端笔试
- 2018校招三七互娱软件测试岗笔试题
- Android笔试题——三七互娱的一些笔试题
- 三七互娱笔试之【20人围圈,报数遇3排除】
- 三七、鼠标滚动事件
- 【笔试集锦】百度2018前端笔试笔试第一题
- 【笔试题】网易2018秋招内推笔试
- 【笔试题】携程2018笔试[中位数、]
- 2018科大讯飞校招笔试题
- 2018有赞校招笔试题
- 趣说男女三七分
- 三七养生抗衰老功效
- 再见百田,你好三七
- 2018京东前端笔试题笔试题
- 网易2018校招内推笔试题
- 读取一组电话号码簿(由姓名和手机号码组成),将重复出现的项删除(姓名和电话号码都相同的项为重复项,只保留第一次出现的项),并对姓名相同手机号码不同的项进行如下整理。
- 用BufferedReader和BufferedWriter实现对文章的敏感字符用****代替
- Maven是什么
- SpringMVC之Bean的装配
- MyBatis缓存机制
- 三七互娱2018笔试题
- Number Sequence(hdoj1005)
- 欢迎使用CSDN-markdown编辑器
- Java常用算法——冒泡排序
- 100. Same Tree
- 9.6(周三)
- iOS10 本地通知
- 读懂源码系列-FileZilla Server 设计原则分析-socket 事件响应流程(3)
- Codeforces 854 B Maxim Buys an Apartment