クイズでマスターC言語
- 著者 日向 俊二
- 判型 A5判、208頁
- 本体価格 1,600円
- ダウンロードサービス:本書掲載のサンプルファイル
- ISBN 978-4-87783-352-7
2016年2月10日 初版第1刷発行
本書の記載内容について訂正があります。
こちらを参照してください。
本書について
本書は、クイズ形式でプログラム課題を解いてゆく本です。
まず問題が提示されます。それに対して、最初にプログラミング修業中のポチ君が、課題に含まれる技術的な要点を整理します。そして、ポチ君が作成したプログラムを示します。しかし、そのプログラムには間違いや、修正したほうが良い部分があります。その間違いや変更したほうが良いところをみつけて、最後に修正した正解が示されます。
読者は課題を読んですぐに(ポチ君による問題の検討を見る前に)、自分でプログラムを作ってみても良いでしょう。また、わからないことがあるなら、ポチ君による問題の検討を見てから(ポチ君の試行を見る前に)、自分の回答プログラムを作ってみても良いでしょう。あるいは、プログラムを作ってみる環境がないところで本書を読んでいるなら、ポチ君のプログラムの問題点を自分で探してみるのも良いでしょう。そうやって本書の3ダースの問題に自ら取り組んでゆくことで、プログラミングの本当の実力が身につきます。
目 次
- 問題1 名前を入力して「こんにちは、○○さん」と出力してください
- 問題2 半径を入力して円周と面積を計算してください
- 問題3 数を入力して割り算をしてください
- 問題4 「現在の時刻」に続けて現在の日付時刻を出力してください
- 問題5 得点をいくつか入力して平均、最高点、最低点を計算してください
- 問題6 整数の割り算をして商と余りを表示してください
- 問題7 実数の割り算で余りを計算してください
- 問題8 コマンドライン引数の複数の数を加算してください
- 問題9 C言語の数値のデータ型に保存できる値を示してください
- 問題10 エラー対策付きの整数を入力して出力してください
- 問題11 倍精度で計算した2個の値が同じであることを示してください
- 問題12 10個のランダムな整数を出力してください
- 問題13 10個の整数を小さい順に並べ替えてください
- 問題14 Nの階乗を計算して出力してください
- 問題15 九九の表を出力してください
- 問題16 ASCIIコード表を出力してください
- 問題17 英文の文字をカウントしてください
- 問題18 横向きの棒グラフを表示してください
- 問題19 入力された文字列を前後反転してください
- 問題20 入力された数の2倍、4倍、1/2、1/4の値を出力してください
- 問題21 値の2倍と1/2倍およびその差を計算してください
- 問題22 カンマで区切られている文字列のカンマで改行してください
- 問題23 数を入力してその数の絶対値を表示してください
- 問題24 テキストファイルの内容を出力してください
- 問題25 バイナリファイルをコピーしてください
- 問題26 データファイルを読み込んで内容を表示し平均を計算してください
- 問題27 CSVファイルを読み込んでください
- 問題28 構造体のデータをファイルに保存して読み出してください
- 問題29 ファイルの内容を16進数で出力してください
- 問題30 英文テキストの中の小文字をすべて大文字に変換してください
- 問題31 シーザー暗号の暗号化と解読をしてください
- 問題32 コマンドライン引数の複数の数を加算してください
- 問題33 入力された3行のテキストを動的メモリに保存して出力してください
- 問題34 構造体の配列を使って名前と年齢を保存してください
- 問題35 リンクリストに氏名と年齢を保存してください
- 問題36 入力された文字列を前後反転する関数を作成してください
- 付 録
- A プログラムのコンパイルと実行
- B コンパイル時のトラブルと対策
- C 実行時のトラブルと対策
■正誤表■ 2016/7/21
本文の内容に誤りがありました。 お詫びして訂正いたします。
p.116、下から3行目~
誤
/* テキストを読み込んで出力する *
while (1)
{
len = fread(buffer, sizeof( unsigned char ), BUFFER_LEN, fpi);
if (len < 1)
break;
fwrite(buffer, sizeof( unsigned char ), BUFFER_LEN, fpo);
count += len;
}
次のように訂正します
/* ファイルを読み込んで出力する */
while (len = fread(buffer, sizeof( unsigned char ), BUFFER_LEN, fpi))
{
fwrite(buffer, sizeof( unsigned char ), len, fpo);
count += len;
}