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 *str の文字数を len に設定するのはどれ?ただし len は 0 に初期化されているものとする。
while (*++str != '\0') ++len;
while (str[len] != '\0') { ++len, ++str; }
while (*str++ != '\0') ++len;
while (str[len+1] != '\0') { ++len, ++str; }
Q3: ★ ポインタ ptr が構造体 Foo のデータを指しているとき、Foo の m_member メンバの値を取得するには?
*ptr.m_member
ptr.m_member
ptr->m_member
*ptr->m_member
Q4: ★★ #define CHARPTR char* とし、CHARPTR p1, p2; と宣言した時の p2 の型は何?
void 型
char 型
char へのポインタへのポインタ型
char へのポインタ型
Q5: ★★★ 環状双方向リンクリスト構造体 struct Node { int val; Node *prev; Node *next}; と、Node *ptr1, *ptr2; があるとき、ptr1 の次に ptr2 を相互にリンクするコードはどれか?
ptr1->next = ptr2->prev; ptr2->prev = ptr1->next;
ptr1->next = ptr2->next; ptr2->prev = ptr1->prev;
ptr1->next = ptr2->next->next; ptr2->prev = ptr1->prev->prev;
ptr1->next = ptr2; ptr2->prev = ptr1;
Q6: ★ void foo(char *, int *); という関数があり、char *ptr; char ch; int data[10], int x; が定義されているとき、以下のなかで正しくないのはどれ?
foo(&ch, data);
foo(ptr, &data);
foo(&ch, &x);
foo(ptr, &x);
Q7: ★ char *foo, bar; と宣言した時、bar の型は何?
int 型
int へのポインタ型
char 型
char へのポインタ型
Q8: ★ char へのポインタ ptr の指す先の次のデータを ch に代入するには?
ch = *ptr;
ch = ++*ptr;
ch = *++ptr;
ch = *ptr++;
Q9: ★★ char *ptr1; char *ptr2; があるとき、それぞれのポインタの指す先のデータを交換するコードはどれ?char t; は宣言済みとする。
t = *ptr1; *ptr2 = *ptr1; *ptr1 = t;
*ptr2 = *ptr1; t = *ptr1; *ptr1 = t;
t = *ptr1; *ptr1 = *ptr2; *ptr2 = t;
*ptr1 = *ptr2; t = *ptr1; *ptr2 = t;
Q10: ★ char *ptr = (char *)0x100; char *ptr2 = ptr++; を実行した後の、ptr2 の値はいくつ?
0x102
0x100
0x104
0x101


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

最近10人の平均点:1.2
0 0 0 0 0 0 2 9 0 1 (latest)
最近100人の平均点:4.5
最近1000人の平均点:4.7
過去全部(11916人)の平均点:5.0

満点獲得者名と記念コメント:
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 名無し さん
24/12/31 07:04 名無し さん
24/12/28 22:20 名無し さん

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

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