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


 
Follow @vivisuke Tweet

 

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

Q1: 文字列先頭文字を取り出す関数を完成させなさい。ただし、文字列が空の場合は '\0' を返すものとする。
char pop_front(char *str)
{
    char c = *str;
    if (c != '\0') {
        const char * = ;
        while ((*str++ = *ptr++) != '\0') ;
    }
    return c;
}


Q2: 文字列をコピーする関数を完成させなさい。
void strcpy(char *dst, const char *src)
{
    while( (*++ = *++) != '\0' ) ;
}


Q3: root が環状双方向リンクリスト先頭を指すとき、ptr をリスト末尾に追加する関数を完成させなさい
struct Node {
    int    m_value; // ノードの値
    Node    *m_prev;// 前のノードへのポインタ
    Node    *m_next;// 次のノードへのポインタ
};
// ptr1 の次に ptr2 を連結
void link(Node *ptr1, Node *ptr2)
{
    ptr1->m_next = ptr2;
    ptr2->m_prev = ptr1;
}
void appendNode(Node *root, Node *ptr)
{
    link(, ptr);
    link();
}


Q4: 環状双方向リンクリストの末尾ノードを返す関数を完成させなさい
struct Node {
    int    m_value; // ノードの値
    Node    *m_prev;// 前のノードへのポインタ
    Node    *m_next;// 次のノードへのポインタ
};
Node *lastNode(Node *root)  // root は環状双方向リンクリストの先頭ノードを指している
{
    return ->;
}


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




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

最近10人の平均点:7.1
8 8 4 7 7 10 9 1 7 10 (latest)
最近100人の平均点:5.0
最近1000人の平均点:3.5
過去全部(3377人)の平均点:4.0

満点獲得者名と記念コメント:
20/01/26 13:54 名無し さん
19/12/28 17:46 名無し さん
19/12/27 14:22 名無し さん
19/12/23 12:47 名無し さん
19/12/20 11:32 名無し さん
19/12/18 04:25 名無し さん
19/12/17 10:48 名無し さん
19/12/16 13:23 名無し さん
19/12/15 10:32 名無し さん
19/12/14 10:56 名無し さん
19/12/13 07:18 名無し さん
19/12/12 10:56 名無し さん
19/12/06 06:37 名無し さん
19/12/05 11:42 名無し さん
19/12/03 05:04 名無し さん
19/11/26 12:49 名無し さん
19/11/25 12:29 名無し さん
19/11/25 00:29 名無し さん
19/11/22 05:23 名無し さん
19/11/14 12:01 名無し さん

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