360公司18年春招技术笔试题目分享,题量很大差点没做完
2、假设一个list初始化为{2,9,5,4,8,1}。在第一次冒泡排序后,list变成了( )?
A. 2,9,5,4,1,8
B. 2,5,9,4,.8,1
C. 2,5,4,8,1,9
D. 2,9,5,4,8,1
public class Test {
public static void main(String args[]){
int x=-5;
int y=-12;
System.out.println(y % x);
}
}
A. 1
B. 2
C. -1
D. -2
4、下列哪种算法理论上性能最佳,实际上无法实现( )
A. Clock置换算法
B. SCAN算法
C. FIFO算法
D. OPT算法
5、下列不属于POSIX互斥锁相关函数的是: ( )
A.int pthread_mutex_create(pthread_mutex_t* mutex)
B.int pthread_mutex_trylock(pthread_mutex_t* mutex)
C.int pthread_mutex_destroy(pthread_mutex_t* mutex)
D.int pthread_mutex_lock(pthread _mutex_t* mutex)
6、以下哪个I/O类可以附加或者更新( )
A. RandomAccessFile()
B. DataOutpuStream()
C. OutputStream()
D. None of the above
7、假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,0,3,0]。执行下面方法numQuest(),最终的输出结果为( )
private static List<Integer> nums; //precondition:nums.size()>0 //nums contains Integer objects public static void numQuest(List<Integer> nums){ int k=0; Integer zero=new Integer(0); while(k<nums.size()){ if(nums.get(k).equals(zero)) nums.remove(k); k++; } }
[0,0,4,2,5,0,3,0]
A. [3,5,2,4,0,0,0,0]
B. [0,0,0,0,4,2,5,3]
C. [0,4,2,5,3]
8、下面哪些不是Thread类的方法
A. getPriority()
B. run()
C. start()
D. exit()
9、#include<bits/stdc++.h>
using namespace std;
Int solve(intx){
if(x==O||x==1){
return x;
}
if(x%2==0){
return 1+solve(x/2);
}
else{
return 1+solve((x+1)/2);
}
}
int main(){
int n=100;
int ans=solve(n);
cout<<ans<<endl;
return 0;
}
程序的输出为( )
A. 9
B. 7
C. 6
D. 8
10、#include<bits/stdc++.h>
using namespace std;int main(){
stack<int>st;
int pos=1;
while(pos<=3){
st.push(pos++);
cout<<st.top();
while(pos<=5){
st.push(pos++);}
while(!st.empty()){
cout<<st.top();
st.pop();
return 0;
}
上述程序的输出为( )
A. 354321
B. 123453
C. 12453
D. 35421
10、#include<bits/stdc++.h>
using namespace std;
int main(){
int n=5;
vector<int>a;
set<int>b;
for(inti=1;i<=n;++i){
a.push_back(i);
b.insert(i);}
for(int i=1;i<=n;++i){
a.push_back(i);
b.insert(i);}
cout<<a.size()<<b.size()<<endl;
return 0;
}
程序的输出位( )
A. 1010
B. 510
C. 55
D. 105
11、下列关于构造函数的说法,错误的是( )
A. 构造函数没有返回类型
B. 构造函数不可以是私有的(private)
C. 无论何时,只要类的对象被创建,就会执行构造函数
D. 一个类中可以有多个构造函数
12、变量void(*s[5])(int)表示的意思是( )
A. 数组和指针
B. 函数指针
C. 函数指针组
D. 语法错误
13、有关下面程序说法正确的是( )(注:П代表空格)
int main()
char s[6]="abcd";
printf("\"%s\"\n",s);
return 0;
}
A. 编译错误
B. "abcdП"
C. \"abcd\"
D."abcd"
14、以下代码的循环次数是( )
public class Test {
public static void main(String args[]) {
int i=7;
do{
System.out.println(--i);
--i;
}while(i!=0);
System.out.println(i);
}}
A. 1
B. 7
C. 0
D. 无限次
15、下面关于继承的描述正确的是( )
A. 在Java中一个类只能实现一个接口
B. 在Java中一个类不能同时继承一个类和实现一个接口
C. 在Java中只允许单一继承
D。 Java的单一继承使代码不可靠
16、代码行float t=5.1; int i=t;,不正确的是( )
A. 第二行若改为int i=(byte)t则可编译
B. 代码不能编译
C. 第一行若改为float t=5.1f则可编译
D. 代码编译,i被设置为5
17、ArrayList list=new ArrayList(20);中的list扩充几次?( )
A. 0
B. 1
C. 3
D. 2
18、抽象类和接口的区别,以下说法错误的是( )
A. abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"has_a"关系,interface表示的是"is_a"关系。
B. 在abstract class中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中只能够有静态的不能不修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据龙员),所有的成员方法默认都是public abstract类型的。
C. 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。
D. abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次迷承关系。但是,一个类却可以实现多个interface,实现多重继承。接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量都是常量)的作用。
19、数据库1NF、2NF、3NF和BCNF之间的关系是( )
A. 若R∈BCNF,则R∈3NF
B. 若R∈3NF,则R∈BCNF
C. 若R∈1NF,则R不属于BCNF
若R∈2NF,则R∈3NF
20、在数据库中存在多列的情况下,若要删除表中的某一列应该使用SQL语句( )
A. ALTER TABLE tableName DROP COLUMN columnName
B. ALTER TABLE tableName DELETE columnName
C. ALTER TABLE tableName DELETE COLUMN columnName
D. ALTER TABLE tableName DROP columnName
21、现有磁盘读写请求队列为2、4、0、5、1,若当前磁头在1号磁道上,若采用FCFS算法进行磁盘调度时,则平均寻道长度为( )
A. 2.4
B. 3.2
C. 1.6
D. 1.2
22、以下关于继承的叙述正确的是( )
A. 在Java中接口只允许单一继承
B. 在Java中类只允许单一继承
C. 在Java中一个类不能同时继承一个类和实现一个接口
D. 在Java中一个类只能实现一个接口
23、下列程序段的时间复杂度是( )
count=1;
for(k=1;k<2n;k*=2)
for(i=1;i<4n;i+=2)
count++;
A. O(n)
B. O()
C. O(nn)
D. O(8)
24、使用迪杰斯特拉(Djkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到最短路径的目标点是( )
A. 2,3,5,6,4
B. 2,3,4,5,6
C. 2,3,4,6,5
D. 2,3,6,5,4
25、对于函数y=ax^2+bx+c,(a>0).需要找出y的小值,精确到小数点后6位。下列选项中最有效的方法是( )。
A. 二分查找
B. 推公式
C. 枚举
D. 三分查找
26、下列关于排序算法的描述错误的是
A. 二叉查找树的查找效率与二叉树的树型有关,在节点太复杂时其查找效率最低B. 下列排序算法中,希尔排序在某趟排序结束后不一定能选出个元素放到其最终位置上
C. 在待排序的记录集中,存在多个具有相同键值的记录,若经过排序,这些记录的相对次序仍然保寺不变,称这种排序为定排序D. 在下列排序方法中,插入排序方法可能出现这种情况:在最后一趟开始之前,所有的元素都不在其最终应在的正确位置上
27、如果需要在不影响其他对象的情况下,以动态,透明的方式给对象添加职责,应该选择何种设计模式?( )
A. 装饰模式
B. 动态***模式
C. 桥接模式
D. 适配器模式
28、在选择排序中,以下什么情况下选择排序会更快执行?( )
A. 数据已按升降序排列
B. 数据已按十序排列
C. 俩者花费时间-样
28、原始数据为011011111111111111110010采用比特填充技术填充后的发送数据为( )
A. 01101111101111110111110010
B. 011011111011111011111010010
C. 0110111110111111111110010
D. 011011111111111111110010
29、以下地址中的哪一个和76.32/12匹配( )
A. 76.58.119.74
B. 76.33.214.12
C. 76.68.204.11
D. 76.79.24.11
30、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象的程序特性称为( )
A. Java不支与此特性
B. 隐藏
C. 重载
D. 覆盖
31、以下关于nteger与int的区别错误的是( )
A. Integer是java为int提供的封装类
B. int的默认值为0
C. Integer的默认值为1
D. int是java提供的8种原始数据类型之一
多选题
1、若有定义语句:
int a[2][3],(*p)[3],*q[3];, 则以下赋值语句正确的是( )
A. p=&a[1];
B. p=a;
C. q=&a[1];
D. q=a;
2、extern"c"的作用有哪些( )
A. 使C函数使用C编译器优化
B. 实现C++代码调用其他C语言代码
C. 使C函数不被C++编译器优化
D. 到出C变量或函数
3、某公司网络中心升级web服务器的物理内存,相应的要提高inux服务器交换空间,以下可以扩展交换空间的操作是( )
A. mkfs-f swap/dev/sdb1
B. mkswap/dev/sdb1
C. swapon/dev/sdb1
d. dd if=/dev/zero of=/mnt/sw1;swapon/mnt/sw1
4、以下说法中正确的有?( )
A. volatile关键字不保证对变量操作的原子性
B. StringBuilder是线程不安全的
C. HashMap中,使用get(key)==null可以判断这个Hasmap是否包含这个key
D. Java类可以后时用abstract和final声明
5、以下哪些方法是Object类中的方法( )
A. finalize( )
B. clone()
C. toString()
D. wait()
6、在有序表中,关于斐波那契查找和折半查找说法错误的是( )
A. 就平均性能而言,斐波那契查找的平均性能比折半查找差
B. 折半查找时间复杂度为O(log2n)
C. 只有有序表中元素个数n等于某个斐波那契数时才能用斐波那契查找算法
D. 在最坏情况下,斐波那契查找的性能比折半查找好
7、有关贪心法叙述正确的是( )
A. 在贪心法中采用逐步构造最优解的方法
B. 采用全局最优策略
C. 采用局部最优策略
D. 把问题分解为简单的问题求解
编程题|20.0分1/3
画板
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
沫璃有一个画板,画板可以抽象成有100行每行100个像素点的正方形。沫璃在画板上画画,她一共画了n次,每次将一个矩形涂上颜色。沫璃想知道一共有多少个像素点被她涂过颜色。若一个像素点被涂了k次,那么认为有k个像素点被涂过颜色。
输入
第一行一个数T(T<=100),表示数据组数。
对于每组数据,第一行一个整数n , (1<=n<=100)
接下来n行,每行4个整数x1, y1, x2, y2 (1 <= x1 <= x2 <= 100, 1 <= y1 <= y2 <= 100),表示矩形的两个对角所对应的像素点的坐标。
输出
对于每组数据,输出一行,表示沫璃一共涂了多少个像素点。
样例输入
2
2
1 1 2 3
2 2 3 3
2
1 1 3 3
1 1 3 3
样例输出
10
18
编程题|30.0分2/3
派对
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
沫璃邀请她的朋友参加周末的派对。沫璃买了3种颜色的气球,现在她要有这些气球来装饰餐桌,每个餐桌只用恰好3个气球装饰,要求3个气球的颜色不能完全一样,可以是2种或者3种颜色。沫璃想知道这些气球最多能装饰多少张餐桌。
输入
第一行一个数T(T<=100),表示数据组数。
对于每组数据,第一行3个整数r,g,b,分别表示三种颜色的气球个数 (0<=r, g, b<=2*10^9)
输出
对于每组数据,输出一行,一个整数表示最多能装饰的餐桌数量。
样例输入
2
5 4 3
2 3 3
样例输出
4
2
编程题|30.0分3/3
【本题为选答题】奇异 长度
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
给你一个图,0节点连接这一个联通块a,1节点连接着一个联通块b,ab仅由01这条边相连。
现在我们定义奇异路径为恰好经过0-1这条边一次的路径,其他边可以经过任意次,且路径不带方向,1-2-3与3-2-1认为是两条路径。重边也算多条路。
在这个图中有无数条奇异路径,问第k短的奇异路径长度是多少?
输入
输入若干行,第一行有三个正整数n,m,k,表示有n个节点,0~n-1,有m条边,问第k长,接下来有m行u,v,表示边,保证0-1边只出现一次,保证a,b联通块只通过0-1相连。
输出
输出一行表示答案
样例输入
5 4 10
0 1
0 2
1 3
1 4
样例输出
3