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


 
Follow @vivisuke Tweet

 

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

Q1: 文字数を数える関数を完成させなさい。
int strlen(const char *str)
{
    int i = 0;
    for(; str != ; ++i) {
    }
    return i;
}


Q2: 以下の空欄に数字を入れなさい
char へのポインタ ptr1 をインクリメントすると、ポインタの値は増えます。
int へのポインタ ptr2 をインクリメントすると、ポインタの値は増えます。


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


Q4: 文字列を複製する関数を完成させなさい。
char *strdup(const char *str)
{
    const int len = strlen(str);
    char *dst = new char[];
    strcpy(dst, str);
    return ;
}


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




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

最近10人の平均点:1.2
0 0 0 0 0 2 3 5 1 1 (latest)
最近100人の平均点:1.9
最近1000人の平均点:4.0
過去全部(1599人)の平均点:4.5

満点獲得者名と記念コメント:
17/04/22 05:15 名無し さん
17/04/18 11:26 名無し さん
17/04/15 16:28 名無し さん
17/04/11 12:32 名無し さん
17/04/08 23:27 名無し さん
17/04/06 11:55 名無し さん
17/04/03 02:58 名無し さん
17/04/01 11:17 名無し さん
17/03/30 14:51 名無し さん
17/03/28 05:23 名無し さん
17/03/26 23:58 名無し さん
17/03/25 07:28 名無し さん
17/03/22 23:40 名無し さん
17/03/19 20:08 名無し さん
17/03/17 10:27 名無し さん
17/03/15 02:21 名無し さん
17/03/12 04:10 名無し さん
17/03/09 04:17 名無し さん
17/03/06 16:06 名無し さん
17/03/03 16:21 名無し さん

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