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


 
Follow @vivisuke Tweet

 

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

Q1: 2分木が、左側のノードの値 ≦ ノードの値 ≦ 右側のノードの値 となるようにソートされている時、ノードの値を小さい順に表示する関数を完成させなさい。
struct Node {
    int        m_value; // ノードの値
    Node    *m_lhs;   // 左側ノードへのポインタ
    Node    *m_rhs;  // 右側ノードへのポインタ
};
void print(const Node *ptr)
{
    if (ptr == 0) {
        ;
    }
    print(ptr->m_lhs);
    std::cout <<  << "\n";
    print(ptr->m_rhs);
}


Q2: char へのポインタへのポインタ pp を宣言し、char へのポインタ ptr を指すようにするには?
char *ptr;
char pp = ;


Q3: 双方向リンクリストのノードを連結する関数を完成させなさい
struct Node {
    int    m_value; // ノードの値
    Node    *m_prev;// 前のノードへのポインタ
    Node    *m_next;// 次のノードへのポインタ
};
// ptr1 の次に ptr2 を連結
void link(Node *ptr1, Node *ptr2)
{
     = ptr2;
     = ptr1;
}


Q4: 構造体 Struct { int mbr; };が定義されていて、Struct *ptr がその構造体を指す時、メンバ変数を参照するコードは?
ptrmbr
または
.mbr


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
6 5 2 5 5 3 7 10 4 7 (latest)
最近100人の平均点:2.7
最近1000人の平均点:3.7
過去全部(1739人)の平均点:4.3

満点獲得者名と記念コメント:
17/06/26 18:51 名無し さん
17/06/24 00:07 名無し さん
17/06/20 04:22 名無し さん
17/06/19 21:59 名無し さん
17/06/19 07:56 名無し さん
17/06/15 12:54 名無し さん
17/06/11 13:43 名無し さん
17/06/09 08:18 名無し さん
17/06/09 04:40 名無し さん
17/06/06 02:28 名無し さん
17/06/03 00:19 名無し さん
17/05/31 04:48 名無し さん
17/05/30 04:17 名無し さん
17/05/26 19:38 名無し さん
17/05/23 13:13 名無し さん
17/05/23 03:37 名無し さん
17/05/20 06:56 名無し さん
17/05/19 17:43 名無し さん
17/05/16 23:02 名無し さん
17/05/15 01:20 名無し さん

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