基礎プロI 100本ノック 基礎編

各プログラムにおいて、特に指定が無い限りは入力値が指定された形式であるかどうかをチェックする必要はない(例えば整数型の値を入力させるところでアルファベットを入力された場合など)。

No. 00 ごあいさつ

実行するとHello World!と表示するプログラムを作成せよ。

【実行例】
$ ./knock00
Hello World!
$

初めて作るプログラムではHello Worldと表示してみる、というのがプログラミング界でのお約束。最後の改行を忘れずに。

No. 01 足し算

12345+23456を計算して結果を表示するプログラムを作成せよ。

【実行例】
$ ./knock01
12345 + 23456 = 35801
$

変数は使用してもしなくてもよい。

No. 02 余り

12345を7で割った余りを表示するプログラムを作成せよ。

【実行例】
$ ./knock02
12345 ÷ 7 の余りは 4
$

変数は使用してもしなくてもよい。

No. 03 入力

整数値を入力させ、その入力値を表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock03
input number: 123
your number is 123
$

No. 04 入力と計算

整数値を入力させ、その入力値を3倍した計算結果を表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock04
input number: 123
answer = 369
$

No. 05 四則演算

整数値を2つ入力させ、それらの値の和、差、積、商と余りを求めるプログラムを作成せよ。なお、差と商は1つ目の値から2つ目の値を引いた、あるいは割った結果とする。余りは無い場合も0と表示するのでよい。

【実行例、下線部は入力例】
$ ./knock05
input 1st number: 123
input 2nd number: 7
和: 130
差: 116
積: 861
商: 17, 余り: 4
$ ./knock05
input 1st number: 123
input 2nd number: 3
和: 126
差: 120
積: 369
商: 41, 余り: 0
$

なお、2つ目の入力値に0を入力すると実行時エラー(Floating point exception)でプログラムが終了する(0で割れないので)。

No. 06 0?

整数値を入力させ、値が0ならzeroと表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock06
input number: 0
zero
$ ./knock06
input number: 1
$

No. 07 0 or not 0

整数値を入力させ、値が0ならzero、0でなければnot zeroと表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock07
input number: 0
zero
$ ./knock07
input number: 1
not zero
$

No. 08 正の整数?

整数値を入力させ、値が正であればpositiveと表示するプログラムを作成せよ。ただし0は正には含まない。

【実行例、下線部は入力例】
$ ./knock08
input number: 1
positive
$ ./knock08
input number: -1
$ ./knock08
input number: 0
$

No. 09 正? 負? 0?

整数値を入力させ、値が正であればpositive、負であればnegative、0であればzeroと表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock09
input number: 1
positive
$ ./knock09
input number: -1
negative
$ ./knock09
input number: 0
zero
$

No. 10 絶対値

整数値を入力させ、その値を絶対値にして表示するプログラムを作成せよ。(できれば変数の値を絶対値に変えるようにせよ)

【実行例、下線部は入力例】
$ ./knock10
input number: 1
absolute value is 1
$ ./knock10
input number: -2
absolute value is 2
$

絶対値を求めるには、負の値の場合は-1を掛ければよい。

No. 11 ごあいさつ10回

Hello World!を10回繰り返して表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock11
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
$

繰り返しはwhile文とfor文のどちらでも構わない。

No. 12 ごあいさつ指定回

整数値を入力させ、その値の回数だけHello World!を繰り返して表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock12
input number: 7
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
$

No. 13 カウントアップ

整数値を入力させ、0から入力値まで数を1ずつ増やして表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock13
input number: 5
0
1
2
3
4
5
$

入力値に0以下の値を入力した場合は考慮しなくてもよい。

No. 14 カウントダウン

整数値を入力させ、入力値から0まで数を1ずつ減らして表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock14
input number: 5
5
4
3
2
1
0
$

入力値に0以下の値を入力した場合は考慮しなくてもよい。

No. 15 2ずつカウントアップ

整数値を入力させ、0から入力値を超えない値まで2ずつ増やして表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock15
input number: 7
0
2
4
6
$

入力値に0以下の値を入力した場合は考慮しなくてもよい。

No. 16 0でおしまい

整数値を入力させ、入力値が0でなければ再度入力させ、0であれば終了するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock16
input number: 5
input number: 3
input number: -4
input number: 0
$

do-while文を使う、あるいは無限ループをbreak文で抜け出す。

No. 17 配列を初期化

要素数10の整数型の配列を宣言し、i番目の要素の初期値をiとし、順に値を表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock17
0
1
2
3
4
5
6
7
8
9
$

配列の初期化は初期化子を使ってもよいし、繰り返しで初期値を代入してもよい。

No. 18 配列を入力値で初期化

要素数10の整数型の配列を宣言し、整数値を入力させ、すべての配列の要素を入力値として、すべての要素の値を表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock18
input number: 6
6
6
6
6
6
6
6
6
6
6
$

No. 19 配列に入力値を格納

要素数5の整数型の配列を宣言し、すべての配列に対して順に入力された整数値を代入し、すべての要素の値を表示するプログラムを作成せよ。

【実行例、下線部は入力例】
$ ./knock19
input number: 4
input number: 6
input number: 7
input number: 3
input number: 1
4
6
7
3
1
$