完璧な世界2017 c++ゲーム開発:筆記試験問題+面接問題

9784 ワード

筆記試験問題.
一選択問題(1点*30)
1共通派生クラスのメンバー関数がベースクラスで継承されたメンバーに直接アクセスできない場合、そのメンバーは必ずベースクラスの()AプライベートメンバーBパブリックメンバーC保護メンバーD保護メンバーまたはプライベートメンバーである
2次のプログラム出力結果は()
#include
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 f 1とf 2は同じクラスの2つのメンバ関数であることが知られているが、f 1はf 2を直接呼び出すことができない.これは、()A f 1とf 2が静的関数B f 1であり、f 2が静的関数C f 1であり、f 2が静的関数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+木........O(logn),...O(logn) C Hash...............O(logn),...O(n)Dソートチェーンテーブル........O(n),.....O(n)
11は6つの要素6,5,4,3,2,1が順次にスタックに入るが、非合法なスタックの順序は()A 5 4 4 3 6 2 B 4 5 3 3 1 2 6 C 3 4 6 5 2 D 2 3 4 5 6である.
12 36頭の馬、現在6つのコースがあって、何回の試合を要して第1の2、3名()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 = pi14個の二叉木の後順遍歴がDEBFCA、中順がDBEACCである場合、前順は()である(オプションを貼らない)
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 bbfdb cgdbである
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 0 x 810005、0 x 820005 B 0 x 810005、0 x 82020 C 0 x 810005、0 x 820014 D 0 x 810010、0 x 82020
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 PeWorldDプログラムがクラッシュしました
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容器にオブジェクトを入れるのが直接1部のオブジェクトをコピーするのが容易で、この部分のメモリはD stlを管理しやすいスタックによって赤黒書を採用して実現されている.
30ある地方はとても男が重くて女が軽くて、もし1家の人が1人の女の子を生んだら、男の子まで生を続けることができて、男女を生む確率が等しいと仮定します.平均して1世帯に女の子がいます.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 IA 32アーキテクチャの下で、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;
}

面接問題
技術面
私は当時2人の面接官と一緒に面接した.主にc++文法が多いです.1空のクラスです.コンパイラはこのクラスのメンバー関数を自動的に実装しますか?2 c++11新特性(履歴書にc++11に詳しいと書いてあります)3スマートポインタ、そのいくつかのポインタの用途は?4構造関数は異常を放出できますか?理由は?(コンストラクション関数は)5コンストラクション関数で虚関数を呼び出すことができますか?(解析関数ですね).6 std::shuffeのような関数(唯一のコード問題、アルゴリズムではない)7 socketに関する知識を知っていますか()8どんなゲームをしたことがありますか.(この部分は比較的に開放的で、一部の問題ははっきり覚えていません)bs、csを知っていますか.あなたが游んでいるゲームは上のどれに属していますか.何人が1つのローカルエリアネットワークを作ってゲームをして、何台のホストはどのように通信しますか?サーバーはありますか?
プロデューサー
バラバラのでたらめ
HR面
バラバラのでたらめ
まとめ
まず筆記試験はJavaとC++という比較的人間的なものに分けられます.c++部分の筆記試験の問題の大部分は文法のレベルを試験するので、前の問題を見てこの点を知っているはずです.第二面接では文法的な質問をすることが多いです.3番目にアルゴリズムの問題はありません.剣指offerの上を指したことがあればいいです.最後に、面接に行くときは、30分前に着くようにします.この時、フロントはあなたの答案用紙をあげます.そうすれば、できない問題を見るのに十分な時間があります.あなたの間違った問題について、また議論する面接官がいるからです.完璧にとってプログラミング言語の文法は重要です