連載
バグ検出ドリル(5)「小さな親切、大きなお世話」な問題:山浦恒央の“くみこみ”な話(105)(2/3 ページ)
「バグ検出ドリル」の第5回で出題するのは「思い込み」にまつわるバグの問題です。タイトルの「小さな親切、大きなお世話」とは一体何なのでしょうか。問題文から、どこにバグがありそうか見つけ出してみよう!
3.今回の問題
リスト1-1に仕様(文字コードを出力するプログラムの仕様)、リスト1-2に文字コード一覧、リスト1-3にソースプログラムを示す。この中のバグを指摘せよ。
概要:ASCIコード表のA〜Zを表示する。
仕様1:リスト1-2にASCIコード表を示した。これに従って、コンソールに小文字「a」〜「z」と大文字「A」〜「Z」を表示せよ。
リスト1-1 文字コードの仕様
| 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00 | ||||||||||||||||
| 10 | ||||||||||||||||
| 20 | ! | " | # | $ | % | & | ’ | ( | ) | * | + | , | - | . | / | |
| 30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 40 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 50 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
| 60 | ' | \ | a | B | c | d | e | f | g | h | i | J | K | l | m | N |
| 70 | O | p | q | R | s | t | u | v | w | x | y | Z | { | | | } | ~ |
| リスト1-2 文字コード一覧 | ||||||||||||||||
#include <stdio.h>
int main(void){
int i;
//A〜Zをコンソールに表示
for (i = 0x41; i <= 0x5A; i++) {
printf("%c ",i);
}
printf("\n");
//a〜zをコンソールに表示
for (i = 0x62; i < 0x7B; i++) {
printf("%c ",i);
}
return 0;
}
リスト1-3 文字コード表示プログラム
Copyright © ITmedia, Inc. All Rights Reserved.