爱奇艺秋季校招测试工程师(第二场)-2018年

一、单项选择题

1、下列SQL语句用法错误的是( )

A、delete from table-name where null=null

B、truncate table table-name

C、alter table table-name add column id int

D、select * from table-name where 3>4

2、下面关于B+树的叙述中,错误的是( )

A、是多路平衡树

B、可用于文件的索引结构

C、可进行顺序查找

D、关键字指向实际数据块

3、在设计模式中,应该优先使用()关系从而实现复用( )

A、委派

B、继承

C、创建

D、都不对

4、Linux下哪个命令可以用于判断host1主机是否能够访问host2主机的端口( )

A、ping

B、ifconfig

C、telnet

D、netstat

5、以下关于操作系统,说法错误的是( )

A、用管程实现进程同步时,管程中的过程是不可中断的

B、多道程序的执行失去了封闭性和再现性,因此多道程序系统不需要封闭性和再现性

C、使用SPOOLING技术可以实现虚拟设备

D、当 CPU 处于管态时,它可以执行计算机系统中的全部指令

6、有一个算法的递推关系式为:T(n) = 9 T(n / 3) + n,则该算法的时间复杂度为( )

A、O(n^3)

B、O(nlogn)

C、O(n)

D、O(n^2)

7、Linux系统下,用什么命令来查看系统进程( )

A、df

B、ifconfig

C、netstat

D、ps

8、进行探索性测试时,以下哪项理解是正确的( )

A、探索性测试需要写测试用例

B、探索性测试可以使用自动化测试工具测试

C、探索性测试不需要回归测试

D、在碰到问题时,要及时改变测试策略

9、缺陷被开发判定成不需要修改,并拒绝修改时,应使用以下哪个状态( )

A、New

B、Reopen

C、Rejected

D、Closed

10、缺陷报告中不包含以下哪个选项( )

A、软件相关信息(软件名称,版本号,功能模块等)

B、缺陷概述,缺陷详述,再现手段

C、严重级别,优先级别

D、开发人员相关信息

二、编程题

1、牛牛有一个长度为n的整数序列,牛牛想对这个序列进行重排为一个非严格升序序列。牛牛比较懒惰,他想移动尽量少的数就完成重排,请你帮他计算一下他最少需要移动多少个序列中的元素。(当一个元素不在它原来所在的位置,这个元素就是被移动了的)

2、牛牛参加了一场考试,考试包括n道判断题,每做对一道题获得1分,牛牛考试前完全没有准备,所以考试只能看缘分了,牛牛在考试中一共猜测了t道题目的答案是"正确",其他的牛牛猜为"错误"。考试结束后牛牛知道实际上n道题中有a个题目的答案应该是"正确",但是牛牛不知道具体是哪些题目,牛牛希望你能帮助他计算可能获得的最高的考试分数是多少。

3、有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值

例如: 字符串"abacaba",里面包括4个'a',2个'b',1个'c',于是这个字符串的价值为4 * 4 + 2 * 2 + 1 * 1 = 21

牛牛有一个字符串s,并且允许你从s中移除最多k个字符,你的目标是让得到的字符串的价值最小。


参考答案

一、

1~5:CDACB

6~10:DDDCD

二、

1、

#include<iostream>
using namespace std;
int main()
{
    int n,c;
    cin>>n;
    int x[n],y[n];
    c=0;//移动次数
    for(int i=0;i<n;i++){
        cin>>x[i];
        y[i]=x[i];
    }
    int temp;
    for(int i=0;i<n;i++)
        for(int j=i+1;j<n;j++)
            if(x[j]<x[i]){
                temp=x[i];
                x[i]=x[j];
                x[j]=temp;
            }
    for(int i=0;i<n;i++)
        if(x[i]!=y[i])
            c++;
    cout<<c;
}

2、

#include<stdio.h>
int min(int a,int b){return a<b?a:b;}
int main(){
    int n,t,a;
    scanf("%d%d%d",&n,&t,&a);
    printf("%d",min(n-t,n-a)+min(t,a));
}

3、

#include<iostream>
using namespace std;
int main()
{
    string s;
    cin>>s;
    int k;
    cin>>k;
    int c[26];
    int i;
    for(i=0;i<26;i++)
        c[i]=0;
    int f;
    for(i=0;i<s.length();i++){
        f=s[i]-'a';
        c[f]++;
    }
    int temp;
    for(i=0;i<26;i++)
        for(int j=i+1;j<26;j++)
            if(c[j]<c[i]){
                temp=c[i];
                c[i]=c[j];
                c[j]=temp;
            }
    int e;
    int num=0;
    if(k>0){
    for(e=26-1,i=1;k>0;e--,i++){
        int aa=c[e]-c[e-1];
        int j=i;
        if(k>=i*aa){
            k-=i*aa;
            while(j--)
                c[26-1-j]=c[e-1];
        }
        else{
            for(;k>0;)
                for(j=0;j<i;j++){
                    if(k>0){
                    c[e+j]--;
                    k--;}
                }
            break;
        }
    }
    }
    e=26;
    for(i=0;i<e;i++)
        num+=c[i]*c[i];
    cout<<num;
}
个人资料
Bingo
等级:9
文章:694篇
访问:38.9w
排名: 1
上一篇: 爱奇艺秋季校招测试工程师(第一场)-2018年
下一篇:爱奇艺秋季校招测试工程师(第三场)-2018年
猜你感兴趣的圈子:
爱奇艺笔试面试圈
标签: 牛牛、考试、int、temp、++、面试题
隐藏