連載
バグ検出ドリル(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.