科大讯飞笔试收获

(1)数组a[N],存放了1 至N-1 个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:int do_dup(int a[],int N)
编写程序如下:

int do_dup(int a[],int N)//a[0]与a[temp]交换后比较,如果相等就返回这个相同的值,如果不相等就继续比较下去。

{

  int temp;

  while(a[0]!=a[a[0]])

  {

    temp=a[0];

    a[0]= a[temp];

    a[temp]=temp;

  }

  return a[0];

}

主函数如下:

#define N 10

  int main()

{

int a[N]={1,2,3,4,5,8,}

cout<<do_dup(a,N);

}

(2)在b1、b2 ……bn中找出最大的值,采用递归的方法,具体代码如下:

int sort(int a[],int n)

{

  int max;

  for(int i=0;i<n;i++)

  {

    if(n==0)

      return a[0];

    else

    {

      max=sort(a,n-1);

      if(a[n-1]>=max)

        max=a[n-1];

    }

    return max;

  }

}

(3)

                           c语言版

#include<iostream>

  1. using namespace std;
  2. int f(int x, int y)
  3. {
  4. if (x == 0 ||y==0)
  5. return 1;
  6. else
  7. return f(x - 1, y) + f(x, y - 1);
  8. }
  9. int main()
  10. {
  11. int x, y;
  12. cin >> x >> y;
  13. cout << f(x, y);
  14. }

编译系统和解释系统的区别

计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序,计算机才能识别和执行。这种"翻译"通常有两种方式,即编译方式和解释方式。

编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。

解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。如PASCAL、FORTRAN、COBOL等高级语言执行编译方式;BASIC语言则以执行解释方式为主;而PASCAL、C语言是能书写编译程序的高级程序设计语言。

编译程序、解释程序、汇编程序是3种语言处理程序。其区别主要为:

汇编程序(为低级服务)是将汇编语言书写的源程序翻译成由机器指令和其他信息组成的目标程序。

解释程序(为高级服务)直接执行源程序或源程序的内部形式,一般是读一句源程序,翻译一句,执行一句,不产生目标代码,如BASIC解释程序。

编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。

编译程序与解释程序最大的区别之一在于前者生成目标代码,而后者不生成;此外,前者产生的目标代码的执行速度比解释程序的执行速度要快;后者人机交互好,适于初学者使用。用COBOL、FORTRAN等语言编写的程序考虑到执行速度一般都是编译执行。 解释:程序运行时,取一条指令,将其换化为机器指令, 再执行这条机器指令。 编译:程序运行时之前,将程序的把有代码编译为机器代码,再运行这个程序。

PS:腾讯一道笔试题:

下面关于解释系统和编译系统的说法中,错误的是()

A.解释程序不产生目标代码,直接执行源程序或源程序的内部形式

B.使用编译系统时会区分编译阶段和运行阶段

C.一般来说,解释系统比编译系统复杂,但是可移植性好

D.一般来说,建立在编译基础上的系统执行速度要比建立在解释基础上的系统快

答案是选A, 错在后半部分,并不是直接执行源程序,而是必须要转换为机器可识别码才能运行

C++代码每一次进行更新都需要重新编译,有些大型系统编译一次需要花很长时间,这就对系统的调试带来很多不便,如linux内核,这个是编译系统的一个不足。

下面是对编译型语言和解释型语言介绍:

编译型语言:
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的。编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术C、C++、Fortran、Visual Foxpro、Pascal、Delphi、Ada都是编译实现的。

解释型语言:
解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码,这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,软件解释器通常会导致执行效率较低。用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的。与编译程序不同的是,解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码后再执行。解释程序的优点是当语句出现语法错误时,可以立即引起程序员注意,而程序员在程序开发期间就能进行校正。对于解释型Basic语言,需要一个专门的解释器解释执行 Basic程序,每条语言只有在执行才被翻译。这种解释型语言每执行一次就翻译一次,因而效率低下。一般地,动态语言都是解释型的,如Tcl、Perl、Ruby、VBScript、 JavaScript等。
混合型:
Java很特殊,Java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后在Java虚拟机上用解释方式执行字节码。Python 的也采用了类似Java的编译模式,先将Python程序编译成Python字节码,然后由一个专门的Python字节码解释器负责解释执行字节码。(Java虚拟机对字节码的执行相当于模拟一个cpu,而ruby1.8--在虚拟机还未出现前--是通过解释成语法树执行。)

个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是如果非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。

转发地址:http://blog.csdn.net/mark555/article/details/23206377

时间: 2024-10-08 01:34:55

科大讯飞笔试收获的相关文章

2018 科大讯飞笔试编程题

第一题:争吵问题 有一个队列,每个人要么朝左边(L表示),要么朝右边(R表示),因为每个人都讨厌其他任何人,只要两人面对面就会发生真吵.真吵结果是胜者留在队列中,败的人移除队中. 如果序列中有多对争吵,可以任选一对,胜者留在队中,败者出局,求最后队列最少人数是多少. 例子: LRLRLRR 输出:3 LRR. 思路:这道题找到方法了就很简单,依据题意 如果要真吵就只有  RL (两人对面)这种情况  ,其他  LL   RR   LR 都不会发生真吵. 所以我们只要从左边向右找到第一个R,从右边

4/13 收获满意offer!

今天是来到北京第二天.之前一直在想,到底什么样的offer能让我满意,或者我想要的工作是什么样的,但都没有一个大概的轮廓. 昨天下午.今天上午.今天下午,来了一天半,面了三场,各有感觉.第一场地理位置很靠前,在朝阳门附近,足证公司实力,进入公司,感觉到每个人都很严谨地工作,前台接待态度也非常好,一直到做笔试题之前,感觉都非常良好,但是因为笔试题的原因,我被PASS掉了,当然,我更愿意认为是其对算法的不理解导致我将其PASS掉的,也算是给自己一点心理安慰,后来也发现确实语法部分有所欠缺,在此不再赘

[C/C++基础--笔试突击] 7.指针与引用

概述: 比较抽象的但又很有用的东西 0.0 void*指针:可以保存任何类型对象的地址. 指向指针的指针 函数指针 7.1 指针 一个有效的指针必然是一下三种状态之一: 1)保存一个特定对象的地址: 2)指向某个对象后面的另一个对象 3)0值. 若指针保存0值,表明它不指向任何对象.未初始化的指针是无效的,直到给该指针赋值后,才可使用. 注:*p++和(*p)++不等价,单目运算符*的优先级比++高,故*p++先完成取值操作,然后对指针地址执行++操作,而(*p)++是首先执行屈指操作,然后对该

收获与体会

转眼间,研究生已经过了一年,这一年发生了很多事,也收获了很多东西.这里在此做一下总结和展望,希望明年再接来历,哈哈哈哈 一.总结 经过半年的努力,最终找了一份非常满意的工作.之所以能找到这么好的工作,首先第一个要感谢的就是我的女朋友,是她对我一直的鼓励和支持,让我有了信心,能够走到最后.其实以前我从没想过能去一个大一点的公司,就想安安稳稳的找个工作就可以了.但是因为不是一个人了,男人就要有担当,要能支撑的起未来.而且必须要有事业心才行.是女朋友一直的鼓励给了我信心,而且她为了不打扰我,尽量避免和

(转)百度2015年校招笔试

百度2015年校招笔试 本文目录: 零.寒暄 一.笔试情况 二.总结 零.寒暄 腾讯的笔试结束,也就意味着9月份的战斗告一段落,每天四处奔波,很累也很充实.十一没有出去玩,也拒绝了一些应酬,把一些笔试题整理下,同时也回顾9月份的得失,好好总结,10月再战,告诫自己最难走的路一定是上坡路,坚持坚持! 不多说,看下26号百度的笔试题,我花了两天的时间整理下面的一些内容. 一.笔试情况 百度一共是8道题目,2个小时时间,题目不多,总体说来,考的是知识面的广度,开放的题目占多数.本人考的前端岗位.给大家

[原创]微软笔试经验总结

陆续收到几位将要于16日去参加微软笔试的朋友的来信,纷纷想要我提供点建议.其实我本身水平有限,心得应该说很少.但我自己也想借此机会review一下,毕竟掐指算来,距离我去笔试的时间,竟然已经一年了.当然,我的经历很有限,只能提供些信息供大家参考.我会很用力去回忆,总结,但是还请大家自己下决定,毕竟事情已经过去一年了. 我的回答主要分为两部分,第一部分为笔试具体问题,第二部分为笔试态度. 笔试具体问题 1.  面试的题量怎样,两个半小时的考试时间是否够用,每道题目是否有限制时间? 首先,更正一下是

百度2015年校招笔试

本文目录: 零.寒暄 一.笔试情况 二.总结 零.寒暄 腾讯的笔试结束,也就意味着9月份的战斗告一段落,每天四处奔波,很累也很充实.十一没有出去玩,也拒绝了一些应酬,把一些笔试题整理下,同时也回顾9月份的得失,好好总结,10月再战,告诫自己最难走的路一定是上坡路,坚持坚持! 不多说,看下26号百度的笔试题,我花了两天的时间整理下面的一些内容. 一.笔试情况 百度一共是8道题目,2个小时时间,题目不多,总体说来,考的是知识面的广度,开放的题目占多数.本人考的前端岗位.给大家透露个数,杭州地区前端笔

面试科大讯飞的java开发岗位

鉴于之前几次其他公司面试的经历,我熬夜看了很多java基础的考点,希望顺利拿下笔试,万万没有想到,科大讯飞社招是没有笔试的,校招才有笔试,(这个是最后面试官让我提问时,我出于好奇问的).感觉每次的面试都是被虐.投递的时候都没有想过会被通知面试,是出于对它的向往就投递了,收到面试通知的时候特别开心,于是怀着即使知道去不了也还是要去面试,一定要去看看大公司的好心情就去了,问题大致有以下这些: 1.聊一下在做项目的过程中,你完成的让你最有成就的一个模块的开发: 2.对JDBC的了解: 3.知道哪些和h

这个季节收获的不只是工作

对于一个普通的本科生来说没有985.211做我们的后盾也没有一个值得炫耀的学历可以为自己加分,那么对于毕业,对于找工作我们能做些什么.既然上天没有给我们硬件上的支持,那么未来的路只能靠自己来走.大二刚刚结束,大家都有了自己的奋斗目标,报了各自喜欢的专业培训班,舍弃了寒暑假的时间来给自己充电.回想起一年前的自己,我为自己的选择而骄傲--C++,但也有些遗憾和后悔,遗憾的是曾经要学的东西没有学完,曾经要看的东西也没有看完,曾经不会的东西为什么当时就没有仔细的去钻研去学着解决,可人生又有多少时间能够让