C 程序的输出 |设置 55
1. 以下程序的输出是什么?
#include
int main()
{
int a = 03489;
printf("%d", a);
return (0);
}
选项:
1. 1865
2.运行时错误
3. 语法错误
4. 0
The answer is option(3).
Explanation:
任何带有 0 的整数值前缀都充当八进制数,但允许的数字是 0 到 7。但这里有 8 和 9,这会导致语法错误。
2. 以下程序的输出是什么?
#include
int main()
{
char c;
int i;
c = 'B';
i = c - 'A';
printf("%d", i);
return (0);
}
选项:
1. 5
2. 1
3. 不兼容的类型声明
4. -5
The answer is option(2).
说明:这里我声明为整数。所以,它会操作 ASCII 值。因为 B 的 ASCII 值是 66,A 的 ASCII 值是 65。因此 i = c-'A' = 1。
3. 下面程序的输出是什么?
#include
int main()
{
printf("GEEKS");
main();
return (0);
}
选项:
1.极客
2.运行时错误
3.极客无限
4.编译时错误
The answer is option(3).
说明:因为 main()函数反复调用自身。
4. 下面程序的输出是什么?
#include
int main()
{
int n, i = 5;
n = - - i--;
printf("%d%d", n, i);
return (0);
}
选项:
1. 54
2. 44
3. 45
4. 55
The answer is option(1).
说明:这里的minus*minus 在语句n=- -i– 中作为i 之前的加号。
参考:https://www.geeksforgeeks.org/unary-operators-cc/
5. 以下程序的输出是什么?
#include
int main()
{
int a = 10;
printf("%d", a++ * a++);
return (0);
}
选项:
1. 100
2. 110
3. 105
4.无输出
The answer is option(2).
说明:这里 a++ 是后增量。因此,当它获得 a++ 时,缓冲区中 a 的值更改为 11,但仍为 a=10。当它再次被调用时,a 将是 11。所以它将是 11*10=110。
6. 下面程序的输出是什么?
#include
int main()
{
int a = 20, b = 8, c;
c = a != 5 || b == 4;
printf("c=%d", c);
return (0);
}
选项:
1.c=0
2.无输出
3.编译时间
4. c=1
The answer is option(4).