亚洲福利精品久久久久91|中文字幕乱码视频网|在线播放国产精品一区二区|亚洲成AV人片女在线观看

  • <label id="nsftt"></label>

          <bdo id="nsftt"></bdo>
              <object id="nsftt"><tt id="nsftt"><pre id="nsftt"></pre></tt></object>

              微軟筆試題和面試題答案解析與答案(一)

              思而思學(xué)網(wǎng)

              微軟部分筆試題解析與答案,也許對你會有所啟發(fā)

              1、求函數(shù)返回值,輸入x=9999;

              int func(x)

              {

              int countx = 0;

              while(x)

              {

              countx ++;

              x = x&(x-1);

              }

              return countx;

              }

              【試題解析】

              解這道題的時候,如果拿出一個二進制數(shù)來分析就會容易的多了,x=x&(x-1)實際上就是把x的二進制形式的最后一個“1”變成“0”,x的二進制形式有多少個“1”循環(huán)就執(zhí)行多少次。

              9999/256 = 39 余 15,把這兩個數(shù)分別轉(zhuǎn)化一下就很快了

              39 = 32 + 4 + 2 +1 = 00100111

              15 = 0F = 00001111

              所以 9999=0010011100001111,共有8個1,答案就是 8 了

              2、實現(xiàn)以下程序,以方便binary search.

              .要有處理錯誤語句

              .隊列的分配的大小是固定的MAX_LEN,由第二個參數(shù)輸入

              .不能復(fù)制隊列

              insert (int arr, //隊列

              size_l len, // 隊列大小

              size_l count, //隊列元素的數(shù)目

              int varl //要處理的數(shù)據(jù)

              )返回插入數(shù)據(jù)的索引

              remove(int arr,size_l len,size_l count,int varl)返回刪除元素的索引

              search(int arr,size_l len,size_l count,int varl)返回搜索道元素的索引

              【試題解析】

              略。數(shù)據(jù)結(jié)構(gòu)書上都有的。

              3、堆棧R,從頂?shù)降?{2,4,6,8,10},逐個取出放入隊列Q中 ,再從Q中逐個取出放入R中,問現(xiàn)在堆棧R中從頂?shù)降椎捻樞颉?/p>

              【試題解析】

              這個也不用了吧,{10,8,6,4,2}

              4、寫出程序的結(jié)果:___________

              int funa(int a)

              {

              a[0] ++;

              }

              int funb(int b[])

              {

              b[1] += 5;

              }

              main()

              {

              int a[5] = {2,3,4,5,6};

              int b[5] = {2,3,4,5,6};

              int p;

              p = &a[0];

              (p)++;

              funa(p);

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

              printf("%d,",a);

              p = &b[1];

              funb(p);

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

              printf("%d,",b);

              }

              【題目解析】

              結(jié)果是:

              4,3,4,2,3,9

              (p)++; 也就是a[0]++;

              funa(p);中的 a[0]++ 是將 main 中的數(shù)組 a[0]++,

              數(shù)組 a 中只有第一個元素加了兩次 1 ,

              p = &b[1];把p指向了數(shù)組 b 的第二個元素

              funb(p);中的 b[1]+=5 是將 main 中的數(shù)組 b[2]+=5

              數(shù)組 b 中的第三個元素加了 5

              5、找出下面程序的 BUG

              int CopyStringAndCount(char Str) ①

              {

              int nCount = 0;

              char pBuffer; ②

              pBuffer = new char[MAX_PATH_LENGTH];

              strcpy(pBuffer, Str);

              for ( ; pBuffer⑤; pBuffer++ )

              if ( pBuffer⑥=='\\' ) nCount ++;

              return nCount;

              }

              【題目解析】

              ① (const char Str)

              如果在函數(shù)體內(nèi)不需要改變字符串的內(nèi)容,最好加上 const 以免誤修改字符串內(nèi)容

              ② char pBuffer = NULL;

              指針聲明的時候最好賦初值 NULL

              ③ if ( !pBuffer ) return -1;

              開辟空間之后沒有檢查是否成功,沒有錯誤檢查

              ④ if ( strlen(Str)>(MAX_PATH_LENGTH-1) ) return -2;

              沒有檢查新開辟的空間能否容納傳進來的字符串,否則有可能越界

              ⑤ pBuffer

              題中的原意是當(dāng)?shù)阶址┪驳臅r候跳出循環(huán),所以應(yīng)該是取字符串的內(nèi)容

              ⑥ 同⑤

              ⑦ delete pBuffer; pBuffer=NULL;

              沒有釋放新開辟的空間,會造成內(nèi)存泄漏

              6、你覺得下一代瀏覽器應(yīng)該添加什么功能?

              【題目解析】

              當(dāng)時隨便寫的,比如安全性,搜索功能等。

              熱門推薦

              最新文章