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: 動的配列クラスのコンストラクタ、デストラクタを完成させなさい。
class Vector {
    enum {
        INI_SIZE = 8,
    };
public:
    Vector()
      : m_size(0)
      , m_capacity(INI_SIZE)
      , m_data( int[INI_SIZE])
    {
    }
    ~Vector()
    {
        delete ;
    }
private:
    int    *m_data;// アロケートされたデータ領域へのポインタ
    int    m_size;   // データ領域に入っている要素数
    int    m_capacity;// アロケートされたデータ領域サイズ、初期値:8
};


Q3: 環状双方向リンクリストの末尾ノードを返す関数を完成させなさい
struct Node {
    int    m_value; // ノードの値
    Node    *m_prev;// 前のノードへのポインタ
    Node    *m_next;// 次のノードへのポインタ
};
Node *lastNode(Node *root)  // root は環状双方向リンクリストの先頭ノードを指している
{
    return ->;
}


Q4: 文字列先頭文字を取り出す関数を完成させなさい。ただし、文字列が空の場合は '\0' を返すものとする。
char pop_front(char *str)
{
    char c = *str;
    if (c != '\0') {
        const char * = ;
        while ((*str++ = *ptr++) != '\0') ;
    }
    return c;
}


Q5: 空欄に字句を入れて、変数を正しく宣言しなさい。
const char ptr1 = "hello, world";
const char *table[] = {
    "foo",
    "bar",
    0
};
const char ptr2 = table;




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

最近10人の平均点:0.5
0 0 1 0 0 0 1 0 2 1 (latest)
最近100人の平均点:2.7
最近1000人の平均点:4.4
過去全部(5317人)の平均点:4.3

満点獲得者名と記念コメント:
24/03/14 15:34 名無し さん
24/01/19 11:23 k さん
 「良い勉強になりました。」
23/10/17 14:53 名無し さん
23/08/26 00:51 名無し さん
23/08/23 22:48 名無し さん
23/08/04 23:07 名無し さん
23/08/02 19:24 名無し さん
23/07/09 21:25 名無し さん
23/07/02 07:50 名無し さん
23/03/31 17:52 名無し さん
23/03/26 15:00 名無し さん
23/03/24 14:53 名無し さん
23/03/22 15:11 名無し さん
23/03/20 06:10 名無し さん
23/03/18 05:03 名無し さん
23/03/15 22:34 名無し さん
23/03/13 22:40 名無し さん
23/03/11 22:35 名無し さん
23/03/06 09:04 名無し さん
23/01/31 14:50 名無し さん
 「やっほい!」

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