<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-10-25 20:05:20 綜合指導 我要投稿
            • 相關推薦

            清華同方軟件測試工程師筆試題解答分享

            清華同方軟件測試工程師筆試題解答分享

              最近一位學員去同方面試,讓寫個函數,這個函數實現如下功能:

              求100個元素的數組中2進制1的總數。

              其實考的是位運算符,

              題目分解為求每個元素1的個數,然后再循環即可。

              而如何求每個元素中1的個數呢?

              上次學員去神州數碼面試的時候,出了一道求一個元素2進制1的個數的題目。詳見:神州數碼軟件測試工程師筆試C語言題目詳解 其實如果神州的那個題目會的話,同方的這個題目就太簡單了。

              我們每次筆試的時候,答題的思路

              首先應該是想以前做沒有做過一樣的題目,如果有,直接照搬。

              再次想想有沒有做過類似的題目,如果有修改后照搬。

              最后是如果不是上面兩種情況,那做題目就比較傷腦筋了。只能靠我們平時學習多積累,多總結,通過現象,找到作同類題目的本質。只要本質我們找到了,即使是最后一種情況,我們也就不怕了。//假設是地址傳遞。int a[]:接受主調函數傳遞過來的實參(實參為數組名)

              int calubinary(int a[])

              {

              int i;

              int n=0;//2進制1的總數

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

              {

              //while循環計算1個元素中2進制1的個數

              while(a!=0)

              {

              //通過這個公式,每次a中的2進制1就會少1個,如果a里面是5,也就是101,那么經過 //這個公式一次,a就變成100。下一次就變成了000,自己算算就知道了。

              a=a&(a-1);

              n++; //2進制1的總數

              }

              }

              return n;

              }

              附神州數碼軟件測試工程師筆試C語言題目詳解 :

              1.

              void fun(void)

              {

              int count=0;

              int m=9999;

              while(m)

              {

              count++;

              m=m&(m-1);

              }

              printf(count);

              }

              這道題目考察的是10進制到2進制的轉換以及按位與運算。9999轉換成2進制為:

              10011100001111

              打印的count應該是8。

              這個count的值與9999化成2進制時1的個數有關,9999中2進制有8個1。所以count的值是8.

              這個題目考察的知識點在DC課堂上都重點講過,所以不會應該是自己的責任。

              2.在雙向鏈表存儲結構中,刪除p所指的結點時須修改指針

              A:(p->llink)->rlink=p->rlink;

              (p->rlink)->llink=p->llink;

              B:p->llink=(p->llink)->llink;

              (p->llink)->rlink=p

              C:

              (p->rlink)->llink=p

              p->rlink=(p->rlink)->rlink

              D:

              p->rlink=(p->llink)->llink;

              p->llink=(p->rlink)->rlink;

              這個題目應該選A

              在我們的DC課堂上對與單向鏈表以及其上的操作都講了,雙向鏈表沒有講。但如果單向鏈表會,雙向也可以推理出來,何況這是個選擇題目。

              如果這個沒做對,情有可原。但是如果下次再做錯,自己就要好好想想了。

              3.定義一個結構體:

              完成由Node類型結點構成的一個單向鏈表的正向排序(由小到大)

              #include

              #include

              struct Node

              {

              struct Node *next;

              int value;

              };

              struct Node* InsertSort(void)

              {

              struct Node *Head=NULL,*New,*Cur,*Pre;

              int i;

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

              {

              if((New=(struct Node*)malloc(sizeof(struct Node)))==NULL)

              {

              printf("申請空間失敗\n");

              return NULL;

              }

              printf("請輸入節點的value\n");

              scanf("%d",&New->value);

              New->next=NULL;

              if(Head==NULL)

              {

              Head=New;

              continue;

              }

              if(New->value<=head->value)

              {//head之前插入節點

              New->next=Head;

              Head=New;

              continue;

              }

              Cur=Head;

              while(New->value>Cur->value && Cur->next!=NULL)

              {

              Pre=Cur;

              Cur=Cur->next;

              }

              if(Cur->value>=New->value)

              {

              Pre->next=New;

              New->next=Cur;

              }

              else

              //if(Cur!=New)

              Cur->next=New;

              }//for

              return Head;

              }

              void print(struct Node* Head)

              {

              struct Node* Cur;

              Cur=Head;

              while(Cur!=NULL)

              {

              printf("Cur->value=%d\n",Cur->value);

              Cur=Cur->next;

              }

              }

              void main(void)

              {

              struct Node* head;

              head=InsertSort();

              print(head);

              }

              程序已經調試通過,大家可以試試。

              這個題目也應該會,這個在課堂上要求過。插入一個有序單鏈表。

              這個題目只是筆試題,如果寫出來的程序不能完全執行,這個可以原諒的。

              如果大體的程序框架都寫不出來,這個可要自己仔細想想了。

            【清華同方軟件測試工程師筆試題解答分享】相關文章:

            清華同方筆試選擇題分享11-21

            360軟件工程筆試真題分享09-26

            軟件筆試題 分享11-21

            大唐軟件java軟件工程師筆試題分享11-21

            OPPO筆試真題分享,筆試題目分享11-21

            軟件測試筆試題201511-24

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

            在清華的筆試11-21

            嘉士伯的筆試測試題分享11-21

            <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>
                      黄色视频在线观看