サンプル 問 題 Java TM プログラミング 能 力 認 定 試 験 2 級 解 答 時 における 注 意 事 項 1. 次 の 表 に 従 って 解 答 してください 問 題 番 号 問 1~ 問 6 問 7, 問 8 選 択 方 法 6 問 必 須 2 問 中 1 問 選 択 試 験 時 間 90 分 2.HB の 黒 鉛 筆 を 使 用 してください 訂 正 の 場 合 は,あとが 残 らないように 消 し ゴムできれいに 消 し, 消 しくずを 残 さないでください なお,ボールペンや 万 年 筆 等 で 記 入 した 場 合 は, 採 点 されません 3. 解 答 用 紙 の 所 定 の 欄 に, 級 種, 会 場 コード, 受 験 番 号 を 記 入 しマークしてくだ さい また, 会 場 名, 氏 名, 性 別 を 所 定 の 位 置 に 記 入 してください 4. 問 題 選 択 欄 にマークがない 場 合, 選 択 問 題 については 採 点 の 対 象 になりません 5. 解 答 は, 次 の 例 題 にならって, 解 答 欄 にマークしてください 例 題 日 本 の 首 都 はどこか ア 東 京 イ 京 都 ウ 大 阪 エ 福 岡 正 しい 答 えは ア 東 京 ですから, 次 のようにマークしてください 例 題 イ ウ エ 指 示 があるまで 開 いてはいけません 試 験 終 了 後, 問 題 冊 子 を 回 収 します 受 験 会 場 受 験 番 号 氏 名
試 験 問 題 に 記 載 されている 会 社 名 又 は 製 品 名 は,それぞれ 各 社 の 商 標 又 は 登 録 商 標 です なお, 試 験 問 題 では, 及 び TM を 明 記 していません
次 の 問 1~ 問 6はすべて 必 須 問 題 です 全 問 について 解 答 してください 答 えは, 解 答 群 の 中 から 一 つずつ 選 び, 括 弧 中 の 設 問 番 号 に 対 応 したマークシートの 解 答 番 号 欄 にマークしてください なお, 二 つ 以 上 マークした 場 合 には 不 正 解 になります 問 1 Java のクラスと 継 承 に 関 する 次 の 記 述 の 正 誤 を, 解 答 群 の 中 から 選 べ ただし, 解 答 群 に 従 い, 正 しいものには ア, 誤 っているものには イ をマークする (1) Oya クラスを 継 承 した Ko クラスがあり,その Ko クラスを 継 承 した Mago クラスが ある 場 合,Oya クラスとMago クラスは,Oya がスーパークラス,Mago がサブクラス となる (2) キーワードthis は,スーパークラスでのみ 使 用 することができる (3) java.io.fileoutputstream クラスは,java.lang.Object クラスのサブクラスで ある (4) Java では, 多 重 継 承 をサポートしている (5) サブクラスでは,スーパークラスの 属 性 と 操 作 を 引 き 継 ぐことができる (6) スーパークラス 型 の 参 照 変 数 に,サブクラスのオブジェクトを 代 入 することができ る 解 答 群 ア 正 しい イ 誤 り - 1 -
問 2 次 の 文 章 は,クラスとオブジェクトについて 説 明 したものである 入 れる 適 切 な 字 句 を 解 答 群 から 選 べ に <クラスの 定 義 1> public class Q2_1 { private String name; public void setname(string username) { name = username; public String getname() { return name; <クラスの 定 義 2> public class Q2_2 implements Person { public void speak() { System.out.println(" 話 す"); <クラスとオブジェクトの 説 明 > 1.Q2_1 クラスでは, (7 ) という 属 性 を 扱 うために, (8 ) など の 操 作 を 定 義 している このように, 属 性 と 操 作 を 一 つのクラスにまとめること を (9 ) という これにより,オブジェクトは 自 律 的 に 振 舞 うことがで きる 2. (9 ) に よ り 情 報 隠 蔽 が 可 能 に な る そ の た め に 通 常 属 性 に は (10) 修 飾 子 を, 操 作 には (11) 修 飾 子 を 付 けて 宣 言 する 3.Q2_2 クラスは,Person (12) を 実 装 している Q2_2 クラスは, (12) で 定 義 されたメソッドを 実 装 する (12) で 定 義 されたメ ソッドには 暗 黙 的 にpublic と (13) 修 飾 子 が 付 加 される 4.Person 型 で 宣 言 した 変 数 に, (14) ことができる クラスのオブジェクトを 代 入 する - 2 -
(7),(8)の 解 答 群 ア Q2_1 ウ name イ main エ setname (9)の 解 答 群 ア カプセル 化 ウ 抽 象 化 イ ポリモフィズム エ 汎 化 (10),(11)の 解 答 群 ア public ウ synchronized イ private エ static (12)の 解 答 群 ア クラス ウ 列 挙 型 イ インタフェース エ 総 称 (Generics) (13)の 解 答 群 ア abstract ウ public (14)の 解 答 群 ア Q2_2 ウ java.lang.string イ final エ private イ java.lang.object エ java.util.integer - 3 -
問 3 Java の 文 法 に 関 する 次 の 記 述 の 正 誤 を, 解 答 群 の 中 から 選 べ ただし, 解 答 群 に 従 い, 正 しいものには ア, 誤 っているものには イ をマークする (15) 次 のクラスが 定 義 されている 1 import java.*.*; 2 3 class Q15 { 4 public static void main(string[] args) { 5 ArrayList list = new ArrayList(); 6 7 1 行 目 のimport 文 で,java.*.*と 記 述 すると,java.util パッケージのサブパ ッケージであるjava.ArrayList クラスを5 行 目 のようにクラス 名 だけで 記 述 する ことができる (16) 次 のクラスが 定 義 されている 1 class Q16 { 2 public static void main(string[] args){ 3 B obj = new B(); 4 5 6 7 class A { 8 A() { 9 System.out.println("A クラス"); 10 11 12 13 class B extends A { 14 B() { 15 System.out.println("B クラス"); 16 17 Q16 クラスを 実 行 すると, A クラス B クラス と 表 示 される - 4 -
(17) 次 のクラスが 定 義 されている 1 class Q17 { 2 int i = 10; 3 static int j = 20; 4 public static void main(string[] args) { 5 System.out.println(i); 6 System.out.println(j); 7 8 変 数 i はインスタンス 変 数 なので,static メソッドであるmain メソッド 内 で 参 照 することはできない したがって,このプログラムは5 行 目 でコンパイルエラー となる (18) 次 のクラスが 定 義 されている 1 import java.util.arraylist; 2 class Q18 { 3 public static void main(string[] args) { 4 ArrayList<String> list = new ArrayList<String>(); 5 list.add(new String("Good!")); 6 list.add(new Integer(777)); 7 8 4 行 目 でArrayList オブジェクトは, 要 素 にString クラスのオブジェクトを 取 るように 宣 言 されているので,Integer クラスのオブジェクトを 要 素 にすることは できない したがって,このプログラムは6 行 目 でコンパイルエラーとなる - 5 -
(19) 次 のクラスが 定 義 されている 1 class Parent { 2 int a = 10; 3 private int b = 20; 4 public int c = 30; 5 6 7 class Child extends Parent { 8 Child() { 9 System.out.println(a); 10 System.out.println(b); 11 System.out.println(c); 12 13 Parent クラスとChild クラスは 継 承 関 係 にあるので,Child クラスではParent クラスのメンバ 変 数 を 参 照 することができる したがって,このプログラムはコン パイルが 正 常 に 終 了 する 解 答 群 ア 正 しい イ 誤 り - 6 -
問 4 Java の 例 外 処 理 に 関 する 記 述 を 読 んで, 設 問 (20 20)~( )~(24 24)に 答 えよ (20) 例 外 処 理 の 記 述 について 誤 っているものはどれか 解 答 群 ア finally ブロックがあればcatch ブロックは 省 略 できる イ catch ブロックがあればfinally ブロックは 省 略 できる ウ 複 数 のfinally ブロックを 記 述 することはできない エ 例 外 処 理 は, 例 外 が 発 生 したメソッド 内 で 必 ず 対 応 しなければならない (21) 次 のコードにおいて, a にspeak メソッドをオーバーライドする 記 述 を 入 れるものとして 正 しいものはどれか 1 import java.io.*; 2 3 class Q21_1 { 4 void speak() throws IOException { 5 6 7 class Q21_2 extends Q21_1 { 8 a 9 解 答 群 ア int speak() {; イ void speak(int n) throws IOException { ウ void speak() throws IOException { エ void speak(string message) throws IOException { - 7 -
(22)ファイルが 正 常 に 作 成 できる 実 行 環 境 のとき, 次 のコードの 実 行 結 果 として, 正 し いものはどれか 1 import java.io.*; 2 class Q22 { 3 public static void main(string[] args) { 4 FileWriter writer = null; 5 try { 6 writer = new FileWriter("text.txt"); 7 System.out.println(1); 8 catch (Exception e) { 9 System.out.println(2); 10 finally { 11 try { 12 System.out.println(3); 13 writer.close(); 14 catch(exception ex){ 15 16 17 解 答 群 ア finally ブロック 内 でtry~catch ブロックを 記 述 することはできないのでコ ンパイルエラーとなる イ コンパイル 及 び 実 行 され, 1 と 3 が 表 示 される ウ コンパイル 及 び 実 行 され, 2 が 表 示 される エ コンパイル 及 び 実 行 され, 2 と 3 が 表 示 される - 8 -
(23) 次 のコードの 実 行 結 果 として, 正 しいものはどれか 1 class Q23 { 2 static int [] month = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; 3 public static void main(string[] args) { 4 method1(); 5 6 7 static void method1() { 8 try { 9 method2(); 10 catch (Exception e) { 11 System.out.println("in method1"); 12 13 14 15 static void method2() { 16 try { 17 System.out.println(month[12]); 18 catch (NumberFormatException ne) { 19 System.out.println("in method2"); 20 21 22 解 答 群 ア in method1 と 表 示 される イ in method2 と 表 示 される ウ in method2 in method1 と 表 示 される エ in method1 in method2 と 表 示 される - 9 -
(24) 次 の 説 明 文 中 の にあてはまるものの 組 み 合 わせで 正 しいものはどれ か Java.lang. b クラスから, c クラスを 継 承 している c クラス,または c クラスのサブクラスの 例 外 が 発 生 した 場 合 の 例 外 処 理 は 任 意 である Object Throwable Error b c c 以 外 のクラス 解 答 群 b ア Exception イ RuntimeException ウ IOException エ Exception c RuntimeException Exception Exception IOException - 10 -
問 5 Java の 演 算 結 果 に 関 する 次 の 記 述 を 読 んで, 設 問 (25 25)~( )~(29 29)に 答 えよ (25) 次 のコードをコンパイル 実 行 した 結 果 として 正 しいものはどれか 1 class Q25 { 2 public static void main(string[] args) { 3 int x = 1; 4 boolean result = (x++ == 1 ++x == 1); 5 System.out.println(result); 6 7 解 答 群 ア true イ false ウ 1 エ 0 (26) 次 のコードをコンパイル 実 行 した 結 果 として 正 しいものはどれか 1 class Q26 { 2 public static void main(string[] args) { 3 int i = 0; 4 5 do { 6 System.out.print(i++); 7 while (i == 3); 8 9 解 答 群 ア 0 が 表 示 される ウ 012 が 表 示 される イ 01 が 表 示 される エ 0123 が 表 示 される - 11 -
(27) 次 のコードをコンパイル 実 行 した 結 果 として 正 しいものはどれか 1 class Q27 { 2 public static void main(string[] args) { 3 String str1 = new String("こんにちは"); 4 String str2 = new String("こんにちは"); 5 6 System.out.println(str1 == str2); 7 System.out.println(str1.equals(str2)); 8 9 解 答 群 ア false false が 表 示 される イ false true が 表 示 される ウ true false が 表 示 される エ true true が 表 示 される (28) 次 のコードをコンパイル 実 行 した 結 果 として 正 しいものはどれか 1 import java.io.*; 2 import java.util.*; 3 4 class Q28 { 5 public static void main(string[] args) { 6 ArrayList<String> branches = new ArrayList<String>(); 7 branches.add(" 東 京 "); 8 branches.add(" 大 阪 "); 9 branches.add(" 名 古 屋 "); 10 11 for (String branchname : branches) { 12 System.out.println(branchName); 13 14 15 解 答 群 ア 6 行 目 でコンパイルエラーが 発 生 する イ 11 行 目 でコンパイルエラーが 発 生 する ウ 東 京 大 阪 名 古 屋 が 表 示 される エ 名 古 屋 大 阪 東 京 が 表 示 される - 12 -
(29) 次 のコードをコンパイル 実 行 した 結 果 として 正 しいものはどれか 1 class Q29 { 2 public static void main(string args[]) { 3 String[] characters = {"Hello", "ThankYou", "Bye"; 4 int sum = 0; 5 6 for (String str : characters) { 7 sum += str.length(); 8 9 System.out.println(" 計 :" + sum); 10 11 解 答 群 ア 6 行 目 でコンパイルエラーになる イ 6 行 目 で 実 行 時 例 外 になる ウ コンパイル 及 び 実 行 され, 計 :3 が 表 示 される エ コンパイル 及 び 実 行 され, 計 :16 が 表 示 される - 13 -
問 6 次 のプログラムの 説 明 及 びプログラムを 読 んで, 句 を 解 答 群 の 中 から 選 べ に 入 れる 適 切 な 字 <プログラムの 説 明 > ある 図 書 館 では, 新 たに 購 入 した 書 籍 についての 情 報 を, 図 書 館 の 利 用 者 にメール で 送 信 することにした 利 用 者 のメールアドレスは,テキストファイルaddress.txt に 格 納 されている このファイルには,メールアドレス 以 外 の 情 報 も 含 まれている このプログラムの 目 的 は,address.txt から,メールアドレス 情 報 だけを 取 り 出 すこ とである 1.address.txt には,1 行 ごとに 利 用 者 の 情 報 が 書 き 込 まれている 2. 利 用 者 情 報 のフォーマットは, 次 の3 種 類 である (a) 名 前 <メールアドレス> (b) メールアドレス( 名 前 ) (c) メールアドレスのみ 例 :kenta<kenta@mail.com> 例 :yoko@mynet.co.jp(yoko) 例 :jiro@baseball.org 3.このプログラムでは,address.txt からデータを 読 み 込 み, 実 行 結 果 はディス プレイに 表 示 される ここで, 図 中 の>はシステムのコマンドプロンプトを 表 す address.txt yoko@mynet.co.jp(yoko) jiro@baseball.org kenta<kenta@mail.com> 実 行 結 果 例 >java Q6 yoko@mynet.co.jp jiro@baseball.org kenta@mail.com - 14 -
<プログラム> import java.io.*; class Q6 { public static void main(string[] args) { String filename = "address.txt"; try { String line; BufferedReader reader = new BufferedReader(new FileReader(fileName)); while ((line = reader.readline())!= null) { MailAddress mail = new MailAddress(line); System.out.println( (30) ); reader.close(); catch (FileNotFoundException e) { catch (IOException e) { (31) Type {FIRST, LAST, ONLY public class MailAddress { private String mailline; private int kakkostart = 0, kakkoend = 0; public MailAddress(String mailline) { this.mailline = mailline; public String getmailaddress() { switch ( (32) ) { case FIRST: return mailline.substring(kakkostart, kakkoend); case LAST: return mailline.substring( (33), (34) ); default: return mailline; - 15 -
private Type gettype() { if ((kakkostart = mailline.indexof("<")) >= 0) { kakkoend = mailline.indexof(">", kakkostart); return Type.LAST; else if ((kakkoend = mailline.indexof("(")) >= 0) { kakkostart = 0; return Type.FIRST; else { return Type.ONLY; (30)の 解 答 群 ア mail ウ mail.gettype() イ mail.getmailaddress() エ new MailAddress() (31)の 解 答 群 ア class ウ enum イ interface エ public (32)の 解 答 群 ア mailline ウ kakkoend イ kakkostart エ gettype() (33)の 解 答 群 ア kakkostart イ kakkostart + 1 ウ kakkostart - 1 エ kakkostart++ (34)の 解 答 群 ア kakkoend イ kakkoend + 1 ウ kakkoend - 1 エ ++kakkoend - 16 -
次 の 問 7, 問 8の2 問 については,どちらか1 問 を 選 択 し,マークシートの 問 題 選 択 欄 をマークしてください なお,マークシートの 問 題 選 択 欄 にマークがない 場 合 は, 選 択 問 題 については 採 点 の 対 象 になりません また, 二 つ 以 上 マークした 場 合 には 不 正 解 になります 選 択 問 題 A 問 7 次 のプログラムの 説 明 及 びプログラムを 読 んで, 句 を 解 答 群 の 中 から 選 べ に 入 れる 適 切 な 字 <プログラムの 説 明 > このプログラムは,テキストファイルに 格 納 された 成 績 を 得 点 の 降 順 に 並 べ 替 え るものである 1.data.txt ファイルには,コード 番 号 順 に 成 績 の 得 点 が 保 存 されているので, 1 行 ごとにデータを 読 み 取 る 2.1 のデータを 使 ってSeiseki オブジェクトを 生 成 する 3.1 と2を 繰 り 返 して,ArrayList オブジェクトに Seiseki オブジェクトを 格 納 する 4.3 の ArrayList オブジェクトをソートする ここで,ソートのアルゴリズムに は, 基 本 選 択 法 を 用 いる 基 本 選 択 法 では,まず, 並 べ 替 えが 行 われていない 部 分 から 最 大 値 を 選 び 出 し, 最 初 の 要 素 と 入 れ 替 える 次 に 最 初 の 要 素 を 除 く 範 囲 から 最 大 値 を 選 び 出 し,2 番 目 の 要 素 と 入 れ 替 える これを 最 後 まで 繰 り 返 すこ とにより,データを 降 順 に 並 べ 替 える 5. 最 後 に 実 行 結 果 を 表 示 する ここで, 図 中 の>はシステムのコマンドプロンプト を 表 す data.txt A-101,40 A-102,100 A-103,50 A-104,90 A-105,30 実 行 結 果 例 >java Q7 A-102 100 A-104 90 A-103 50 A-101 40 A-105 30-17 -
<プログラム> import java.util.arraylist; import java.io.*; class Q7 { public static void main(string[] args) { SeisekiSort ss = new SeisekiSort(); ss. (35) ; ss.display(); class SeisekiSort { private BufferedReader reader; private ArrayList<Seiseki> list = new ArrayList<Seiseki>(); public SeisekiSort() { try { reader = new BufferedReader(new FileReader("data.txt")); String line = null; while ((line = reader.readline())!= null) { String code = line.substring(0, line.indexof(",")); int total = Integer.parseInt(line.substring( line.indexof(",") + 1, line.length())); list.add( (36) ); reader.close(); catch (FileNotFoundException e) { System.out.println("FileNotFoundException Error"); catch (IOException e) { System.out.println("IOException Error"); public void sort() { for (int i = 0; i < list.size() - 1; i++) { for (int j = i + 1; j < list.size(); j++) { if ( (37) ) { (38) ; - 18 -
private void swap(int before, int after) { (39) temp; temp = list.get(before); list.set(before, list.get(after)); list.set(after, temp); public void display() { for (int i = 0; i < list.size(); i++) { System.out.print( ((Seiseki)list.get(i)).getCode()); System.out.println("\t" + ((Seiseki)list.get(i)).getTotal()); class Seiseki { private String code; private int total; Seiseki(String code, int total) { this.code = code; this.total = total; String getcode() { return code; int gettotal() { return total; - 19 -
(35)の 解 答 群 ア sort() ウ getcode() イ swap() エ gettotal() (36)の 解 答 群 ア Seiseki ウ new Seiseki(code, total) イ new Seiseki() エ new Seiseki(total, code) (37)の 解 答 群 ア list.get(i) < list.get(j) イ list.get(i).gettotal() < list.get(j).gettotal() ウ list.get(i) > list.get(j) エ list.get(i).gettotal() > list.get(j).gettotal() (38)の 解 答 群 ア swap(i, j) イ swap(j, i + 1) ウ swap(i, j + 1) エ swap(j, i - 1) (39)の 解 答 群 ア int ウ Seiseki イ String エ SeisekiSort - 20 -
選 択 問 題 B 問 8 次 のプログラムの 説 明 及 びプログラムを 読 んで, 句 を 解 答 群 の 中 から 選 べ に 入 れる 適 切 な 字 <プログラムの 説 明 > ユーザー 登 録 を 行 うアプレットである 1.アプレットを 実 行 すると, 入 力 フォームが 表 示 される ( 図 1) 2. 名 前 を 空 白 のまま Check ボタンをクリックすると, 名 前 を 入 力 してください というメッセージが 表 示 される ( 図 2) 3. 名 前 だけ 入 力 して Check ボタンをクリックすると, 郵 便 番 号 を 入 力 してくださ い というメッセージが 表 示 される ( 図 3) 4. 名 前 と 郵 便 番 号 の 両 方 が 空 白 の 場 合 には, 二 つのメッセージが 表 示 される 5. 名 前 と 郵 便 番 号 の 両 方 を 入 力 してCheck ボタンをクリックすると, ご 登 録 あり がとうございました というメッセージが 表 示 される ( 図 4) 実 行 結 果 例 図 1 図 2 図 3 図 4-21 -
<HTML ファイル> <applet code = " (40) " width = "400" height = "160"> </applet> <プログラム> import java.applet.*; import java.awt.*; import java.awt.event.*; public class ApplicationForm extends Applet implements (41) { Panel form; Panel operation; Label titlelabel, namelabel, ziplabel, addresslabel, messagelabel; TextField nametext, ziptext, addresstext; TextArea messagearea; Button checkbtn; public void init() { // 入 力 フォーム 部 分 の 設 定 form = new Panel(); form.setlayout( (42) ); namelabel = new Label(" 名 前 "); ziplabel = new Label(" "); addresslabel = new Label(" 住 所 "); nametext = new TextField(30); ziptext = new TextField(10); addresstext = new TextField(50); form.add(namelabel); form.add(ziplabel); form.add(addresslabel); form.add(nametext); form.add(ziptext); form.add(addresstext); namelabel.setbounds(0, 0, 30, 20); ziplabel.setbounds(0, 25, 30, 20); addresslabel.setbounds(0, 50, 30, 20); nametext.setbounds(45, 0, 100, 20); ziptext.setbounds(45, 25, 60, 20); addresstext.setbounds(45, 50, 200, 20); - 22 -
// 操 作 部 分 の 設 定 operation = new Panel(); operation.setlayout(new FlowLayout()); checkbtn = new Button("Check"); checkbtn.addactionlistener( (43) ); messagearea = new TextArea (" 入 力 後 Check ボタンをクリックしてください", 2, 34, TextArea.SCROLLBARS_NONE ); operation.add(messagearea); operation.add(checkbtn); // アプレット 自 身 の 設 定 setsize(320, 170); setlayout(new BorderLayout()); add(new Label("ユーザー 登 録 "), BorderLayout.NORTH); add(form, BorderLayout.CENTER); add(operation, BorderLayout.SOUTH); // ボタンイベント 処 理 public void (44) (ActionEvent e) { String name = nametext.gettext(); String zip = ziptext.gettext(); String errormessage = ""; if (name.equals("")) { errormessage += " 名 前 を 入 力 してください n"; if (zip.equals("") ) { errormessage += " 郵 便 番 号 を 入 力 してください"; if (errormessage.equals("")) { errormessage = "ご 登 録 ありがとうございました"; messagearea.settext(errormessage); - 23 -
(40)の 解 答 群 ア ApplicationForm.html ウ Applet.class イ ApplicationForm.class エ Component.class (41)の 解 答 群 ア ActionListener ウ KeyListener イ MouseListener エ WindowListener (42)の 解 答 群 ア new FlowLayout() ウ new GridLayout() イ new BorderLayout() エ null (43)の 解 答 群 ア super ウ new Applet() イ this エ new Object() (44)の 解 答 群 ア actionperformed ウ keypressed イ mouseclicked エ windowclosed - 24 -
試 験 問 題 内 容 に 関 して, 他 人 にこれを 伝 え, 漏 洩 することを 禁 じます CERTIFY Inc.2009 禁 無 断 転 載 複 写
サンプル 問 題 Java TM プログラミング 能 力 認 定 試 験 <2 級 正 答 > 問 1 問 2 問 3 問 4 問 5 問 6 (1) (2) (3) (4) (5) (6) ア イ ア イ ア ア (7) (8) (9) (10) (11) (12) (13) (14) ウ エ ア イ ア イ ア ア (15) (16) (17) (18) (19) イ ア ア ア イ (20) (21) (22) (23) (24) エ ウ イ ア ア (25) (26) (27) (28) (29) ア ア イ ウ エ (30) (31) (32) (33) (34) イ ウ エ イ ア 問 7 選 択 問 題 A (35) (36) (37) (38) (39) ア ウ イ ア ウ 問 8 選 択 問 題 B (40) (41) (42) (43) (44) イ ア エ イ ア