独習C 第4版(ハーバート・シルト 株式会社トップスタジオ 株式会社トップスタジオ 柏原 正三)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 独習C 第4版

独習C 第4版


翻訳
原著
監修

形式:
書籍
発売日:
ISBN:
9784798115771
定価:
3,520(本体3,200円+税10%)
仕様:
B5変・528ページ
分類:
プログラミング・開発
シリーズ:
独習
  • このエントリーをはてなブックマークに追加

誰もが知っている「C学習書の定番」

『独習C』は世界中で多くの読者に支持されている、C言語の標準教科書です。「分かりやすい解説」「理解が深まる例題」「力試しの練習問題」という3ステップの学習メソッドによって、着実にC言語の実力を養成します。
5年ぶりとなる今回のバージョンアップでは、Windows Vistaなど最新のOSへ対応。学習環境となるCコンパイラを刷新し、より充実した学習環境を提供します。

コンパイラ付
GNU C Compiler
Windows 2000/XP/Vista対応 CD-ROM付き


第1章 Cの基礎

1.1 Cプログラムの構成要素
1.2 プログラムの作成とコンパイル
1.3 変数の宣言と値の代入
1.4 プログラムに数値を入力する方法
1.5 算術式の計算
1.6 プログラムのコメント
1.7 ユーザー定義の関数
1.8 関数の返す値
1.9 関数の引数
1.10 覚えておきたいキーワード
第1章の理解度チェック

第2章 制御文―その1

前章の理解度チェック
2.1 if文
2.2 else文
2.3 コードブロックの作成
2.4 forループ
2.5 インクリメント演算子とデクリメント演算子
2.6 printf()とエスケープ文字
2.7 関係演算子と論理演算子
第2章の理解度チェック

第3章 制御文―その2

前章の理解度チェック
3.1 プログラムに文字を入力する方法
3.2 if文のネスト
3.3 さまざまなforループ
3.4 whileループ
3.5 doループ
3.6 ループのネスト
3.7 break文とループの脱出
3.8 continue文
3.9 switch文による多分岐選択
3.10 goto文
第3章の理解度チェック
総合理解度チェック

第4章 データ型、変数、式の詳細

前章の理解度チェック
4.1 データ型修飾子
4.2 変数の宣言場所の違い
4.3 定数の使い方
4.4 変数の初期化
4.5 式内部での型変換
4.6 代入文での型変換
4.7 型キャスト
第4章の理解度チェック
総合理解度チェック

第5章 配列と文字列

前章の理解度チェック
5.1 1次元配列の宣言
5.2 文字列の取り扱い
5.3 多次元配列の作成
5.4 配列の初期化
5.5 文字列の配列
第5章の理解度チェック
総合理解度チェック

第6章 ポインタ

前章の理解度チェック
6.1 ポインタの基礎
6.2 ポインタ式の制限
6.3 配列とポインタ
6.4 文字列定数とポインタ
6.5 ポインタ配列
6.6 多重間接参照
6.7 仮引数としてのポインタ
第6章の理解度チェック
総合理解度チェック

第7章 関数

前章の理解度チェック
7.1 関数プロトタイプ
7.2 再帰
7.3 引数の値渡しと参照渡し
7.4 main()の引数
7.5 旧方式と新方式の仮引数宣言
第7章の理解度チェック
総合理解度チェック

第8章 コンソールI/O

前章の理解度チェック
8.1 #defineプリプロセッサディレクティブ
8.2 文字と文字列の入出力
8.3 非標準のコンソール関数
8.4 gets()関数とputs()関数
8.5 printf()関数
8.6 scanf()関数
第8章の理解度チェック
総合理解度チェック

第9章 ファイル入出力

前章の理解度チェック
9.1 ストリーム
9.2 ファイルシステムの基礎
9.3 feof()とferror()
9.4 高レベルテキスト関数
9.5 バイナリデータの入出力
9.6 ランダムアクセス
9.7 いろいろなファイルシステム関数
9.8 標準ストリーム
第9章の理解度チェック
総合理解度チェック

第10章 構造体と共用体

前章の理解度チェック
10.1 構造体の基礎
10.2 構造体へのポインタ
10.3 構造体のネスト
10.4 ビットフィールド
10.5 共用体
第10章の理解度チェック
総合理解度チェック

第11章 高度なデータ型と演算子

前章の理解度チェック
11.1 記憶クラス指定子
11.2 型修飾子
11.3 列挙型
11.4 typedef
11.5 ビットごとの演算子
11.6 シフト演算子
11.7 条件演算子(?)
11.8 代入演算子の応用
11.9 カンマ演算子
11.10 優先順位
第11章の理解度チェック
総合理解度チェック

第12章 Cのプリプロセッサとその他の高度なトピック

前章の理解度チェック
12.1 #defineと#include
12.2 条件付きコンパイル
12.3 #error、#undef、#line、#progma
12.4 Cの組み込みマクロ
12.5 #演算子と##演算子
12.6 関数ポインタ
12.7 動的なメモリ割り当て
第12章の理解度チェック
総合理解度チェック

付録 A 主要な標準ライブラリ関数

A.1 文字列と文字を操作する関数
A.2 数学関数
A.3 時間と日付の関数
A.4 動的メモリ割り当て関数
A.5 その他の関数

付録 B キーワード

付録 C 解答

本書は付属データの提供はございません。

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2018年10月17日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 019
練習問題1.5の1.
13刷
立方体の体積を
直方体の体積を
2018.10.17
1刷 038
1つ目のプログラム 最後の方
4刷
if (num < 0)  printf("数は負です"); if (num > -1)  printf("数は正です");
if (num < 0)  printf("数は負です"); if (num > 0)  printf("数は正です");
2008.09.08
1刷 041
コードch02-04.cの1行下
9刷
2番目のif文でnum-1を明示的に比較して、
2番目のif文でnum < 0num > 0を明示的に比較して、
2013.02.20
1刷 041
コードch02-04.cの3行下
9刷
わざわざ行うことはありません。
わざわざ行うことはありません(注:0は正の数ではないので、厳密には正しくありません)
2013.02.20
1刷 049
練習問題2.4 3の1行目
7刷
約数をすべて表示するプログラムを
1とその数自身を除くすべての約数を表示するプログラムを
2010.11.22
1刷 106
3~4行目
7刷
たとえば、次の例は誤りですから、コンパイルエラーとなります
たとえば、次の例は、コンパイラによってはコンパイルエラーとなる場合があります。
2010.06.24
1刷 124
例 4.7「1」のプログラム
4刷
printf("実数部: %d ", (int)sqrt(i));
printf("整数部: %d ", (int)sqrt(i));
2008.09.08
1刷 125
最初の見出し
2刷
第4章の理解度チェク
第4章の理解度チェ
2008.02.19
1刷 133
2行目
4刷
扱うことはでません)。
扱うことはできません)。
2009.06.15
1刷 254
14行目
13刷
/* 入力用にファイルを開く */
/* 読み込み用にファイルを開く */
2018.10.17
1刷 262
一番上の行
3刷
fgets(str, 79, ftp);
fgets(str, 80, ftp);
2008.06.11
1刷 274
プログラムの下から14行目
3刷
printf("何番目の要素を表示しますか? ");
printf("何番の要素を表示しますか? ");
2008.06.05
1刷 354
ソースコード下 1行目
2刷
getch()の後ろのカンマ
getchar()の後ろのカンマ
2008.01.10
1刷 376
例12.5「1」のプログラムの説明
3刷
識別子valueを引用符付きの文字列に
識別子valueを二重引用符付きの文字列に
2008.06.05
1刷 390
総合理解度チェック 3
3刷
静的に割り当てられた配列を動的な配列に置き換える。
静的に割り当てる配列の代わりに動的な配列を使用する。
2008.06.10
1刷 463
3.6 練習問題「1」中央辺り
4刷
for (i = 2; i < 1000; i++) {
for (i = 2; i < 1001; i++) {
2008.09.08
1刷 466
4.7 練習問題「1」のコード3行目
7刷
float f;
double f;
2010.09.27
1刷 469
総合理解度チェック「1」
4刷
6行目・・・char str[80] 13行目・・・for (i = strlen(str); i < 79; i++)
6行目・・・char str[81] 13行目・・・for (i = strlen(str); i < 80; i++)
2009.05.14
1刷 470
総合理解度チェック「5」のコード
4刷
count = 0; /* 答えを当てる回数を数える */  do {     printf("%s\n", temp);     printf("推測した文字を入力してください: ");    }    ch = getchar();        /* 一致する文字があるかどうか調べる */    for (i = 0; i < strlen(word); i++)     if (ch == word[i])      temp[i] = ch;    count++; } while (strcmp(temp, word));
count = 0; /* 答えを当てる回数を数える */ do {   if (ch != '\n'){    printf("%s\n", temp);    printf("推測した文字を入力してください: ");   }   ch = getchar();   /* 一致する文字があるかどうか調べる */   for (i = 0; i < strlen(word); i++)    if (ch == word[i])     temp[i] = ch;   if (ch != '\n')     count++; } while (strcmp(temp, word));
2009.01.05
1刷 475
8.5 練習問題「2」
4刷
printf("セール品 : 値札の4割引");
printf("セール品 : 値札の4割引");
2008.09.08
1刷 480
左段下から3行目~右段11行目
13刷
/* ファイルをコピーする */ while (!feof(from)) { /* 変更 */ fgets(str, 127, from); /* 削除 */ if (ferror(from)) { printf("入力エラー\n"); break; } if (!feof(from)) /* 削除 */ fputs(str, to); /* インデントを変更 */ if (ferror(to)) { printf("出力エラー\n"); break; } }
/* ファイルをコピーする */ while (fgets(str, 127, from) != NULL) { if (ferror(from)) { printf("入力エラー\n"); break; } fputs(str, to); if (ferror(to)) { printf("出力エラー\n"); break; } }

修正後のapcC-131.cはこちらをご覧ください。
2018.10.17
1刷 480
9.5 練習問題「1」中央やや下 
3刷
for(i=0; d!=0.0 && (i<32766); i++) {
for(i=0; d!=0.0 && (i<32767); i++) {
2008.06.11
1刷 481
第9章の理解度チェック「1」
4刷
while (!feof(fp)) {  fgets(str, 79, fp);  if (!feof(fp))   printf("%s", str);  printf("追加しますか? (Y/N) ");  if (toupper(getchar()) == 'N')   break;  printf("\n"); }
while (!feof(fp)) {  fgets(str, 79, fp);  if (!feof(fp)) {   printf("%s", str);   printf("追加しますか? (Y/N) ");   if (toupper(getchar()) == 'N')    break;   printf("\n");   }
2009.05.14
1刷 490
11.6 練習問題「2」最後から8行目のコメント
2刷
/* ビットがc[1]にシフトしたかどうか確認する。
/* ビットがch[1]にシフトしたかどうか確認する。
2008.01.15
1刷 493
12.5 練習問題
3刷
2. このプログラムは「one two」と表示します。
2. このプログラムは「3」と表示します。
2008.05.30
1刷 494
第12章の理解度チェック「7」9行目
2刷
char str[ ] = "this is a a test of qsort";
char str[ ] = "this is a test of qsort";
2008.01.15
1刷 500、506
索引 -R- の「rand()関数」のページ数
3刷
rand()関数・・・228, 440, 442
rand()関数・・・232, 440, 442

※ 506ページ索引 -ラ- の「乱数」のページ数も 232, 440, 442 になります。
2008.05.13
1刷 505
索引 -モ- の「文字列」のページ数
3刷
4,134
4,135
2008.06.05
3刷 481
9.6 練習問題「2」下から13行目
5刷
val = atoi*argv[2];
val = atoi(argv[2]);

3刷・4刷で行った訂正が間違っていましたので、1刷の記述に戻します。
2008.05.08