Tips

C# 練習問題 6

C# 練習問題 6

C# 練習問題 6


C#のオリジナル練習問題です。

問題①


次のコードを確認してください。

using System;

namespace Blog {
	class Practice6_Q1 {
		static void Main(string[] args) {
			Console.Write(1 + 2 * 3);
			Console.Write(2 * (1 + 2));
			Console.Write(8 / 4 * 2);
		}
	}
}

上記のコードをコンパイル、および実行したときの結果について、正しいものを1つ選択しなさい。

A. 961
B. 964
C. 761
D. 764

問題②


次のコードを確認してください。

using System;

namespace Blog {
	class Practice6_Q2 {
		static void Main(string[] args) {
			Console.Write("Sample:" + (5 + 5) + 5);
			Console.Write(" Sample:" + 5 + 5 * 5);
		}
	}
}

上記のコードをコンパイル、および実行したときの結果について、正しいものを1つ選択しなさい。

A. Sample:15 Sample:30
B. Sample:15 Sample:50
C. Sample:105 Sample:50
D. Sample:105 Sample:525
E. Sample:555 Sample:525
F. Sample:555 Sample:555

解答・解説を見る

解答


問題①:D
問題②:D

解説


解説を見る

算術演算子文字列結合ついての問題です。

問題①
算術演算子の四則演算の優先順位は、数学の四則演算と同じです。
・加算よりも乗算を先に計算します。
・()で括られた式を先に計算します。
・乗算と除算の優先度は同じであるため、前から順番に計算します。

上記のルールに則って、計算を行うと、
1 + 2 * 3 ⇒ 1 + 6 ⇒ 7
2 * (1 + 2) ⇒ 2 * 3 ⇒ 6
8 / 4 * 2 ⇒ 2 * 2 ⇒ 4

したがって、「764」と出力されるため、答えはDとなります。

問題②
算術演算子の「+」は加算を意味しますが、演算子の左右どちらかに文字列がある場合は、文字列結合となります。
演算子が複数使用されている場合は、問題①同様、()や乗算除算を優先して計算します。
ただし、文字列に対して「+」以外の算術演算子を使用するとコンパイルエラーとなります。


・”Hello” + "World" ⇒ ”HelloWorld”
・”Hello” + 123 ⇒ ”Hello123”
・456 + ”Hello” ⇒ ”456Hello”

上記のルールと、問題①の演算ルールに従って計算を行うと、
"Sample:" + (5 + 5) + 5 ⇒  "Sample:" + 10 + 5 ⇒ "Sample:10"+ 5 ⇒ "Sample:105"
" Sample:" + 5 + 5 * 5 ⇒ " Sample:5" + 25 ⇒ " Sample:525"

したがって、「Sample:105 Sample:525」と出力されるため、答えはとなります。

※ Console.Write()
()の中をコンソール画面に出力します。その際、改行は行われません。
改行を伴う出力はConsole.WriteLine()を使用します。

<<  < 次の問題  前の問題 > >>

[Unity_317×90]

ゲーム制作関連のオススメ連載リンク

とっても手軽なゲーム制作体験!
Unityゲーム開発基礎

実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発

Recent News

Recent Tips

Tag Search