分類: hiring written test
2013-08-18 09:26
1169人閱讀收藏
舉報
我的答案與解析:
1. d 2. c 3. b 4. a 5. d 6. c 7. a
8. c
我們可以把12個雞蛋分成三堆,每堆4個。首先,我們命名那三堆分別叫a、b、c。
一、 如果a=b,表示壞的雞蛋在c裡面,我們命名c裡面的四個雞蛋分別為c1、c2、c3、c4。所以,如果想找到壞的雞蛋,即先從c挑出兩個(稱其為c1、c2)出來秤。
1. 若c1=c2,即表示壞的雞蛋在c3或c4中。
1)這時再挑出其中乙個(假設為c3)與a或者b中的任意乙個雞蛋秤。
如果等重,即表示c4是壞雞蛋;
若不等重,即表示c3是壞雞蛋。
2. 若c1不等於c2,即表示這兩個雞蛋有乙個是壞的。
2)這時挑c1與a或者b中的任意乙個雞蛋秤。
如果等重,即表示c2是壞雞蛋;
如果不等重,即表示c1是壞雞蛋。
二、 如果a不等於b,即表示壞雞蛋在a或者b中。所以,我們可以先將a分成兩堆,再進行秤。如果等重,表示壞雞蛋在b中。如果不等重,表示壞雞蛋在a中。如果要在3次成功找到壞雞蛋,此時只有一次可以測量的機會了,且不知道壞雞蛋的輕重,故怎麼分是個重要的課題。
首先,將a、b分別標號為a1、a2、a3、a4,及b1、b2、b3、b4。
再來,假設a>b(b>a情況一樣)。
1. 故若a1+a2+b1>a3+a4+b2,則有兩種可能。
1). a1+a2=a3+a4,而b1>b2,表示b含有壞雞蛋且較輕,故b2是壞雞蛋;
2). a1+a2>a3+a4,而b1=b2,表示a中含有壞雞蛋,且壞雞蛋較重,故a1或a2中其中乙個是壞雞蛋。
因此要將a1和a2秤重,若等重,即表示b2是壞雞蛋。若不等重,則較重者為壞雞蛋。
2. 若a1+a2+b1=a3+a4+b2,即表示壞雞蛋在b中且較輕。如此就只剩下b3和b4。再將b3和b4秤重,看哪個輕,即為壞雞蛋。
總之,秤重3次,第一次秤重a和b,當a與b不相等時,第二次秤重a1+a2+b1與a3+a4+b2,當a1+a2+b1與a3+a4+b2不相等時,第三次秤重a1與a2.
9. b 10. a 11.c 12.a 13.c 14.b 15.d 18.d 21.b
22.d
堆都是動態分配記憶體的,沒有靜態分配記憶體的;棧有兩種分配記憶體方式,動態和靜態。
23.c 24.a 25.c
26.c
[cpp]view plain
copy
#include
using
namespace
std;
intfoo(
int& nparam)
intmain()
if(ntom > ujerry)
if(ntom == ujerry)
cout/ 100
system("pause"
);
return
0;
}
27.a
[cpp]view plain
copy
#include
using
namespace
std;
class
base
~base()
virtual
void
foo()
};
class
derived :
public
base
~derived()
virtual
void
foo()
};
intmain()
// base ctor.foo base.derived ctor.foo derived.base dtor.foo base.
因為有delete操作,所以會呼叫析構函式;又因為析構函式不是虛函式,所以只呼叫基類的析構函式。
28.c 29.c
30.c
[cpp]view plain
copy
#include
using
namespace
std;
unsigned short
hash1(unsigned
short
key)
intmain()
31.b
位址匯流排決定邏輯記憶體大小;
32.d
33.a
fork系統呼叫產生乙個新的程序, 叫子程序, 是呼叫程序的乙個複製品. 呼叫程序叫父程序, 子程序繼承了父程序的幾乎所有的屬性:
. 實際uid,gid和有效uid,gid.
. 環境變數.
. 附加gid.
. 呼叫exec()時的關閉標誌.
. uid設定模式位元位.
. gid設定模式位元位.
. 程序組號.
. 會話id.
. 控制終端.
. 當前工作目錄.
. 根目錄.
. 檔案建立掩碼umask.
. 檔案長度限制ulimit.
. 預定值, 如優先順序和任何其他的程序預定引數, 根據種類不同決定是否可以繼承.
. 還有一些其它屬性.
但子程序也有與父程序不同的屬性:
. 程序號, 子程序號不同與任何乙個活動的程序組號.
. 父程序號.
. 子程序繼承父程序的檔案描述符或流時, 具有自己的乙個拷貝並且與父程序和其它子程序共享該資源.
. 子程序的使用者時間和系統時間被初始化為0.
. 子程序的超時時鐘設定為0.
. 子程序不繼承父程序的記錄鎖.
. pending signals 也不會被繼承。
linux下fork的實現是copy-on-write,也就是子程序與父程序初始時只有頁表和task structure不同。
34.c
當第乙個fork返回父程序號的時候,後面那個fork會執行;當第乙個fork返回子程序號的時候,後面那個fork不會執行。
35.沒有正確答案,應該是6次缺頁。 36.b 37.a 38.c 39.b 40.c 41.a 42.b 43.c 44.d 45.a
奇虎360 2015校園招聘筆試程式設計題
題目一 寫乙個函式,根據兩檔案的絕對路徑算出相對路徑。那麼b相對於a的相對路徑是 1 2 test.c include include int isgoodpath char path the relative path of b void parserelativepath char patha,...
奇虎360 2014校園招聘面試
面試地點 360大廈,酒仙橋路6號院2號樓 面試職位 伺服器端研發工程師 面試形式 一對一,聊天 寫 面試題目 1.c和c 堆和棧的區別 new和malloc的區別 free和delete如何知道應該釋放多少記憶體 寫個類a,宣告類a指標指向null,呼叫類a的方法會有什麼後果,編譯通過嗎?c 如何...
最強大腦 奇虎360 2017校園招聘筆試題
題目 最強大腦 時間限制 c c 語言 1000ms 其他語言 3000ms 記憶體限制 c c 語言 65536kb 其他語言 589824kb 題目描述 小b乘火車和朋友們一起在n市到m市之間旅行。她在路途中時睡時醒。當她醒來 窗外的風景時,注意到每個火車站都有一種特別顏色的旗幟,但是她看到的旗...