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: ★★★ 環状双方向リンクリスト構造体 struct Node { int val; Node *prev; Node *next}; と、Node *ptr1, *ptr2; があるとき、ptr1 の次に ptr2 を相互にリンクするコードはどれか?
ptr1->next = ptr2->next; ptr2->prev = ptr1->prev;
ptr1->next = ptr2->next->next; ptr2->prev = ptr1->prev->prev;
ptr1->next = ptr2->prev; ptr2->prev = ptr1->next;
ptr1->next = ptr2; ptr2->prev = ptr1;
Q2: ★ int d[] = {0, 1, 2, 3}; int *ptr = d; ptr += 2; の時、*ptr の値は何か?
1
2
0
3
Q3: ★ char *ptr = "abcd"; の時、*++ptr は何を返しますか?
'd'
'a'
'b'
'c'
Q4: ★★ ヌルターミネイトされた文字列 char *str の文字数を len に設定するのはどれ?ただし len は 0 に初期化されているものとする。
while (*++str != '\0') ++len;
while (str[len+1] != '\0') { ++len, ++str; }
while (*str++ != '\0') ++len;
while (str[len] != '\0') { ++len, ++str; }
Q5: ★ char へのポインタ ptr の指す先の次のデータを ch に代入するには?
ch = ++*ptr;
ch = *++ptr;
ch = *ptr++;
ch = *ptr;
Q6: ★ char b[] = {1, 2, 3, 4}; int *ptr = (int *)b; 実行後の *ptr の値はなにか?
0x03040102
0x01020304
0x02010403
0x04030201
Q7: ★ char **ptr = (char *)0x100; ++ptr; を実行した後の、ptr の値はいくつ?
0x104
0x102
0x100
0x101
Q8: ★★ char *src; char *dst; があるとき、src の指す先のデータひとつを dst の指す先にコピーし、それぞれのポインタをひとつ進めるには?
*++dst = *src++;
*dst++ = *src++;
*dst++ = *++src;
*++dst = *++src;
Q9: ★ int data[100] がある時、配列の先頭アドレスを int *ptr に設定するには?
ptr = data[];
ptr = data[0];
ptr = &data;
ptr = data;
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.6
6 0 4 5 6 1 5 3 5 1 (latest)
最近100人の平均点:3.7
最近1000人の平均点:4.4
過去全部(11678人)の平均点:5.0

満点獲得者名と記念コメント:
24/09/03 09:26 名無し さん
24/08/31 10:22 名無し さん
24/08/25 22:23 名無し さん
24/08/23 23:14 名無し さん
24/08/23 21:17 名無し さん
24/06/14 02:32 名無し さん
24/06/14 02:25 名無し さん
24/04/24 08:02 名無し さん
24/04/16 10:23 名無し さん
24/04/12 03:04 名無し さん
24/04/07 20:14 名無し さん
24/04/05 20:32 名無し さん
24/04/05 06:16 名無し さん
24/04/04 20:05 名無し さん
24/03/14 17:07 名無し さん
24/01/19 10:22 k さん
 「thank you」
23/10/17 09:51 名無し さん
23/09/21 04:08 名無し さん
23/09/18 13:27 名無し さん
23/09/15 20:24 名無し さん

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

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