群碩筆試題目(全)1

才智咖 人氣:2.31W



應哥們要求特意記得,與大家共享!

群碩筆試題目(全)1

原文全是英語,我按自己理解寫了一些,難免出錯,望大家見諒!

一、

1. Debug和Release build的區別,速度有差異嗎?why or why not?
一、Debug 和 Release 編譯方式的本質區別 
Debug 通常稱為除錯版本,它包含除錯資訊,並且不作任何優化,便於程式設計師除錯程式。Release 稱為釋出版本,它往往是進行了各種優化,使得程式在程式碼大小和執行速度上都是最優的,以便使用者很好地使用。
二:
只有DEBUG版的程式才能設定斷點、單步執行、使用TRACE/ASSERT等除錯輸出語句。REALEASE不包含任何除錯資訊,所以體積小、執行速度快。

在debug的版本里會錯的,在release裡面不一定會錯誤,但是程式碼是肯定有錯的.
2. 死鎖的四個必要條件;
死鎖產生有四個必要的條件:互斥條件,不可剝奪條件,部分分配,迴圈等待
3. “assignment operator”and “copy constructor”的差異
呼叫時間不一樣,假設A同時擁有兩者,b是A的一個例項:  
A   a(b)與A   a=b     呼叫opy   constructor  
A   a;  
a=b;  
呼叫的是assignment     operator
's serialization,how does it work in or Java

5. what's reflection in java

many data types can be used in swith (Java)?

7.定義 a) 含有十個元素的指標陣列;

b) 陣列指標;

c) 函式指標;

d) 指向函式的指標陣列;

ribe scope of public/private/frined/protected/protected frined

(C#)

二、

array,Bubble sort.

e current platform using big endion or little endition(高位元組還是低位元組存放)
微處理機中的`存放順序有正序(big endian)和逆序(little endian)之分。正序存放就是高位元組存放在前低位元組在後,而逆序存放就是低位元組在前高位元組在後。例如,十六進位制數為A02B,正序存放就是A02B,逆序存放就是2BA0。摩托羅拉(Motorola)公司的微處理器使用正序存放,而英特爾(Intel)公司的微處理器使用逆序。
void endian()
{
    int x = 0x12345678;
    char *a = (char *)&x;
    cout << (*a == 0x12? "big endian":"little endian");
}

三、

1-1000放在含有1001個元素的陣列中,只有唯一的一個元素值重複,其它均只出現
一次。每個陣列元素只能訪問一次,設計一個演算法,將它找出來;不用輔助儲存空
間,能否設計一個演算法實現?(今天唯一的收穫就是做出了這個題)
將1001個元素相加減去1,2,3,……1000數列的和,得到的差即為重複的元素。
  int   Find(int   *   a)  
  {  
  int   i;//變數  
  for   (i   =   0   ;i<=1000;i++)  
  {  
  a[1000]   +=   a;  
  }  
  a[1000]   -=   (i*(i-1))/2       //i的值為1001  
  return   a[1000];  
  }
利用下標與單元中所儲存的內容之間的特殊關係,進行遍歷訪問單元,一旦訪問過的單
元賦予一個標記,利用標記作為發現重複數字的關鍵。程式碼如下:
void FindRepeat(int array[], int length)
{
    int index=array[length-1]-1;
    while ( true )
    {
       if ( array[index]<0 )
           break;
       array[index]*=-1;
       index=array[index]*(-1)-1;
    }

    cout<<"The repeat number is "<}
此種方法不非常的不錯,而且它具有可擴充套件性。在罈子上有人提出:
對於一個既定的自然數 N ,有一個 N + M 個元素的陣列,其中存放了小於等於 N 的所有
自然數,求重複出現的自然數序列{X} 。

對於這個擴充套件需要,自己在A_B_C_ABC(黃瓜兒才起蒂蒂)的演算法的基礎上得到了自己的演算法
程式碼:
按照A_B_C_ABC(黃瓜兒才起蒂蒂)的演算法,易經標記過的單元在後面一定不會再訪問到,除非它是重複的數字,也就是說只要每次將重複數字中的一個改為靠近N+M的自然數,讓遍歷能訪問到陣列後面的單元,就能將整個陣列遍歷完。
程式碼:
*/
void FindRepeat(int array[], int length, int num)
{
int index=array[length-1]-1;
cout<<"The repeat number is ";
while ( true )
{
if ( array[index]<0 )
{
   num--;
   array[index]=length-num;
   cout<}

if ( num==0 )
{
   cout<  return;
}
array[index]*=-1;
index=array[index]*(-1)-1;
}
}

群碩筆試歸來
題目:
一概念 
 1.過程化程式設計和物件導向程式設計的區別
面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候一個一個依次呼叫就可以了。

物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為
 2.(a-1)xora==0和條件
 age Collection
中 equals() 和== 的區別
 5.C++中類的定義  :函式重載出錯
 6.資料庫理論中的資料完整性
 mic(?) wed programming 中 redirect 和forward
 8.雙向連結串列的插入

二演算法
 字串倒置 
 eg. this is a string =>gnirts a si siht

三logic thinking
 四個女人過橋,夜間有一火把,每次最多過兩個,必需帶火把,
  過橋速度不一樣
   no.1 1min
no.2 2min
no.3 5min
no.4 10min
   兩個人過用最慢一個的速度,火把不能扔
如何在17min內四個女人都過橋