07章で学んだ書式指定子を試験形式で確認する。
空白は △ で表現する(試験の表記に合わせる)。
%[フラグ][幅][.精度]変換指定子
| 要素 | 指定子 | 意味 |
|---|---|---|
| フラグ | - | 左寄せ(右に空白を足す) |
| フラグ | 0 | ゼロ埋め(右寄せ) |
| 幅 | 数字 | 最小表示幅(足りなければ空白または0で埋める) |
| 精度 | .数字 | 文字列:先頭から何文字か 実数:小数点以下何桁か |
| 変換指定子 | d | 10進整数 |
x / X | 16進整数(小文字 / 大文字) | |
o | 8進整数 | |
s | 文字列 | |
f | 実数 | |
c | 文字 |
Q1. printf("[%5d]\n", 12); の出力はどれか。(空白は△)
正解:ウ
幅5・右寄せ(デフォルト)。12は2桁なので残り3文字を空白で埋める。
Q2. printf("[%05d]\n", 78); の出力はどれか。
正解:ア
幅5・ゼロ埋め。78は2桁なので残り3桁をゼロで埋める。
Q3. printf("[%3x]\n", 0x1B); の出力はどれか。(0x1B = 27)
正解:イ
0x1B の16進表記は "1b"(2文字)。幅3・右寄せなので先頭に空白1文字。
Q4. printf("[%-5.4s]\n", "Clangage"); の出力はどれか。
正解:ウ
.4 → 先頭4文字 "Clan"、%-5 → 幅5・左寄せ → "Clan△"
Q5. printf("[%7.3s]\n", "Computer"); の出力はどれか。
正解:エ
.3 → "Com"(3文字)、幅7・右寄せ → 残り4文字空白 → "△△△△Com"