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

日商プログラミング検定 STANDARD（Python）サンプル問題
知識科目
第１問（知識 4 択：20 問）
1. Python スクリプトを記述したテキストファイルの拡張子はどれか。次の中から、最も適切なものを選びなさい。

① pt
② py
③ exe
④ obj
2. 対話モードで以下を実行したときの実行結果はどれか。次の中から、最も適切なものを選びなさい。

>>>5//3① 2② エラーになる③ 1④ 1.66667
3. Python プログラムの特徴として誤っているものはどれか。次の中から選びなさい。

① 行の終わりは「;」で区切られるので、式の途中で自由に改行することができる。
② 行の終わりは改行で区切られる。
③ {}、[]、()で囲まれている部分に限り、ステートメントの途中で改行できる。
④ 複数の処理を１行にまとめて書くときは「;」で区切る。
4. 整数に対する演算で剰余(割り算の余り)を求める演算子はどれか。次の中から、最も適切なものを選びなさい。
① +② *③ /④ %1

5. 変数名として使用することができないのはどれか。次の中から選びなさい。

① 1ban② bangou1
③ b1
④ b_1
6. 以下のステートメントを実行したときの結果はどれか。次の中から、最も適切なものを選びなさい。

print(1+2 , 'Hello')① 1+2 , 'Hello'② 3 , 'Hello'③ 1+2 , Hello④ 3 Hello
7. 以下の(１)から(４)の記述の実行結果が 2 になる組み合わせはどれか。次の中から、最も適切なものを選びなさい。
(１)1 and 2(２)1 or 2(３)0 and 2(４)0 or 2
① (１)と(４)② (１)のみ③ (２)と(３)④ (１)～(４)のすべて８．以下の記述を実行したとき、結果が 0 にならないものはどれか。次の中から、最も適切なものを選びなさい。
① 10 & 0② 10 >> 4③ ~0④ 10^109. 以下のプログラム片を実行したとき、表示されるのはどれか。次の中から、最も適切なものを選びなさい。

2①case 1②case 2③case 3④

何も表示しない

10. 変数 x の値が 0 より大きいとき、実行すべき処理が何もなく、それ以外のときOK と表示する。このときの記述として誤っているものを、次の中から選択しなさい。
①②③④

11. 以下のプログラム片を実行したときに表示される結果はどれか。次の中から、最も適切なものを選びなさい。

① 10② 0③ 何も表示されない。
④ 93

12. 以下のプログラム片を実行したときの結果はどれか。次の中から、最も適切なものを選びなさい。

①1234②12345③1234④12345
13. 対話モードで以下を実行したときの結果はどれか。次の中から、最も適切なものを選びなさい。

>>>L1 = [1 , 2 , 3 , 4]>>>L1[-1]①

エラーとなって実行できない②[1 , 2 , 3 , 4]

③

1④

4

14. 以下のプログラム片を実行した結果のデータの構成について、次の中から、最も適切なものを選びなさい。

L1 = [1 , 2] + [3 , 4]
①

②4

③

④
エラーとなって実行できない
15. リスト data の最後に新たなデータ'sq'を追加する文について、次の中から、最も適切なものを選びなさい。

① data.index('sq')② data.insert(0 , 'sq')③ data.count('sq')④ data.append('sq')
16. 以下のプログラム片を実行したときの結果はどれか。次の中から、最も適切なものを選びなさい。

①Hello , World②Hello③HelloWorld④HelloWorld517. 以下のように代入された colors から、３つの色の名前を取り出す式について、次の中から、最も適切なものを選びなさい。
colors = {'赤':0xff0000 , '緑':0x00ff00 , '青':0x0000ff}① keys(colors)② colors.keys()③ colors.values()④ values(colors)

18. 以下のプログラム片を実行したときの結果はどれか。次の中から、最も適切なものを選びなさい。

S = set('Hello World')
print(S)① {'r', 'l', 'H', 'W', 'e', ' ', 'd', 'o'}② Hello World③ {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'}
④ {'Hello', 'World'}
19. 以下のプログラム片を実行したときの結果はどれか。次の中から、最も適切なものを選びなさい。

d = {'A':12.5 ,'F':11.0, 'S':9.7, 'T':9.5}
print(d.get('L' , 11.5))① 12.5② 11.5③ 9.5④ エラーになる
20. 文字列が格納された変数 S の文字数を求める式はどれか。次の中から、最も適切なものを選びなさい。

① S.count()② S.len()③ S.endwith()④ len(S)6

第 2 問（穴埋め：2 問）【問題１】
データの集合に含まれる極端に特異な外れ値を検出するプログラムである。
データを昇順にならべたとき、中央に位置するデータを中央値、小さい方から 25%の位置にあるデータを第１四分位、75%の位置にあるデータを第３四分位という。その様子を図 1 の右側の図が示している。左の図はこれを要約したものであり、箱ひげ図と呼ばれる。
第３四分位から第１四分位を引いた四分位範囲をiqr とし、その 1.5 倍より外側のデータを外れ値と定義する。

図 1 四分位と外れ値
Numpy ライブラリを用いると、四分位を容易に求めることができる。
中央値

np.median(配列)第１四分位

np.percentile(配列 , 25)

第３四分位

np.percentile(配列 , 75)

7

【アルゴリズム】【プログラム】

8

次の中から、上の空欄【１】～【４】に入る最も適切なものを選びなさい。
【選択肢】
【１】

【２】

【３】

【４】

(1)

np.percentile(np_list , 75 , 25)(2)

np.percentile(np_list , 75 )(3)

np.percentile(np_list , 25 )(4)

np.percentile(np_list , [75 , 25])

(1)

q1 + (iqr * 1.5)

(2)

q1 - (iqr * 1.5)

(3)

q3 - (iqr * 1.5)

(4)

q3 + (iqr * 1.5)

(1)

q1 - (iqr * 1.5)

(2)

q3 - (iqr * 1.5)

(3)

q1 + (iqr * 1.5)

(4)

q3 + (iqr * 1.5)

(1)x < lbound and x > ubound(2)

x < lbound or x > ubound(3)x > lbound or x < ubound(4)x > lbound and x < ubound9【問題 2】
昔、曽呂利新左衛門(そろりしんざえもん)が、豊臣秀吉に所望した褒美は、「1 日目は米 1 粒、2 日目は米 2粒、3 日目は米 4 粒と、前の日の倍の米粒を 30 日間（諸説あり）いただきたい」というものだったが、秀吉は途中で量の膨大さに気づいて謝罪したと伝えられている。仮に累積で 100 万粒（およそ 20kg）を越えたときに秀吉が気づいたとすると、それは何日めであったかを調べるプログラムである。図 2 のように表示する。

図 1 褒美の米粒

図 2 実行結果10

【アルゴリズム】【プログラム】

次の中から、上の空欄【１】～【４】に入る最も適切なものを選びなさい。

【選択肢】【１】 (1) d = 2(2) d = 0(3) d = 1(4) d = -1

11

【２】 (1) d / 2(2) d + 2(3) d ** 2(4) d * 2【３】 (1) S + d(2) S + 2(3) S * 2(4) S * d【４】 (1) d + 1(2) n + 1(3) n(4) d12

第 3 問（読解：1 問）【問題】
以下のプログラムの説明として、最も適切なものを選択しなさい。
【プログラム】【選択肢】【１】 123456 を素因数分解したときの因数を表示する。
【２】 123456 は、素数かどうかを判定する。
【３】 123456 は、２の累乗かどうかを判定する。
【４】 123456 の約数を求め表示する。

13

実技科目
【問題１】
0 以上 1 未満の数値x が与えられたとき、0 と 1 の２値に分類する。閾値（しきいち）が th で与えられたとき、x が th 未満であれば 0、x が th 以上であれば 1 とする。
なお、与えられた数値と閾値に誤りはなく、与えられた数値の妥当性の検証はしなくてよいものとする。
【流れ図】【プログラム】

適切に入力してプログラムを完成させなさい。なお、プログラムでは、数値は代入により与えられている。

14

【問題２】
リストで与えられたデータの標準偏差を求めるプログラムである。
標準偏差とは、データの散らばり具合を数値化したものである。各データが平均からどれくらい離れているのか（偏差）の平均である。

図 2 偏差の平均偏差を正の数にするために、偏差を二乗した値を合計し、データの個数で除算する。これを分散という。データの個数をn、各データを𝑥1 , 𝑥2 , 𝑥3 ,・・・𝑥𝑛 、平均を𝑥とすると、分散vは以下の式で求められる。

v =1𝑛{(𝑥1 − 𝑥)2 + (𝑥2 − 𝑥)2 + (𝑥3 − 𝑥)2 + ・・・ + (𝑥𝑛 − 𝑥)2 }分散の平方根が標準偏差である。

s = √𝑣
なお、標準偏差は四捨五入して小数第１位まで求めるものとする。
Python では、以下の関数が利用できる。
関数の形式機能

math.sqrt(x)x の平方根を返す。

round(x , n)x を四捨五入して小数点第 n 桁に丸める15

【流れ図】

以下のプログラムの【１】から【２】に入る適当なプログラム片を入力してプログラムを完成させなさい。

16

【問題３】
20 人の学生の得点の度数分布を求めるプログラムである。度数分布は表 1 に従って 5 つに区分けする。
表 1 度数分布
得点の範囲

度数（人）

0 点から 20 点
21 点から 40 点
41 点から 60 点
61 点から 80 点
81 点から 100 点
粗点はリストdata に初期値として与えられ、度数をリストdosu に求める。
【流れ図】

17

【プログラム】【１】から【３】に適切に入力してプログラムを完成させなさい。

18