• 検索結果がありません。

問題1 以下に示すプログラムは、次の処理をするプログラムである

N/A
N/A
Protected

Academic year: 2021

シェア "問題1 以下に示すプログラムは、次の処理をするプログラムである"

Copied!
11
0
0

読み込み中.... (全文を見る)

全文

(1)

1 問題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 を使って適切に初期化する //【 2 】解答条件 // sum は合計値を代入し、count は、データ数をカウントするために用いる //

int sum = 0, count = 0;

// (1) ループカウント変数は i とする // (2) ループ終了条件には配列の length を使用する // (3) 配列 a[ ] の値の範囲をチェックする // (4) (3)の条件を満足する a[]の値を sum に加算する // (5) データ数をカウントする }

System.out.println("有効範囲のデータ数は " + count + " で、合計は " +sum + "です"); }

}

【 1 】

(2)

2 問題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); } } 【解答群】 ア a → d → e → b → c イ d → a → b → c → e ウ b → e → c → d → a エ e → c → d → a → b 設問2 文字列の中から任意の文字を検索し,検出した文字列中の文字の場所を出力する検索プログラムである。 このプログラムは次に示す①~⑤の処理を含んでいる。プログラム中の(3-1)~(3-5)に対応する処理内容 の組み合わせとして正しい答えは解答群の内【 2 】である。 ① 文字の比較 ② 文字列の入力 ③ 文字列の検索 ④ 検索文字の入力 ⑤ 検索した文字位置の出力 【実行例】 文字列= asdfghffdfgghf 検索文字= g 検出場所:5 11 12 import java.io.*; 【プログラム群】 int e = n2 % 3; System.out.println(e); int q = n2/3; System.out.println(q); double r = (double)(n2/3); System.out.println(r); float w = (float)n2/3; System.out.println(w); double t = (double)n2/3.0; System.out.println(t); 【 1 】

(3)

3 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 ア ① ② ③ ④ ⑤ イ ② ④ ① ③ ⑤ ウ ② ④ ③ ① ⑤ エ ④ ② ③ ① ⑤ 設問3 n 個の整数型データを入力し,降順(大きい順)に並び替えるソートプログラムである。このプログラムは 次の①~⑤の処理を含んでいる。プログラムの処理(4-1)~(4-5)に対応する処理内容の組み合わせとして 正しい答えは解答群1の内【 3 】である。また,【 4 】に入るプログラムとして正しい答えを解 答群2から,【 5 】に入るプログラムとして正しい答えを解答群3から選んで,プログラムを完成さ せよ。 ① ソート結果の出力 ② データの個数 n (n > 0) の入力 ③ データの出力 ④ 配列の確保 ⑤ 配列に 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

(4)

4 ソート結果= 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("入力データ= "); // (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] ) {

} } } System.out.print("ソート結果= "); // (3-5) } } 【解答群1】 3-1 3-2 3-3 3-4 3-5 ア ① ② ③ ④ ⑤ イ ② ④ ⑤ ③ ① ウ ② ④ ⑤ ① ③ エ ④ ⑤ ② ③ ① 【解答群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(" "); 【 5 】 【 4 】

(5)

5 【解答群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];

(6)

6

問題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 + "円の振込みがありました.");

System.out.println("現在の残高は" + balance + "円です."); }

public int getBalance() {

} }

class Person extends Thread {

private String name;

bnk = b; name = s; }

// 預金処理(スレッド実行)

for(int i=0; i < 3; i++) {

// 同期テスト用 sleep try{ } catch(InterruptedException e){ } } } }

public class BankTest {

public static void main(String[] args) { String a = "Kazuo";

String b = "Hanako";

Person prsn1 = new Person(bnk, a); 【 1 】 【 2 】 【 3 】 【 4 】 【 5 】 【 6 】 【 7 】 【 8 】 【 9 】

(7)

7 Person prsn2 = new Person(bnk, b);

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);

(8)

8 問題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){

} } 【解答群】 (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); 【 2 】 【 1 】

(9)

9 問題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() {

addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0);

} }); }

public void paint(Graphics g) {

}

public static void main(String[] args) {

} } 【 1 】 【 2 】 【 3 】 【 4 】

(10)

10 【解答群】 (a) (b) (c) (d)

Introduction intro = new Introduction();

g.drawString("名前:情報 太郎", 20, 60); g.drawString("生年月日:1 月 1 日", 20, 80); g.drawString("学籍番号:s0000aa", 20, 100); setTitle("自己紹介"); setSize(200, 200); intro.setVisible(true);

(11)

11 クラス 学生番号 氏名 問題番号 解答 問題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】

参照

関連したドキュメント

が前スライドの (i)-(iii) を満たすとする.このとき,以下の3つの公理を 満たす整数を に対する degree ( 次数 ) といい, と書く..

メイン プログラムウィンドウでの作業 [スタート] → [すべてのプログラム] → [Acronis] → [PrivacyExpert] → [Acronis Pricacy Expert

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな

“〇~□までの数字を表示する”というプログラムを組み、micro:bit

The purpose of this course is for students to acquire basic knowledge required for AI Solution

は,医師による生命に対する犯罪が問題である。医師の職責から派生する このような関係は,それ自体としては

けることには問題はないであろう︒