人人公司 C++笔试
选择填空题
1,下列叙述中,正确的是( )
A. 线性链表中的各元素在存储空间中的位置必须是连续的
B. 线性链表中的表头元素一定存储在其他元素的前面
C. 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D. 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
2,已知二叉树后序遍历序列是edcfba,中序遍历序列deacbf,它的前序遍历序列是adebcf
3,如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是______________
4,若有定义语句: int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( )
A. a[0][3] B. a[1][4] C. a[0][4] D. a[1][3]
5,对长度为n的字符串进行字符定位运算的时间复杂度为( )
A. O(1) B. O(√n) C. O(nlog2n) D. O(n)
6,N个顶点的连通图中边的条数至少为__n-1________
7,在OSI模型中,完成多路复用的是( )
A. 数据链路层 B. 网络层 C. 传输层 D. 应用层
8,有如下语句int a[10]={1,2,3,4,5,6,7,8,9,10};int *p = a;则数值为9的表达式是( )
A. *p+9 B. *(p+8) C. *p+=9 D. p+7
9,下列对变量的引用中错误的是( )
A. void fun(const int&n =”renren”); B. int&fun( );
C. int a; int &p; p=a; D. int a;int &p = a;
10,一个函数带有参数说明时,则参数的默认值应该在( )中给出。
A. 函数定义 B. 函数声明 C. 函数定义或声明 D. 函数调用
简答题
1,请问这个程序的输出是什么?并写出原因
#include”stdafx.h”
#include<iostream>
class Book
{
public:
Book(){std::cout<<”Book\n”;};
~Book(){std::cout<<”~Book\n”;}
};
int_main(int argc,_TCHAR*argv[])
{
Book*pBook = new Book[3];
delete pBook;
return 0;
}
2,什么函数不能声明为虚函数?
3,请问交换机和路由器分别的实现原理是什么?分别在那个层次上面实现的?
4,用变量a给出下面的定义
A,一个整型数 int a
B,一个指向整形数的指针 int* p
C,一个指向指针的指针,它指向的指针是指向一个整型数 int** p
D,一个有10个整型数的数组 int a[10]
E,一个有10个指针的数组,该指针是指向一个整型数的 int *p[10]
F,一个指向有10个整型数数组的指针int (*p)[10]
G,一个指向函数的指针,该函数有一个整型参数并返回一个整型数 int (*pfun)(int n)
H,一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数 int (*pfun[10])(int n)
编程题
1,实现一个单链表的翻转
2,用一把刀切一个半径为r的圆,一刀切成两份,两部分面积之比为a:b,用你觉得最快的方法,编程求圆上那条割线多长?
3,假设在人人网上,你的所有初中同学和你都是好友关系,你的大学同学喝你都是好友关系,但是你的初中同学喝大学同学之间并没有任何好友关系,那么你就是你的初中朋友圈和大学朋友圈两个好友圈子的关键人物,现在给你10W个用户之间的关系图谱找出这10W个用户里面所有的关键人物,说出想法即可,也可就此类问题扩展开谈。