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: ★ int *ptr = (int *)0x100; ptr += 2; を実行した後の、ptr の値はいくつ?
0x102
0x104
0x108
0x100
Q2: ★★ int d[] = {0, 1, 2, 3}; int *ptr = d; int **pp = &ptr; *pp += 1; の時、*ptr の値は何か?
2
0
3
1
Q3: ★★ typedef char* charptr とし、charptr p1, p2; と宣言した時の p2 の型は何?
char へのポインタ型
char へのポインタへのポインタ型
char 型
void 型
Q4: ★★ 単方向リンクリスト構造体 struct Node { int val; Node *next}; が定義されていて、Node ptr; がリストを先頭を指しているとき、リストの内容を表示するコードはどれ?ただしリストが空の場合は ptr は 0 だとする。
do { cout << ptr->val; ptr = ptr->next; } while (ptr != 0);
while (ptr != 0) { cout << ptr->val; ptr = ptr->next; }
do { cout << ptr->val; } while ((ptr = ptr->next) != 0);
while ((ptr = ptr->next) != 0) { cout << ptr->val; }
Q5: ★ char *ptr が文字列を指しているとき、ptr の値を10進数で表示するには?
cout << (int)ptr;
cout << ptr;
cout << *ptr;
cout << (void *)ptr;
Q6: ★★ 以下のなかで正しい文字数を返さないコードはどれ?
int strlen(char *s) { int len = 0; while( *str++ ) ++len; return len; }
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) { char *p = s; while( *str++ ) ; return s - p; }
Q7: ★ char *ptr = "abcd"; の時、ptr[2] は何を返しますか?
'b'
'd'
'a'
'c'
Q8: ★ 構造体 struct Hoge { int val; }; が定義されているとき、Hoge データを100個生成し、その先頭アドレスを ptr に代入するには?
Hoge *ptr = new Hoge ^ 100;
Hoge *ptr = new Hoge * 100;
Hoge *ptr = new Hoge[100];
Hoge *ptr = new Hoge & 100;
Q9: ★★ 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[i++] = c; } str[n] = '\0';
for(int i = 0; i < n; ++i) { str[i] = c; ++str; } str[n] = '\0';
Q10: ★ char *ptr = (char *)0x100; char *ptr2 = --ptr; を実行した後の、ptr2 の値はいくつ?
0x100
0x0fe
0x0ff
0x0fc


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

最近10人の平均点:1.4
0 0 1 1 7 0 1 2 0 2 (latest)
最近100人の平均点:3.6
最近1000人の平均点:4.9
過去全部(6846人)の平均点:4.9

満点獲得者名と記念コメント:
18/12/19 05:00 名無し さん
18/12/04 04:12 名無し さん
18/11/28 06:01 名無し さん
18/11/23 11:26 名無し さん
18/11/08 04:47 名無し さん
18/11/01 14:34 名無し さん
18/10/30 02:55 名無し さん
18/10/25 11:59 名無し さん
18/10/20 04:24 名無し さん
18/10/19 07:46 名無し さん
18/10/15 13:31 名無し さん
18/10/14 07:33 名無し さん
18/10/10 06:31 名無し さん
18/10/08 02:40 名無し さん
18/10/07 12:07 名無し さん
18/10/02 02:53 名無し さん
18/09/26 06:06 名無し さん
18/09/19 03:44 名無し さん
18/09/17 00:42 名無し さん
18/09/14 14:37 名無し さん

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

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