本サンプル問題の著作権は日本商工会議所に帰属します。
また、本サンプル問題の無断転載、無断営利利用を厳禁します。本サンプル問題の内容や解答等に関するお問い合わせは、受け付けておりませんので、ご了承ください。

日商プログラミング検定 STANDARD（Java）サンプル問題
知識科目第１問（知識 4 択：20 問）

1．Java 言語ソースプログラムの拡張子は何か。
① java② class③ exe④ obj
2．プログラムを開始するメソッドの名前は何か。
① main② int③ argc④ argv
３．文の最後に記述する記号はどれか。
①;

②:

③,④.

４．整数値を格納する変数の型を何というか。
① int② ouble③ char
④ boolean
５．一文字を格納する変数の型を何というか。
① char② int③ double④ boolean６．プログラム中で記述された 0x64 は 10 進数ではいくつになるか。
① 100
② 144
③ 64④ 32
７．"1"+"2"を評価したとき結果はどれか。
① "12”
② ”1”
③ ”2”
④ ”3”
８．変数名として使用することができないものはどれか。
① 1ban② bangou1
③ b1
④ b_1
９．System.out.printf メソッドにより文字列を表示するとき、記述すべき変換指定子は何か。
① %s② %c③ %f④ %d10．積を求める演算子は何か。
①*②-③+④/11．整数型の値の剰余（割り算の余り）を求める演算子は何か。
①%

②+

③

*

④/12．ビットごとの論理和を求める演算子はどれか。
①&②|

③^

④~

13．整数型変数に対し、右に 2 ビットシフトすると変数の値はどのように変化するか。
① 4倍
② 2倍
③ 1/2 倍④ 1/4 倍
14．x=x+2; と同等の文はどれか。
① x+=2;② x=+2;③+x=2;④ x++;
15．論理式において「または」（論理和）を表現する演算子はどれか。
①||

②&&

③|

④&

16．関係演算子でないものはどれか。
① =
② <=
③ >=
④ >
17．論理演算子でないものはどれか。
① &
② &&
③ ||
④ ==
18．int[] x = new int[10];と宣言したとき、配列要素数は何個か。
① 10
② 不定
③ 9
④ 11
19．繰り返し処理の後に終了判定を行う（後判定）文はどれか。
① do ～ while② if③ while④ switch20．繰り返し処理の途中で以降の処理をスキップする文はどれか。
① continue② break③ goto④ case第 2 問（穴埋め：2 問）【問題１】
毎日貯金することを考える。１日目は１円、２日目は２円、３日目は４円というように、毎日倍額貯金すると、貯金総額が 100 万円を超えるのは何日目かを求め表示せよ。
【条件】
1. 自然数の範囲で考えるので、変数の型は整数型とする。
【実行結果】

【アルゴリズム】

開始
S=0
D【1】
=1
n=1

S < 1000000

S 【2】
S+D
「n日目はd円を貯金し、総額S円」を表示

d = d【3】＊ ２n++【4】 日「100万円を超えるのは N-1目です。」と表示

終了

以上を実行するプログラムを記述せよ。

class Prob {public static void m ain(String args[]){
int S, d, n;
S = 0;d 【１】= 1;
n = 1;
System .out.println(" 日目\t 貯金額\t 総額");
w hile(S < 1000000) {S 【２】= S + d;System .out.println(n+" 日目\t"+d+" 円\t"+S+" 円");d *【３】=2;n++;}
System .out.println("100 万円を超えるのは "+ 【４】(n-1) +" 日目です。");}}【１】から【４】に入るべき適当なプログラム片を選択せよ。
【1】 （１）d = 0（２）d = 1（３）d = 2（４）d = 3【2】 （１）S = 0（２）S += n（３）S += d（４）S++【3】 （１）d = 1（２）d *= 2（３）d *= d（４）d++【4】 （１）d（２）(d―1)（３）n（４）(n－1)

【問題２】
10 種類のフルーツがある。各々何個か（0～９個）購入するとき、合計金額を求め、入金額に対しておつりを計算せよ。ただし、例えば以下の様に入力し、10000
1020340567
1 行目は入金額で 10000 円を示し、２行目は、以下のフルーツの順番に購入する個数を示す。順に 0～9 の数字を文字列として入力せよ。
バナナ：1 個、なし：2 個、かき：3 個、すいか：4 個、もも：5 個、ぶどう：6 個、いちじく：7 個
１０２０３４０５６７＾＾＾＾＾＾＾＾＾＾
１２３４５６７８９10
桁桁桁桁桁桁桁桁桁桁
目目目目目目目目目目＜10 種類のフルーツ＞バナナ、みかん、なし、メロン、かき、すいか、キウイ、もも、ぶどう、いちじく【実行結果】

prom pt$ java Prob
10000
1020340567
バナナ: 1=> 150
なし: 2=> 380
かき: 3=> 600
すいか: 4=> 1520
もも: 5=> 1200
ぶどう: 6=> 2400
いちじく: 7=> 2450
支払総額:8700
おつり :1300

【アルゴリズム】

開始

入金額と購入数量（文字列ｓ）を入力

a=0
i=0

Falsei < 10True支払総額とおつりを表示

終了

m に s の ?（iを用いて計算）
桁目を数字として代入

m != 0False

True
フルーツの単価と数量をかけ、合計金額を変数c に代入

変数a に c の値を追加

i++以上を実行するプログラムを記述せよ。
im port java.util.Scanner;class Prob {public static int p[]={ 150, 100, 190, 500, 200,380, 170, 240, 400, 350 };public static String f[] = { " バナナ ", " みかん ", "なし ", " メロン ", "" すいか", " キウイ ", "","","ももぶどう いちじく " };public static void m ain(String args[]){
int m ,a,c;
Scanner sc = new Scanner(System .in);
int b = sc.nextInt();【１】
String s = sc.next();
a=0;
for(int i=0;i<10;i++) {m = s.charAt(i)-48;【２】
if(m !=0) {c = p[i]* m;【３】a += 【４】c;System .out.println(String.form at("%10s:%3d=>%6d",f[i],m ,c));}}System .out.println(String.form at(" 支払総額 :%d",a));System .out.println(String.form at(" おつり :%d",b-a));
}
}

かき",

【１】から【４】に入るべき適当なプログラム片を選択せよ。
【1】 （１）sc.nextDouble();（２）sc.next(); （３）sc.nextInt(); （４）sc.nextBoolean();【2】 （１）s.charAt(i);（２）s.charAt(i) – ‘0’; （３）s.charAt(0) – ‘0’;【3】 （１）p[i]*m;（２）p[m]*i;【4】 （１）a *= c;（２）a += c;（３）p[i+1]*m;（３）c *= a;（４）s.charAt(i) – “0”;（４）p[m+1]*i;（４）c += a;

第 3 問（読解：1 問）【問題】
以下のプログラムの説明で最も適切なものを選択せよ。
【プログラム】

class Prob {public static void main(String args[]){
int n, i;n=123456;
for(i=2;i<353;i++)while(n % i == 0) {n /= i;
System.out.print(i+"*");}
System.out.println(n);}}【選択肢】【１】 123456 は、素数かどうかを判定し結果を表示する。
【２】 123456 は、２の累乗かどうかを判定し結果を表示する。
【３】 123456 を素因数分解したときの因数を表示する。
【４】 123456 の約数を求め表示する。

実技科目
【問題１】
２から 100 までの約数を求め、表示しなさい。
【条件】
1. 自然数の範囲で考えるので、変数の型は整数型とする。
2. 以下の様に表示する（抜粋）。

【アルゴリズム】

開始
n=2
False

n <= 100True「nの約数:」を表示

n++【１】の一部m = 2【１】の一部
m <= nFalse

Truen %【２】
m = 0

False

Truen 【３】
== m

True

False

mと「,」を表示

m【１】の一部= m + 1終了

m と「改行」を表示以上を実行するプログラムを記述せよ。
【１】から【３】に入る適当なプログラムを入力せよ。

class Prob {public static void m ain(String args[]){
int n, m ;for( n=2; n<=100; n++ ) {System .out.print(n+" の約数:");
for( m =2;m<=n;m ++ )【１】if( n%m==0 ) {【２】if( 【３】n==m )
System .out.println(m );else
System .out.print(m +",");}}}}

【問題２】
２０人の学生の英語の試験の点が以下のようであった。

氏名

英語赤井64

安藤82

青山98

有吉76

浅井83

浅野63

浅岡73

千葉

9

江口88

遠藤94

藤井39

藤木45

藤原21

福永58

船橋99

古川17

二村82

花井38

原田88

橋本

100

英語の試験の点のヒストグラムを作ることを考える。配列 a に英語の試験の点をあらかじめ格納し、配列 hに度数を格納した後、＊を用いて度数分布表を表示しなさい。ヒストグラムとは、統計で度数分布を示すグラフの一つである。ここでは、横軸に度数をとり、縦軸に階級をとる。
【実行結果】

0 :*
10 :*
20 :*
30 :**40 :*＜略＞

【アルゴリズム】

開始
配列a に英語の試験の点を格納

配列h の初期化

i=0
N = 20
False

i<N
True
【１】
r = a[i]/10i++

h[

【2】
r]++

i=0
False

i <= 10True

階級： の表示終了

改行 の表示j=0
False

j <【３】
h[i]
True

* の表示

j++

以上を実行するプログラムを記述せよ。
【１】から【３】に入る適当なプログラム片を入力せよ。

class Prob {public static void m ain(String args[]){
int[] a = {64,82,98,76,83,63,73,9,88,94,39,45,21,58,99,17,82,38,88,100};
int[] h = new int[11];int i,j,r, N=20;
for(i=0; i<=10; i++) h[i]=0;
for(i=0; i<N; i++) {r = a[i]/10;【１】h[ 【2】
r ]++;}
for(i=0; i<=10; i++) {System .out.printf("%3d: ", i* 10 );for(j=0; j<h[i]【３】 ; j++)System .out.print("* ");System .out.println("");}}}

【問題３】
３辺a, b, c（c を斜辺とする）の直角三角形の成立条件は、𝑎2 + 𝑏2 = 𝑐 2である。各辺の長さは自然数と仮定し、さらに３～N（N=100）までの範囲の値をとるものとする。
条件が成立する直角三角形の辺の組を求めよ（a, b の値を交換した直角三角形は同じとする）。

【条件】
3. for 文を 3 重ループにし、a, b, c を総当たりで調べる。
4. a ≤ b ≤ c と仮定する。
5. 自然数の範囲で考えるので、変数の型は整数型とする。
【実行結果】

3, 4, 55, 12, 136, 8, 107, 24, 258, 15, 179, 12, 159, 40, 41＜略＞

【アルゴリズム】

開始
a=3
N = 100
cnt = 0False
個数（cnt）を表示

a <= Na++
True

終了

b【１】
＝ab <= Nb++

False

Truec 【２】= ac++Falsec <= N
True

【３】

a*a + b*b == c*c

True

cnt++
答の一つ、a、b、 c を表示

False以上を実行するプログラムを記述せよ。
【１】から【３】に入る適当なプログラム片を入力せよ。

class Prob {public static void m ain(String args[]){
int a, b, c, cnt=0, N=100 ;for( a=3; a<=N; a++ )for( 【１】b=a ; b<=N; b++ )for( 【２】c=a ; c<=N; c++ )if( a* a+b*b==c* c){【３】
cnt++;
System .out.printf("%d, %d, %d\n", a,b,c);}
System .out.printf(" 個数：%d\n", cnt );}}