情報処理II

情報処理Ⅱ
第14回
2005年02月01日(火)
本日のスケジュール


14:50~14:55 … 復習問題
14:55~15:45 … おさらい問題





何でも参照可.周りと相談可.質問可.
採点の対象にはならない.
15:45~16:15 … おさらい問題の解説
16:15~16:20 … 試験について
おさらい問題とその解説は,2月10日(木)ごろにWeb公開
の予定.
2
試験の心構え



しっかり準備をする.
Webページの復習問題やサンプルプログラムには目を通し
ておく.
プログラムコードを見て,日本語で説明できるよう,訓練する.





何をするプログラムか?
何をする関数か?
何に使う型か?
何に使う変数か?
「データ型の表現できる範囲」「演算子の種類と優先順位」
「配列とポインタの使い分け」を理解しておく.
3
大問2の解説(1)

解答例



原因:retrunと書かれている.
修正方法:21行目を return 0; とする.
コメント


関数が,値を返して関数処理を終了するとき,
return(値); または return 値; と書く.
returnは関数ではなく制御文のキーワードであることに注意.
コンパイルエラーがあったら,問題のある「行番号」だけでなく,
コンパイラが出力している「識別子」にも注意する.
4
大問2の解説(2)

解答例


文字列の最初を大文字に,2文字目以降を小文字にする.た
だし英字以外の文字はそのままとする.
コメント


「capitalize」はコンピュータの専門用語として知っておくこ
と.
ライブラリ関数のtoupper,tolower,putchar,printf
を使用している.授業中に解説したライブラリ関数は,注釈を
つけずに出題するつもり.
5
大問2の解説(3)

解答例


256通り
• 「./capitalize WAKAYAMA」,
「./capitalize WAKAYAMa」,
「./capitalize WAKAYAmA」,…,
「./capitalize wakayama」
• 最初の文字は「W」か「w」のいずれか,次は「A」か「a」,…と
考えると,28=256と求められる.
コメント


「この入力には何を出力するか?」は試験に出さない.
出力を見て,「どんな入力を与えたらその出力になるか」を考え
ること(未知のプログラムを実行するときにも重要).
6
大問2の解説(4)

解答例


ライブラリ関数のtoupperおよびtolowerを使用するため.
コメント

「ライブラリ関数」については,それを使うためにインクルードす
べき「ヘッダファイル」も合わせて理解する.
• 入出力:stdio.h
• 文字列:string.h
• 文字情報:ctype.h
• その他有用な関数:stdlib.h
7
大問2の解説(5)

解答例


=,[ ],*,!=,++ の5つ
コメント


C言語の多彩な演算子を確認する.ただし丸暗記する必要は
ない.
ここでは使わなかった「論理演算子」や「ビット演算子」も見直し
ておくこと.
8
大問2の解説(6)

解答例


文字列の「先頭」か「2番目以降」かで分岐している.
コメント


「何と何」の「と」にこだわらなくてよい.「何」と「何」が明確にな
るように書けばよい.
forやwhileの反復の文なら,反復を継続する(繰り返す)条
件,あるいは逆に,反復を終了する(打ち切る,ループから抜
ける)条件を,日本語で説明できるようにしておく.
9
大問3の解説

解答例
①
②
③
④
⑤

構造体
関数
誤差
型
#define abs_complex(z) (sqrt((z).x * (z).x
+ (z).y * (z).y))
コメント



「複素数」や「絶対値」が隠されていても,答えられるように.
構造体は「宣言」するもの,構造体の型は「定義」するもの.
関数・関数形式マクロ・関数プロトタイプを理解しておくこと.
10
大問1の解答
(1) ②
(2) ②
(3) ②
(4) ①
(5) ②
(6) ②
(7) ①
(8) ①②どちらも正解
(9) ①
(10) ②
(11)
(12)
(13)
(14)
(15)
②
②
②
①
②
11
大問1の解説



(2)「nビットで2n個」はプログラマの常識.
(5)「*p」という例を書いてみると分かる.
(8)p-qはsize_t型,*p-*qはint型の値になる.



試験中に迷ったら,どちらか一つを書くこと.
(9)'0' と "0"もまた異なる値である(暗黙の型変換で同
じ値に…なることはない).
コメント



授業で見聞きしたことを思い出す.
おさらい問題の問題文は,本番でも,表現を変えて出題するか
もしれない.
迷ったら,「プログラミングの心がけ」で選ぶ.
12
試験について

実施上のルール



配点


日時:2月8日(火)14:50~16:20
持込:自筆ノート1冊と,C言語の書籍1冊のみ可
• 「用紙1枚」は不可(カンニング防止のため).本やノートへ
の挟み込み,糊付けも不可.
• 「ルーズリーフ」は,バインダに綴じており,試験中取り外さ
ないなら可.
出席:5点,レポート:10点×2,試験:75点
解答解説など

プログラミング基礎Ⅱ試験終了後(2月10日午後)に,
Webで公開する.
13