広告スペース

第8回 確認問題(算術)

C言語の算術演算子の理解度を確認するクイズ。

確認問題1 ― int同士の除算

以下のコードの出力を予測してください。
int a = 7, b = 5;
printf("a / b = %d\n", a / b);

出力結果は?

a / b = 1.4
a / b = 1
a / b = 2
a / b = 1.400000
解説: int / int の結果はintになります(整数の除算)。
7 ÷ 5 = 1.4 ですが、小数点以下は切り捨てられて 1 になります。
整数同士の割り算は切り捨てを常に意識しましょう。

確認問題2 ― int と double を混ぜる

int a = 7;
double b = 5.0;
printf("a / b = %f\n", a / b);

出力結果は?

a / b = 1.400000
a / b = 1.000000
a / b = 1
解説: int と double を混ぜた計算では、intが自動的にdoubleに昇格します(暗黙の型変換)。
7.0 ÷ 5.0 = 1.4 → %f1.400000 と表示。
片方がdoubleなら結果もdoubleです。

確認問題3 ― (double)キャスト

int a = 7, b = 5;
printf("a / b = %f\n", (double)a / b);

出力結果は?

エラー
a / b = 1.000000
a / b = 1.400000
解説: (double)aaをdoubleに明示的にキャストすると、double ÷ int となり、bも自動的にdoubleに昇格します。
7.0 ÷ 5.0 = 1.4 → 1.400000
int変数同士でも、一方をキャストすれば小数計算ができます。

確認問題4 ― 剰余演算子(%)

int a = 17, b = 5;
printf("%d / %d = %d あまり %d\n", a, b, a/b, a%b);

出力結果は?

17 / 5 = 3 あまり 2
17 / 5 = 3.4 あまり 0
17 / 5 = 2 あまり 3
解説: a / b = 17 ÷ 5 = 3(切り捨て)/ a % b = 17 ÷ 5 の余り = 2
%余りを求める演算子で、int型のみに使えます。double型には使えません。
偶数/奇数判定桁取り出しでよく使います(例: n%2==0 → 偶数)。
広告スペース

関連する講座

演算子編
第7回 算術演算子
C言語の算術演算子(+, -, *, /, %)を図解で解説。整数除算の注意点も。
演算子編
第9回 代入・インクリメント
C言語の代入演算子とインクリメント(++)・デクリメント(--)を解説。
演算子編
第10回 比較・論理演算子
C言語の比較演算子(==, !=, <, >)と論理演算子(&&, ||, !)を解説。
← 前の講座
第7回 算術演算子
次の講座 →
第9回 代入・インクリメント
この記事をシェア
X(Twitter)でシェア Facebookでシェア LINEで送る はてブ

この講座の理解を深めるおすすめ書籍

サイトで動きを理解し、書籍で演習量を補うと効果的です

📘
苦しんで覚えるC言語
MMGames 著
初心者向けの定番入門書。丁寧な解説で基礎を固められます。
Amazonで見る
📗
新・明解C言語 入門編
柴田望洋 著
図解が豊富で、演習問題も充実。大学の教科書としても採用多数。
Amazonで見る
📙
プログラミング言語C 第2版
B.W.カーニハン, D.M.リッチー 著
通称K&R。C言語の原典。基礎を終えた後のステップアップに最適。
Amazonで見る

※ 上記リンクはアフィリエイトリンクです。購入によりサイト運営を支援いただけます。