ViVi Home > 技術文書 > ポインタ入門 > ポインタ4択問題集


 
Follow @vivisuke Tweet

 

pointer's boot camp は C/C++ のポインタを学習するための4択問題集です。
以下の10問の答えを選択し、画面下部の【採点】を押してください。
※ sizeof(void*) は 4、sizeof(int) は 4、sizeof(short) は 2 とする。
※ 文字エンコーディングは ASCII 、文字列は '\0' を終端とする。
※ バイトオーダはリトルエンディアンとする。

Q1: ★★★ 単方向リンクリスト構造体 struct Node { int val; Node *next}; があり、Node *ptr; が最初のノードへのポインタを指している時、ptr を末尾のノードまで進めるコードはどれ?ただし、リストは空ではなく、末尾のノードの next は 0 とする。
while (ptr != 0) { ++ptr; }
while (ptr != 0) { ptr = ptr->next; }
while (ptr->next != 0) { ptr = ptr->next; }
while (ptr->next != 0) { ++ptr; }
Q2: ★★ ダミーノード付き環状双方向リンクリスト構造体 struct Node { int val; Node *prev; Node *next}; があり、Node *root; がダミーノードを指しているとき、リストの内容を全て表示するコードはどれ?
Node *ptr = root->next; while ((ptr = ptr->next) != root) { cout << ptr->val; }
Node *ptr = root; while ((ptr = ptr->next) != root) { cout << ptr->val; }
Node *ptr = root; while ((ptr = ptr->next) != root) { cout << ptr->val; ptr = ptr->next; }
Node *ptr = root; while (ptr != root) { cout << ptr->val; ptr = ptr->next; }
Q3: ★★ int型で引数無しの関数(例:int foo())へのポインタ型 func_t を typedef で定義するコードはどれ?
typedef int *func_t();
typedef int (*func_t)();
typedef int () *func_t;
typedef int () func_t;
Q4: ★★★ 単方向リンクリスト構造体 struct Node { int val; Node *next}; と、Node *ptr1; Node *ptr2; があるとき、ptr1 の次に ptr2 をリンクするコードはどれ?
ptr1->next = ptr2->next;
ptr2->next = ptr1;
ptr1->next = ptr2;
ptr2->next = ptr1->next;
Q5: ★ char *ptr; が宣言されているとき *ptr の型は何?
void 型
char へのポインタへのポインタ
char
char へのポインタ
Q6: ★ あ~りんのほっぺは?
ぴちっぴち
つるっつる
ぷるっぷる
ぷにっぷに
Q7: ★ 0x12ab を2進数で表すと?
0001 0010 1010 1011
1011 1010 0010 0001
0001 0010 1011 1011
1011 1010 0010 0011
Q8: ★★ char *str に文字 c を n 個の書き込み、終端記号 '\0' を付加するコードはどれ?
for(int i = 0; i < n; ++i) { *(str++ + i) = c; } str[n] = '\0';
for(int i = 0; i < n; ++i) { *(str+i) = c; } str[n] = '\0';
for(int i = 0; i < n; ++i) { *str = c; } str[n] = '\0';
for(int i = 0; i < n; ++i) { *(++str+i) = c; } str[n] = '\0';
Q9: ★ short *ptr = (short *)0x100; ++ptr; を実行した後の、ptr の値はいくつ?
0x102
0x100
0x101
0x104
Q10: ★ int *p1 = (int *)0x100; int *p2 = (int *)0x110; の時、p2 - p1 の値はいくつですか?
4
8
16
2


※ 問題は10問ランダムに表示されます。 総問題数:87

最近10人の平均点:4.5
1 7 6 0 9 8 7 5 0 2 (latest)
最近100人の平均点:4.8
最近1000人の平均点:4.9
過去全部(4329人)の平均点:5.0

満点獲得者名と記念コメント:
17/06/26 18:51 名無し さん
17/06/24 00:07 名無し さん
17/06/20 04:22 名無し さん
17/06/19 07:56 名無し さん
17/06/15 12:54 名無し さん
17/06/14 16:47 名無し さん
 「あーりんはももクロちゃんのアイドルなのだ」
17/06/14 14:30 名無し さん
17/06/12 15:06 名無し さん
 「3回目!!!」
17/06/11 13:44 名無し さん
17/06/09 04:40 名無し さん
17/06/06 19:22 名無し さん
17/06/06 02:28 名無し さん
17/06/05 11:06 名無し さん
 「2日目!!」
17/06/03 00:19 名無し さん
17/06/01 19:46 名無し さん
 「やった!!」
17/05/31 15:23 名無し さん
 「変な問題が紛れ込んでいるような…」
17/05/31 04:48 名無し さん
17/05/26 19:38 名無し さん
17/05/23 13:13 名無し さん
17/05/23 03:37 名無し さん

その他のジャンルの問題もあるよ:

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