1. 程式人生 > >完美世界2017c++遊戲開發:筆試題+面試題

完美世界2017c++遊戲開發:筆試題+面試題

筆試題

一 選擇題(1分*30)

1 在公有派生類的成員函式不能直接訪問基類中繼承來的某個成員,則該成員一定是基類中的()
A 私有成員 B 公有成員 C 保護成員 D 保護成員或私有成員

2 下列程式輸出結果是()

#include<iostream>
void main(){
int n[][3] = { 10, 20, 30, 40, 50, 60};
int (*p)[3];
p = n;
cout << p[0][0] << "," << *(p[0] + 1) << ", " << (*p)[2] << endl;

A 10, 30, 50 B 10,20,30 C 20,40,60 D 10,30,60

3 假定A為一個類,則執行 A a(2) , b[3], *p[4] ;語句時呼叫建構函式的次數為()
A 3 B 4 C 5 D 9

4 有關多型不正確的是()
A C++語法的多型性分編譯時的多型和執行時的多型
B 編譯時的多型性可通過函式過載實現
C 執行時的多型可通過模板和虛擬函式實現
D 實現執行時多型性的機制成為動態多型性

5 已知p一個指向類A資料成員m的指標,a是類A的一個物件,如果要給m複製為5,正確做法是()
A a.p = 5 B a->p = 5

C a.*p = 5 D *a.p = 5

6 當一個類的某個函式被說明為virtual時,該函式的在該類的所有派生類中()
A 都是虛擬函式
B 只有被重新說明的才是虛擬函式(本人注:此處題有點問題,貌似重新說明,應該是重寫)
C 只有被重新說明為virtual時才是虛擬函式
D 都不是虛擬函式

7 類B是類A的公有派生類, 類A和類B中都定義了虛擬函式func(), p 是一個指向類A物件的指標,則p->A::func()將()
A 呼叫類A中的函式
B 呼叫類B中的函式
C 根據p所指向的物件型別而確定呼叫類A中的函式或類B的函式
D 都呼叫

8 已知f1 和f2是同一個類中的兩個成員函式,但是f1不能直接呼叫f2,這說明()
A f1和f2都是靜態函式
B f1 不是靜態函式, f2是靜態函式
C f1 是靜態函式, f2不是靜態函式


D 都不是靜態函式

9 程式輸出結果為()

#define add(a+b) a+b
int main(){
    printf("%d/n", 5*add(3+4));
    return 0;
}

A 23 B 35 C 16 D 19

10 關於資料結構一下說法錯誤的是()
A 紅黑樹插入操作的平均時間不復雜度為O(logn), 最壞為O(logn)
B B+樹。。。。。。。。。。。。。。。O(logn),。。。O(logn)
C Hash。。。。。。。。。。。。。。。O(logn),。。。O(n)
D 排序連結串列。。。。。。。。。。。。。O(n),。。。。。O(n)

11 有六個元素6,5,4,3,2,1順序進棧,不合法的出棧順序是()
A 5 4 3 6 2 1 B 4 5 3 1 2 6
C 3 4 6 5 2 1 D 2 3 4 1 5 6

12 36匹馬,現有6個賽道,需要多少次比賽可以選出第一二三名()
A 7 B 8 C 9 D 12

13 下列語句正確的是()
A int a, &ra = a, &&ref = ra
B int &rafa[10]
C int a,&ra = a, &*refp = &ra
D int *pf, *&pref = pi

14 一個二叉樹 的後序遍歷為DEBFCA ,中序為DBEAFC,則前序為()(不貼選項了)

15 編譯程式分析源程式階段依次為()
A 語法分析,語法分析,語義分析
B 詞法分析,語法分析,語義分析
C 語義分析,語法分析,詞義分析
D 語法分析,語義分析,語法分析

16 程式碼執行後count的值為()

int count = 0;
for(int i = 1; i <= 13; i*= 2)
for(int j = 1; j <= i; ++j)
count++;

A 15 B 16 C 31 D 32

17 此設計模式定義一組可選演算法,執行邏輯時根據環境選擇演算法,不同演算法產生不同輸出結果,則該設計模式為()
A 工廠factory
B 抽象工廠 abstract factory
C 策略 strategy
D 觀察者 observer

18 選擇合適的容器,需要頻繁的進行插入和刪除(1),需要在記憶體快速查詢(2),需要在磁碟中快速查詢(3).()
A vector/map/list
B list/hash_map/b tree
C deque/tree map/vector
D list/vector/map

19 若在有序表的關鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查詢b的過程中,先後進行比較的關鍵字為()
A f e b B f d b C g c b D g db

20 68 + 78 = 201,採用的是()進製表示。
A 12 B 13 C 14 D 15

21在32位機器上執行如下程式

unsigned char* p1;
unsigned int* p2;
p1 = (unsigned char*)0x810000;
p2 = (unsigned int*)0x820000;

請問p1 + 5p2 + 5分別等於多少()
A 0x810005, 0x820005
B 0x810005, 0x820020
C 0x810005, 0x820014
D 0x810010, 0x820020

22 程式段如下:

void GetValue(char* p){
    p = (char*)malloc(100);
}
void Test(){
    char* str = NULL;
    GetValue(str);
    strcpy(str, "Perfect");
    strcpy(str + 2, "World");
    printf(str);
}

執行Test()結果為()
A Perfect World B Rfect World
C PeWorld D 程式崩潰

23 靜態變數的預設值是多少()
A 0 B 1 C 記憶體隨機值 D 依賴編譯器決定

24 關於tcp和udp描述中錯誤的是()
A
B
C
D

25 不屬於linux通訊方式的是()
A 執行緒區域性變數 B共享記憶體 C socket D管道

26 c++ STl中list使用的迭代器型別為()
A Input iterator B Forward iterator
C Bidirectional iterator D Random Access Iterator

27 以下關於TCP的send函式描述正確的是()
A
B
C
D

28 如果一個有序的vector/map/set 中進行資料查詢,哪一個查詢複雜度更低()
A vector B map C set D 時間複雜度一樣

29 關於stl描述正確的是()
A stl容器是多執行緒安全的。
B stl的vector查詢效率一般比map快
C 往stl容器放入物件是直接拷貝一份物件到容易中,這部分記憶體由容易管理
D stl的棧是採用紅黑書實現的。

30 某地非常重男輕女,若一戶人家生一個女孩,可以繼續生,直到男孩為止,假設生男女的概率相等。平均每戶有()個女孩。
A 0.5 B 2/3 C 1 D 4/3

二 填空題(2分*13)

1 c++在c的基礎上引入了4種類型轉換關鍵字:()
2 c++函式可以通過以下方式過載(overload):(),不能通過返回值型別進行過載。原因是()。
3 c++行內函數(inline)的優點(),缺點()。
4 舉例說明c和c++語言邏輯表示式中短路求值得意義()
5 為避免不知情的情況下構造某個c++物件,應該在此類的建構函式前使用()關鍵字
6 int n = 0; while(n = 1) n++;while迴圈執行的次數是()
7 設類A的成員函式void f(void);若定義一個指向類成員函式的指標變數pf指向f,該指標變數宣告語句是()。(可不要寫成 auto pf = &A::f,雖然這樣是對的。)
8 用位操作把int最高為置零()
9 在IA32架構下,sizeof(PageLayout) 大小為()

union PageLayout{
    struct{
        int pi;
        char key[5];
    }
    char d[10];
}

10
11
12
13

三 簡答題(4分*5)

1
2
3 c中的malloc 和c++的new有什麼區別
4 簡述c++物件淺拷貝和深拷貝
5

四 演算法與程式設計(8分*3)

1 連結串列翻轉
2 實現一個函式刪除vector中所有偶數(vector中元素為int)

//這是我當時的答案,僅僅得了2分
void removeEven(vector<int>& nums){
    std::erase(std::remove_if(nums.begin(), nums.end(),
                            [](int x){return x%2 == 0;}),
                nums.end());
}

3 編寫類String的建構函式,解構函式,拷貝構造,複製函式
已知String的原型為:

class String{
public:
    String(const char* str = NULL);
    ~String();
    String(const String& other);
    String& operator = (const String& other);
private:
    char* m_data;
}

面試題

技術面

我當時是兩個面試官一起面試的。
主要是c++語法比較多。
1 一個空類,編譯器會自動為這個類實現哪些成員函式?
2 c++11新特性(我在簡歷上寫了熟悉c++11)
3 智慧指標,那幾個指標的用途?
4 解構函式能否丟擲異常?原因?(建構函式呢)
5 在建構函式中能否呼叫虛擬函式?(解構函式呢)。(此題因為說到虛擬函式,那麼情景應該為有多型的情形)
6 寫一個類似於std::shuffe的函式(唯一的程式碼題,不是考演算法的)
7 瞭解socket相關的知識嗎()
8 你玩過哪些遊戲?(這部分比較開放了,部分題記不清楚了)
你瞭解bs,cs嗎
你玩的遊戲屬於上邊的哪一種 ?
幾個人組建一個區域網打遊戲,幾臺主機是如何通訊的?伺服器在嗎?

製作人面

巴拉巴拉瞎扯

HR面

巴拉巴拉瞎扯

總結

首先筆試分為Java和C++這個比較人性化。c++部分的筆試題大部分都是考的語法級別的,看了前邊的題應該曉得這點。
第二面試的時候更多也是會從語法方面問問題。
第三沒有演算法題。只要做過劍指offer上邊的即可。
最後,去面試的時候,做好能提前半個小時到。這個時候前臺會把你的試卷給你,這樣你就有充足的時間看那些不會的題。因為有的面試官會針對你答錯的題,再給你討論。
對於完美來說,程式語言的語法很重要

相關推薦

完美世界2017c++遊戲開發試題+試題

筆試題 一 選擇題(1分*30) 1 在公有派生類的成員函式不能直接訪問基類中繼承來的某個成員,則該成員一定是基類中的() A 私有成員 B 公有成員 C 保護成員 D 保護成員或私有成員 2 下列程式輸出結果是() #inclu

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

第一題 題意:給出一個序列a,需要找到一對位置(i, j)(j > i),使得a[j] - a[i]的值儘量大,同時i儘量大並且j儘量小,如果任意a[j] - a[i]都<=0,則輸出-1,-1。 題解:從1到n掃一遍序列處理即可,i儘量大用&g

網易遊戲開發軟體試題1

有一天,他在遊戲中獲得了一串數字,直覺告訴他這不是一串普通的數字串,或許可以破解一些關於網易的祕密。破解的第一步,他很想知道,在這串數字中,最多可以挑出多少個’9706’串。挑選的規則為: (1)挑出的數字’9’,’7’,’0’,’6’在原串中可以不連續,但是

農場世界農場遊戲開發

 農場世界遊戲開發..劉星:I56-可..2⒉73微-5②96..農場世界農場遊戲開發.農場世界如何結合到農業當中去呢,使用者收穫線上養殖的小龍蝦、芒果、柑橘等,就可以在家坐等美味上門了,那麼今天就說說農場世界市怎樣的。  一、農場世界模式是怎樣的   農場世界,目前註冊送一隻小龍蝦,點選農場——養殖更多

武漢雲遊世紀遊戲開發星級服務,售後無憂

雲遊世紀棋牌遊戲,能夠為客戶提供哪些服務呢? 1、免費定製棋牌遊戲開發服務。 2、免費定製地方專屬棋牌遊戲推廣方案,大大提高盈利時間。 3、免費提供棋牌遊戲運營資質:網路文化經營許可證、ICP、遊戲軟體著作權、遊戲版號和遊戲備案號。 4、免費享用我公司品牌。 5

H5遊戲開發遊戲引擎入門推薦

前言很多剛剛接觸到遊戲開發,準備大展拳腳的小鮮肉們,往往在技術選型這第一關就栽了跟頭。畢竟網路上的遊戲引擎良莠不齊,官網上相關資料也比較少,而選擇一個適合的遊戲引擎是一個專案最基礎,也是很核心的一部分。試想一下,在遊戲開發進行到中後期的時候,才發現專案引入的遊戲引擎與需求相悖

試題&試題30個人一共花費50先令,求解男人,女人和小孩的人數分別為多少?

馬克思手稿中有一道趣味數學題:有30個人,其中有男人、女人和小孩,在一家飯館裡吃飯共花了50先令,每個男人各花3先令,每個女人各花2先令,每個小孩各花1先令,問男人、女人和小孩各有幾人? #include <stdio.> int main() { int

android遊戲開發學習之九 (學習書籍 Android遊戲程式設計之從零開始)

/**  * 矩形碰撞  *   * @time 上午11:29:26  * @author retacn yue  * @Email [email protected]  */ @SuppressWarnings("unused") public class R

Qt小遊戲開發貪吃蛇

週末沒事,手寫小遊戲繼續~ 預覽 步驟 1 定義資料結構 邏輯與介面分離,遊戲場景是個二維陣列區域,貪吃蛇是若干個連續的座標點集合,用動態連結串列維護,果實是一個隨機座標點。 const int

Qt小遊戲開發五子棋(帶AI功能)

void GameModel::actionByAI(int &clickRow, int &clickCol) { // 計算評分 calculateScore(); // 從評分中找出最大分數的位置 int maxScore = 0; std::v

試題&試題給定n個數,要求比較次數1.5n同時找出最大值和最小值

寫出一個演算法,對給定的n個數的序列,返回序列中的最大和最小的數. 設計出一個演算法,只需要執行1.5n次比較就能找到序列中最大和最小的數嗎?能否再少?分析:要求比較次數為1.5n,使用一般的逐個遍歷每個元素然後判斷其是否為最大最小值是需要2n次的比較的,所以這樣的方法是行

Win32 遊戲開發TicTacToe(井字遊戲) 下篇

上篇進行講解了遊戲的規則、介面設計、遊戲流程、······ 下面我們繼續碼程式碼吧,(#^.^#) 在寫程式碼前先說之前所漏掉的兩個列舉,分別是: ① ClickPlayer (列舉點選玩家) /* 點選玩家列舉 */ typedef enum _ClickPla

Qt小遊戲開發掃雷

void MainGameWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); QPixmap bmpBlocks(":/res/blocks.bmp"); QPixmap bmpFaces(":/res/fa

Qt小遊戲開發連連看

繼續更新~ 原來csdn部落格用底部的批量匯入圖片就不會失真 預覽 步驟 專案結構 包括:遊戲邏輯類,介面類,資源 1 定義遊戲資料結構 // ------------ 全域性變數 ------------ // // 最大行和列數 const int MAX

免費視頻教程java經典試題深度解析

免費視頻教程:java經典面試題深度解析 對於很多初學者來說,學好java在後期面試的階段都沒什麽經驗,為了讓大家更好的了解面試相關知識,今天在這裏給大家分享了一個java經典面試題深度解析的免費視頻教程,需要的朋友可以看看,作為參考! 課程簡介:精選多年來名企在各地的Jav

web前端教程分享常見 React 試題

React 中 keys 的作用是什麼? Keys 是 React 用於追蹤哪些列表中元素被修改、被新增或者被移除的輔助標識。 render () {   return (     <ul

海量資料處理十道試題與十個海量資料處理方法總結(大資料演算法試題

第一部分、十道海量資料處理面試題 1、海量日誌資料,提取出某日訪問百度次數最多的那個IP。       首先是這一天,並且是訪問百度的日誌中的IP取出來,逐個寫入到一個大檔案中。注意到IP是32位的,最多有個2^32個IP。同樣可以採用對映的方法

轉載JAVA企業試題精選 Java基礎 1-10

JAVA企業面試題精選 第一部分 Java基礎 1.1.你認為Java與其他(你所瞭解的)語言相比,有什麼優點和缺點? 參考答案:     首先,Java與C/C++相比。Java語言是一種完全的面嚮物件語言,雖

轉載JAVA企業試題精選 Java基礎 11-20

1.11.&和&&的區別? 參考答案:   &和&&都可以執行關係判斷。二者的區別是:&運算是把邏輯表示式全部計算完,而&&

轉載JAVA企業試題精選 Java基礎 41-50

1.41.查詢有哪幾種方法:試寫其中一種方法的小例子 參考答案:   有順序查詢,二分查詢,分塊查詢,二叉排序樹查詢等。   下面的sequelSearch方法是順序查詢的案例(順序查詢適合與儲存結構為順序儲存或連結儲存的線性表)。 publ