C 程序的输出 |设置 45
1. 以下程序的输出是什么?
#include
void main()
{
int i = 10;
static int x = i;
if (x == i)
printf("equal");
else if (x < i)))
printf("less than");
else
printf("greater than");
}
选项:
(a) 相等
(b) 大于
(c) 小于
(d) 编译器错误
(e) 以上都不是
Answer: (d)Compiler error
解释:这里'x'是一个静态变量,'i'是一个自动变量。与静态变量相比,自动变量是运行时实体,静态变量是加载时实体。运行时变量不能用加载时变量初始化。
2. 以下程序的输出是什么?
#include
void main()
{
printf("%s", "i"
"am"
"good");
}
选项:
(a) 我很好
(双
(c) 好
(d) 亚姆古德
(e) 编译器错误
Answer: (d)iamgood
说明:在 C 中,字符串常量“ab”与“a”“b”相同。
3. 以下程序的输出是什么?
#include
#include
void main()
{
printf("%d %d", sizeof("program"), strlen("program"));
}
选项:
(一)7 7
(b)8 8
(c)8 7
(d)7 8
(e) 以上都不是
Answer: (c)8 7
说明: strlen返回字符串的长度,不计算空字符,而sizeof在计算字符串的大小时也包括空字符。
4. 以下程序的输出是什么?
#include
void main()
{
int colour = 2;
switch (colour) {
case 0:
printf("Black");
case 1:
printf("Red");
case 2:
printf("Aqua");
case 3:
printf("Green");
default:
printf("Other");
}
}
选项:
(a) 水族
(b)AquaGreen其他
(c)AquaGreen
(d) 红色
(e) 以上都不是
Answer: (b)AquaGreenOther
说明: switch case 中没有break语句,所以 case 2 之后的所有语句,包括default语句,都会被执行。
5. 以下程序的输出是什么?
#include
void main()
{
if (printf("cisgood"))
printf("i know c");
else
printf("i know c++");
}
选项:
(a) 我知道 c
(b) 我知道 C++
(c)cisgoodi 知道 c
(d)cisgoodi 知道 C++
(e) 编译器错误
Answer: (c)cisgoodi know c
说明: printf 的返回类型是integer ,即包含空格的字符数。因此,在 if 条件下,printf 的计算结果为 7,这是非负数。因此遵循真实条件。