中兴软件测试面试题

时间:2021-03-10 13:41:41 面试笔试 我要投稿

中兴软件测试面试题

  1. 下面这段代码的输出是多少(在32位机上).

中兴软件测试面试题

  char *p;

  char *q[20];

  char *m[20][20];

  int (*n)[10];

  struct MyStruct

  {

  char dda;

  double dda1;

  int type ;

  };

  MyStruct k;

  printf("%d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k));

  答案:4,80,1600,4,24

  (1)

  char a[2][2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}} };

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

  printf("%d ",__a[0][0][i]_);

  在空格处填上合适的语句,顺序打印出a中的数字

  (2)

  char **p, a[16][8];

  问:p=a是否会导致程序在以后出现问题?为什么?

  答:没有问题,只是使用时要小心,p是指向指针的指针。

  3.用递归方式,非递归方式写函数将一个字符串反转.

  函数原型如下:char *reverse(char *str);

  答:非递归方式:

  char *reverse(char *str)

  {

  if(str!=NULL)

  {

  int length = strlen(str);

  char *dst=NULL;

  dst=(char*)malloc((length+1)*sizeof(char));

  int i=0;

  for(i=0;i<length;i++)< p="">

  {

  dst[i]=str[length-1-i];

  }

  dst[i]='\0';

  printf("%s\n",dst);

  return dst;

  }

  }

  递归方式:

  int len = 0;

  void reverse(char *str)

  {

  int oldlen = len;

  int swap_len = len / 2;

  char *tmp = new char[swap_len + 1];

  memcpy(tmp, str, swap_len);

  memcpy(str, str + len - swap_len, swap_len);

  memcpy(str + len - swap_len, tmp, swap_len);

  [] tmp;

  if(swap_len == 1)

  return;

  len = swap_len;

  reverse(str);

  len = swap_len;

  reverse(str + oldlen - swap_len);

  }

  int main()

  {

  char test[] = "abcdefghijkl";

  //shift(test, strlen(test), 7);

  len = strlen(test);

  reverse(test);

  return 0;

  }

  4.strcpy函数和memcpy函数有什么区别?它们各自使用时应该注意什么问题?

  答:strcpy函数:拷贝字符串

  memcpy函数:拷贝任何数据

  5.写一个函数将一个链表逆序.

  答:简单

  6.一个单链表,不知道长度,写一个函数快速找到中间节点的位置.

  答:两个指针fast和low,fast每步移2个位置low每步移1个位置,当fast到达尾部时low就是中间结点。

  typedef struct linknode

  {

  int a;

  struct linknode *next;

  }linknode;

  linknode *findmiddle(linknode *head)

  {

  linknode *fast,*low,*p;

  if(head==NULL)

  {

  return NULL;

  }

  fast=low=head;

  while(!(p=fast->next)&&!p->next)

  {

  low=low->next;

  fast=p->next;

  }

  return low;

  }

  7.写一个函数找出一个单向链表的倒数第n个节点的指针.(把能想到的最好算法写出).

  答:两个指针,第一个先于第二个n个位置。

  LinkNode IsLoopList(LinkNode *head,int n)

  {

  LinkNode *p1,*p2;

  p1 =p2= head;

  While(n-->=0)

  {

  P2= p2->next;

  }

  While(p2->next!=NULL)

  {

  P2 = p2->next;

  P1 = p1->next;

  }

  Return p1; //当p2到达结尾时,后于p2 n个位置的.就是倒数第n个节点。

  }

  8.补充一题:

  给你一个单向链表的头指针,可能最后不是NULL终止,而是循环链表。题目问你怎么找出这个链表循环部分的第一个节点。比如下面的链表:

  0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> (3) 循环,就应该返回结点3的位置。

  当然尽量用少的空间和时间是题目的要求。

  答:

  10.判断链表是否循环;

  答:bool IsLoopList(LinkNode *head)

  {

  LinkNode *p1= head,*p2= head;

  if(head ->next==NULL) //只包含头节点,且头节点的next为NULL说明肯定不是循环链表

  return false;

  do{

  p1=p1->next; //步长为1

  p2=p2->next->next; //步长为2

  }while(p2 && p2->next && p1!=p2);

  if(p1==p2)

  return true;

  else

  return false;

  }

  11.用递归算法判断数组a[N]是否为一个递增数组。

  答:递归算法:

  #include

  #include

  #define N 5

  int Judgment(int a[],int num);

  int main()

  {

  int a[N], i, flag = 1;

  printf("Enter array data: ");

  for (i = 0; i < N; i++)

  {

  scanf("%d", &a[i]); //输入数组元素

  }

  flag = Judgment(a,N); //调用递归函数

  if (flag == 1)

  {

  printf("increment array.\n");

  }

  else if (flag == 0)

  {

  printf("no increment array.\n");

  }

  return 0;

  }

  int Judgment(int a[],int num)

  {

  for (int i=num-1;i>=0;i--)

  {

  if(a[i]<a[i-1])< p="">

  return 0;

  Judgment(a,i);

  }

  return 1;

  }

  非递归算法:

  #include

  #include

  #define N 5

  int Judgment(int a[], int num);

  int main()

  {

  int a[N], i, flag = 1;

  printf("Enter array data: ");

  for (i = 0; i < N; i++)

  {

  scanf("%d", &a[i]);

  }

  flag = Judgment(a, N);

  if (flag == 1)

  {

  printf("increment array.\n");

  }

  else if (flag == 0)

  {

  printf("no increment array.\n");

  }

  return 0;

  }

  int Judgment(int a[], int num)

  {

  static i = 0, flag = 1;

  for(i=0; i<num;i++)< p="">

  {

  if (a[i] >= a[i+1]) //假如发现哪两个不是递增,立刻跳出;

  {

  flag = 0;

  break;

  }

  }

  return flag;

  }


【中兴软件测试面试题】相关文章:

中兴笔试面试经验08-23

中兴通讯求职故事03-28

软件测试工程面试常见问题介绍04-11

软件测试员应聘常见的基本面试问题11-24

华为硬件面试题08-22

经典面试题回答思路03-17

求职英语面试题集锦08-22

银行招聘英语面试题04-03

图像处理的笔试面试题08-19

韦博英语面试题目06-27