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: ★ ポインタ ptr が構造体 Foo のデータを指しているとき、Foo の m_member メンバの値を取得するには?
*ptr->m_member
ptr->m_member
ptr.m_member
*ptr.m_member
Q2: ★ strdup(char *str) のためにメモリをアロケートするのはどれが正しい?ただし、str の文字数を len とする。
new char[len+1]
new char[len-1]
new char[len*2]
new char[len]
Q3: ★★ 環状双方向リンクリスト構造体 struct Node { int val; Node *prev; Node *next}; が定義されていて、Node *ptr1, *ptr2, *ptr3; があり、それぞれの値が 0x100, 0x200, 0x300 で、ptr1 の次が pt2、ptr2 の次が ptr3 とするとき、ptr2->prev, ptr2->next の値はいくつ?
0x100, 0x200
0x200, 0x300
0x200, 0x100
0x100, 0x300
Q4: ★ char *ptr が文字列を指している時、指している先が英小文字かどうかを判定するコードはどれ?
if( *ptr >= 'a' && *ptr <= 'z' ) { ... }
if( *ptr >= 'z' || *ptr <= 'a' ) { ... }
if( *ptr >= 'a' || *ptr <= 'z' ) { ... }
if( *ptr >= 'z' && *ptr <= 'a' ) { ... }
Q5: ★★ 以下の中で明らかに間違っているコードはどれか?
for (int i = 0; i < len; ++i) { *(str + len - i + 1) = *(str + len - i); }
char *ptr = new char[100]; int len = strlen(ptr);
if (*ptr == '\\' && ptr + 1 < endptr ) ptr += 2;
for (int i = 0; i < n; ++i) { sum += *data++; }
Q6: ★★★ 単方向リンクリスト構造体 struct Node { int val; Node *next}; と、Node *ptr1; Node *ptr2; があるとき、ptr1 の次に ptr2 をリンクするコードはどれ?
ptr2->next = ptr1->next;
ptr1->next = ptr2;
ptr2->next = ptr1;
ptr1->next = ptr2->next;
Q7: ★★ 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; }
Q8: ★ int へのポインタへのポインタ pptr を宣言するには?
int *pptr*;
int pptr**;
int **pptr;
int pptr;
Q9: ★ char へのポインタ ptr の指す先のデータを ch に代入するには?
ch = ptr++;
ch = *ptr;
ch = &ptr;
ch = ptr;
Q10: ★ char *ptr = (char *)0x100; ++ptr; を実行した後の、ptr の値はいくつ?
0x104
0x100
0x102
0x101


※ 問題は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

満点獲得者名と記念コメント:
26/02/12 12:02 名無し さん
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 名無し さん

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

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