📜  C 程序的输出 |设置 45

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

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,这是非负数。因此遵循真实条件。