問題 1 次に示すプログラムは 配列 a の値を乱数で設定し 配列 a の値が 333 より大きく 667 以下の値 の合計値を求めるプログラムである 1 と 2 に適切なコードを記述してプログラムを完 成させよ class TotalNumber { public static void main(string[] args) { int[] a = new int[1000]; // 1 解答条件 // (1) ループカウント変数は i とする // (2) ループ終了条件には配列の length を使用する // (3) 配列 a[ ] は Math.random()*1000 を使って適切に初期化する 1 // 2 解答条件 // sum は合計値を代入し count は データ数をカウントするために用いる // int sum = 0, count = 0; // (1) ループカウント変数は i とする // (2) ループ終了条件には配列の length を使用する // (3) 配列 a[ ] の値の範囲をチェックする // (4) (3) の条件を満足する a[] の値を sum に加算する // (5) データ数をカウントする 2 System.out.println(" 有効範囲のデータ数は " + count + " で 合計は " +sum + " です "); 1
問題 2 次に設問 1~4 に答えよ 設問 1 次の実行結果となるように 1 に入るプログラム群 a~e の実行順序として正しい答えを解答群の 中から選べ 実行結果 100 33 1 33.333332 33.0 33.333333333333336 public class Prog2_1 { public static void main(string args[]) { int n1 = -100; int n2 = -n1; System.out.println(n2); 1 プログラム群 int e = n2 % 3; System.out.println(e); float w = (float)n2/3; System.out.println(w); double r = (double)(n2/3); System.out.println(r); int q = n2/3; System.out.println(q); 解答群 アイウエ a d e b c d a b c e b e c d a e c d a b double t = (double)n2/3.0; System.out.println(t); 設問 2 文字列の中から任意の文字を検索し, 検出した文字列中の文字の場所を出力する検索プログラムである このプログラムは次に示す1~5の処理を含んでいる プログラム中の (3-1)~(3-5) に対応する処理内容の組み合わせとして正しい答えは解答群の内 2 である 1 文字の比較 2 文字列の入力 3 文字列の検索 4 検索文字の入力 5 検索した文字位置の出力 実行例 文字列 = asdfghffdfgghf 検索文字 = g 検出場所 :5 11 12 import java.io.*; 2
public class Prog2_2 { public static void main(string args[]) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); boolean flag = false; System.out.print(" 文字列 = "); String s = in.readline(); // (2-1) System.out.print(" 検索文字 = "); char ch = in.readline().charat(0); // (2-2) System.out.print(" 検出場所 :"); for( int i = 0; i < s.length(); i++ ) { // (2-3) if(ch == s.charat(i)) { // (2-4) System.out.print((i+1)+" "); // (2-5) flag = true; if(!flag ) { System.out.print(" 検索文字なし "); System.out.println(" "); 解答群 2-1 2-2 2-3 2-4 2-5 ア 1 2 3 4 5 イ 2 4 1 3 5 ウ 2 4 3 1 5 エ 4 2 3 1 5 設問 3 n 個の整数型データを入力し, 降順 ( 大きい順 ) に並び替えるソートプログラムである このプログラムは次の1~5の処理を含んでいる プログラムの処理 (4-1)~(4-5) に対応する処理内容の組み合わせとして正しい答えは解答群 1の内 3 である また, 4 に入るプログラムとして正しい答えを解答群 2から, 5 に入るプログラムとして正しい答えを解答群 3から選んで, プログラムを完成させよ 1 ソート結果の出力 2 データの個数 n (n > 0) の入力 3 データの出力 4 配列の確保 5 配列に n 個分のデータを格納する 実行例 入力データ数 =8 data1=34 data2=65 data3=87 data4=32 data5=45 data6=98 data7=76 data8=89 入力データ = 1:34 2:65 3:87 4:32 5:45 6:98 7:76 8:89 3
ソート結果 = 1:98 2:89 3:87 4:76 5:65 6:45 7:34 8:32 import java.io.*; public class Prog2_3 { public static void main(string[] args) throws Exception { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 入力データ数 = "); int n = Integer.parseInt(buf.readLine()); // (3-1) int[] data = new int[n]; // (3-2) for (int i = 0; i < n; i++){ System.out.print("data"+(i+1) + "="); data[i] = Integer.parseInt(buf.readLine()); // (3-3) System.out.print(" 入力データ = "); 4 // (3-4) int tmp = 0; for( int i = 0; i < data.length-1; i++ ) { for( int j = 0; j < data.length-i-1; j++ ) { if( data[j] < data[j+1] ) { // 作業領域の確保 // データのソート 5 System.out.print(" ソート結果 = "); 4 // (3-5) 解答群 1 3-1 3-2 3-3 3-4 3-5 ア 1 2 3 4 5 イ 2 4 5 3 1 ウ 2 4 5 1 3 エ 4 5 2 3 1 解答群 2 アイウエ while( i < data.length() ) { System.out.print(" "+(i+1) + ":" + data[i]); System.out.println(" "); while( i < data.length ) { System.out.print(" "+(i+1) + ":" + data[i]); System.out.println(" "); for( int i = 0; i < data.length(); i++ ) { System.out.print(" "+(i+1) + ":" + data[i]); System.out.println(" "); for( int i = 0; i < data.length; i++ ) { System.out.print(" "+(i+1) + ":" + data[i]); System.out.println(" "); 4
解答群 3 アイウエ tmp = data[j]; data[j] = data[j+1]; data[j+1] = tmp; tmp = data[i]; data[i+1] = tmp; data[i] = data[i+1]; tmp = data[i]; data[i] = data[i+1]; data[i+1] = tmp; tmp = data[j]; data[j+1] = tmp; data[j] = data[j+1]; 5
問題 3 2 人のユーザが 1 つの口座を共有し, 各ユーザは共有している口座に対して 100 円を 3 回づつ預 金するプログラムである 1 ~ 10 に入る適切なコードを解答群の中から選んでプログラ ムを完成させよ class Bank { private int balance = 0; public synchronized void furikomi(string s, int a) { int tmp = balance; System.out.println(s + " さんから " + a + " 円の振込みがありました."); 1 System.out.println(" 現在の残高は " + balance + " 円です."); public int getbalance() { 2 class Person extends Thread { 3 private String name; 4 bnk = b; name = s; // 預金処理 ( スレッド実行 ) 5 for(int i=0; i < 3; i++) { 6 // 同期テスト用 sleep try{ 7 catch(interruptedexception e){ public class BankTest { public static void main(string[] args) { String a = "Kazuo"; String b = "Hanako"; 8 Person prsn1 = new Person(bnk, a); 9 6
Person prsn2 = new Person(bnk, b); 10 try { prsn1.join(); prsn2.join(); catch(interruptedexception e) { e.printstacktrace(); System.out.println(" 現在の残高は " + bnk.getbalance() + " 円です."); 解答群 ( ア )balance = tmp + a; ( イ )bnk.furikomi(name, 100); ( ウ )Bank bnk = new Bank(); ( エ )public Person(Bank b, String s) { ( オ )private Bank bnk; ( カ )prsn1.start(); ( キ )prsn2.start(); ( ク )return balance; ( ケ )public void run() { ( コ )sleep(2000); 7
問題 4 次の実行結果となるようなプログラムを作成したい プログラムの 1 と 2 に入 る正しい答えを 解答群 (a)~(h) の中から選びなさい 実行結果 プログラム import java.applet.applet; import java.awt.graphics; import java.awt.color; import java.awt.dimension; public class Square extends Applet { public void paint(graphics g){ 1 2 解答群 (a)g.drawoval(20, 20, 100, 100); (b)g.fillrect(20, 20, 100, 100); (c)g.drawline(20, 20, 100, 100); (d)g.drawarc(20, 20, 100, 100, 200, 200); (e)g.getcolor(color.red); (f)g.setcolor(color.red); (g)g.getcolor(font.red); (h)g.setcolor(font.red); 8
問題 5 次の実行結果となるようなプログラムを作成したい プログラムの 1 ~ 4 に入 る正しい答えを 解答群 (a)~(d) の中から選びなさい 実行結果 プログラム import java.awt.frame; import java.awt.graphics; import java.awt.event.windowadapter; import java.awt.event.windowevent; public class Introduction extends Frame { public Introduction() { 1 addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent we) { System.exit(0); ); public void paint(graphics g) { 2 public static void main(string[] args) { 3 4 9
解答群 (a) Introduction intro = new Introduction(); (b) g.drawstring(" 名前 : 情報太郎 ", 20, 60); g.drawstring(" 生年月日 :1 月 1 日 ", 20, 80); g.drawstring(" 学籍番号 :s0000aa", 20, 100); (c) settitle(" 自己紹介 "); setsize(200, 200); (d) intro.setvisible(true); 10
クラス学生番号氏名 問題番号 問題 1 1 解答 2 問題 2 設問 1 1 設問 2 2 設問 3 3 4 5 問題 3 1 2 3 4 5 6 7 8 9 10 問題 4 1 2 問題 5 1 2 3 4 11