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
说明:在结构数据类型中,存储结构变量所需的内存量是所有成员的内存大小之和。