平成6年度 秋期 第二種 午後 問11

                        [更新日]1994.11.11
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ 次の問11から問14までの4問については、この中から2問を選択し、答案用紙┃ ┃の選択欄の[選]を黒くマークして解答してください。             ┃ ┃ なお、2問以上選択した場合には、はじめの1問について採点します。     ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
問11 次のプログラムの説明及びプログラムを読んで設問1、2に答えよ。 [プログラムの説明] テキストファイル(txt_file)を読み込んで、一定の行幅(WIDTH)にあわせて折返 しを行ない、出力するプログラムである。 (1) テキストファイルに含まれる文字は、次のものである。 1 英数字 2 図形文字(!"#%&'()*+,-./:;<=>?[\]^_{|}~) 3 空白文字 4 改行文字 (2) 折返しとは、改行文字を出力して復帰改行することをいう。 (3) テキストファイルから改行文字を読み込んだときは、1行の出力文字数が一定の 行幅に満たなくても、折返しを行なう。 [プログラム] (行番号) 001 #include < stdio.h > 002 #define WIDTH 60 003 main() 004 { 005 FILE *fp; 006 int ch, pos = 0; 007 fp = fopen("txt_file", "r"); 008 while ((ch = fgetc(fp)) [ a ] EOF) { 009 if ((pos [ b ] WIDTH) && (ch != '\n')) { 010 putchar('\n'); 011 pos = 0; 012 } 013 putchar(ch); 014 pos = (ch == '\n') ? 0 : pos + 1; 015 } 016 fclose(fp); 017 } 設問1 プログラム中の[ ]に入れる正しい答えを、解答群の中から選べ。 a に関する解答群 ア = イ ! ウ == エ != b に関する解答群 ア < イ > ウ <= エ >= 設問2 次の説明文の[ ]に入れる正しい答を、解答群の中から選べ。 連続する空白文字は1文字だけを出力するようにプログラムする。行 を追加しても、元のプログラムの行番号は変わらないとする。 まず、行番号006の直後に次の行を追加する。 int bch = '\0'; 更にプログラムの[ c ]の部分を条件式[ d ]が、真のとき だけ実行するように変更する。すなわち、プログラムの[ c ] の部分を次のようにする。 if ([ d ]) { プログラムの[ c ]の部分 } そして、行番号015の直前に次の行を追加する。 bch = ch; c に関する解答群 ア 行番号009 〜 012 イ 行番号009 〜 013 ウ 行番号009 〜 014 エ 行番号013 〜 014 d に関する解答群 ア (ch != ' ') && (bch != ' ') イ (ch != ' ') || (bch != ' ') ウ (ch == ' ') && (bch == ' ') エ (ch == ' ') || (bch == ' ')
戻る 次頁:問12