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


 
Follow @vivisuke Tweet

 

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

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


Q2: 文字列の先頭に数値文字列があれば、それを10進数に変換する関数を完成させなさい。数値文字が無い場合は -1 を返すものとする。
int my_atoi(const char *str)
{
    if( !isdigit(*str) ) {   // str の先頭文字が数字でない場合は -1 を返す
        return -1;
    }
    int val = 0;      // 初期値を 0 に設定
    while( isdigit(*str) ) {  // str の指す先が数字である間
        val = val *  + *str++ - ;
    }
    return val;       // 値を返す
}


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


Q4: 動的配列クラスの reserve(int sz) メンバ関数を完成させなさい。
class Vector {
public:
    Vector();
    ~Vector();
public:
    void reserve(int sz)
    {
        if( sz <=  ) return;     // 既に充分な場合
        while( m_capacity < sz )
            m_capacity *= 2;
        int *data = new int[m_capacity];
        for (int  i = 0; i < m_size; ++i)
            data[i] = m_data[i];
        delete [] m_data;
        m_data = ;
    }
private:
    int    *m_data;// アロケートされたデータ領域へのポインタ
    int    m_size;   // データ領域に入っている要素数
    int    m_capacity;// アロケートされたデータ領域サイズ、初期値:8
};


Q5: 以下の空欄に数値を入れなさい
16進数の 0x100 を10進数に変換すると 。
16進数の 0x10000 を10進数に変換すると 




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

最近10人の平均点:1.8
2 0 0 2 0 0 0 0 4 10 (latest)
最近100人の平均点:1.8
最近1000人の平均点:4.1
過去全部(5376人)の平均点:4.2

満点獲得者名と記念コメント:
24/09/16 23:03 名無し さん
24/08/26 08:52 名無し さん
24/08/21 13:14 名無し さん
24/08/18 20:32 名無し さん
24/08/06 15:40 名無し さん
24/08/05 18:13 名無し さん
24/07/29 09:55 名無し さん
24/06/30 07:31 名無し さん
24/06/28 02:58 名無し さん
24/06/01 17:12 名無し さん
24/05/29 04:38 名無し さん
24/05/27 03:30 名無し さん
24/05/24 10:52 名無し さん
24/05/22 06:00 名無し さん
24/05/19 16:45 名無し さん
24/05/15 01:36 名無し さん
24/05/12 21:07 名無し さん
24/05/10 19:21 名無し さん
24/05/06 19:40 名無し さん
24/05/02 19:02 名無し さん

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