他の回答とコメントは、これが恐ろしい、誤解を招く、下手に書かれた質問である多くの方法のいくつかを呼び起こします。しかし、他の誰もまだ特定していない別の問題があります。質問は:
関数宣言の後にセミコロン( ';')は必要ありません。正しいか間違っているか。
では、関数宣言を見てみましょう。
int func(); /* */
/* ^ */
/* | */
/* That whitespace is "after the function declaration". */
そのすべてが宣言です。宣言がされていないint func()
と、その後に続きます;
。宣言のint func();
後に空白が続きます。
だから、問題は:宣言の後にセミコロンが必要ですか?もちろん違います。宣言にはすでにセミコロンが含まれており、セミコロンで終了しています。 宣言後のセミコロンは無意味です。対照的に、関数宣言の後のint func(); ;
セミコロンになります。
質問はほぼ間違いなく「trueまたはfalse:関数宣言の最後のトークンはセミコロンです」という質問をすることを意図していましたが、クイズの作成者が問題について明確に考えていなかったため、それは彼らが書いた質問ではありません。
私のアドバイスは、プログラミング言語のクイズを完全に回避することです。彼らはかなりひどいです。
面白い事実ですが、私たちがこの問題について話しています。C#では、これらはすべて合法です。
class C {}
class D {};
struct E {}
struct F {};
C#では、クラスまたは構造体の宣言は、自由裁量でセミコロンで終了する場合と終了しない場合があります。この奇妙な小さな機能は、C / C ++プログラマーがC#に来て、型宣言が無意味なセミコロンで終わるという指先で操作できるようにするために追加されました。設計チームは、この習慣があることで彼らを罰したくありませんでした。:-)