软通动力C语言笔试题和面试题答案(2)

更新时间:2018-11-22 16:06作者:王新老师

      三 问答题

      电影《达芬奇密码》中讲到了一个非常有意思的数字序列菲波拉契序列。请用任意计算机语言实现一段小程序,该程序在屏幕上输出1到1000之间的非波拉契序列。

      非波拉契序列:1,1,2,3,5,8,13,21,34,……

      要求:用程序描述 核心算法。语言不限。

      1. C++中如何阻止一个类被实例化?

      2. 一般在什么时候构造函数被声明成private呢?

      3. 什么时候编译器会生成默认的copy constructor呢?

      4. 如果你已经写了一个构造函数,编译器还会生成copy constructor吗?

      5. struct和class有什么区别?

      答:默认的访问级别不同,struct是public,class是private

      6. 没有别的不同了吗?

      7. 为什么说如果一个类作为基类,则它的析构函数要声明成virtual的?

      8. inline的函数和#define有什么区别?

      9. inline是什么意思?

      10. 那你说说什么时候会真的被inline,什么时候不会呢?

      11. 如果把一个类的成员函数写在类的声明中是什么意思?

      12. public继承和private继承有什么架构上的区别?

      13. 在多继承的时候,如果一个类继承同时继承自class A和class B,而class A和

      B中都有一个函数叫foo(),如何明确的在子类中指出override哪个父类的foo()?

      14. 虚拟继承的语法是什么?

      15. 部分模版特例化

      1.什么是平衡二叉树?编写一个删除平衡二叉树的程序?

      2.写一个程序,求有向有权图两点之间的最小权?

      3.根据你的理解,写出Cstring类的构造函数和析构函数?

      4.使用C语言实现对ini文件的访问,使程序可以对int,double,字符串类进行读写。

      5.n×n个方格(n为任意整数),定义若两个格有公共边则称两个格相邻。现将 个格中的N个格子图黑,使每个格子都与黑格子相邻。试编程,使N最小。

      1*****************************************

      #define pi 3.14

      #define Area(R) pi*R*R

      main()

      {

      int r1=5,r2=2;

      double s=0;

      s=Area(r1-r2);

      printf(The area is %f,s);

      }

      求结果

      2*********************************************

      函数 int compare(int a,int b),定义为该函数的函数指针P:为_______________

      3*********************************************

      #include

      void sub(char*s,int num)

      {

      int i ,j=num;

      char t;

      while(j–>1)

      {

      for(i=0;i{

      if(s[i]{

      t=s[i];

      s[i]=s[i+1];

      s[i+1]=t;

      }

      }

      }

      }

      main()

      {

      char*s=CEAeded;

      sub(s,6);

      printf(%s ,s)

      }

      求结果

      4**********************************************

      交换两个变量的值,不使用第三个变量,即a=3,b=5交换

      后b=3,a=5

      unsigned char a=3,b=5;

      5**************************************************

      #define N 100

      void GetMemory1(char*p)

      {

      p=(char*)malloc(sizeof(char)*N);

      strcpy(p,Have a good day!);

      }

      char*GetMemory2(void)

      {

      char p[]=Have a good day!;

      return p;

      }

      void main(void)

      {

      char*str1=NULL,*str2=NULL;

      GetMemory1(str1);

      GetMemory2(str2);

      printf( str1:%s,str1);

      printf( str2:%s,str2);

      6******************************************************

      构造N个结点的单链表返回链表头指针,要求链表中各结点顺序

      与结点数据输入顺序相反,例如输入1,2,3,4,5,形成的链表为

      head->5 4 3 2 1 ,补充程序

      #define N 10

      typedef struct Node

      {

      int data;

      struct Node*next;

      }NODE;

      int Get_Data(int i);定义省略

      Node*Create_u()

      {

      int i;

      NODE*p,*Head=NULL;

      for(i=0;i{

      VP=New NODE;

      P->Data=Get_Data(i);

      ________________;

      ________________;

      }

      return Head;

      }

      7**********************************************

      N个结点链表,每个结点中存放一个字符,判断链表存放的字符是否

      中心对称,即a b c c b a或a b c b a,补充程序

      typedef struct Node

      {

      int data;

      struct Node*next;

      }NODE;

      bool Is_symmeic(NODE*head,*int n)

      {

      char D[N];

      int i,d;

      __________;

      for(i=0;i{

      D[i]=head->data;

      head=head->next;

      }

      if(__________)

      {

      head=head->next;

      }

      while(head)

      {

      _______________;

      if(D[i]!=head->data)

      {

      return false;

      }

      head=head->next;

      }

      return true;

      }

      8*************************************

      str中只含有大写和小写字母函数change_move(char*str)将字符串中大写改成*并

      移到前面小写后返回*的个数

      如AabBdcYY改为*****abd,返回5

      int chang_move(char*str)

      {

      int len,i,curstr=-1;

      len=strlen(str);

      for(i=len-1;i>=0;i–)

      {

      if(str[i]>=’A'&&str[i]<=’Z')

      {

      str[i]=’*';

      if(cursor==-1)

      {

      cursor=i;

      }

      else if(cursor>i)

      {

      _____________;

      str[i]=’*';

      _____________;

      }

      }

      return____________;

      }

      9***********************************************

      求两个字符串的第一个公共子串,并返回该子串

      如:a b c d e f g e h i a a c d e f * * g e h i

      第一个为c d e f;不许用strcmp()

      char*Maxf(char*str1,char*str2)

      {

      }

    为您推荐

    2019年两会《政府工作报告》养老金新政策,要提高养老保障水平

    《关于2018年中央和地方预算执行情况与2019年中央和地方预算草案的报告》要求,提高养老保障水平。从2019年1月1日起,按平均约5%的幅度提高企业和机关事业单位退休人员基本养老金标准。

    2019-06-13 04:57

    如何在另类面试问题中胜出

    在面试中,有些考官会先提一个不甚友好的问题,或者劈头浇你一盆冷水,让你在委屈和激愤中露出本色。在他看来,击溃你的心理防线,才能筛选出有心理承受能力的智者,找到能面对压力的新鲜血液。要想在压力面试中胜出,只能学会绕开陷阱,奋战到底。

    2019-06-08 03:00

    面试紧张时应该怎么办

    面试是进入公职机关的最后一道主要的门槛,因此可以说每一位进入面试的人,心里就像绷住一根弦一样,也就是说每位考生,都会以高度的精神状态去抓住这次进入角色的机会。出现紧张、焦虑的心情也是不可避免的,只有认识了解,才能完全的克服。

    2019-06-08 02:58

    面对变故 学会自我解嘲

    面对降级、减薪、甚至解雇、离婚、丧子等变故,许多人反应过度,很长时间缓不过劲儿来。而有的人却能很快度过,重返正常的生活轨道。其决定因素是一种特殊的心理素质:心理复原力。有了它,人们不怕挫折;而缺少它,会特别害怕受伤害,不敢付出行动。

    2019-06-06 03:12

    办公室里该与不该谈论的话题

    办公室是一个充满原则、纪律,讲求策略的场合,更是一个充满利益冲突的是非之所。既如此,办公室里谈个人私事是否妥当呢?网上调查显示,尽管九成以上的人认为“办公室里隐私不宜说”,但是她/他们又同时承认有在办公室里谈论涉及私人感情、家庭关系、同事喜恶和上下级关系等隐私性内容的行为。

    2019-06-06 03:10

    面试自我介绍的几大原则

    应聘到外企或其他用人单位时,求职者往往最先被问及的问题就是“请先介绍介绍你自己”。这个问题看似简单,但求职者一定要慎重对待,它是你突出优势和特长,展现综合素质的好机会。回答得好,会给人留下良好的第一印象。

    2019-06-01 03:19

    外企面试必须要注意的五“必要”

    到外企面试前,仅仅准备好一份简历是不够的,还要提前做好面试前的“功课”,这样面试通过的几率就会大大增加。

    2019-06-01 03:16

    加载中...