艺龙2018秋招前端试题分享,希望能收到offer
1. 若一棵完全二叉树共有m个结点,则其叶子结点数不可能是(D)。
A. (m+1)/2
B. 奇数个叶子结点
C. m/2
D. (m-1)/2
2. 设某餐厅有10张餐桌,如用P-V操作实现餐桌资源分配,设信号量为S,以下叙述中错误的是(A)
A 执行V(S)操作后,如发现S<=0,则应通知等待客人队列中的下一位客人用餐
B 新客人来到后应依次执行P(S)操作、用餐、V(S)操作
C 新客人执行P(S)操作后,如发现S<=0,则应进入等待客人队列中等待
D 等待客人队列中的客人必须等到S>0时,才能进入餐厅用餐
3. void recursive(int n, int m, int o){
if(n<=0){
printf(“%d,%d\n”, m, o);
} else {
recursive(n-1, m+1,o);
recursive(n-1, m, o+1);
}
}
以上函数的时间复杂度(D)
A. O(2^n)
B. O(n!)
C. O(n^2*m^2)
D. O(n*m*o)
4. 在下列选项中,创建和启动线程的方式正确的是:(C)
A. new Thread(new Runnable(){
public void run(){
doStuff();
}
}).run();
B. new Thread(){
public void run(){
doStuff();
}
}.start();
C. new Thread(new Runnable){
public void run(){
doStuff();
}
}.start();
D. new Thread(){
public void start(){
doStuff();
}
}.run();
5. 下列代码执行后的变量num3的值是(C)
int num1=6,num2=7,num3=12;
if(++num1=num2)
num3 = ++num3*3;
A. 12
B. 36
C. 39
D. 37
6. 当n=1时,T(n)=1;当n>1时,T(n)=3T(n/3)+n;求该递归方程的时间复杂度(B)
A. O(n3)
B. O(nlog3n)
C. O(n)
D. O(n2)
7. (多选题)在计算机网络中,关于服务与协议的说法中是(CD)
A 服务与协议是完全相分离的
B 服务与协议是相同的概念
C 服务是各层向其上层提供的一组操作,涉及两层间接口的定义及实现
D 协议与服务的具体实现有关
8. 设有以下递归函数:
int f(int m, int n){
if(m == 0){
return n +1;
} else if(n == 0){
return f(m-1, 1);
} else{
return f(m-1, f(m,n-1));
}
}
则f(3,3)的返回结果为(C)
A. 63
B. 62
C. 61
D. 60
9. 关于继承说法正确的是:(B)
A. Java类允许多继承
B. Java接口允许多继承
C. 接口与类都不允许多继承
D. 接口与类都允许多继承
10. 对于如下代码段
class A(public A foo(){return this;})
class B extends A{public A foo(){return this;}}
{
______
}
可以放入到横线位置,使程序正确编译运行,而且不产生错误的选项是(C)
A. public int foo(){return 1;}
B. public A foo(){return A;}
C. public A foo(B b){return b;}
D. public void foo(){}
11. 某学校图书馆使用关系型数据库管理学生借书信息,设有表示学生借书的三张表:学生S(学好,姓名,性别,年龄,院系),图书B(书号,书名,作者,出版社,价格),借书SB(学号,书号,借阅时间),则表SB的键或码为(A)。
A 学号,书号
B 学号,借阅时间
C 表SB无键或码
D 书号,借阅时间
12. class Person{
private String name;
private int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
public static void main(String[] args) throws Exception{
Class clazz = Person class’
Person p = (Person)clazz.newInstance();
Sysytem.out.println(p == null?false:true);
}
以上代码的执行结果是(D)
A. 编译不通过
B. true
C. false
D. 运行时抛出异常
13. 线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有(D)
A. 排序时减少元素的比较次数
B. 便于查找
C. 节省存储空间
D. 插入与删除运算效率高
14. 下列叙述中正确的是(C)
A. 向一个含有100个元素的数组中插入一个元素,最坏情况需要移动99个元素
B. 在一个含有100个元素的单链表中,使用二分查找法查找一个元素,最坏需要比较log2(100)次
C. 在一个含有100个元素的数组中,使用二分查找法查找一个元素,最坏需要比较log2(100)次
D. 向一个含有100个元素的单链表中插入一个元素,最坏情况需要移动100个元素
15. LR分析法是一种(A)分析技术
A. 自底向上
B. 自右向左
C. 自左向右
D. 自顶向下
16. 设有5件物品,其重量分别为(77,22,29,50,99),价值分别为(92,22,87,46,90),背包的容量为100,求背包的最大价值为(C)
A. 155
B. 114
C. 133
D. 109
17. Mysql中存放日期时间型数据时,最佳数据类型是(C)
A. Bigint
B. Date
C. Datetime
D. Timestamp
18. (多选题)在语义分析中,符号表用于(BC)
A. 地址分配
B. 语义检查
C. 产生中间代码
D. 语法检查
19. 下列说法不正确的是(B)
A. 所有关键活动提前完成,则整个活动提前完成
B. 任何一个关键活动提前完成,将使整个工程提前完成
C. 关键活动不按期完成将会影响整个工程的完成时间
D. 某些活动若提前完成,将有可能使整个工程提前完成
20. 设关键字为[2,4,7,9,11,15,23,27,29,31,35,40,43,50,65]的有序文件,当用折半查找算法查找关键字为43时,比较次数为(D)
A. 8
B. 2
C. 6
D. 4
21. 某网络的IP地址空间为10.0.17.0/24,采用等长子网划分,子网掩码为255.255.255.240,则该网络的最大子网个数,每个子网内的最大分配地址个数为(A)
A. 16.14
B. 32.16
C. 32.8
D. 32.6
22. (多选题)下列哪些协议属于网络层的协议(BCD)
A. PPP
B. ARP
C. ICMP
D. IGMP
23. 以下有关死锁的叙述中,错误的是(D)
A. 系统发生死锁时,死锁进程的个数至少为2个
B. 银行家算法可避免死锁的发生,但需要很大的系统开销
C. 如果允许进程剥夺使用其他进程占有的资源,就不会出现死锁
D. 要消除死锁,必须避免在资源分配中存在环路
24. (多选题)下面关于设计模式说法错误的是(AD)
A. 简单工厂模式的优点是工厂角色可以通过继承而得以复用
B. 装饰模式能够动态地为一个对象增加新的职责
C. 设计模式的基本要素包括名称、意图、解决方案、参与者和协调者
D. 当需要用比较通用和复杂的对象指针代替简单指针时应用职责链模式
25. 以下有关多道程序的描述中,正确的是(D)
A. 在多道环境下执行的每道程序必须同时开始,同时结束
B. 多道程序带来了程序间的资源竞争,程序不断被“执行-暂停-执行…”,降低了整个系统的执行效率
C. 在单CPU系统中,无法实现多道程序
D. 在多道程序环境下,数据的输入与程序执行开始时间都是随机的
26. 比较s1和s2指向的两个字符串是否相等,如下表达式中正确的是(D)
A. (s1.length().equals(s2))
B. (s1.length().equals(s2.length()))
C. (s1 == s2)
D. (s1.equals(s2))
27. (多选题)若用一个大小为6的一维数组实现环形队列,且当前rear和front的值分别为1和5,当从队列中删除一个元素,再插入两个元素后,一下说法正确的是(ACD)
A. rear的值为3
B. front的值为4
C. 完成插入删除操作后,队列中元素个数为3
D. front的值为0
28. (多选题)以下哪个方法与方法public void guess(int a){}是重载方法(ABC)
A. public void guess(long a)
B. public void guess(int a, int b)
C. public void guess(float a)
D. public int guess(int a)
29. 下面哪个语句是语法正确的(A)
A. float fa[];
B. char[] ca = “Some String”;
C. int [3] ia=(1,2,3);
D. double[] db = new Int[10];
30. (多选题)在实际开发过程中,我们需要应用程序中保持唯一的一个实例,即单例模式,以下说法正确的是(AC)
A. 它具有静态公有方法
B. 其它选项均不正确
C. 它具有私有成员变量
D. 它拥有公有的构造方法
二.
1. 买面包
一天,小明去超市购买面包。在超市里面,他一共发现了多种类型面包,它随手拿了一些面包放进购物篮里。在结账之前,他很担心自己的钱不够,于是他想计算一下购物篮中面包的总价格。小明很清楚每种面包的价格和他购买每种面包的个数,但是他计算能力不足,你可以帮他计算吗?
输入:
第一行一个整数n,表示超市中面包的总类型数,1<=n<=100;
第二行n个整数,第i个数表示第i种面包的价格ai,1<=ai<=100;
第三行一个整数m,1<=m<=100
接下来m行每一行有两个整数x,y,表示第x种面包购买了y个,保证1<=x<=n,1<=y<=100
输出:
输出一个整数,表示购买面包总价格。
2. 逃脱神凛幻域
受到小人的设计,主人公暮小云落入一个名为神凛幻域的奇特地方。对于迷失在这里的人而言这个空间没有绝对的方向,想要脱离这个地方就必须向前走出n步。由于在这个空间内没有方向的概念,无论何时向任何方向迈出一步都是等效的(哪怕你是原地转圈,只要走出N步即可脱离幻境)。不过,由于空间壁垒的原因,不同时刻向不同方向走所耗费的体力不同。现在已知不同时刻向某个方向跨出一步所需耗费的体力,请你告诉暮小云怎么走最省体力,以及需要耗费的最小体力。
输入:
有多个输入样例,输入的第一行是样例个数T(1<=T<=50)。每个样例的第一行是一个整数n(1<=n<=100000)。紧接着是四行,依次表示东南西北四个方向的体力耗费情况,每行n个数字,分别表示第n步向该方向走需要花费的体力值xi(0<=xi<=1000000)。某一步的多个方向体力值均为最小值时按照东南西北的顺序取优先方向。
输出:
第一行输出需要的最小体力值,第二行输出行走方案分别用符号ESWN表示东南西北。
#笔试题目##秋招##同程旅行##前端工程师##前端#