Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

Similar documents
スライド 1

Java講座

2

Microsoft PowerPoint - prog03.ppt

2

PowerPoint プレゼンテーション

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

プログラミングA

プログラミング入門1

プログラミング入門1

Prog1_15th

ガイダンス

デジタル表現論・第6回

Prog1_2nd

メソッドのまとめ

Javaによるアルゴリズムとデータ構造

マークアップ言語

デジタル表現論・第4回

明解Javaによるアルゴリズムとデータ構造

情報処理Ⅰ

プログラミング入門1

情報実習Ⅱ

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

Prog1_6th

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

8 if switch for while do while 2

Microsoft Word - java a.doc

Microsoft Word - keisankigairon.ch doc

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

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

JDK のインストール (2012 年 8 月時点でのバージョン ) Java の実行環境 開発環境は さまざまな企業 団体が開発 配布を行っているが 当テキストでは Java の生みの親である Sun MicroSystems 社 ( 現 Oracle 社 ) の実行環境 開発環境を使用する Ja

Prog2_9th

プログラミングA

Javaプログラムの実行手順

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(Java) サンプル問題 知識科目 第 1 問 (


K227 Java 2

Microsoft PowerPoint - chap10_OOP.ppt

Java言語 第1回

プログラミングA

JavaプログラミングⅠ

明解Javaによるアルゴリズムとデータ構造

プログラミング基礎I(再)

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

新・明解Javaで学ぶアルゴリズムとデータ構造

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

JavaプログラミングⅠ

問題 01 以下は コンソールより年齢を入力させ その年齢にあった料金を表示するプログラムである 年齢ごとの金額は以下の通りである 年齢の範囲金額 0 歳以上 6 歳以下 120 円 7 歳以上 65 歳未満 200 円 65 歳以上無料 package j1.exam02; import java

プログラミング入門1

新・明解Javaで学ぶアルゴリズムとデータ構造

kiso2-09.key

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

JavaプログラミングⅠ

プログラミング入門1

Program Design (プログラム設計)

Microsoft PowerPoint - prog04.ppt

JAVA入門

オブジェクト指向プログラミング・同演習 5月21日演習課題

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint ppt

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

JavaプログラミングⅠ

10/8 Finder,, 1 1. Finder MAC OS X 2. ( ) MAC OS X Java ( ) 3. MAC OS X Java ( ) / 10

Microsoft PowerPoint - prog09.ppt

プログラムの基本構成

JavaプログラミングⅠ

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

JavaプログラミングⅠ

プログラミング入門1

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

PowerPoint プレゼンテーション

JavaプログラミングⅠ

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

基本情報STEP UP演習Java対策

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 i

r1.dvi

C#の基本

Prog1_3rd

JAVA入門

C#の基本2 ~プログラムの制御構造~

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Microsoft Word - CompA-Ex doc

Microsoft Word - VBA基礎(3).docx

Java演習(2) -- 簡単なプログラム --

Java updated

新・明解Java入門

JAVA入門

JavaプログラミングⅠ

JavaプログラミングⅠ

新・明解Java入門

JAVA とテンプレート

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Microsoft Word - 商業-3

Prog1_10th

Transcription:

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 1-1 32bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk-8u65-windows-i586.exe 2. jre-8u65-windows-i586.exe 3. jdk-8u65-linux-i586.rpm 4. jdk-8u65-windows-x64.exe 5. jre-8u65-windows-x64.exe 正解 :1 Java をコンパイルできる環境が必要なことから JRE ではなく JDK が必要 Windows の 32bit 版であ るので windows-i586 を選択する 問題 1-2 javac Hello.java というコマンドは 何を実行しているのか 1. Hello.java が実行できるように java をインストールしている 2. Hello.java が実行できるように 環境変数の設定をしている 3. Hello.java という名前のファイルを編集しようとしている 4. Hello.java という名前のプログラムをコンパイルしている 5. Hello.java というファイルに含まれる Hello クラスを実行する javac は プログラムをコンパイルするためのコマンド 実行するのは java

問題 1-3 以下に示す while 文と同じ動きをするプログラムを for 文を用いて作成した 空欄ア の中身として適切なものを選べ ----- while 文によるプログラム ----- int i=10; while(i>=1){ 何かのプログラム i = i - 1; -------------------------------- ----- for 文によるプログラム ----- int i; for( 空欄ア ){ 何かのプログラム -------------------------------- 1. i=10;i==0;i-- 2. i==10;i>0;i-- 3. i=10;i>0;i-- 4. i=9;i>=0;i-- 5. i=0;i<10;i++ 正解 :3 while 文では i が 10 から 1 ずつ減りながら 1 まで繰り返されているため for 文でも同じように i=10 を初期値とし 1 ずつ減らしながら i>0 まで (i=1 まで ) 繰り返すように指定すればよい 問題 1-4 以下のプログラムを実行すると 何が出力されるか ----------------------------- class CalcSum{ public static void main(string []args){ int i=0, sum=0; while (i<10){ sum = sum + i; System.out.printf(" 合計 :%d n", sum); --------------------------------

1. 合計:1 と出力する 2. 合計:10 と出力する 3. 合計:45 と出力する 4. 合計:55 と出力する 5. 何も出力せず プログラムが終わらない 正解 :5 0 から 9 までの合計を計算させようとしているようだが while 文の中で i の値が変更されていないため いつまでたっても i=0 のままである そのため while 文が終了せず 無限ループとなってしまう 正常に計算させる場合は while 文のループの中で i=i+1; とする必要がある 問題 2 (6 2 点 =12 点 ) 以下のプログラムは 3 店舗ある店舗別の売上伝票を集計し 売上全体に対する各店舗の割合を計算するプログラムである 売上伝票は ひとつの店舗に対して複数枚あるため プログラム内部で同じ店舗に対する売上金額の合計を計算している データの入力は 店舗番号 (1~3) と売上金額を整数で入力していき すべての伝票 ( 枚数は固定ではない ) の入力が終わったら 店舗番号として 0 を入力することになっている 入力系列と その時の出力の例は 以下のとおりである ----------- 1 200 2 500 3 100 1 200 3 1000 0 店舗番号 1: シェア 20.00% 店舗番号 2: シェア 25.00% 店舗番号 3: シェア 55.00% -------------

このプログラムが正しく動くように 各空欄に最も適切なコードを選択せよ ------------------------------------------------------------ import java.util.scanner; class CalcShare{ public static void main(string []args){ 空欄イ int i, j, total=0; Scanner scan=new Scanner(System.in); 空欄ウ { System.out.println(" "); i=scan.nextint(); if (i==0){ 空欄エ 空欄オ sum[i] = sum[i] + j; total = total + j; for( 空欄カ ){ 空欄キ System.out.printf(" 店舗番号 %d : シェア %.2f%% n", i, s); -------------------------------------------------------- 問題 2-1 空欄イ 1. int sum; 2. int sum[]; 3. int sum[] = new int[]; 4. int sum[] = {0,0,0; 5. int sum[] = {0,0,0,0;

正解 :5 整数型の配列 sum を準備し すべて 0 で初期化しておく 店舗は 3 店舗だが 店舗番号 (1~3) をそのまま配列の添字として使用するため um[3] まで使えるように 要素数は 4 個 (sum[0]~sum[3]) 必要となる なお こうした実装は (sum[0] が使われないので ) 無駄があるため 配列 sumは要素数 3 個 ( sum[0] ~sum[2]) で宣言しておき 値の入力や出力の時に sum[i] ではなく sum[i-1] とするのが正しい実装である 但し こうした実装をすると添字の値が 1 つずれるため プログラムを書く方が混乱してしまい バグを作り出してしまう場合が多い そのため 慣れないうちは 多少の無駄があっても直感的にわかりやすい形でプログラムを書く方がよい 問題 2-2 空欄ウ 1. while() 2. while(true) 3. while(false) 4. while(1) 5. while(100000) 正解 :2 売上伝票が何枚あるかわからないため 店舗番号として 0 が入力されるまで無限にループさせる必要が ある そのため 常に真 (=true) を条件として指定すればよい 問題 2-3 空欄エ 1. break; 2. continue; 3. jump; 4. next; 5. skip; 正解 :1 while 文等のループを抜け出すためには break 文を使う なお continue 文を使うと ループの最後ま での実行をスキップし 次のループへと実行を移す

問題 2-4 空欄オ 1. j=scan(); 2. j=scan.scan(); 3. j=scan.next(); 4. j=scan.nextint(); 5. j=scan.nextdouble(); 売上金額を整数型の変数 j に代入するので 整数を読みとる nextint() を使用する 問題 2-5 空欄カ 1. i=1;i<3;i++ 2. i=0;i<4;i++ 3. i=0;i<sum.length;i++ 4. i=1;i<sum.length;i++ 5. i=sum.length;i<0;i-- 店舗番号 1~3 をループさせればよいので i=1~i=3 までのループを作る sum.length は配列 sum の要素数 (4 個 ) であるから それ未満 という条件で i=3 までとなる なお 今回は店舗数が 3 と決まっていたため for(i=1;i<4;i++) としても同じであるが 今後店舗数が変更になった時 わざわざ値を変更しなくてすむよう 4 という固定の数字ではなく sum.length を使っておく方がよい 問題 2-6 空欄キ 1. double s=sum/total*100; 2. double s=sum[i]/total*100; 3. double s=sum[i]/total*100.0; 4. double s=(double)sum[i]/total*100; 5. double s=sum/(double)total*100; 売上の割合 ( パーセント表示 ) を計算するためには 売上金額 sum[i] を合計金額 total で割り 100 を掛ければよいが そのまま計算してしまうと すべて整数型のために整数の精度での演算が行われ 正しい答えが計算できない 精度を実数型にするために sum[i] の前に (double) をつけて実数型に変換してから計算を行う必要がある なお 選択肢の 3 番では 100 のかわりに 100.0( これは実数である ) を掛けているが これでは正しい答えは得られない それは 先に sum[i]/total が計算され その後で 100.0 が掛けられることになるが sum[i]/total は整数の精度で計算されてしまい この段階で答えが間違ってしまうからである