MENU

C言語 謎解き 演算子 1(基本算術演算子)

記憶が定かでないのですが、その昔に大学?もしくは仕事関係?の方に頂いた、C言語の謎解き問題集です。プログラムの実行結果がどうなるかを考えるというものです。C言語の文法や仕様をきちんと理解していないと解けないので、理解度を確認するのにぴったりです。
問題集とは言ってもソースコードしか無いので、コンパイル&実行した結果と簡単な解説も記載したいと思います。元のプログラムはC89(ANSI C)だと思われるので、現在のPC環境で実行することを念頭にC99に準拠するように一部を書き換えています。なお、私の実行環境はWin10(x86_64) + Clangですが、gccでも同じ結果になると思います。間違いなどがありましたらご指摘ください。

では、早速問題です。
次のプログラムの実行結果はどうなるでしょうか?

#include <stdio.h>

int main(void)
{
    int x;

    x = - 3 + 4 * 5 - 6;
    printf("%d\n", x);      // 演算子 1.1

    x = 3 + 4 % 5 - 6;
    printf("%d\n", x);      // 演算子 1.2

    x = - 3 * 4 % - 6 / 5;
    printf("%d\n", x);      // 演算子 1.3

    x = ( 7 + 6 ) % 5 / 2;
    printf("%d\n", x);      // 演算子 1.4

    return 0;
}
Linux kernel の一部分

(右上の + マークをクリックすると実行結果が表示されます)
まずは小手調べといったところですが、全問正解できましたか?

(右上の + マークをクリックすると解説が表示されます)

※実行環境
clang version 14.0.6
Target: x86_64-pc-windows-msvc

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次