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

招聘笔试题2018-11-22李天扬老师

  3。typedef unsigned char BYTE

  int examply_fun(BYTE gt_len; BYTE *gt_code)

  {

  BYTE *gt_buf;

  gt_buf=(BYTE *)MALLOC(Max_GT_Length);

  ......

  if(gt_len>Max_GT_Length)

  {

  return GT_Length_ERROR;

  }

  .......

  }

  答案:要释放内存

  问答题:

  1.IP Phone的原理是什么?

  答案:IPV6

  2.TCP/IP通信建立的过程怎样,端口有什么作用?

  答案:三次握手,确定是哪个应用程序使用该协议

  1. 用宏定义写出swap(x,y)

  #define swap(x, y)

  x $denghao$ x + y;

  y $denghao$ x - y;

  x $denghao$ x - y;

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

  int do_dup(int a[],int n)

  3 一语句实现x是否为2的若干次幂的判断

  int i $denghao$ 512;

  cout << boolalpha << ((i & (i - 1)) ? false : true) << endl;

  4.unsigned int intvert(unsigned int x,int p,int n)实现对x的进行转换,p为起始转化位,n为需要转换的长度,假设起始点在右边.如x$denghao$0b0001 0001,p$denghao$4,n$denghao$3转换后x$denghao$0b0110 0001

  unsigned int intvert(unsigned int x,int p,int n){

  unsigned int _t $denghao$ 0;

  unsigned int _a $denghao$ 1;

  for(int i $denghao$ 0; i < n; ++i){

  _t |$denghao$ _a;

  _a $denghao$ _a << 1;

  }

  _t $denghao$ _t << p;

  x ^$denghao$ _t;

  return x;

  }

  一. 选择题

  1. 在关系数据库德询问优化中,事先处理文件,如排序、建立索引的目的是:()

  A.优化表达式 B。减少中间结束 C。扩大缓冲数据 D。 减少扫描文件的时间

  2.进程是操作系统中的一个重要概念。进程是一个具有一定独立功能的程序在某个数据集合上的一次(A);进程是一个(B)的概念,而程序是一个(C)的概念;进程的最基本状态有(D)。在一个单处理机,若有6个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有(E)个。

  供选择的答案

  A: (1)单独操作 (2)关联操作 (3) 进行活动 (4)并发活动

  B:(1)静态 (2)动态 (3)逻辑 (4) 物

  C:(1)物理 (2)逻辑 (3)动态 (4)静态

  D:(1)就绪、运行、隐蔽 (2)停止、就绪、运行 (3)运行、就绪、阻塞

  (4)就绪、车消、运行

  E: (1) 5 (2) 6 (3) 1 (4) 4

  3. 有以下几个条件成立:( )

  (1)如果小王是工人 ,那么小张不是医生

  (2)或者小李是工人,或者小王是工人

  (3)如果小张不是医生,那么小赵不是学生

  (4)或者小赵是学生,或者小周不是经理

  以下哪项如果为真,可得出小李是工人的结论?

  (A) 小周不是经理

  (B) 小王是工人

  (C) 小赵不是学生

  (D) 小周是经理

  二.简答题

  1.下面列举的是常用的排序方法:直接插入排序,二分法插入排序,起泡排序,快速排序,直接选择排序,堆排序,归并排序。试问,哪些排序方法是稳定的?

  答:(期待您的高见)

  2. 对序列(49,38,65,97,76,27,13,50)采用快速排序法进行排序,以序列的第一个元素为基准元素得到的划分结果是什么?

  答:

  3. 请仔细阅读下面的SQL,判断其是否有错误,如果有错误,请说明错误在哪里。

  Select id , name ,age ,count (*)

  From table_name

  Where name like %s%

  Group by name

  4. 请用面向对象分析的方法,分析我用电脑写程序这句话的对象、属性和方法。

  三 问答题

  电影《达芬奇密码》中讲到了一个非常有意思的数字序列---菲波拉契序列。请用任意计算机语言实现一段小程序,该程序在屏幕上输出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)

  {

  }

相关推荐

猜你喜欢

大家正在看

换一换