情報処理Ⅱ 2004年1月20日(火) (おさらい問題の解答と解説) 大問1の解答 奇数番目はすべて×,偶数番目はすべて○ 解く際の注意点 試験では,連続して○や×になることもある. 講義スライドを見直しておく. 配列とポインタの使い分け,演算子(特にビット演 算子と代入演算子)の用法を理解しておく. 「心がけ問題」は,知識だけでなく常識も動員する. 大問2の解答(1) (1) 8行目を,int checkbrace(char *str) にする. char *の前にconstをつけてもよい. (2) 10行目を,int level = 0; にする. 解く際の注意点 変数(仮引数を含む)の型に注意する. 変数にはどのような値が格納され得るかを見極める. 関数呼び出し(引数の受け渡し,返り値の使用)で, 型の不整合がないかチェックする. 大問2の解答(2) (3) 以下の通り. ./brace {}{{ を実行したとき: 0,1,0,1,2 ./brace {}}{ を実行したとき: 0,1,0,-1 3文字目を読んだ時点で,18行目により関数内の処理を 終え,4文字目の '}' は読まない. 解く際の注意点 どこで値が変わるかを押さえる. 代入演算子,++,-- に着目する. 入力をすべて見ることなく終わる(ループや関数を 抜ける)ことがある. 大問2の解答(3) (4)いずれも,「*strの値が0でない限り反復する」こ とを表しているため. (5)ならない.置き換えると,levelが0から-1になると きにも条件式は偽と評価されるため. [別解] 置き換えると,./brace {}}{ を実行したときも「OK」と 出力してしまう. 解く際の注意点 行単位で,処理内容を日本語で説明できるようにす る. 推敲する(「これはこれに置き換えられるか?」と 考える)癖をつける. 大問3の補足 この問題の意図は,「与えられた機能(関数)を使 用して,新たな機能(関数)を構成できること」. 3つの関数について atoiは,stdlib.hで宣言されているライブラリ関数. atoi2,atoisumはこの問題のための独自関数. atoi使用時の注意 atoi("abc") の返り値は不定.0になると期待してはい けない. atoi("1abc") の返り値は1になることが,仕様で定め られている.
© Copyright 2025 ExpyDoc