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: ★★ ヌルターミネイトされた文字列 char *str の文字数を len に設定するのはどれ?ただし len は 0 に初期化されているものとする。
while (str[len+1] != '\0') { ++len, ++str; }
while (str[len] != '\0') { ++len, ++str; }
while (*++str != '\0') ++len;
while (*str++ != '\0') ++len;
Q3: ★ char *ptr が英大文字を指している時、それを英小文字('A' ならば 'a' )に変換するコードはどれ?
*ptr = *ptr - 'A' + 'a';
*ptr = *ptr - 'A' - 'a';
*ptr = *ptr + 'A' - 'a';
*ptr = *ptr + 'A' + 'a';
Q4: ★ char *ptr が文字列を指しているとき、ptr の値を10進数で表示するには?
cout << ptr;
cout << *ptr;
cout << (int)ptr;
cout << (void *)ptr;
Q5: ★★ 以下のなかで正しいソースコードはどれ?
const char *dup(const char *s) { char *d = new char[strlen(s)]; char *t = d; while( *d++ = *s++) ; return t; }
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++ ) {} }
void setZero(char * const dst, int n) { for(int i = 0; i < n; ++i) *dst++ = 0; }
Q6: ★ char *ptr = (char *)0x100; char *ptr2 = ++ptr; を実行した後の、ptr2 の値はいくつ?
0x100
0x102
0x104
0x101
Q7: ★ int *ptr; があるとき、ptr の指す先から i 個先のデータを取得するには?
*(ptr + i)
ptr+i
ptr(i)
*ptr + i
Q8: ★ char *ptr = (char *)0x100; char *ptr2 = ptr--; を実行した後の、ptr2 の値はいくつ?
0x0fe
0x100
0x0ff
0x0fc
Q9: ★ 構造体 struct Hoge { int val; }; が定義されているとき、Hoge へのポインタ ptr を宣言するには?
Hoge &ptr;
Hoge ^ptr
Hoge *ptr();
Hoge *ptr;
Q10: ★ int d[] = {0, 1, 2, 3}; int *ptr = d; ptr += 2; の時、*ptr の値は何か?
1
2
0
3


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

最近10人の平均点:3.1
7 3 0 0 7 5 4 4 0 1 (latest)
最近100人の平均点:5.0
最近1000人の平均点:4.7
過去全部(11876人)の平均点:5.0

満点獲得者名と記念コメント:
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 名無し さん
24/12/26 08:52 名無し さん
24/12/24 04:20 名無し さん
24/12/23 17:24 名無し さん
24/12/21 18:44 名無し さん
24/12/19 16:24 名無し さん
24/12/17 13:42 名無し さん
24/12/17 08:30 名無し さん
24/12/15 00:07 名無し さん
24/12/13 00:18 名無し さん
24/12/10 23:58 名無し さん
24/12/08 22:09 名無し さん

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

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