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: ★ char *ptr が文字列を指している時、指している先が英大文字かどうかを判定するコードはどれ?
if( *ptr == 'A' || *ptr == 'Z' ) { ... }
if( *ptr >= 'A' || *ptr <= 'Z' ) { ... }
if( *ptr >= 'A' && *ptr <= 'Z' ) { ... }
if( *ptr == 'A' && *ptr == 'Z' ) { ... }
Q2: ★ char **ptr; が宣言されているとき *ptr の型は何?
void 型
char へのポインタへのポインタ
char
char へのポインタ
Q3: ★★ int d[] = {0, 1, 2, 3}; int *ptr = d; int **pp = &ptr; *pp += 1; の時、*ptr の値は何か?
3
2
0
1
Q4: ★ 構造体 struct Hoge { int val; }; が定義され、Hoge a が定義さているとき、Hoge へのポインタ ptr を宣言し、a のアドレスで初期化するには?
Hoge *ptr = new a;
Hoge *ptr = &a;
Hoge *ptr = *a;
Hoge *ptr = a;
Q5: ★ int *ptr = (int *)0x100; ptr += 2; を実行した後の、ptr の値はいくつ?
0x100
0x104
0x108
0x102
Q6: ★ char *ptr = "abcd"; の時、ptr[2] は何を返しますか?
'a'
'b'
'd'
'c'
Q7: ★ char *ptr が文字 'A' ~ 'F' を指している時、文字を数値(10~15)に変換するコードはどれ?
*ptr + 'A' + 10;
*ptr - 'A' + 10;
*ptr + 'A';
*ptr - 'A';
Q8: ★★ char *str 中の文字の中で char c と等しい文字の数を求め、n に設定するコードはどれ?ただし int n は0 で初期化されているものとする。
while (*str++ != '\0') { if (*str++ == c) ++n; }
while (*str++ != '\0') { if (*str == c) ++n; }
while (*str != '\0') { if (*str == c) ++n; }
while (*str != '\0') { if (*str++ == c) ++n; }
Q9: ★★★ 単方向リンクリスト構造体 struct Node { int val; Node *next}; と、Node *ptr1; Node *ptr2; があるとき、ptr1 の次に ptr2 をリンクするコードはどれ?
ptr2->next = ptr1->next;
ptr1->next = ptr2;
ptr1->next = ptr2->next;
ptr2->next = ptr1;
Q10: ★★ 以下のなかで正しいソースコードはどれ?
void setZero(char * const dst, int n) { for(int i = 0; i < n; ++i) *dst++ = 0; }
void setZero(const char *dst, int n) { for(int i = 0; i < n; ++i) *dst++ = 0; }
void copy(const char *src, const char *dst) { while( *dst++ = *src++ ) {} }
const char *dup(const char *s) { char *d = new char[strlen(s)]; char *t = d; while( *d++ = *s++) ; return t; }


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

最近10人の平均点:4.2
6 3 1 6 8 3 3 3 4 5 (latest)
最近100人の平均点:4.2
最近1000人の平均点:5.8
過去全部(10780人)の平均点:5.1

満点獲得者名と記念コメント:
22/09/02 16:32 a さん
 「^^」
22/08/29 13:12 名無し さん
22/08/26 13:36 名無し さん
22/08/20 11:42 名無し さん
22/08/12 11:28 名無し さん
22/08/10 11:43 名無し さん
22/08/03 11:40 名無し さん
22/07/27 11:39 名無し さん
22/07/26 11:03 名無し さん
22/07/25 11:41 名無し さん
22/07/24 11:45 名無し さん
22/07/23 11:45 名無し さん
22/07/22 11:42 名無し さん
22/07/21 11:42 名無し さん
22/07/20 11:44 名無し さん
22/07/19 11:38 名無し さん
22/07/17 11:38 名無し さん
22/07/15 11:44 名無し さん
22/07/14 11:40 名無し さん
22/07/13 11:45 名無し さん

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

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