- 相關推薦
群碩筆試題目(全)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
4.What's serialization,how does it work in .net or Java
5. what's reflection in java
6.How many data types can be used in swith (Java)?
7.定義 a) 含有十個元素的指針數組;
b) 數組指針;
c) 函數指針;
d) 指向函數的指針數組;
8.Describe scope of public/private/frined/protected/protected frined
(C#)
二、
1.an array,Bubble sort.
2.judge 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<
}
array[index]*=-1;
index=array[index]*(-1)-1;
}
}
群碩筆試歸來
題目:
一概念
1.過程化編程和面向對象編程的區別
面向過程就是分析出解決問題所需要的步驟,然后用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為
2.(a-1)xora==0和條件
3.Garbage Collection
4.java中 equals() 和== 的區別
5.C++中類的定義 。汉瘮抵剌d出錯
6.數據庫理論中的數據完整性
7.donamic(?) 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內四個女人都過橋
【群碩筆試題目(全)1】相關文章:
群碩筆試題Java和C++、C#11-21
惠而浦:筆試+群面11-19
華夏的筆試題目11-21
南航筆試題目06-23
ITT HR的筆試題目,筆試試題02-24
網易游戲筆試題目11-30
電子類筆試題目11-21
北京CONSULTING的筆試題目11-21
香港KPMG的筆試題目11-21
MARS筆試 題目+體會詳述11-21