![]()
平成20年 春期 基本情報技術者 午後 問06
問06 C言語次のCプログラムの説明及びプログラムを読んで,設問に答えよ。 〔プログラムの説明〕 関数 markup_reference は,文書から参考資料名を抜き出して, 参照番号に置き換えるとともに,文書の末尾に参考資料名の一覧を追加して, 出力するプログラムである。 (1) 元の文書中では,参考資料名は文字"\"で囲まれている。文字"\"がこれ以外の用途で 使用されることはない。 (2) 参照番号は,元の文書中の異なる参考資料名に対して, 出現順に1から順に割り当てる番号である。 (3) プログラムの実行例は,図のとおりである。図中の,処理後の文書の例に示すように, 参考資料名の一覧は,"References" 以降に,参照番号と参考資料名を対にして出力する。
(元の文書の例)
↓
図 プログラムの実行例 (4) 参考資料名は 255 文字以下であり,途中で改行されることはない。個数は 50 以下である。 (5) 元の文書に含まれる文字は,次のとおりである。 @ 英数字 A 図形文字( ! " # % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ _ { | } ~ ) B 空白文字 C 改行文字
(6) 関数 markup_reference の引数は,次のとおりである。ただし,ファイルの名称に 誤りはないものとする。 in_filename 元の文書が格納されているファイルの名称 out_filename 処理後の文書を格納するファイルの名称
〔プログラム〕 #include <stdio.h> #include <string.h> #define MRNUM 50 /* 参考資料名の最大個数 */ #define MRLNG 255 /* 参考資料名の最大文字数 */ #define MARK '\\' /* 参考資料名の囲み文字 */ void markup_reference(const char *, const char *); void markup_reference(const char *in_filename, const char *out_filename){ FILE *ifp, *ofp; char ch, ref_name[MRLNG + 1], ref_name_tbl[MRNUM][MRLNG + 1]; int i, ref_num = 0; ifp = fopen(in_filename, "r"); ofp = fopen(out_filename, "w"); while((ch = fgetc(ifp)) != EOF){ if( 設問 プログラム中の a に関する解答群 ウ ch == MARK エ ch != MARK オ ref_num == 0 カ ref_num != 0
ウ ref_name[i + 1] エ ref_name[i - 1] オ *ref_name
ウ i < ref_num エ i >= ref_num オ ref_num == 0
ウ &anp;i + 1 エ &ref_num + 1
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||