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 语句是一个问题。