📜  C 程序的输出 | 52套

📅  最后修改于: 2022-05-13 01:56:10.978000             🧑  作者: Mango

C 程序的输出 | 52套

1. 以下程序的输出是什么?

#include 
int main()
{
    int a = 5, *b, c;
    b = &a;
    printf("%d", a * *b * a + *b);
    return (0);
}

选项:
1. 130
2. 103
3. 100
4. 310

The answer is the option(1).

解释:
这里的表达式 a**b*a + *b 使用 C/C++ 概念中的指针。这里 a**b*a + *b 表示 5*(指针 b 的值为 5)*5 +(指针 b 的值再次为 5)。
所以结果是 130。

2. 以下程序的输出是什么?

#include 
int main()
{
    int i, j = 3;
    float k = 7;
    i = k % j;
    printf("%d", i);
    return (0);
}

选项:
1.无输出
2.编译时错误
3. 异常终止
4. 1



The answer is option(2).

说明:这里 k 是浮点变量,我们不能在浮点变量中应用 %运算符符。 C 和 C++ 中的模运算符% 仅定义为两个整数,但有一个 fmod()函数可用于与双打。
参考:https://www.geeksforgeeks.org/can-use-operator-floating-point-numbers/

3. 以下程序的输出是什么?

#include 
int main()
{
    int a;
    int b = 5;
    a = 0 && --b;
    printf("%d %d", a, b);
}

选项:
1. 0 4
2.编译时错误
3. 0 5
4.语法错误

The answer is option(3).

说明:在逻辑 AND运算符,如果任何条件为假,则整个结果为假。此处 0 在 c 中充当假值,因此整个结果为假并且不执行 –b。因此结果是 0 5。

4. 以下程序的输出是什么?

#include 
int main()
{
    int a = 0;
    while (a < 5) {
        printf("%d\\n", a++);
    }
}

选项:
1.无输出
2. 0\n\1\n\2\n\3\n\4\n
3. 0\n1\n2\n3\n4\n
4.编译错误

The answer is option(3).

说明:这里,while 循环将执行 5 次。我们知道 a++ 是后增量,在后增量中我们首先分配然后增量。当第一次 while 循环执行时, while(0<5) printf函数包含 \\n ,它充当反斜杠转义字符。因此,它在第一个循环中打印 0\n,在第二个循环中打印 1\n,在第三个循环中打印 3\n,依此类推。 5. 以下程序的输出是什么?

#include 
int main()
{
    int x = 5;
    if (x >= 10)
        printf("Hello");
    printf("GFG");
    else printf("hi");
}

选项:
1.无输出
2. 你好
3.你好GFG
4.编译错误

The answer is option(4).

解释:它会产生编译错误,因为当 if 子句中只有一个语句时,则不需要大括号,但如果有多个语句,那么我们必须用大括号括起来,这里我们不提供大括号。因此,我们将收到编译时错误,并显示一条没有先前 if 的 else 消息。处理 C 中不允许的 if 语句是一个问题。