笔试时间:2020/7/17 19:00 笔试时长:120分钟
笔试岗位:测试开发工程师
笔试题目:
Q1:
下面C++中类和对象的关系描述中,错误的是?
A、类就是C语言中的结构体类型,对象就是C语言中的结构体变量
B、类是具有共同行为的若干对象的统一描述体
C、一个对象是类的实例,一个对象必然属于一个类
D、类和对象之间的关系是抽象和具象的关系
A1:
Q2:
有三个变量:char a; float b; double c;如果进行赋值c = a + b + c;变量c的类型为?
A、char
B、double
C、float
D、int
A2:
Q3:
线性规划问题与其对偶问题有可行解,下列正确的结论是?
A、线性规划有最优解,但是对偶问题没有
B、线性规划与其对偶问题有最优解
C、线性规划与对偶问题都没有最优解
D、对偶问题有最优解,但线性规划没有
A3:
Q4:
在C/S模型中,客户端与服务器socket描述中不包括的相关参数有?
A、protocol
B、port
C、mac
D、ip address
A4:
Q5:
设有八个顾客,同时等待用一服务,他们需要的服务时间为28、94、100、39、52、17、42、73,求使顾客等待时间最小的平均等待时间为?
A、241
B、242
C、239
D、240
A5:
Q6:
C++中有一种纯虚函数,下列申明正确的是?
A、virtual void func(int){}
B、virtual void func(int)
C、void func(int)=0
D、virtual void func()=0
A6:
Q7:
进程按照各自独立的、不可预知的速度向前推进是指进程的?
A、并发性
B、封闭性
C、异步性
D、独立性
A7:
Q8:
下列各表中,可应用二分查找法进行查找的有
①{1,3,5,7,9}
②{10,8,6,4,2}
③{1,10,3,8,5,6,7,4,9,2}
④{1,5,10}
⑤{10,6,1}
A、③
B、①②③④⑤
C、①③
D、①②④⑤
A8:
Q9:
下列程序的运行结果是2 3,请为横线处选择合适的程序
#include<iostream>
using namespace std;
template<class T>
class D
{
T a,b;
public:
D(T i=0,T j=0):a(i),b(j){}
void show(){cout<<a<<” ”<<b<<endl;}
};
int main()
{
________ o2(2,3);
o2.show();
//system(“PAUSE”);
return 0;
}
A、D
B、D(int)
C、D::
D、D<int>
A9:
Q10:
下列程序的运行结果是1/2,请为横线处选择合适的程序
#include<iostream>
using namespace std;
class A
{
int a,q;
public:
A(int x,int y){a=x;q=y;}
friend void operator<<(ostream &out,A &x)
{
out<<x.a<<”/”<<x.q;
}
};
int main()
{
A o1(1,2);
A *p;
operator<<(________);
return 0;
}
A、*cout,o1
B、p,o1
C、cout,o1
D、o1,p
A10:
Q11:
下列程序的运行结果是
class B
{
public:
virtual void f(){cout<<”B::f()”<<” “;}
void g(){cout<<”B::g()”<<” “;} };
class D:public B
{
public:
void f(){cout<<”D::f()”<<” “;}
void g(){cout<<”D::g()”<<” “;} };
void fun1(B &q){q.f();}
void fun2(B &q){q.g();}
int main()
{
D d;
fun1(d);
fun2(d);
return 0;
}
A、D::f() B::g()
B、B::f() B::g()
C、B::f() D::g()
D、D::f() D::g()
A11:
Q12:
设栈S和队列Q的初始状态均为空,元素abcdefgh依次进入栈S,若每个元素出栈后,立即进入队列Q,且8个元素出队的顺序是bcfegdha,则栈S的容量至少为?
A、3
B、2
C、5
D、4
A12:
Q13:
计算矩阵的连乘积M0M1M2M3,其中各自的维数为r0=10、r1=20、r2=50、r3=6、r4=80,利用动态规划算法求最优解
A、(M0M1)(M2M3)
B、(M0(M1M2))M3
C、((M0M1)M2)M3
D、M0((M1M2)M3)
A13:
Q14:
设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为?
A、aebcfd
B、aedfbc
C、aedfcb
D、acfebd
A14:
Q15:
网络192.168.1.224/27和192.168.1.192/27汇聚后的网络地址是?
A、192.168.1.128/26
B、192.168.1.192/25
C、192.168.1.192/27
D、192.168.1.192/26
A15:
Q16:
设一棵二叉树的前序序列为abdec,中序序列为dbeac,则该二叉树后序遍历的顺序为?
A、debac
B、debca
C、abdec
D、abedc
A16:
Q17:
有下列类定义,C类中的保护成员的个数是?
class A
{
int x1;
protected:
int y1;
public:
void show1()
{cout<<x1<<y1<<endl;}
};
class B:public A
{
int x2;
protected:
int y2;
public:
void show2()
{cout<<x2<<y2<<endl;}
};
class C:protected B
{
int x3;
protected:
int y3;
public:
void show3()
{cout<<x3<<y3<<endl;}
};
A、5
B、6
C、4
D、7
A17:
Q18:
某操作系统共享资源的一个信号量的初值为4,经过多次PV操作以后当前值为-2,此表示等待进入临界区的进程数是?
A、3
B、1
C、2
D、4
A18:
Q19:
下列程序的输出结果是1_5,请为横线处选择合适的程序
#include<iostream>
using namespace std;
class A
{
public:
int i;
static int count;
A(int n=0):i(n){count++;}
void show(){cout<<count<<”_”<<i<<endl;}
};
int A::count=0;
int main()
{
A o1(5);
A *p=&o1;
________=&A::show;
(p->*q3)();
//system(“PAUSE”);
return 0;
}
A、void A::*q3()
B、void *A::q3()
C、void *q3()
D、void (A::*q3)()
A19:
Q20:
下列程序定义Test类对象的个数是?
#include<iostream>
using namespace std;
class Test
{
int x;
public:
Test(int a=0):x(a){}
Test(Test &p):x(p.x){}
int Count(){return x;}
};
int main()
{
Test t1;
Test t2(t1);
Test* pT3 = new Test[3];
Test &t4=t2;
delete []pT3;
system(“pause”);
return 0;
}
A、5
B、3
C、4
D、2
A20:
Q21:
下列代码,输出为
#include<iostream>
using namespace std;
int main()
{
int z = 0;
for(int x=0,y=0;!y&&x<=10;x++){
z++;
}
cout<<z<<endl;
}
A、11
B、12
C、10
D、0
A21:
Q22:
以下哪项陈述是正确的?
A、DELETE释放包含表,TRUNCATE不会释放包含表的空间
B、DELETE和TRUNCATE都不释放包含表的空间
C、DELETE不释放包含表的空间,TRUNCATE释放包含表的空间
D、DELETE和TRUNCATE都释放包含表的空间
A22:
Q23:
下列程序的运行结果是
#include<iostream>
#include<fstream>
using namespace std;
struct D
{ char a,b,c,d; };
int main()
{
D d1={‘A’,’a’,’b’,’B’};
ofstream file1(“date.dat”,ios::binary);
file1.write((char *)&d1,sizeof d1);
file1.close();
D d2;
ifstream file2(“date.dat”,ios::binary);
file2.read((char *)&d2,sizeof d2);
cout<<d2.a<<” “<<d2.b<<” “<<d2.c<<” “<<d2.d<<endl;
file2.close();
return 0;
}
A、65 97
B、A a b B
C、65 97 66 98
D、A a
A23:
Q24:
有下列类定义
class A
{
public:
void f1(){cout<<”A”;}
protected:
int a1;
private:
int a2;
};
class B:public A
{
public:
void f2(){cout<<”B”;}
protected:
int b1;
private:
int b2;
};
派生类B中的成员描述正确的是
A、私有成员a2,b2
B、私有成员b2
C、公有成员f1,f2
D、保护乘员a1,b1
A24:
Q25:
有下列类定义
class A
{
int n;
public:
A(int x=0):n(x){}
A(A &p):n(p.n){}
A fun();
~A(){}
};
A A::fun()
{
A a;
A a1(a);
return a1;
}
则执行
A o1,o2(3);
o1=o2.fun();
类A的析构函数调用次数是?
A、2
B、5
C、4
D、3
A25:
Q26:
下列程序的运行结果是333-555,请为横线处选择合适的程序
#include<iostream>
#include<string>
using namespace std;
class A
{
string name;
public:
A(string a=”000”){________;}
string get1() const
{return name;}
virtual string get2() const
{return “111”;}
};
class B:public A
{
public:
B(string p):A(p){}
string get2() const
{return “333”;}
};
void show(A &p)
{cout<<p.get2()<<”-“<<p.get1()<<endl;}
int main()
{
B ob(“555”);
show(ob);
//system(“pause”);
return 0;
}
A、name=a
B、name=*a
C、strcpy(*name,*a)
D、strcpy(name,a)
A26:
Q27:
在系统运行过程中,通过检查系统是否处于安全状态而不让死锁发生的策略是?
A、死锁避免
B、死锁检测
C、死锁预防
D、死锁解除
A27:
Q28:
有下列类定义,C o1;则o1可以合法调用的成员是?
class A
{
int x1;
protected:
int y1;
public:
void show1()
{cout<<x1<<y1<<endl;}
};
class B:public A
{
int x1;
protected:
int y2;
public:
void show2()
{cout<<x2<<y2<<endl;}
};
class C:protected B
{
int x3;
protected:
int y3;
public:
void show3()
{cout<<x3<<y3<<endl;}
};
A、其它选项都不合法
B、show2()
C、show3()
D、show1()
A28:
Q29:
在电子政务系统通常使用https协议传输数据,https协议默认使用的端口是?
A、80
B、143
C、443
D、1023
A29:
Q30:
下列程序输出的星号个数是?
#include<iostream>
using namespace std;
class D
{
int a;
public:
D(int i=0):a(i){}
D(D &p){a=p.a;cout<<”*”;}
void show(){cout<<a<<endl;}
};
D f(D p)
{
D d1(p);
return d1;
}
int main()
{
D o1,o2(2);
o2=f(o1);
// system(“PAUSE”);
return 0;
}
A、1
B、3
C、2
D、0
A30:
Q31:
给出你n条长度不一的边,请你从中选择四条边,组成一个最大的平行四边形。请你输出最大的平行四边形的面积。
输入描述:
输入第一行包含一个正整数n,表示边的数量。(4<=n<=50000)
输入第二行包含n个正整数,表示n条边的长度,边的长度不会超过10^9。
输出描述:
输出仅包含一个正整数,即最大的平行四边形的面积,无解则输出-1。
样例输入:
5
3 3 4 4 5
样例输出:
12
A31:
Q32:
有一种排序算法定义如下,该排序算法每次只能把一个元素提到序列的开头,例如2,1,3,4,只需要一次操作把1提到序列起始位置就可以使得原序列从小到大有序。现在给你个乱序的1-n排列,请你计算最少需要多少次操作才可以使得原序列从小到大有序。
输入描述:
输入第一行包含两个正整数n,表示序列的长度。(1<=n<=100000)
接下来一行有n个正整数,表示序列中的n个元素,中间用空格隔开。(1<=a_i<=n)
输出描述:
输出仅包含一个整数,表示最少的操作次数。
样例输入:
4
2 1 3 4
样例输出:
1
A32:
Q33:
在一个2D横板游戏中,所有的怪物都是在X轴上的,每个怪物有两个属性X和HP,分别代表怪物的位置和生命值。玩家控制的角色有一个AOE(范围攻击)技能,玩家每次释放技能可以选择一个位置x,技能会对[x-y,x+y]范围内的所有怪物造成1点伤害。请问,玩家最少需要使用多少次技能,才能杀死所有怪物,怪物血量清0即视为被杀死。
输入描述:
输入第一行包含两个正整数n和y,分别表示怪物的数量和技能的范围。
(1<=n<=100000)
接下来有n行,每行有两个正整数x和hp分别表示一只怪物的位置和血量。
(1<=x,hp<=10^9)
输出描述:
输出仅包含一个整数,表示最少使用的技能次数。
样例输入:
3 5
1 10
10 5
22 3
样例输出:
13
A33:
笔试结果:
未知
(答案会逐渐补充完整)