平成7年度 春期 第二種 午後 問7

                        [更新日]2002.07.26
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃次の問7から問10までの4問については、この中から1問を選択し、答案用紙の┃ ┃選択欄の「選」を黒くマークして解答してください。             ┃ ┃ なお、2問以上選択した場合には、はじめの1問について採点します。    ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 問7 次のCプログラムの説明及びプログラムを読んで、設問に答えよ。 [プログラムの説明]    最近、電子メールの利用者が増えている。電子メールで実行形式( バイナリデータ)のファイルを送る場合には、送信前にその内容をテ キスト(テキストデータ)に変換し、受信後に復元するという処理を 行う。このプログラムは、テキストに変換されている実行形式のファ イルの内容を、元の実行形式ファイル(prg_file)に復元するもの である。 (1) テキストに変換された実行形式のファイルの内容は、テキスト形式 ファイル(txt_file)に格納されている。テキスト形式ファイルの 様式は、次のとおりである。 1. 先頭行には、実行形式のファイルのサイズ(バイト数)が入っ ている。 2. 2行目以降が変換された内容である。 3. テキスト行の最大文字数(LLENG)は、プログラム中で定義さ れている。
188
ghjUGTUbgvkljhgYFGHKPHFFhkhgyfdhgjlJBDFRUJLOJBfdtg5689h6rb7U
ghh67YGdtyuIjgfT9ikjghYghgfjhfcvnm.pigfj78jgTGIKjfhgKJgffHgh
fyJHjgv,f.vkhbbikol...,jgfgfuiIHfghkHBRFNLHGFBN578632370ohDF
hfgehlHNyJL
図1 テキスト形式ファイルの例 (2) テキスト形式ファイルで利用される文字は、プログラム中の変換文 字列テーブル(chtbl)に格納されている64種類である。 (3) 変換されたテキストからの復元処理は、次のように行う。 1. テキスト形式ファイルから、1行分のテキストデータを読み 込む。 2. 読み込んだテキストデータは、先頭から4文字単位に3バイ トのバイナリデータに復元し(図2参照)、実行形式ファイル に出力する。 (a) 各文字について、変換文字列テーブル上の格納位置(0〜 63のオフセット)を調べ、オフセットの値をコードとする。 (b) 各コードの下位6ビットを連結し、1バイト(8ビット)ご とに実行形式ファイルに出力する。 [プログラム] #include <stdio.h> #include <string.h> #define LLENG 60 char chtbl[] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789,." }; main() { FILE *ifp, *ofp; long psiz; int p, s; char pch, tch, tbuf[LLENG+2]; ifp = fopen("txt_file", "r"); ofp = fopen("prg_file", "wb"); fscanf(ifp, "%ld\n", [ a ]); while([ b ]){ fgets(tbuf, sizeof(tbuf), ifp); p = 0; while(p < LLENG && [ b ]){ tch = strchr(chtbl, tbuf[[ c ]]) - chtbl; pch = tch << 2; for (s = 4; s < 9 && [ b ]; s += 2){ tch = strchr(chtbl, tbuf[[ c ]]) - chtbl; pch [ d ] tch >> (8 - s); fputc(pch, ofp); psiz--; pch = tch << s; } } } fclose(ifp); fclose(ofp); } 設問 プログラム中の[ ]に入れる正しい答えを、解答群の中から 選べ。 aに関する解答群 ア psiz イ &psiz ウ /psiz エ *psiz bに関する解答群 ア psiz < 0 イ psiz <= 0 ウ psiz == 0 エ psiz >= 0 オ psiz >0 cに関する解答群 ア ++p イ p++ ウ --p エ p-- dに関する解答群 ア = イ &= ウ |= エ !=
戻る 次頁:問8