書籍概要

情報処理技術者試験

改訂3版 基本情報技術者試験 C言語の切り札

著者
発売日
更新日

概要

ロングセラーが待望の大改訂! 基本情報技術者試験で,C言語を選択する方のための定番参考書「C言語の切り札」の改訂3版です。C言語の基本を解説する「文法編」と過去問を解説した「問題編」の2部構成となっています。「文法編」は試験で出題される文法事項に的を絞り,C言語をまったく知らない人でも理解できるような説明にしてあります。問題編ではC言語の過去問題12問と,アルゴリズム(擬似言語)問題4問の合計16問を,ソースコード1行ごとに詳しく解説。収録問題はすべて刷新し,最新の内容になっています。確実に合格点をとりたい方のための,必携の1冊です。

こんな方におすすめ

  • C言語を1から勉強しながら,試験対策を行うつもりの人
  • C言語を習ったことがあるが,過去問題を解くとよくわからない人
  • アルゴリズム問題対策とC言語問題の対策を効率的に行いたい人

著者から一言

~本書 はじめに より~

「C言語の問題は難しい」という声はよく聞きますが,C言語をある程度使ったことがある人(学校の授業等で習ったことがある人,もしくは本書の文法編で基本的な内容を理解した人)であれば,問題をある程度こなせば,確実に点数が取れる程度の難易度です。

確かに,ポインタや構造体などの文法事項で難しい内容もありますが,試験の問題では文法については細かく聞かれません。試験問題で問われるのは,アルゴリズムです。

基本情報技術者試験のプログラム問題は,言語によってルール(文法事項)は異なりますが,問題のプログラムからアルゴリズムがしっかり読み取ることができれば,言語の差はそれほどないレベルです。試験に合格するために必要なのは,アルゴリズムを読み取る力(理解する力)なのです。この本は,その力をつけるための本になっています。

ぜひ,納得行くまでプログラムをトレースして,読み取る実力を付けてください。

目次

1 文法編
Lesson01 C言語の基本

  • 1-1 C言語とは?
  • 1-2 C言語の基本的な書式
  • 1-3 画面に文字を表示する方法

Lesson02 変数と演算

  • 2-1 変数とは?
  • 2-2 変数の宣言方法
  • 2-3 変数を使った簡単な計算方法
  • 2-4 キーボードから文字を入力する方法

Lesson03 条件分岐

  • 3-1 if文で処理を分ける
  • 3-2 if〜else文で処理を分ける
  • 3-3 if〜elseif文で処理を分ける
  • 3-4 論理演算子を用いてみよう
  • 3-5 switch文で処理を分ける

Lesson04 繰り返し処理

  • 4-1 for文による繰り返し
  • 4-2 インクリメント・デクリメント演算子
  • 4-3 for文の入れ子構造(ネスト)
  • 4-4 while文による繰り返し
  • 4-5 dowhile文による繰り返し

Lesson05 配列

  • 5-1 配列とは
  • 5-2 配列の初期化
  • 5-3 2次元配列
  • 5-4 2次元配列の初期化

Lesson06 文字と文字列

  • 6-1 文字と文字列
  • 6-2 文字と文字列の初期化
  • 6-3 文字列の操作

Lesson07 関数

  • 7-1 関数とは?
  • 7-2 C言語の関数
  • 7-3 変数とスコープ

Lesson08 ポインタ

  • 8-1 メモリアドレスの考え方
  • 8-2 ポインタとは?
  • 8-3 ポインタと引数
  • 8-4 配列とポインタ
  • 8-5 const型修飾子
  • 8-6 引数と配列
  • 8-7 文字列とポインタ
  • 8-8 文字列配列とポインタ

Lesson09 構造体

  • 9-1 構造体の宣言方法
  • 9-2 構造体メンバの初期化と代入
  • 9-3 構造体とポインタ

Lesson10 ファイル入出力

  • 10-1 ファイル入出力の概要
  • 10-2 入出力の手順
  • 10-3 試験で出題されたその他の関数

Lesson11 その他出題項目

  • 11-1 define文
  • 11-2 キャスト演算
  • 11-3 ビット演算
  • 11-4 条件演算子
  • 11-5 文字に対する計算

Part2 問題編
C言語編

  • Practice01 フラクタル図形を描画するプログラム
    (平成28年度春期問9)
  • Practice02 換字表を用いて暗号文にするプログラム
    (平成27年度春期問9)
  • Practice03 ケーブルテレビ局サービスの利用料金を求めるプログラム
    (平成25年度春期問9)
  • Practice04 二つの英単語を辞書順で比較するプログラム
    (平成25年度秋期問9)
  • Practice05 単語が行末で切れないように出力するプログラム
    (平成26年度春期問9)
  • Practice06 入退室状況を印字するプログラム
    (平成27年度秋期問9)
  • Practice07 複数システムの開発作業順序を求めて出力するプログラム
    (平成28年度秋期問9)
  • Practice08 2つの整数の割り算の結果の出力を行うプログラム
    (平成23年度秋期問9)
  • Practice09 利用者ID一覧の差分を印字するプログラム
    (平成26年度秋期問9)
  • Practice10 希望の座席種別と座席数の空き座席を調べるプログラム
    (平成23年度特別問9)
  • Practice11 社員の予定を考慮して会議開催候補時間帯を調べるプログラム
    (平成24年度春期問9)
  • Practice12 くじ番号と当選番号を比較して当たりを確認するプログラム
    (平成24年度秋期問9)

擬似言語編

  • Practice13 簡易メモ帳のメモの編集を行うプログラム
    (平成28年度春期 問8)
  • Practice14 クイックソートを応用したk番目に小さい値を選択するプログラム
    (平成27年度春期 問8)
  • Practice15 BM法を用いて文字列検索を行うプログラム
    (平成27年度秋期 問8)
  • Practice16 指定された編集パターンに従って数値を編集するプログラム
    (平成28年度秋期問8)

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2017年12月22日最終更新)

P.139 下から4行目

J % p_cn = 2 % 2 = 1
J % p_cn = 3 % 2 = 1

P.298 11行目

(CLSNUM-1-i)の値は,4,3,2,1
(CLSNUM-1-i)の値は,3,2,1,0

P.357 1行目

10を代入します
19を代入します

(以下2017年11月13日更新)

P.78 図8.1及び図8.2 b[2]のアドレス

0x1011
0x1021

P.85 本文 7行目

*xが指すbの値に格納します。
*xが指すaの値に格納します。

(以下2017年4月24日更新)

P.112 リスト11.2の10行目 末尾


r_seki


r_shift


(以下、2017年4月11日更新)

P.70【参考】関数のプロトタイプ宣言の中の下から3行目

なお、ソース上でmain関数を先に記述すれば、
なお、ソース上でmain関数をに記述すれば、

補足
P.69のリスト7.1で言えば,19行目から24行目の部分を5行目より上(つまり4行目まで)に書いておけば,プロトタイプ宣言は省略可能です。

P.185 項目「14行目~15行目」

16行目が実行されます。16行目では、strcmp関数を
15行目が実行されます。15行目では、strcmp関数を

(以下,2017年2月28日更新)

P.66 9行目


strncmp(s1, s2);


strncmp(s1, s2, n);

商品一覧