<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>

            阿里巴巴校招筆試題

            時間:2020-11-02 11:36:59 筆試題目 我要投稿

            阿里巴巴2016校招筆試題

              ①、C++

              以下程序輸出結果是( )

              class A

              {

              public:

              virtual void func(int val = 1)

              {

              std::cout << "A->" << val << std::endl;

              }

              virtual void test()

              {

              func();

              }

              };

              class B:public A

              {

              public:

              void func(int val = 0)

              {

              std::cout << "B->" << val << std::endl;

              }

              };

              int main(int argc,char* argv[])

              {

              B*p = new B;

              p->test();

              return 0;

              }

              A:A->0

              B:B->1

              C:A->1

              D:B->0

              答案:B

              解析:由于p指向了繼承類B的對象,所以,在調用A中的test之后,虛函數func()會調用繼承類B的函數,而默認形參仍然會使用test所在的類A的形參1,從而輸出B->1。

              ②、數學計算將1,2,3,......,99,100任意排列成一個圈,相鄰兩數的差的絕對值求和最多為( )

              A:100

              B:198

              C:200

              D:500

              E:2500

              F:5000

              答案:F

              解析:定義1-50為“小數”,51-100為“大數”,將“相鄰元素的差的絕對值之和”簡稱“絕差之和”。為了將絕差之和取最大,應該避免將“大數”和“大數”放在一起。因此,可以考慮間隔排布。形成:1,100,2,99,3,98,4,97……,50,51的.序列。而事實上,這個序列即絕差之和最大的序列。可使用如下證明:

              1、 如下圖所示:如果將小數和小數交換,得到的序列絕差之和不變。將小數x和y互換。假定交換之前,x和y的相鄰元素分別為a、b和c、d。則交換之前的絕差為:(a-x)+(b-x)+(c-y)+(d-y),交換之后的絕差為:(a-y)+(b-y)+(c-x)+(d-x),二者相等。

              2、 如下圖所示:如果將大數和大數交換,得到的序列絕差之和不變。將大數a和b互換。假定交換之前,a和b的相鄰元素分別為x、y和z、w。則交換之前的絕差為:(a-x)+(a-y)+(b-z)+(b-w),交換之后的絕差為:(b-x)+(b-y)+(a-z)+(a-w),二者相等。

              3、 如下圖所示:如果將大數和小數交換,得到的序列絕差之和必然減小。將小數a和大數z互換。假定交換之前,a和z的相鄰元素分別為x、y和b、c。則交換之前的絕差為:(a-x)+(a-y)+(b-z)+(c-z),交換之后的絕差為:|x-z|+|y-z|+|b-a|+|c-a|,由于x、y、z更接近,a、b、c更接近,所以交換后絕差變小。

              因此,無論如何交換,絕差之和都無法增大。即原序列的絕差之和是最大的。它形成的絕差序列是99,98,97,96……,2,1,50,這100個數的和為5000。

              ③、計算機基礎

              如果下列的公式成立:84*148=B6A8。則采用的是( )進制表示的。

              A:15

              B:11

              C:12

              D:14

              E:16

              F:以上都不對

              答案:C

              解析:1、常規做法:假定數值是x進制的,則寫出等式:(8x+4)*(x2+4x+8)=11x3+6x2+10x+8,化簡得到(3x2+6x+2)*(x-12)=0,則x的非負整數解為x=12。

              2、“啟發式”做法:在十進制體系下,左側個位乘積4*8=32;右側個位為8,差32-8=24,從而進制必然是24的約數。只有C選項12是24的約數。

            【阿里巴巴2016校招筆試題】相關文章:

            騰訊2016校招筆試題11-06

            阿里巴巴2015校招筆試題(含答案、解析)09-05

            阿里巴巴視覺設計師的校招面試筆試題11-18

            騰訊校招筆試題01-16

            騰訊校招筆試題目12-20

            網易2015校招筆試題09-09

            阿里巴巴綜合筆題11-13

            2016銀行校招面試英語問題09-25

            2016騰訊校招技術類筆試11-28

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