1、有4副相同的牌,每副牌有4张不同的牌.先从这16张牌中,随机选4张出来.然后,在这4张牌中随机选择一张牌,然后把抽出的一张放回3张中,再随机选择一张牌.与上次选出的牌一样的概率是()
A1/4
B1/3
C2/5
D1/2
E2/3
F3/4
答案:C
说明:前面的条件只是告诉你4副牌是完全相同的,所以每一种牌都有4张。将这四张牌标记为A、B、C、D,假设第一次抽到的是A。
看第二次抽牌,重新抽回A的概率是1/4,抽到其他的概率是3/4。而在其他的3张牌中与A相同的牌存在的概率,就相当于在15张牌中抽到其他3张与A相同的牌的概率,3/15。所以最后的概率是1/4 + 3/4 * 3/15 = 2/5
2、某体校选择校服,每套校服都包括短袖运动衫,长袖运动衫,厚外套,运动长裤和运动短裤组成.每种运动服有个备选方案.老师请了部分学生来挑选自己喜欢的校服.结果发现任意3个学生都至少在一种运动服上选择互不相同,那么老师最多邀请了()名学生参加挑选.
A7
B8
C9
D10
E11
F12
答案:B
说明:每套校服都包括短袖运动衫,长袖运动衫,厚外套,运动长裤和运动短裤组成.“每种运动服”有个备选方案。说明校服一共有2^5=32种选择方案。任意3个学生都至少在一种运动服上选择互不相同,假设老师邀请了n个学生参加挑选,则Cn2<32<Cn3得n=8
3、给定的一个长度为N的字符串str,查找长度为P(P<N)的字符串在str中的出现次数.下面的说法正确的是()
A不存在比最坏时间复杂度O(NP)好的算法
B不存在比最坏时间复杂度O(N^2)好的算法
C不存在比最坏时间复杂度O(P^2)好的算法
D存在最坏时间复杂度为O(N+P)的算法
E存在最坏时间复杂度为O(log(N+P))的算法
F以上都不对
答案:D
说明:KMP算法。
KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。
4、下面关于一个类的静态成员描述中,不正确的是()
A静态成员变量可被该类的所有方法访问
B该类的静态方法只能访问该类的静态成员函数
C该类的静态数据成员变量的值不可修改
D子类可以访问父类的静态成员
E静态成员无多态特性
答案:C
说明:类的静态成员属于整个类 而不是某个对象,可以被类的所有方法访问,子类当然可以访问父类静态成员;静态方法属于整个类,在对象创建之前就已经分配空间,类的非静态成员要在对象创建后才有内存,所有静态方法只能访问静态成员,不能访问非静态成员;静态成员可以被任一对象修改,修改后的值可以被所有对象共享。
5、
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
vector<int>array;
array.push_back(100);
array.push_back(300);
array.push_back(300);
array.push_back(300);
array.push_back(300);
array.push_back(500);
vector<int>::iterator itor;
for(itor=array.begin();itor!=array.end();itor++)
{
if(*itor==300)
{
itor=array.erase(itor);
}
}
for(itor=array.begin();itor!=array.end();itor++)
{
cout<<*itor<<"";
}
return 0;
}
上面这个代码输出的是()
A100 300 300 300 300 500
B100 300 300 300 500
C100 300 300 500
D100 300 500
E100 500
F程序错误
答案:
6、
struct st
{
int *p;
int i;
char a;
};
int sz=sizeof(struct st);
如上C程序,在64位处理器上运行后sz的值是什么?
A24
B20
C16
D14
E13
F12
答案:http://blog.csdn.NET/b_zhang/article/details/6818354
7、在自由交换的情况下,只考虑偏好,小张用自己的小刀换了小王的橡皮.关于这个交换以下说法错误的是:
A小张觉得橡皮比小刀更好
B小王觉得小刀比橡皮更好
C小张和小王总的财富里没有发生变化
D小张和小王的效用值增加了
E如果把小王换成小吴,那么这个交换可能就不会发生
F小刀和橡皮等值
答案:F
8、有100个金币,分给10个人.第一个金币等概率地分给10个人之一.之后的每一个金币分配给第K个人的概率正比于这个人已经持有的金币数+1.在这样的分配机制下,关于每个人最终的金币个数的分布的说法错误的是()
A每个人得到的金币的个数的期望是相等的
B每个人的金币个数接近均匀分布
C第一个金币给哪个人,哪个人的最终金币个数的期望就会更大
D在中间的某个阶段金币个数越多的人,未来获得金币的可能性越大
E以上说法都是正确的
F以上说法都是不正确的
答案:C
9、7的2014次方这个整数的十位数字数是()
A0
B1
C3
D4
E5
F7
答案:D
说明:以4位周期2014/4余2
10、某创业团队的一个很大的办公室(障碍和遮挡可以忽略)里有一个WIFI源,有1个工位由于距离WIFI源太远而接收不到信号.为了提高该工位的联网质量,准备在工位和WIFI信号源之间安装一个无线AP(相当于中继的,可以中转该工位上的计算机和WIFI之间的信号).只考虑从WIFI发出的信号,如果AP离WIFI源太近,就起不到中继的作用,如果AP离工位太远则可能连不上WIFI.因此AP有一个最佳的安装位置,那么关于AP最佳安装位置的说法正确的是()
A如果WIFI源功率越大,那么AP最佳安装位置越靠近WIFI源
B如果WiFi源功率越大,那么AP最佳的安装位置越靠近工位
CWIFI源功率和AP最佳安装位置无关.
DAP最佳安装位置在工位和WIFI信号源连线之外
EAP最佳安装位置在工位和WIFI信号源连线中点
F以上说法都不对
答案 :B
11、下面的哪种排序算法在算复杂度平均不是O(nlogn)的?
A快速排序
B桶排序
C合并排序
D二叉树排序树排序
E堆排序
答案:B
桶排序:n+N*(logN-logM)
12、下面哪个不是线性表?
A循环链表
B队列
C栈
D关联数组
E空字符串数组
F双向链表
答案:D
13、在100-999这900个自然数中,若将组成这个数的三个数字认为是三条线段的长度,那么这三条线段组成一个等腰三角形(包括等边)的共有()个.
A45
B91
C121
D142
E156
F165
答案:F
说明:
先考虑等边三角形情况
则a=b=c=1,2,3,4,5,6,7,8,9,此时n有9个
再考虑等腰三角形情况,若a,b是腰,则a=b
当a=b=1时,c<a+b=2,则c=1,与等边三角形情况重复;
当a=b=2时,c<4,则c=1,3(c=2的情况等边三角形已经讨论了),此时n有2个;
当a=b=3时,c<6,则c=1,2,4,5,此时n有4个;
当a=b=4时,c<8,则c=1,2,3,5,6,7,有6个;
当a=b=5时,c<10,有c=1,2,3,4,6,7,8,9,有8个;
由加法原理知n有2+4+6+8+8+8+8+8=52个
同理,若a,c是腰时,c也有52个,b,c是腰时也有52个
所以n共有9+3×52=165个
14、有无限的水源,一个5L无刻度桶和一个7L无刻度桶,则只利用这两个无刻度桶,将不能获得()L水
A2
B3
C6
D8
E11
F以上均能获得
答案:F
说明:均可获得。
2:7L装满,倒满5L,剩2L
3:5L装满,倒7L;再装满5L,倒满7L,剩3L
6:5L装满,倒7L;再装满5L,倒满7L,剩3L;倒给7L,5L装满,再倒满7L,剩1L;倒给7L,5升装满,共6L。
8:5L装满,倒7L;再装满5L,倒满7L,剩3L;倒给7L,5L装满,共8L
11:7L装满,倒满5L,剩2L;倒给5L,7L装满,再倒满5L,剩4L;倒给5L,7L倒满,共11L
15、关于linux的I/O复用接口select和epoll,下列说法错误的是()
Aselect调用时会进行线性遍历,epoll采用回调函数机制,不需要线性遍历
Bselect的最大连接数为FD_SETSIZE
Cselect较适合于有大量并发连接,且活跃链接较多的场景
Depoll较适用于有大量并发连接,但活跃连接不多的场景
Eepoll的效率不随FD数目增加而线性下降
Fepoll通过共享存储实现内核和用户的数据交互
答案 :C
说明:select 和 epoll效率差异的原因:select采用轮询方式处理连接,epoll是触发式处理连接。
Select:
1.Socket数量限制:该限制可操作的Socket数由FD_SETSIZE决定,内核默认32*32=1024.
2.操作限制:通过遍历FD_SETSIZE(1024)个Socket来完成调度,不管哪个Socket是活跃的,都遍历一遍。
Epoll
1.Socket数量无限制:该模式下的Socket对应的fd列表由一个数组来保存,大小不限制(默认4k)。
2.操作无限制:基于内核提供的反射模式,有活跃Socket时,内核访问该Socket的callback,不需要遍历轮询。
但当所有的Socket都活跃的时候,所有的callback都被唤醒,会导致资源的竞争。既然都是要处理所有的Socket,
那么遍历是最简单最有效的实现方式。
16、下面关于系统调用的描述中,错误的是()
A系统调用把应用程序的请求传输给系统内核执行
B系统调用中被调用的过程运行在"用户态"中
C利用系统调用能够得到操作系统提供的多种服务
D是操作系统提供给编程人员的接口
E系统调用给用户屏蔽了设备访问的细节
F系统调用保护了一些只能在内核模式执行操作指令
答案:D
17、假设在n进制下,下面的等式成立,n值是()240*12=2880
A19
B18
C17
D16
E15
F以上都不对
18、在TCP/IP建立连接过程中,客户端和服务器端的状态转移说法错误的是?
A经历SYN_RECV状态
B经历SYN_SEND状态
C经历ESTABLISHED状态
D经历TIME_WAIT状态
E服务器在收到syn包时将加入半连接队列
F服务器接受到客户端的ack包后将从半连接队列删除
答案:D
说明:TCP建立连接时,首先客户端和服务器处于close状态。然后客户端发送SYN同步位,此时客户端处于SYN-SEND状态,服务器处于lISTEN状态,当服务器收到SYN以后,向客户端发送同步位SYN和确认码ACK,然后服务器变为SYN-RCVD,客户端收到服务器发来的SYN和ACK后,客户端的状态变成ESTABLISHED(已建立连接),客户端再向服务器发送ACK确认码,服务器接收到以后也变成ESTABLISHED。然后服务器客户端开始数据传输
19、以下二叉树的后序遍历结果是()
A(ABCDEF)
B(ABDECF)
C(FCEDBA)
D(DEBFCA)
E(FEDCBA)
F(EDBFCA)
答案:D
说明:先序:根左右;中序:左根右;后序:左右根
20、甲乙两个一样大小的杯子各自分别装着小于一半容积的水和酒精.现将甲杯子里的一部分水倒入乙杯子;之后将乙杯子的混合液倒入一些到甲杯子,此时甲杯子的液体恢复到最初的状态.假定水和酒精混合之后的体积等于混合之前的体积之和.那么以下说法正确的是()
A甲杯子里的酒精体积等于乙杯子里的水的体积
B甲杯子里的酒精的体积等于乙杯子里的酒精的体积
C甲杯子里的水的体积等于乙杯子里的酒精的体积
D甲杯子里的水的体积等于乙杯子里的水的体积
E甲杯子里的液体高于乙杯子里的液位
F以上都不对
答案:A
21、一个黑盒子里有若干红球和黑球,随机取出一个球是红球的概率是p.现在从黑盒子中拿出等量的红球和黑球后,随机取出一个球是红球的概率是q,如果p<q,那么以下说法正确的是()
A最初红球的个数小于黑球的个数
B最初红球的个数大于黑球的个数
C最初红球的个数是黑球的的2倍
D最初红球的个数是黑球的1/2
E无法判断最初红球和黑球谁多谁少
22、
main()
{
char *a[]={"work","at","alibaba"};
char **pa=a;
pa++;
printf("%s",*pa);
}
下列程序的执行结果是()
Aat
Batalibaba
Cork
Dorkatalibaba
E编译错误
F运行溢出
答案:A
说明:a[ ]就是*a,那么就是**a换成了**pa
23、对N个数进行排序,在各自最优条件下以下算法复杂度最低的是( )
A快速排序
B堆排序
C冒泡排序
D插入排序
E选择排序
F归并排序
答案:D
24、关于c++的inline关键字,以下说法正确的是()
A使用inline关键字的函数会被编译器在调用处展开
B头文件中可以包含inline函数的声明
C可以在同一个项目的不同源文件内定义函数名相同但实现不同的inline函数
D定义在Class声明内的成员函数默认是inline函数
E优先使用Class声明内定义的inline函数
F优先使用Class实现的内inline函数的实现
答案:D
说明:
A项错误,因为使用inline 关键字的函数只是用户希望它成为内联函数,但编译器有权忽略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的。
B项错误,头文件中不仅要包含inline函数的声明,而且必须包含定义,且在定义时必须加上inline。【关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅inline 放在函数声明前面不起任何作用】
C项错误,inline函数可以定义在源文件中,但多个源文件中的同名inline函数的实现必须相同。一般把inline函数的定义放在头文件中更加合适。
D 项正确,类内的成员函数,默认都是 inline的。【定义在类声明之中的成员函数将自动地成为内联函数】
EF项无意思,不管是class声明中定义的 inline函数,还是class实现中定义的inline函数,不存在优先不优先的问题,因为class的成员函数都是inline的,加了关键字 inline
也没什么特殊的。