中興軟件測試面試題

    時間:2024-09-23 16:42:20 面試筆試 我要投稿
    • 相關推薦

    中興軟件測試面試題

      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;

      }


    【中興軟件測試面試題】相關文章:

    中興筆試+面試題目11-21

    職場跳槽首選軟件測試11-24

    軟件測試筆試題及答案02-21

    軟件測試筆試題201511-24

    中興面試筆試10-26

    軟件測試:4大魅力吸引跳槽11-18

    軟件測試筆試題及答案下載02-24

    中興的面試經驗總結02-23

    中興面試經驗總結!02-24

    中興硬件筆試真題09-26

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      日韩AV中文字幕在线播放 | 亚洲日韩欧美综合 | 亚洲成a影片在线观看 | 丝袜在线播放国产二区 | 中文字幕日本αv一区二区 日韩免费码中文字幕 | 五月天激情中文网 |