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

独習C 第4版


翻訳
原著
監修

形式:
書籍
発売日:
ISBN:
9784798115771
定価:
3,520(本体3,200円+税10%)
仕様:
B5変・528ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
シリーズ:
独習
本書籍には新版があります
独習C 新版

誰もが知っている「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

感想・レビュー

かずにゃん さん

2014-03-14

基本的な知識は少なからずあったため、過去に独学or授業等で勉強したことがある方は、特に滞ることなく読み進められた。全く知識が何もない1からのスタートでこの本を利用するの方にとっては、難しいだろうと感じられる。確かに詳しく書いてあるが、面白みもない「教科書」のような印象なので、楽しく勉強するなら別の本をオススメしたいと思う。しかし、基礎的な項目を広く浅く身につけるために使用するならば、中々よい本だと思う。一冊まるまる理解できれば、基本は間違いなく身についている。難易度は高くないが、取っ付き易くはない。

Goro_Hujita さん

2012-03-19

練習問題が豊富で初心者に優しいと感じました。

銀の人 さん

2009-08-13

まさか登録出来るとは思わなかった。良い本です