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 d[] = {0, 1, 2, 3}; int *ptr = d; int **pp = &ptr; *pp += 1; の時、*ptr の値は何か?
0
2
3
1
Q2: ★ char へのポインタ ptr の指す先のデータを ch に代入するには?
ch = &ptr;
ch = ptr;
ch = ptr++;
ch = *ptr;
Q3: ★★ 文字列 char *str の先頭1文字を削除するコードはどれ?ただし、str は空文字列ではなく、文字数は int len; に入っているものとする。
for(int i = len - 1; --i >= 0 ) { str[i] = str[i+1]; } str[len-1] = '\0';
for(int i = len; --i > 0 ) { str[i] = str[i+1]; } str[len-1] = '\0';
for(int i = len; --i >= 0 ) { str[i] = str[i+1]; }
char *src = str + 1; while ((*str++ = *src++) != '\0') {}
Q4: ★★ class Foo がメンバ関数 void func() を持つ時、それへのポインタ ptr を宣言するのはどれ?
void (*ptr)() = &Foo::func;
void ()* ptr = &Foo::func;
void (*Foo::ptr)() = &Foo::func;
void (*Foo)() ptr = &Foo::func;
Q5: ★★ ヌルターミネイトされた文字列 char *str の文字数を len に設定するのはどれ?ただし len は 0 に初期化されているものとする。
while (str[len+1] != '\0') { ++len, ++str; }
while (*str++ != '\0') ++len;
while (*++str != '\0') ++len;
while (str[len] != '\0') { ++len, ++str; }
Q6: ★ char へのポインタ ptr を宣言し、char へのポインタ src の値で初期化するには?
char *ptr = src[];
char *ptr = &src;
char *ptr = src;
char *ptr = *src;
Q7: ★ char *p1 = (char *)0x100; char *p2 = (char *)0x110; の時、p2 - p1 の値はいくつですか?
8
16
2
4
Q8: ★ char *ptr; の指す先が '\0' と等しいかどうかを判定するのは?
if (ptr == '\0') { ... }
if (*ptr == '\0') { ... }
if (ptr[] == '\0') { ... }
if (&ptr == '\0') { ... }
Q9: ★ char *ptr が文字列を指している時、指している先が英大文字かどうかを判定するコードはどれ?
if( *ptr == 'A' && *ptr == 'Z' ) { ... }
if( *ptr >= 'A' && *ptr <= 'Z' ) { ... }
if( *ptr == 'A' || *ptr == 'Z' ) { ... }
if( *ptr >= 'A' || *ptr <= 'Z' ) { ... }
Q10: ★ char *ptr が文字列を指している時、指している先が数字文字かどうかを判定するコードはどれ?
if( *ptr >= 0 && *ptr <= 9 ) { ... }
if( *ptr >= '0' && *ptr <= '9' ) { ... }
if( *ptr >= 0 || *ptr <= 9 ) { ... }
if( *ptr >= '0' || *ptr <= '9' ) { ... }


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

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

満点獲得者名と記念コメント:
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 名無し さん
25/01/06 18:23 名無し さん
25/01/02 15:12 名無し さん
25/01/01 17:39 名無し さん

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

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