標準プログラマーズ ライブラリシリーズC言語 体当たり学習 徹底入門

[表紙]C言語 体当たり学習 徹底入門

紙版発売

B5変形判/344ページ

定価2,508円(本体2,280円+税10%)

ISBN 4-7741-1200-3

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

本書は,これからC言語を学ぼうとする人を対象にした,体当たり式の入門書です。「実現すべきプログラム」を中心にすえ,やるだけやってみてから必要なCの文法を習得するという構成でまとめました。必要な知識を必要な時に学習すれば,効率よく理解できるはずです。

こんな方におすすめ

  • C言語を独学で学び始めようとしている方
  • プログラムを作りながらC言語を学びたい方

目次

はじめに

もくじ

第1章 イントロダクション

  • 1-1 本書のねらい
    • 1-1-1 イキバタの精神
    • 1-1-2 なぜいまCなのか
    • 1-1-3 なぜCUIなのか
  • 1-2 開発環境について
  • 1-3 儀式――hello, world
    • 1-3-1 はじめて書くCプログラム
    • 1-3-2 コンパイル・実行の方法
    • 1-3-3 hello, worldをいじり倒そう
  • 1-4 まとめ

第2章 体格指数(BMI)を計ってみる

  • 2-1 例題の仕様について
    • 2-1-1 BMIとは何か?
    • 2-1-2 仕様を考える
  • 2-2 変数と入力
    • 2-2-1 変数
    • 2-2-2 キーボードからの入力
  • 2-3 計算と計算結果の出力
    • 2-3-1 計算する
    • 2-3-2 実数型
    • 2-3-3 if文による条件分岐
  • 2-4 落ち穂拾い
    • 2-4-1 宣言の書き方について
    • 2-4-2 いろいろな型について
    • 2-4-3 真偽値について
  • 2-5 練習問題
    • 2-5-1 ローレル指数を計ってみる
  • 2-6 まとめ

第3章 成績を順に並べる(ソート)

  • 3-1 ソートとは
    • 3-1-1 仕様を考える
  • 3-2 データの入力
    • 3-2-1 入力(ループ)
    • 3-2-2 ループの強制脱出(break)
    • 3-2-3 配列
    • 3-2-4 インクリメント・デクリメント演算子
    • 3-2-5 for文
    • 3-2-6 入出力ストリームとリダイレクト
    • 3-2-7 scanf()の戻り値
    • 3-2-8 プリプロセッサとマクロ
  • 3-3 ソートする
    • 3-3-1 単純選択ソート
  • 3-4 落ち穂拾い
    • 3-4-1 do while文
    • 3-4-2 関数形式マクロ
  • 3-5 まとめ

第4章 フィルタプログラムを書いてみる

  • 4-1 フィルタとは何か?
    • 4-1-1 フィルタとは
    • 4-1-2 パイプとは
  • 4-2 小文字を大文字に変換する(toupper)
    • 4-2-1 仕様を考える
    • 4-2-2 文字とは何か?
    • 4-2-3 フィルタの基本構造
    • 4-2-4 小文字→大文字の変換(力技)
    • 4-2-5 小文字→大文字の変換(文字定数)
    • 4-2-6 小文字→大文字の変換(正攻法)
    • 4-2-7 Cの演算子について
  • 4-3 タブを空白に変換する(detab)
    • 4-3-1 仕様を考える
    • 4-3-2 アルゴリズムを考える
    • 4-3-3 余りを求めるには
    • 4-3-4 コーディングする
  • 4-4 ファイルを分割する(split)
    • 4-4-1 仕様を考える
    • 4-4-2 ファイルのオープン
    • 4-4-3 テキストモードとバイナリモード
    • 4-4-4 コマンド行の引数
    • 4-4-5 文字列とは何か?
    • 4-4-6 ファイル名を生成する
    • 4-4-7 sprintf()による文字列の組み立て
    • 4-4-8 sscanf()による文字列の解析
  • 4-5 練習問題
    • 4-5-1 空白をタブに変換する(entab)
    • 4-5-2 detabのタブストップを変更可能にする
    • 4-5-3 テキストファイルをダンプする
  • 4-6 まとめ

第5章 いろいろなソート

  • 5-1 関数に分割する
    • 5-1-1 関数とは
    • 5-1-2 return文
    • 5-1-3 main()を先に書くか後に書くか
    • 5-1-4 ヘッダファイルとプロトタイプ宣言
    • 5-1-5 変数のスコープ
  • 5-2 バブルソート
  • 5-3 クイックソート
  • 5-4 swap()関数を作成する――ポインタ
    • 5-4-1 失敗例(お約束)
    • 5-4-2 ポインタとは何か?
    • 5-4-3 swap()関数を作る(今度は成功)
  • 5-5 練習問題
    • 5-5-1 挿入ソート
    • 5-5-2 解答例
  • 5-6 まとめ

第6章 蔵書管理プログラムを作成する

  • 6-1 蔵書管理プログラム
  • 6-1.1 蔵書を管理する
  • 6-1.2 仕様を考える
  • 6-2 メニュー表示とデータ入力
    • 6-2-1 メニュー表示
    • 6-2-2 switch caseによる分岐
    • 6-2-3 データの入力
    • 6-2-4 配列を引数として渡す
    • 6-2-5 長すぎる入力への対応
    • 6-2-6 価格の入力――scanf()の問題点再び
  • 6-3 データを保持する
    • 6-3-1 多次元配列
  • 6-4 構造体
    • 6-4-1 構造体を宣言する
    • 6-4-2 構造体を使うと何が便利なのか?
    • 6-4-3 typedef
    • 6-4-4 構造体へのポインタ
    • 6-4-5 登録と一覧表示
  • 6-5 いろいろな機能
    • 6-5-1 検索
    • 6-5-2 変更
    • 6-5-3 削除
    • 6-5-4 削除の他の方法――削除フラグ
    • 6-5-5 continue
  • 6-6 動的メモリ確保・連結リスト
    • 6-6-1 可変長配列
    • 6-6-2 メモリ不足とヌルポインタ
    • 6-6-3 可変長の文字列入力関数を作成する
    • 6-6-4 realloc()
    • 6-6-5 malloc()は魔法の関数ではない!
    • 6-6-6 連結リスト
    • 6-6-7 動的メモリ確保版蔵書管理プログラム
  • 6-7 分割コンパイル
    • 6-7-1 とりあえずぶった切ってみる
    • 6-7-2 リンク
    • 6-7-3 ヘッダファイルを書く
    • 6-7-4 extern
    • 6-7-5 staticによる情報の隠蔽
    • 6-7-6 make
  • 6-8 まとめ

第7章 ポインタの復習

  • 7-1 基礎編
    • 7-1-1 ポインタとアドレスと型と
    • 7-1-2 ポインタ型変数の宣言
    • 7-1-3 ポインタ「型」とは
    • 7-1-4 ポインタ演算
    • 7-1-5 添字演算子
    • 7-1-6 配列とポインタ
    • 7-1-7 3か所の例外規則
    • 7-1-8 文字列リテラル
  • 7-2 混乱の元
    • 7-2-1 関数の仮引数
    • 7-2-2 配列のextern宣言
    • 7-2-3 配列の初期化
    • 7-2-4 文字型配列の初期化

付録A 関数リファレンス

  • A-1 stdio.h
    • A-1-1 書式付き入出力
    • A-1-2 その他の入出力関数
  • A-2 ctype.h
    • A-2-1 文字の種別の判定
    • A-2-3 大文字小文字の変換
  • A-3 string.h
  • A-4 stdlib.h
    • A-4-1 動的メモリ確保
    • A-4-2 プログラムの終了

付録B 参考文献

著者プロフィール

前橋和弥(まえばしかずや)

1969年,愛知県生まれ。名古屋市内の某ソフト会社で俸禄を食んでいるプログラマー。著書に『C言語 ポインタ完全制覇』,『C言語 体当たり学習徹底入門』,『Java謎+落とし穴徹底解明』,『センス・オブ・プログラミング!』がある。

言語作りは昔から趣味で細々とやっていた。これがなければCの本を書いたりすることもなかったと思う。

著者ホームページ:http://kmaebashi.com