あなたが選択した回答 --- 4.cat /etc/passwd | wc --lines
○ 4. 正解です!
【解説】
ファイル「/etc/passwd」には、システムに存在するすべてのアカウント情報が含まれています。アカウント情報は1行につき1ユーザー分が記述されています。よって、システムに存在するすべてのアカウント数(ユーザー数)を調べるためには、ファイル「/etc/passwd」の行数を数えればよいことになります。ファイルの行数を数えるためにはwcコマンドが有効です。wcコマンドに「-l」オプションまたは「--lines」オプションを付けて実行すると、標準出力の行数を数えられます。
初歩的な間違え、/etc/passwd にはコメントを書くことが出来るので、cat は grep -v '^#' に変える必要がある(See. passwd(5))。あと --lines は POSIX にない GNU の拡張なので、素直に -l とすべき(1とlを間違えやすいという言い訳は聞かない、そんなことを間違える奴は他のことも間違える)
007年3月2日 No.10520070302
あなたが選択した回答 --- 3.繰返し、順次、選択
○ 3. 正解です!
【解説】
構造化プログラミングとは、「繰返し」「順次」「選択(条件分岐)」の3つの基本制御構造によってプログラムを作成することである。
ダウト!、問題では「再帰」を含んでいる3つの選択枝と、この自称正解を選ばせているが、再帰で切り返しは表現できるし繰り返しがなく再帰しかない処理系もある。そもそも再帰の方が簡素にかけるし、アルゴリズムやデータ構造が再帰が一番ふさわしいケースも多い。スタック消費の事を問題にするのであればレールリカージョンなどの最適化が書理解側で施されるのでコードを書くときには、気にするべきでない。、、、というのは lisper の意見。関数型の場合も、また違った視点で捉えることが出来る。Scheme なら「継続」がもっとも重要で基本的な制御構造なはずだ。今日「例外」は基本的な制御構造といえるだろう。
要するに「構造化プログラミング」を硬直的に捉えるか否かということ。硬直頭で現実の問題を解決できると考えるのはいかがなものかと。