2020校招笔试部分题型整理

先看后赞,养成习惯。点赞收藏,人生辉煌!

么么哒

1、从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。

A、O(n)
B、O(1)
C、O(log2n)
D、O(n2)
解析:如果二叉排序树是平衡的,则n个节点的二叉排序树的高度为Log2(n+1),其查找效率为O(Log2n),近似于折半查找。如果二叉排序树完全不平衡,则其深度可达到n,查找效率为O(n),退化为顺序查找。一般的,二叉排序树的查找性能在O(Log2n)到O(n)之间。因此,为了获得较好的查找性能,就要构造一棵平衡的二叉排序树。

2、如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是? ( C)

A、void drink() { …}
B、protected void drink() { …}
C、public void drink() { …}
D、以上语句都可以用在类Calf中
解析:子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public

3、SQL语言具有的功能是 ( B)

A、关系规范化,数据操纵,数据控制
B、数据定义,数据操纵,数据控制
C、数据定义,关系规范化,数据控制
D、数据定义,关系规范化,数据操纵
选B。
解析:SQL 是用于访问和处理数据库的标准的计算机语言。
SQL主要功能分成四部分:
数据定义:(DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
数据操纵:(DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
数据控制:包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
嵌入式SQL的使用规定:涉及到SQL语句嵌入在宿主语言程序中使用的规则。

4、数据链路层采用选择重传协议(SR)传输数据,发送方已发送了 0~3 号数据帧,现已收到 1 号帧的确认,而 0、 2 号帧依次超时,则此时需要重传的帧数是(B )。

A、1
B、2
C、3
D、4
解析:连续ARQ协议(GBN):发送方可以连续发送若干个数据帧,如果收到接收方的确认帧则可以继续发送。若某个帧出错,接收方只是简单地丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后续的所有数据帧。这里要注意,连续ARQ协议中,接收方一般采用累积确认的方式,即接收方对按序到达的最后一个分组发送确认;
选择ARQ协议(SR):选择重传协议中,接收方逐个地确认正确接收的分组,不管接收到的分组是否有序,只要正确接收就发送选择ACK分组进行确认。因此选择重传协议中的ACK.分组不再具有累积确认的作用。这点要特别注意与GBN协议的区别。
综上,已收到 1 号帧的确认,而 0、 2 号帧依次超时,那么重传的就是0,2两个数据帧;
可能你就要问了,那3号数据帧呢?关于3号帧的理解,0~3号帧都已发送了,对于每个发送的帧都有确认机制,现由于超时仍没有收到0和2号的确认,判定为超时,现在需要重传这两个帧,而现在正在等待3号帧的确认信息,而且等待时间还没有超时,所以就要继续等待,直至超时。

5、设有4 个作业同时到达,每个作业的执行时间均为2 个小时,它们在一台处理机上按单道方式运行,则平均周转时间为(B)。

A、1小时
B、5小时
C、2.5小时
D、8小时
解析:第一个作业无需等待,完成用2小时;第二个等待2小时,完成再用2小时,一共4个小时;第三个为6小时;第四个为8小时.所以(2+4+6+8)/4=5(小时)。

6.以下哪项不属于STL container?( D )

A、stack
B、queue
C、multimap
D、string
解析:STL container分为两大类:
序列容器:动态数组vector,双端队列deque(本质是动态数组加索引),链表list。
关联容器:set,map,multiset,multimap,bitset(叫bit_array更合适)。
容器适配器:stackqueue,priority_queue。

7.如果互连的局域网高层分别采用TCP/IP协议与SPX/IPX协议,那么我们可以选择的互连设备应该是?(D)

A、中继器
B、网桥
C、网卡
D、路由器
解析:《网络基础》
中继器、网卡:工作在物理层;
网桥:数据链路层;
路由器:网络层
路由器工作在网络的网络层上,当数据包要在不同协议、不同体系结构的网络之间进行传输时,路由器不仅可以进行路由选择,还可以进行数据包的格式转换以适应这种传送。

8.要运用css3动画,你需要运用什么规则?(B)

A、animation
B、keyframes
C、flash
D、transition
解析:《CSS》
要运用css3动画,需要运用@keyframes规则和animation属性

9.如下函数,在32bits系统foo(2^31-3)的值是(B)。(这里的^是指数的意思)

int foo (int x)
   return x & -x

A、0
B、1
C、2
D、4
解析:《C语言、编译和体系结构》此题应该考虑符号位2^31=10000000 00000000 00000000 00000000(这里的第一位是符号位,以补码形式存储,此时输出应该为-INT_MAX)2^31-3=01111111 11111111 11111111 11111101(源码=补码,这里有两种思路理解:思路一:2^31-3不溢出,得到正数,思路二:两个补码相加)
-(2^31-3)=11111111 11111111 11111111 11111101(源码),1000000 00000000 00000000 00000011(补码)
两个补码做按位与后得到结果为00000000 00000000 00000000 00000001结果为1

10、假设下列字符码中有奇偶位校验,且没有数据错误,采用奇校验的字符码是__D__。

A、10001011
B、11110110
C、11001001
D、11101001
解析:《编程基础》
奇偶校验码:
奇校验码:1的个数为奇数
偶校验码:1的个数为偶数

11、十进制数-10的3进制4位补码是多少?(C)

A、0010
B、1010
C、2122
D、2121
**解析:《编译体系结构、阿里》
3进制数,都满足如下的几个性质
(1)用0,1,2表示;
(2)遇3进位;3进制的数的补码同二进制的转换过程一样。
(1)先求的10的3进制表示为0101;
(2)对10的3进制表示形式取反为2121;
(3)对取反后的三进制表示形式加1位2122;
**

12、为了减少指令中的地址个数,有效的办法是采用( D )。

A、寄存器寻址
B、立即寻址
C、变址寻址
D、隐地址
解析:《编译和体系结构》
1)间接寻址(隐寻址)是指地址码指向主存中的数据,而这个数据仍然是一个地址,通过这个地址才能找到数据。这种方式提高了寻址的灵活性,扩大了寻址的范围。但由于要多次读主存,速度大为降低。
(2)寄存器寻址是指地址码的地址是寄存器的地址,由于访问寄存器的速度是非常快的,所以使用寄存器寻址有非常快的速度,但不足之处是寄存器的数量有限。因此,寄存器的地址位应该比较简短。
(3)立即寻址是指地址码就是操作数,这种寻址方式不必再次访问内存去取操作数。
(4)变址寻址是指将地址码和变址寄存器内容相加后形成数据的地址,由于变址寄存器能自动修改,这种方式对数组运算、字符串操作等批量数据的处理非常有效。

13、java8中,下面哪个类用到了解决哈希冲突的开放定址法(C)。

A、LinkedHashSet
B、HashMap
C、ThreadLocal
D、TreeMap
解析:《java、京东、2019、算法工程师》
Threadlocalmap使用开放定址法解决haah冲突,Hashmap使用链地址法解决hash冲突

14、有以下程序

#include<iostream>
using namespace std;
------------------------
int main(){
int a=1,b=2,c=3;
cout<<add(a,b,c);
return 0;
}
int add(int x,int y,int z){
 return x+y+z; 
}

程序运行的结果是6,请为横虚线处选择合适的程序( AD )。
A、int add(int x,int y=5,int z=6);
B、int add(int x=1,int y=5,int z);
C、int add(int x=1,int y,int z=6);
D、int add(int x=1,int y=5,int z=6);
解析:《测试工程师、java工程师、360》
默认实参作为形参的初始值出现在形参列表中。我们可以为一个或多个形参定义默认值,不过需要注意一点的是,一旦某个形参被赋予了默认值,它后面的所有形参都必须有默认值;

15、C代码中可能会出现如下类型的结构体定义:(AB)

 typedef struct holder {
  struct holder *next;
  struct holder *prev;
  char buffer[ 0 ];
  }holder;

最后一行 char data[ 0 ] 作用是?
A、方便管理内存缓冲区
B、减少内存碎片化
C、使结构体数据对齐
D、没有作用

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值