<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            中興軟件測試面試題

            時間: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

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看