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 >= 'z' && *ptr <= 'a' ) { ... }
if( *ptr >= 'a' || *ptr <= 'z' ) { ... }
if( *ptr >= 'z' || *ptr <= 'a' ) { ... }
Q2: ★★ char *str に文字 c を n 個の書き込み、終端記号 '\0' を付加するコードはどれ?
for(int i = 0; i < n; ++i) { str[++i] = c; } str[n] = '\0';
for(int i = 0; i < n; ++i) { str[i] = c; ++str; } str[n] = '\0';
for(int i = 0; i < n; ++i) { str[i] = c; } str[n] = '\0';
for(int i = 0; i < n; ++i) { str[i++] = c; } str[n] = '\0';
Q3: ★★ 文字列 char *str の先頭1文字を削除するコードはどれ?ただし、str は空文字列ではなく、文字数は int len; に入っているものとする。
char *src = str + 1; while ((*str++ = *src++) != '\0') {}
for(int i = len; --i > 0 ) { str[i] = str[i+1]; } str[len-1] = '\0';
for(int i = len; --i >= 0 ) { str[i] = str[i+1]; }
for(int i = len - 1; --i >= 0 ) { str[i] = str[i+1]; } str[len-1] = '\0';
Q4: ★ 0x12ab を2進数で表すと?
0001 0010 1011 1011
0001 0010 1010 1011
1011 1010 0010 0011
1011 1010 0010 0001
Q5: ★ あ~りんのほっぺは?
ぴちっぴち
ぷるっぷる
つるっつる
ぷにっぷに
Q6: ★★ int型で引数無しの関数(例:int foo())へのポインタ ptr がある関数を指しているとき、それをコールするコードはどれ?
*ptr();
ptr*();
ptr();
*ptr;
Q7: ★ char *ptr = (char *)0x100; char *ptr2 = ptr++; を実行した後の、ptr2 の値はいくつ?
0x102
0x100
0x101
0x104
Q8: ★ char *ptr = (char *)0x100; char *ptr2 = ptr--; を実行した後の、ptr2 の値はいくつ?
0x0ff
0x100
0x0fe
0x0fc
Q9: ★ x の値を 123 にしたい。以下のソースの (※) 部分には何と記述すればよいか?int x = 0; int *ptr = &x; (※) = 123;
*ptr
ptr[1]
ptr
**ptr
Q10: ★★ char *ptr が文字列を指している時、指している先が半角空白またはタブならポインタを進める最も簡潔なコードは以下の中でどれ?
while (*ptr++ == ' ' || *ptr++ == '\t') {}
while (*ptr == ' ' || *ptr++ == '\t') {}
while (*ptr++ == ' ' || *ptr == '\t') {}
while (*ptr == ' ' || *ptr == '\t') ++ptr;


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