面试题总结(三)

1.用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0

6
8
10
12
14    //sum/3 + sum/9 + sum/27 == 14
16

2.小赵和小钱二人分别从寝室和图书馆同 时出发,相向而行。过了一段时间后二人在中途相遇,小赵继续向图书馆前进,此时:若小钱继续向寝室前进,则当小赵到达图书馆时,小钱离寝室还有600米; 若小钱立即折返向图书馆前进,则当小赵到达图书馆是,小钱离图书馆还有150米。那么图书馆与寝室间的距离是____。

1300m
1250m
800m
1050m
1100m
900m  

//从题目中可以得出差600米,即速度相差v(t1+t2),其中t1相遇时间,t2为小赵走到图书馆的时间,v*t2==150,
综述:

v(t1+t2)=600

v*t2=150

t1:t2==3:1 则:600+150+150

3.某开发团队有6位开发同学,需参加5个项⽬,每位同学需要恰好参加1个项⽬,那么总共有____ 种不同的分配⽅案

7200
3600
2700
1800   //  C6 2 *A5 5
900
30

4.下列选项中,识别模式与其他不一样的是____。

用户年龄分布判断:少年、青年、中年、老年
医生给病人诊断发病类型
投递员分拣信件
消费者类型判断:高消费、一般消息、低消费
出行方式判断:步行、骑车、坐车
商家对商品分级

5.如下SQL语句中,____可能返回null值。
(1) select count(*) from t1;
(2) select max(col1) from t1;
(3) select concat('max=',max(col1)) from t1;
(1)可能,(2)和(3)不可能
(2)可能,(1)和(3)不可能
(2)可能,(1)和(3)不可能
(1)不可能,(2)和(3)可能
都不可能
都可能

count正常情况下会返回行数,如果没有返回0

max正常不会出现NULL,否则会出现NULL

6.以下关于STL的描述中,____是错的。

STL容器是线程不安全的
当容量不够时,vector内部内存扩展方式是翻倍
std::sort是稳定排序   //是不稳定的
std::bitset不是一个STL容器
std::stack默认是用deque实现的
std::string中可以存储多个’\0’字符

7.有8只球队,采⽤用抽签的⽅方式随机配对,组成4场⽐比赛。假设其中有4只强队,那么出现强强对话 (任意两只强队相遇)的概率是____。

1/3
3/7
1/2
13/21
27/35
31/35

 

四个强队不相遇的概率(8*6*4*2)/(8*7*6*5)=8/35

 

则相遇的概率就是27/35了
8.两个市区C1和C2,其人口比率是1:3,从今年的患病统计来说,C1市区由于污染严重,患癌的概率是0.1%,而C2市的患癌概率是0.02%,现在医院接收到一位患癌病人,他是C1市区来的概率是____。
62.5%    (0.1 * 1)/(0.1 + 0.02*3) == 0.625
25%
75%
77.5%
50%
70%
9.下面代码在64位Linux系统编译执行,输出结果是____.
#include <stdint.h> 
#include <stdio.h> 
void print_size(int32_t array[10]){ 
 printf("%d\n", sizeof(array)); 
} 
int main () { 
 int32_t myArray[10]; 
 printf("%d ", sizeof(myArray)); 
 print_size(myArray); 
} 

20 4
40 4
80 4
40 8   // 10 * 4==40
80 8
以上均不正确

10.假设某棵二叉查找树的所有键均为1到10的整数,现在我们要查找5。下面____不可能是键的检查序列。

10,9,8,7,6,5
2,8,6,3,7,4,5   //6 > 3      但 3 < 7
1,2,9,3,8,7,4,6,5
2,3,10,4,8,5
4,9,8,7,5
以上均正确

11.以下程序在32位机器上运行输出是____。

 

#include <iostream>
using namespace std;
class animal
{
protected:
    int age;
public:
    virtual void print_age(void) = 0;
};
class dog : public animal
{
public:
       dog() {this -> age = 2;}
       ~dog() { }
       virtual void print_age(void) {cout<<"Wang, my age = "<<this -> age<<endl;}
};
class cat: public animal
{
public:
    cat() {this -> age = 1;}
    ~cat() { }
    virtual void print_age(void) {cout<<"Miao, my age = "<<this -> age<<endl;}
};
int main(void)
{
     cat kitty;
     dog jd;
     animal * pa;
     int * p = (int *)(&kitty);
     int * q = (int *)(&jd);
    p[0] = q[0];
    pa = &kitty;
    pa -> print_age();
    return 0;

}

 

Wang, my age = 2
Wang, my age = 1
Miao, my age = 2
Miao, my age = 1
程序编译报错
程序运行报错

对象的内存地址是:
虚指针(如果有),数据成员列表;
故这里其实是改变了虚函数指针。
同样方式我们可以p[1] = 100;改变kitty 的 age 为100
12.A,B,C三位同学都是很聪明的同学,面试官给他们背上依次贴上了数字2,4,8,他们都能看见别人的数字但无法看见自己的数字,现在面试官告诉他们这些 数字都是自然数并且构成一个等比数列,让A、B、C同学依次循环回答是否确定自己的数字是多少,每位同学的回答算作一次,经过____次有同学能准确说出 自己的数字。
2
3
4
5
6
7
三次 A同学看到B4 C8时,猜自己是2或16,B同学看到A2 C8 猜到自己可能是4 或者16 C同学看到A2 B 4,猜自己是1或者8 但是如果自己是1 的话,A肯定是能知道自己的号牌的,所以自己只可能是8

13.给定一个整数sum,从有N个无序元素的数组中寻找元素a、b、c、d,使得 a+b+c+d =sum,最快的平均时间复杂度是____。

O(N^2)
O(log N)
O(N)
O(N^3)
O(N^2LogN)
O(N^4)

14.设二叉树结点的先根序列、中根序列和后根序列中,所有叶子结点的先后顺序____。

三者相同
只有先序和中序相同,与后序不同
只有中序和后序相同,与先序不同
只有先序和后序相同,与中序不同
视树的情况而定
三者都不相同

15.将整数序列(7-2-4-6-3-1-5)按所示顺序构建一棵二叉排序树a(亦称二叉搜索树),之后将整数8按照二叉排序树规则插入树a中,请问插入之后的树a中序遍历结果是____。

1-2-3-4-5-6-7-8
7-2-1-4-3-6-5-8
1-3-5-2-4-6-7-8
1-3-5-6-4-2-8-7
7-2-8-1-4-3-6-5
5-6-3-4-1-2-7-8

16.下列各项技术中,目的与程序的容错(fault-tolerance)最不相关的是____。

fail fast
graceful degradation
backup
sandbox
checkpoint
watchdo

17.对于192.168.0.0到192.168.0.255这个网络来说,以下说法中正确的是____。

网段内可用来作为主机IP的范围是:192.168.0.0到192.168.0.255
Network IP是192.168.0.255
Broadcast IP是192.168.0.0
网段内的主机可以通过网卡对网卡传递数据
192.168.0.1和192.168.0.2的主机需要使用Router传递数据包
是class B等级

18.以下是一个有向图,我们从节点B开始进行深度优先遍历(DFS),那么以下5个序列中,所有正确的DFS序列是____。

//img-blog.csdn.net/20150508150648554

1、BADECF  2、BADEFC  3、BCAFDE  4、BCFDEA  5、BFDECA
245
24
13
123
12345
12

19 已知int a[]={1,2,3,4,5};int*p[]={a,a+1,a+2,a+3};int **q=p;表达式*(p[0]+1)+**(q+2)的值是____。
5    *(p[0]+1) = 2  && **(q + 2) == 3
6
7
8
4
9

20.20 设x、y、t均为int型变量,则执行语句:t=3; x=y=2; t=x++||++y; 后,变量t和y的值分别为____。
t=1 y=2   //  ||(短路“或”),前面满足就不用判断后面;   &&(短路“与”),前面满足就不用判断后面
t=1 y=3
t=2 y=2
t=2 y=3
t=3 y=2
t=3 y=3

注:| 表示或,有一个1,就是true;  & 表示与,有一个0,就是false

 

posted @ 2015-06-25 08:32  天天AC  阅读(1031)  评论(0编辑  收藏  举报