ViVi Home > 技術文書 > ポインタ入門 > ポインタ穴埋め問題集


 
Follow @vivisuke Tweet

 

ポインタ穴埋め問題集 は C/C++ のポインタを学習するため問題集です。
入力エリアに適切な(半角)文字列を入力し、画面下部の【採点】を押してください。
※ sizeof(void*) は 4、sizeof(int) は 4、sizeof(short) は 2 とする。
※ 文字エンコーディングは ASCII 、文字列は '\0' を終端とする。
※ バイトオーダはリトルエンディアンとする。
※ 文字列領域は充分な領域が確保されているものとする。
※ 特に指示が無い限り、ポインタが指す構造体のメンバを参照する場合は (*ptr).mbr ではなく ptr->mbr と記述しなさい。

Q1: 動的配列クラスの [] 演算子オーバロードを完成させなさい。
class Vector {
public:
    Vector();
    ~Vector();
public:
    int &(int ix)
    {
        return ;
    }
private:
    int    *m_data;// アロケートされたデータ領域へのポインタ
    int    m_size;   // データ領域に入っている要素数
    int    m_capacity;// アロケートされたデータ領域サイズ、初期値:8
};


Q2: first から last の直前までポインタが指すデータの最大値返す関数を完成させなさい。
int my_max(const int *first, const int *last)
{
    int val = INT_MIN;
    while( first != last ) {
        val = std::(, val);
    }
    return val;   // 最大値を返す
}


Q3: ノード構造体が以下のように定義されているとき、親ノードの左にノードを追加する関数を完成させなさい。
struct Node {
    int        m_value; // ノードの値
    Node    *m_lhs;   // 左側ノードへのポインタ
    Node    *m_rhs;  // 右側ノードへのポインタ
};
void linkLeft(Node *parent, Node *ptr)
{
    parent-> = ;
}


Q4: first から last 直前までにデータを格納する関数を完成させなさい。ただし、first <= last とする。
void my_fill(int *first, int*last, int d)
{
    while( first !=  ) {
         = d;
    }
}


Q5: 動的配列クラスのサイズ指定コンストラクタを完成させなさい。
class Vector {
public:
    Vector();
    Vector(int sz, int v = 0)
        : m_data()
        , m_capacity(sz)
        , m_size()
    {
        for(int i = 0; i < m_size; ++i)
            m_data[i] = v;
    }
    ~Vector();
private:
    int    *m_data;// アロケートされたデータ領域へのポインタ
    int    m_size;   // データ領域に入っている要素数
    int    m_capacity;// アロケートされたデータ領域サイズ、初期値:8
};




※ 問題は5問ランダムに表示されます。 総問題数:42
※ 問題・解答に間違いがあった場合は、ツイッター or メール等でご指摘してくださると助かります。

最近10人の平均点:6.4
10 10 10 10 8 9 0 6 0 1 (latest)
最近100人の平均点:5.2
最近1000人の平均点:4.0
過去全部(2047人)の平均点:4.4

満点獲得者名と記念コメント:
17/12/07 07:35 名無し さん
17/12/05 14:49 やっと さん
 「4連荘」
17/12/05 14:47 やっと さん
 「3連荘!!!」
17/12/05 14:45 やっと さん
 「連続満点だーーーーーーーーーー!!!」
17/12/05 14:43 やっと さん
 「満点とれたーーーーーー!!!!!」
17/11/29 08:28 名無し さん
17/11/28 10:07 名無し さん
17/11/23 06:49 名無し さん
17/11/21 00:45 名無し さん
17/11/17 03:52 名無し さん
17/11/11 14:59 名無し さん
17/11/02 14:20 名無し さん
17/10/28 13:18 名無し さん
17/10/22 15:23 名無し さん
17/10/17 19:03 名無し さん
17/10/17 11:13 名無し さん
17/10/14 16:16 名無し さん
17/10/13 01:38 名無し さん
17/10/12 15:28 名無し さん
17/10/11 15:13 名無し さん

Copyright (C) 2014 by N.Tsuda, All Rights Reserved.