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

一、单项选择题

1、在设计模式中,应该优先使用()关系从而实现复用( )
A、委派
B、继承
C、创建
D、都不对
2、以下哪个不是Android的通信框架( )
A、Volley
B、retorfit
C、okhttp
D、rxandroid
3、下列哪种方式无法在子线程中更新UI( )
A、借助主线程中创建的Handler发送消息更新
B、调用runOnUIThread更新UI
C、如果某些场景无法调用到主线程创建的Handler,可以在子线程用new Handler()的方式创建Handler然后更新UI
D、借助三方开源框架EventBus,发送Event来更新UI
4、关于Activity启动模式下列说法错误的是( )
A、Standard默认启动模式,每次都会创建一个新的实例,对应Activity可以叠加
B、singleTop,可以有多个实例,但是不允许相同Activity叠加,当Activity在栈顶时,启动相同Activity,会调用onNewIntent方法,而不会创建新实例
C、singleTask,只能有一个实例,如果此Acitivy再次被打开,之前的实例就会被Destory
D、singleInstance会启动一个新的task来运行对应实例,此task中也可以允许有其他实例存在.
5、Android开发中会经常遇到一些图片处理的场景.下列关于图片处理的几种制式错误的是( )
A、ARGB_8888 标识每个像素占8位,也就是说,每个像素使用了4个字节
B、RBG_565 此种制式处理的图片无法正常体现出透明度
C、ARGB_4444标识每个像素占4位,也就是说,每个像素使用了2个字节
D、ALPHA_8 此种方式处理的图片一般比较模糊,可用在很小尺寸的图片展示上
6、以下对Thread的函数描述错误的是( )
A、join:等待目标线程执行完成之后再继续执行
B、yield: 目标线程由就绪状态转换为运行状态,得到执行权限
C、sleep:该函数是Thread的静态函数,作用是使调用线程进入睡眠状态
D、wait:当一个线程执行到wait()方法时,它就进入到一个和该对象相关的等待池中,同时失去了对象的机锁,实得其他线程可以访问
7、Linux下哪个命令可以用于判断host1主机是否能够访问host2主机的端口( )
A、ping
B、ifconfig
C、telnet
D、netstat
8、有一个算法的递推关系式为:T(n) = 9 T(n / 3) + n,则该算法的时间复杂度为( )
A、O(n^3)
B、O(nlogn)
C、O(n)
D、O(n^2)
9、由下面5个点:1,1,2,3,5构成的哈夫曼树的带权路径长度为( )
A、23
B、24
C、25
D、26
10、Linux系统下,用什么命令来查看系统进程( )
A、df
B、ifconfig
C、netstat
D、ps

二、编程题

1、如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
2、牛牛有一个长度为n的整数序列,牛牛想对这个序列进行重排为一个非严格升序序列。牛牛比较懒惰,他想移动尽量少的数就完成重排,请你帮他计算一下他最少需要移动多少个序列中的元素。(当一个元素不在它原来所在的位置,这个元素就是被移动了的)
3、牛牛和羊羊都很喜欢青草。今天他们决定玩青草游戏。
最初有一个装有n份青草的箱子,牛牛和羊羊依次进行,牛牛先开始。在每个回合中,每个玩家必须吃一些箱子中的青草,所吃的青草份数必须是4的x次幂,比如1,4,16,64等等。不能在箱子中吃到有效份数青草的玩家落败。假定牛牛和羊羊都是按照最佳方法进行游戏,请输出胜利者的名字。


参考答案

一、
1~5:ADCDD
6~10:BCDCD
二、
1、
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int start = in.nextInt();
        int end = in.nextInt();
 
        int count = 0;
        for (int i = start; i <= end; i++) {
            if (isHuiWen(i)) {
                if (isSuShu(i)) {
                    count++;
                }
            }
        }
        System.out.println(count);
    }
 
    public static boolean isSuShu(int num) {
        if (num==1) return false;
        for (int i = 2,tmp=(int) Math.sqrt(num); i <= tmp; i++) {
            if (num%i==0) {
                return false;
            }
        }
        return true;
    }
 
    public static boolean isHuiWen(int num) {
        if (num<10) return true;
        String s = "" + num;
        int m = s.length() / 2;
        String s1 = s.substring(0, m);
        String s2 = s.substring(m+(s.length()%2==0?0:1));
        return s1.equals(s2);
    }
}
2、
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int a[100],b[100],n,i,res=0;
    for(scanf("%d",&n),i=0;i<n;i++) scanf("%d",a+i),b[i]=a[i];
    for(sort(a,a+n),i=0;i<n;i++) if(a[i]!=b[i]) res++;
    printf("%d",res);
}
3、
#include<stdio.h>
int dp[10],n,x,i,j;
int main(){
    for(i=1;i<10;i++){
        int flag=0;
        for(j=1;j<=i;j*=4)
            if(dp[i-j]==0) flag=1;
        dp[i]=flag;
    }
    for(scanf("%d",&n),i=0;i<n;i++)
        scanf("%d",&x),printf("%s\n",dp[x%10]?"niu":"yang");
}
个人资料
Bingo
等级:9
文章:694篇
访问:38.9w
排名: 1
上一篇: 爱奇艺秋季校招Android工程师(第一场)-2018年
下一篇:爱奇艺秋季校招Android工程师(第三场)-2018年
猜你感兴趣的圈子:
爱奇艺笔试面试圈
标签: 青草、牛牛、activity、素数、num、面试题
隐藏