一、计算机专业综合知识

  1. 请简述进程与线程的差别,可从调度、地址空间、系统开销等角度进行叙述

    根本区别:进程是操作系统资源分配的基本单位,线程是任务调度和执行的基本单位。
    地址空间:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间;线程没有独立的地址空间,同一进程的线程共享本进程的地址空间。
    资源:进程之间的资源是独立的;同一进程内的线程共享本进程的资源

    开销:进程执行开销大,线程执行开销小;且线程上下文切换比进程上下文切换要快的多

  2. 请比较一下TCP和UDP协议

    TCP和UDP协议都是传输层协议
    TCP提供的是面向连接,可靠的字节流服务,即客户端和服务器交换数据前,必须在双方之间建立一个TCP连接,才能传输数据,并且提供超时重传,检验数据、流量控制等功能,TCP需要进行三次握手,四次挥手
    UDP是一个简单的无连接的面向数据报的传输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户端和服务器之间建立一个连接,且没有超时重发等机制,所有传输速度很快。

  3. 请简述数组和链表的区别

    数组:数组是将元素存放在内存中一块连续的区域。物理地址相邻,逻辑地址相邻。数组元素可以通过下标快速进行访问,但是在数组中增加或删除一个元素,需要移动大量元素。数组大小固定。
    链表:链表的元素在内存中是不连续的,通过指针存储下一个元素的地址来建立联系。要访问链表中的一个元素,需要从头遍历,但是插入与删除元素只需要修改指针就可以。链表的大小不固定。

  4. 请用任意编程语言写一个程序,该程序实现求两个正整数的最大公约数。输入为整数x和y,输出为x和y的最大公约数m

    #include <stdio.h>
    int gcd(int a, int b) {//辗转相除法
    return b == 0 ? a : gcd(b,a%b);
    }
    int main() {
    int a = 12, b = 8;
    printf("%d和%d的最大公约数是%d",a,b,gcd(a,b));
    return 0;
    }
  5. f(n)表示n条直线最多可以划分的子平面个数,请写出f(n)的递归表达式(提示:当n=1时,平面被分割成2个子平面,所有f(1)=2;当n=2时,可以切割成4个子平面,所有f(2)=4;当n=3时,最多可以将平面划分成7个子平面,所有f(3)=7)。

    #include <stdio.h>
    int func(int n) {
    if(n == 1) {
    return 2;
    } else {
    return func(n-1) + n;
    }
    }
    int main() {
    int a = 100;
    printf("%d",func(a));
    return 0;
    }
  6. 请简述快速排序的基本思想,使用如下例子进行说明:输入为int型整组A[6]={1,5,9,3,6,2},输出为从小到大排序的序列{1,2,3,5,6,9}

    快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后在按此方法对两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据有序。

  7. 简述Hadoop和spark平台主要的区别

    Hadoop和Spark都是大数据框架,Hadoop是一个分布式的数据基础设施,它是将庞大的数据集分派到由若干台计算机组成的集群中的多个结点进行存储。Spark是一个专门用来对那些分布式存储的大数据进行处理的工具,本身不会进行分布式数据的存储。
    Hadoop框架最核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。所以使用Hadoop则可以抛开spark,而直接使用Hadoop自身的mapreduce完成数据的处理。Spark是不提供文件管理系统的,但也不是只能依附在Hadoop上,它同样可以选择其他的基于云的数据系统平台,但spark默认的一般选择的还是hadoop。
    Spark是一个大数据计算框架,而Hadoop中包含计算框架MapReduce和分布式文件系统HDFS,Hadoop更广泛地说还包括在其生态系统上的其他系统,如Hbase、Hive等
    Spark的优势:
    (1)Spark支持复杂查询。除了简单的“map”及“reduce”操作之外,Spark还支持SQL查询、流式计算、机器学习和图算法。
    (2)Spark轻量级快速处理。Spark处理大数据数据的速度很快,
    (3)Spark支持多语言。Spark支持通过Scala、java及python编写程序,这允许开发者在自己熟悉的语言环境下进行工作。
    (4)Spark可以独立运行,也可以运行在任何Hadoop数据源,如Hive、Hbase、HDFS等。
    (5)Spark拥有比Hadoop更好地适用于数据挖掘与机器学习等需要迭代的优点。不同于MapReduce的是Job中间输出结果,可以保存在内存中,不需要读写HDFS。换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

  8. 请简述数据库事务的原理和作用

    数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。
    四个性质:
    (1)原子性:事务中的全部操作要么完成,要么不执行
    (2)一致性:几个并行执行的事务,执行结果相一致。
    (3)隔离性:事务之间的执行相互独立,不受干扰
    (4)持久性:一个事务一旦提交,对数据的改变是永久的
    事务的作用:保证数据的一致性和完整性,防止多个数据库操作相互干扰

  9. 请简述对称密码体制和非对称密码体制

    对称加密:指的是加密、解密使用的是同一串密钥。常见的对称加密算法:DES、AES等。优点是加解密的效率很高、加密速度快。缺点为密钥的管理和分发上比较困难,密钥传输不安全,且容易被破解。
    非对称加密:指的是加密、解密使用不同的密钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥只能由一方安全保管,不能外泄,而公钥可以发给任何请求它的人。常见的非对称加密算法:RSA。优点是安全性更高。缺点为加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

二、专业英语翻译

A computer program has beaten a master Go player 3-0 in a best-of-five competition,in what is seen as landmark moment for artificial intelligence. Google’s AlphaGo program was playing against Lee Se-dol inSeoul, in South Korea. Mr Lee is considered a champion Go player, having won numerous professional tournaments in a long, successful career. Go is a game of two players who take turns putting black or white stones on a 19-by-19 grid. Players win by surrounding their opponents pieces with their own. In the first game of the series, AlphaGo triumphed by a very narrow margin - Mr Lee had led for most of the match, but AlphaGo managed to build up a strong lead in its closing stages. After losing the second match to Deep Mind, Lee Se-dol said he was “speechless” adding that the AlphaGo machine played a “nearly perfect game”. The two experts who provided commentary for the YouTube stream of for the third game said that it had been a complicated match to follow. They said that Lee Se-dol had brought his “top game” but that AlphaGo had won “in great style”. The AlphaGo system was developed by British computer company DeepMind which was bought by Google in 2014. It has built up its expertise by studying older games and teasing out patterns of play. And, according to DeepMind chief executive Demis Hassabis, it has also spent a lot of time just playing the game. “It played itself, different versions of itself, millions and millions of times and each time got incrementally slightly better - it learns from its mistakes,” he told the BBC before the matches started.

五局三胜制比赛中,计算机程序以3-0击败了围棋大师,这被认为是人工智能的里程碑。 Google的AlphaGo程序正在与韩国首尔的李世多进行对抗。李先生被认为是围棋冠军,在漫长而成功的职业生涯中赢得了许多职业比赛。围棋是两个玩家轮流将黑色或白色石头放在19×19网格上的游戏。玩家将自己的对手包围起来,从而获胜。在系列赛的第一场比赛中,AlphaGo取得了微乎其微的胜利-李先生在这场比赛中大多数都领先,但是AlphaGo在结束阶段设法取得了领先。在第二场比赛输给Deep Mind之后,Lee Se-dol说他“毫无言语”,并补充说AlphaGo机器玩了“近乎完美的游戏”。两位为YouTube第三届比赛的视频流提供评论的专家表示,接下来的比赛非常复杂。他们说,李世多带来了他的“顶级游戏”,但AlphaGo赢得了“伟大的风格”。 AlphaGo系统是由英国计算机公司DeepMind开发的,该公司于2014年被Google收购。它通过研究较旧的游戏并尝试游戏方式来积累其专业知识。而且,根据DeepMind首席执行官Demis Hassabis的说法,玩游戏还花了很多时间。他在比赛开始前告诉英国广播公司,他说:“它发挥了自己的作用,经历了数百万次的不同版本,每次都变得稍微好一点-它从错误中吸取了教训。”