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


 
Follow @vivisuke Tweet

 

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

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


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


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


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: 動的配列クラスの [] 演算子オーバロードを完成させなさい。
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人の平均点:2.5
0 0 8 4 7 0 0 0 2 4 (latest)
最近100人の平均点:1.5
最近1000人の平均点:3.6
過去全部(2684人)の平均点:4.1

満点獲得者名と記念コメント:
18/10/19 07:45 名無し さん
18/10/15 13:31 名無し さん
18/10/14 07:31 名無し さん
18/10/11 13:07 名無し さん
18/10/08 02:40 名無し さん
18/10/07 12:07 名無し さん
18/09/30 06:01 名無し さん
18/09/26 06:06 名無し さん
18/09/19 03:44 名無し さん
18/09/17 08:27 名無し さん
18/09/14 14:37 名無し さん
18/09/10 15:22 8 さん
18/09/09 14:44 名無し さん
18/09/05 19:18 名無し さん
18/09/01 12:04 名無し さん
18/08/23 03:05 名無し さん
18/08/22 20:22 名無し さん
18/08/19 06:44 名無し さん
18/08/14 20:21 名無し さん
18/08/09 02:45 名無し さん

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