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: ★★ #define CHARPTR char* とし、CHARPTR p1, p2; と宣言した時の p2 の型は何?
char へのポインタ型
char へのポインタへのポインタ型
void 型
char 型
Q2: ★ char へのポインタ ptr の指す先のデータを ch に代入するには?
ch = *ptr;
ch = ptr++;
ch = ptr;
ch = &ptr;
Q3: ★ int *p1 = (int *)0x100; int *p2 = (int *)0x110; の時、p2 - p1 の値はいくつですか?
8
4
2
16
Q4: ★ char b[] = {1, 2, 3, 4}; int *ptr = (int *)b; 実行後の *ptr の値はなにか?
0x02010403
0x01020304
0x03040102
0x04030201
Q5: ★ char *ptr が文字列を指しているとき、文字列を cout で表示するには?
cout << (void *)ptr;
cout << *ptr;
cout << (int)ptr;
cout << ptr;
Q6: ★★ ダミーノード付き環状双方向リンクリスト構造体 struct Node { int val; Node *prev; Node *next}; があり、Node *root; がダミーノードを指しているとき、リストの内容を全て表示するコードはどれ?
Node *ptr = root; while (ptr != root) { cout << ptr->val; ptr = ptr->next; }
Node *ptr = root; while ((ptr = ptr->next) != root) { cout << ptr->val; }
Node *ptr = root->next; while ((ptr = ptr->next) != root) { cout << ptr->val; }
Node *ptr = root; while ((ptr = ptr->next) != root) { cout << ptr->val; ptr = ptr->next; }
Q7: ★ char **ptr; が宣言されているとき *ptr の型は何?
void 型
char へのポインタ
char へのポインタへのポインタ
char
Q8: ★ char *ptr = (char *)0x100; ++ptr; を実行した後の、ptr の値はいくつ?
0x100
0x101
0x104
0x102
Q9: ★★ 以下のなかで正しい文字数を返さないコードはどれ?
int strlen(char *s) { int i = 0; for(; str[i]; ++i) ; return i; }
int strlen(char *s) { int i = 0; for(; str[i]; ++str) ; return i; }
int strlen(char *s) { int len = 0; while( *str++ ) ++len; return len; }
int strlen(char *s) { char *p = s; while( *str++ ) ; return s - p; }
Q10: ★★ char *str に文字 c を n 個の書き込み、終端記号 '\0' を付加するコードはどれ?
for(int i = 0; i < n; ++i) { str[i] = c; ++str; } str[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[i] = c; } str[n] = '\0';


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

最近10人の平均点:3.8
0 2 9 0 1 5 4 4 6 7 (latest)
最近100人の平均点:4.4
最近1000人の平均点:4.7
過去全部(11921人)の平均点:5.0

満点獲得者名と記念コメント:
25/12/14 18:42 名無し さん
25/12/12 10:21 名無し さん
25/12/09 10:06 名無し さん
25/12/04 23:36 名無し さん
25/12/02 18:56 名無し さん
25/11/15 10:41 名無し さん
25/11/12 20:06 名無し さん
25/11/10 02:58 名無し さん
25/11/06 13:36 名無し さん
25/10/31 23:48 名無し さん
25/10/29 16:11 名無し さん
25/10/27 06:29 名無し さん
25/10/25 06:28 名無し さん
25/10/11 13:04 名無し さん
25/10/11 12:58 名無し さん
25/10/11 12:58 名無し さん
25/05/31 01:37 名無し さん
25/05/13 16:09 名無し さん
25/05/11 02:47 名無し さん
25/03/13 07:38 名無し さん

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

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