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


 
Follow @vivisuke Tweet

 

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

Q1: 以下の空欄に数字(10進数)を入れなさい
char *ptr1 = 0x100; char *ptr2 = 0x110; のとき、ptr2 - ptr1 の値はです。
int *ptr1 = 0x100; int *ptr2 = 0x110; のとき、ptr2 - ptr1 の値はです。


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


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


Q4: 動的配列クラスのコンストラクタ、デストラクタを完成させなさい。
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
};


Q5: 2分木が、左側のノードの値 ≦ ノードの値 ≦ 右側のノードの値 となるようにソートされている時、指定された値を持つノードを検索する関数を完成させなさい。
struct Node {
    int        m_value; // ノードの値
    Node    *m_lhs;   // 左側ノードへのポインタ
    Node    *m_rhs;  // 右側ノードへのポインタ
};
Node *find(Node *ptr, int value)
{
    if( ptr == 0 )
        return 0;
    if( value ==  )
        return ptr;
    if( value <  )
        return find(ptr->m_lhs, value);
    else
        return find(ptr->m_rhs, value);
}




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

最近10人の平均点:5.4
5 3 7 5 6 7 10 1 10 0 (latest)
最近100人の平均点:4.4
最近1000人の平均点:4.0
過去全部(5449人)の平均点:4.2

満点獲得者名と記念コメント:
25/03/02 22:35 名無し さん
25/01/21 18:58 名無し さん
25/01/18 07:22 名無し さん
25/01/18 04:38 名無し さん
25/01/17 10:16 名無し さん
25/01/14 15:05 名無し さん
25/01/14 06:28 名無し さん
25/01/13 23:54 名無し さん
25/01/13 22:55 名無し さん
25/01/11 10:16 名無し さん
25/01/10 00:08 名無し さん
25/01/09 02:23 名無し さん
25/01/08 16:24 名無し さん
25/01/06 08:44 名無し さん
25/01/04 15:42 名無し さん
25/01/04 08:49 名無し さん
25/01/02 02:43 名無し さん
24/12/30 22:55 名無し さん
24/12/28 02:08 名無し さん
24/12/23 09:41 名無し さん

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