網站首頁 工作範例 辦公範例 個人範例 黨團範例 簡歷範例 學生範例 其他範例 專題範例

C語言遊戲開發筆試題

欄目: 筆試題目 / 釋出於: / 人氣:2.18W

C語言遊戲開發是今年來的熱門崗位之一,具有很大的發展潛力。下面由本站小編為你提供的C語言遊戲開發筆試題,希望能幫到你。

C語言遊戲開發筆試題

C語言遊戲開發筆試題(一)

1、請寫程式碼列印100之內的素數,講求效率(請做你的解法的效率分析)

2、求m,n的最大公約數

3、輸入10個字串,打印出其中重複的字串以及重複的次數

4、請畫圖例(UML最好),給出windows下的檔案目錄的設計模式

5、用OO表示狼吃羊羊吃草

答題

1、什麼是subversion?它與vss,cvs的區別在哪?或者有什麼優勢?

2、什麼是wiki,關於程式專案的wiki你使用過哪些?wiki對你有什麼幫助嗎?wiki與程式文擋的差別在哪?

3、什麼是tdd?你使用過嗎?tdd的關鍵在哪?跟傳統的單元測試相比,有什麼優越性?

4、什麼是單元測試?你用過哪些單元測試工具?他們的區別和好處各有哪些?你主要傾向於哪一種?

5、什麼是程式設計規範?你傾向於什麼樣的規範?他的好處在哪?

6、什麼是mfc?你經常使用那些mfc類?那麼為什麼很多人不主張使用mfc?

C語言遊戲開發筆試題(二)

1、村子中有50個人,每人有一條狗。在這50條狗中有病狗(這種病不會傳染)。於是人們就要找出病狗。每個人可以觀察其他的49條狗,以判斷它們是否生病,只有自己的狗不能看。觀察後得到的結果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要槍斃自己的狗,而且每個人只有權利槍斃自己的狗,沒有權利打死其他人的狗。第一天,第二天都沒有槍響。到了第三天傳來一陣槍聲,問有幾條病狗,如何推算得出?

2、P先生、Q先生都具有足夠的推理能力。這天,他們正在接受推理面試。

他們知道桌子的抽屜裡有如下16張撲克牌:

紅桃 A、Q、4

黑桃 J、8、4、2、7、3

草花 K、Q、5、4、6

方塊 A、5

約翰教授從這16張牌中挑出一張牌來,並把這張牌的點數告訴P先生,把這張牌的花色告訴Q先生。

這時,約翰教授問P先生和Q先生:你們能從已知的點數或花色中推知這張牌是什麼牌嗎?

P先生:“我不知道這張牌。”

Q先生:“我知道你不知道這張牌。”

P先生:“現在我知道這張牌了。”

Q先生:“我也知道了。”3 樓高100層,你有2個玻璃球,在某一層n層扔下玻璃球會碎,而低於n層則玻璃球不會碎。

1)你會選擇在第幾層扔第一個玻璃球來得到最少的嘗試次數?

2)假如沒有電梯,每次都要上樓下樓,你會選擇第幾層扔第一個玻璃球來得到最短的路程(爬上爬下的樓層)?

完美世界20xxC++遊戲開發筆試程式設計題

第一題

題意:給出一個序列a,需要找到一對位置(i, j)(j > i),使得a[j] - a[i]的值儘量大,同時i儘量大並且j儘量小,如果任意a[j] - a[i]都<=0,則輸出-1,-1。

題解:從1到n掃一遍序列處理即可,i儘量大用>=,j儘量小用>即可。

程式碼:

#include

#include

using namespace std;

#define maxn (1000000)

int a[maxn], prei[maxn];

int main

{

int n;

cin >> n;

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

{

scanf("%d", &a[i]);

prei[i] = -1;

}

int g = -1;

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

{

if(g == -1 || a[i] <= a[g]) g = i;

if(a[g] < a[i+1]) prei[i+1] = g;

}

int d = 0, o = -1;

for(int i = 1; i < n; i++) if(prei[i] != -1)

{

if(a[i] - a[prei[i]] > d)

{

d = a[i] - a[prei[i]];

o = i;

}

}

if(o == -1) cout << -1 << "," << -1 << endl;

else cout << prei[o] << "," << o << endl;

return 0;

}

第二題

題意:給出一個序列,玩家需要跟boss進行博弈,玩家先手。每次只能從序列頭或尾取一個值加到自己的得分上,玩家和boss都很聰明,求玩家和boss的最終得分。

題解:可以發現總分不是很大,可以記憶化搜尋。d[i][j]表示當拿到的序列為a[i, j]時,從中的最高得分。轉移方程是d[i][j] = max(a[i] + d[i+1][j], d[i][j-1] + a[j]),向下遞歸併且記錄d[i][j]是否已得到即可(應該算是區間dp?)。

程式碼:

#include

#include

using namespace std;

#define maxn (111)

int a[maxn], d[maxn][maxn], vis[maxn][maxn], sum;

void dp(int l, int r, int tot)

{

if(vis[l][r]) return ;

if(l == r) { d[l][r] = a[l]; vis[l][r] = 1; return; }

dp(l + 1, r, tot - a[l]); dp(l, r - 1, tot - a[r]);

d[l][r] = max(tot - d[l + 1][r], tot - d[l][r - 1]);

vis[l][r] = 1;

}

int main

{

int N;

cin >> N;

for(int i = 1; i <= N; i++)

{

scanf("%d", &a[i]);

sum += a[i];

}

dp(1, N, sum);

cout << d[1][N] << " " << sum - d[1][N] << endl;

return 0;

}

面試技巧

自我介紹技巧

應聘者到外企或其他用人單位時,求職者往往最先被問及的問題就是“請先介紹介紹你自己”。這個問題看似簡單,但求職者一定要慎重對待,它是你突出優勢和特長,展現綜合素質的好機會。回答得好,會給人留下良好的第一印象。

回答這類問題,要掌握幾點原則:

1:開門見山,簡明扼要,不要超過三分鐘。

2:實事求是,不可吹得天花亂墜。

3:突出長處,但也不隱瞞短處。

4:所突出的長處要與申請的職位有關。

5:善於用具體生動的例項來證明自己,說明問題,不要泛泛而談。

6:說完之後,要問考官還想知道關於自己的什麼事情。

為了表達更流暢,面試前應做些準備。而且由於主考喜好不同,要求自我介紹的時間不等。所以最明智的做法應是準備一分鐘、三分鐘、五分鐘的介紹稿,以便面試時隨時調整。 一分鐘的介紹以基本情況為主,包括姓名、學歷、專業、家庭狀況等,注意表述清晰;三分鐘的介紹除了基本情況之外,還可加上工作動機、主要優點缺點等;五分鐘介紹,還可以談談自己的人生觀,說些生活趣事,舉例說明自己的優點等。