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


 
Follow @vivisuke Tweet

 

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

Q1: first から last の直前までポインタが指すデータを合計した値を返す関数を完成させなさい。
int my_accumulate(const int *first, const int *last)
{
    int sum = 0;
    while( first != last ) {
         += ;
    }
    return sum; // 合計値を返す
}


Q2: char データ100個分のメモリをアロケートし、char *ptr に格納するコードは?
char *ptr =  char;


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


Q4: ノード構造体が以下のように定義されているとき、親ノード以下のノードを全て 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;
    }
}


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




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

最近10人の平均点:3.9
0 1 4 3 0 10 10 10 0 1 (latest)
最近100人の平均点:3.2
最近1000人の平均点:4.0
過去全部(2238人)の平均点:4.3

満点獲得者名と記念コメント:
18/04/25 12:03 名無し さん
18/04/21 11:43 名無し さん
18/04/20 04:08 名無し さん
18/04/15 06:08 名無し さん
18/04/12 09:08 名無し さん
18/04/10 02:08 名無し さん
18/04/04 08:25 名無し さん
18/04/04 03:51 名無し さん
18/03/30 14:18 名無し さん
18/03/30 02:09 名無し さん
18/03/28 16:07 名無し さん
18/03/21 04:22 名無し さん
18/03/19 13:29 名無し さん
18/03/17 18:32 名無し さん
18/03/17 13:14 名無し さん
18/03/15 15:47 名無し さん
18/03/08 08:07 名無し さん
18/03/06 17:29 名無し さん
18/02/23 15:12 名無し さん
18/02/16 14:36 名無し さん

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