C語言游戲開發(fā)筆試題
C語言游戲開發(fā)是今年來的熱門崗位之一,具有很大的發(fā)展?jié)摿?。下面由學(xué)習(xí)啦小編為你提供的C語言游戲開發(fā)筆試題,希望能幫到你。
C語言游戲開發(fā)筆試題(一)
1、請(qǐng)寫代碼打印100之內(nèi)的素?cái)?shù),講求效率(請(qǐng)做你的解法的效率分析)
2、求m,n的最大公約數(shù)
3、輸入10個(gè)字符串,打印出其中重復(fù)的字符串以及重復(fù)的次數(shù)
4、請(qǐng)畫圖例(UML最好),給出windows下的文件目錄的設(shè)計(jì)模式
5、用OO表示狼吃羊羊吃草
問答題:
1、什么是subversion?它與vss,cvs的區(qū)別在哪?或者有什么優(yōu)勢(shì)?
2、什么是wiki,關(guān)于程序項(xiàng)目的wiki你使用過哪些?wiki對(duì)你有什么幫助嗎?wiki與程序文擋的差別在哪?
3、什么是tdd?你使用過嗎?tdd的關(guān)鍵在哪?跟傳統(tǒng)的單元測(cè)試相比,有什么優(yōu)越性?
4、什么是單元測(cè)試?你用過哪些單元測(cè)試工具?他們的區(qū)別和好處各有哪些?你主要傾向于哪一種?
5、什么是編程規(guī)范?你傾向于什么樣的規(guī)范?他的好處在哪?
6、什么是mfc?你經(jīng)常使用那些mfc類?那么為什么很多人不主張使用mfc?
C語言游戲開發(fā)筆試題(二)
1、村子中有50個(gè)人,每人有一條狗。在這50條狗中有病狗(這種病不會(huì)傳染)。于是人們就要找出病狗。每個(gè)人可以觀察其他的49條狗,以判斷它們是否生病,只有自己的狗不能看。觀察后得到的結(jié)果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要槍斃自己的狗,而且每個(gè)人只有權(quán)利槍斃自己的狗,沒有權(quán)利打死其他人的狗。第一天,第二天都沒有槍響。到了第三天傳來一陣槍聲,問有幾條病狗,如何推算得出?
2、P先生、Q先生都具有足夠的推理能力。這天,他們正在接受推理面試。
他們知道桌子的抽屜里有如下16張撲克牌:
紅桃 A、Q、4
黑桃 J、8、4、2、7、3
草花 K、Q、5、4、6
方塊 A、5
約翰教授從這16張牌中挑出一張牌來,并把這張牌的點(diǎn)數(shù)告訴P先生,把這張牌的花色告訴Q先生。
這時(shí),約翰教授問P先生和Q先生:你們能從已知的點(diǎn)數(shù)或花色中推知這張牌是什么牌嗎?
P先生:“我不知道這張牌。”
Q先生:“我知道你不知道這張牌。”
P先生:“現(xiàn)在我知道這張牌了。”
Q先生:“我也知道了。”3 樓高100層,你有2個(gè)玻璃球,在某一層n層扔下玻璃球會(huì)碎,而低于n層則玻璃球不會(huì)碎。
1)你會(huì)選擇在第幾層扔第一個(gè)玻璃球來得到最少的嘗試次數(shù)?
2)假如沒有電梯,每次都要上樓下樓,你會(huì)選擇第幾層扔第一個(gè)玻璃球來得到最短的路程(爬上爬下的樓層)?
完美世界2017C++游戲開發(fā)筆試編程題
第一題
題意:給出一個(gè)序列a,需要找到一對(duì)位置(i, j)(j > i),使得a[j] - a[i]的值盡量大,同時(shí)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;
}
第二題
題意:給出一個(gè)序列,玩家需要跟boss進(jìn)行博弈,玩家先手。每次只能從序列頭或尾取一個(gè)值加到自己的得分上,玩家和boss都很聰明,求玩家和boss的最終得分。
題解:可以發(fā)現(xiàn)總分不是很大,可以記憶化搜索。d[i][j]表示當(dāng)拿到的序列為a[i, j]時(shí),從中的最高得分。轉(zhuǎn)移方程是d[i][j] = max(a[i] + d[i+1][j], d[i][j-1] + a[j]),向下遞歸并且記錄d[i][j]是否已得到即可(應(yīng)該算是區(qū)間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;
}
面試技巧
自我介紹技巧
應(yīng)聘者到外企或其他用人單位時(shí),求職者往往最先被問及的問題就是“請(qǐng)先介紹介紹你自己”。這個(gè)問題看似簡(jiǎn)單,但求職者一定要慎重對(duì)待,它是你突出優(yōu)勢(shì)和特長(zhǎng),展現(xiàn)綜合素質(zhì)的好機(jī)會(huì)。回答得好,會(huì)給人留下良好的第一印象。
回答這類問題,要掌握幾點(diǎn)原則:
1:開門見山,簡(jiǎn)明扼要,不要超過三分鐘。
2:實(shí)事求是,不可吹得天花亂墜。
3:突出長(zhǎng)處,但也不隱瞞短處。
4:所突出的長(zhǎng)處要與申請(qǐng)的職位有關(guān)。
5:善于用具體生動(dòng)的實(shí)例來證明自己,說明問題,不要泛泛而談。
6:說完之后,要問考官還想知道關(guān)于自己的什么事情。
為了表達(dá)更流暢,面試前應(yīng)做些準(zhǔn)備。而且由于主考喜好不同,要求自我介紹的時(shí)間不等。所以最明智的做法應(yīng)是準(zhǔn)備一分鐘、三分鐘、五分鐘的介紹稿,以便面試時(shí)隨時(shí)調(diào)整。 一分鐘的介紹以基本情況為主,包括姓名、學(xué)歷、專業(yè)、家庭狀況等,注意表述清晰;三分鐘的介紹除了基本情況之外,還可加上工作動(dòng)機(jī)、主要優(yōu)點(diǎn)缺點(diǎn)等;五分鐘介紹,還可以談?wù)勛约旱娜松^,說些生活趣事,舉例說明自己的優(yōu)點(diǎn)等。
C語言游戲開發(fā)筆試題
上一篇:前端開發(fā)面試筆試題