📜  C 程序的输出 | 34套

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

C 程序的输出 | 34套

问题 1. 假设整数大小为 4 个字节,字符大小为 1 个字节。以下程序的输出是什么?

#include 
union test {
    int x;
    char arr[8];
    int y;
} u;
int main()
{
    printf("%u", sizeof(u));
    return 0;
}

选项 :
A)12
乙)16
C)8
D)4

Answer - C

说明:在联合数据类型中,存储联合变量所需的内存是联合最大元素所需的内存。

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

#include 
int main()
{
    int n;
    for (n = 9; n != 0; n--)
        printf("%d", n--);
}

选项 :
A)9 7 5 3 1
B)9 8 7 6 5 4 3 2 1
C)无限循环
D)9 7 5 3



Answer - C

说明:循环将无限运行,因为 n 永远不会等于 0。

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

#include 
int main()
{
    int x = 1;
    if (x = 0)
        printf("Geeks");
    else
        printf("Geeksforgeeks");
}

选项 :
A) 极客
B) 运行时错误
C) Geeksforgeeks
D) 编译时错误

Answer  - C

说明:这里我们分配(=)而不是比较(==)x 与 0 这不正确,所以 else 部分将执行并打印 Geeksforgeeks。

问题 4.下面的c代码会输出什么?

#include 
int main()
{
    int i = 2, j = 2;
    while (i + 1 ? --i : j++)
        printf("%d", i);
    return 0;
}

选项 :
A)1
乙)2
C)0
D) 无输出

Answer : A

解释:
考虑while循环条件:

i + 1 ? -- i : ++j

在第一次迭代中:
i + 1 = 3 (True),所以三元运算符将返回



-–i i.e. 1

在 C 中,1 表示真,因此条件为真。因此 printf 语句将打印 1
在第二次迭代中:
i + 1 = 2 (True),所以三元运算符将返回

-–i i.e. 0

在 C 中,零表示假,因此条件为假。因此程序控制将从while循环中出来。

问题 5. 假设整数大小为 4 个字节,字符大小为 1 个字节。以下程序的输出是什么?

#include 
struct test {
    int x;
    char arr[8];
    int y;
} u;
int main()
{
    printf("%u", sizeof(u));
    return 0;
}

选项 :
A)12
乙)16
C)8
D)4

Answer - B

说明:在结构数据类型中,存储结构变量所需的内存量是所有成员的内存大小之和。