C 程序的输出 |设置 48
1.以下程序的输出是什么?
#include
#define square(x) (x * x)
int main()
{
int x, y = 1;
x = square(y + 1);
printf("%d\n", x);
return 0;
}
选项:
(一) 错误
(乙) 4
(三) 3
(D) 垃圾值
Answer : (C)
说明:宏函数square(x)(x*x) 计算给定数字的平方。
Initially int y = 1;
In the next step x = square(y+1);
x = y+1 * y+1; Here square(x) is replaced x*x .
x = 1+1 * 1+1;
x = 1 + 1 + 1;
x = 3;
2.以下程序的输出是什么?
下面给出的代码是从命令行执行的。
用户输入:myfile 2 4 6
// myprog.c
#include
int main(int argc, char* argv[])
{
int result;
result = argv[2] + argv[4] + argv[6];
printf("%d", result);
return 0;
}
选项:
(A) 它将反映垃圾值。
(B) 错误
(三) 12
(D) 我的档案 12
Answer : (B) Error
说明:错误,因为 argv[2]、argv[4] 和 argv[6] 属于字符串类型,我们无法在不将字符串转换为整数类型的情况下执行算术运算。
3.以下程序的输出是什么?
#include
void main()
{
unsigned char x = 400;
printf("%d", x);
}
选项:
(一) 错误
(二) 144
(C) 400
(D) 垃圾值
Answer :(B) 144
说明:由于输入超出了 unsigned char 的范围,它将反映输入的循环值。
4.以下程序的输出是什么?
#include
int main()
{
int i;
char input;
for (i = 1; i <= 5; i++) {
// The input provided is 'X'
scanf("%c", &input);
printf("%c", input);
ungetc(input, stdin);
}
return 0;
}
选项:
(一) 错误
(乙) X
(C) XXXXX
(D) 垃圾值。
Answer:(C)- XXXXX
说明:循环将运行 5 次。现在,我们将输入提供为“X”。哪个被扫描为“输入”。
printf("%c", input);
The above line prints 'X'
现在 ungetc(input, stdin) 语句将字符'X' 推回到输入流中。
对于循环的下一次运行。
由于之前使用的“ungetc”函数,scanf 语句从“stdin”获取输入。现在 printf 语句将打印 'X' 因为 input='X' 和 ungetc(input, stdin) 将 'X' 推回输入流,并且相同的过程将发生在剩余的迭代中。
5.以下程序的输出是什么?
#include
int main()
{
printf("Geeksfor ", "Geeks\n");
return 0;
}
选项:
(A) 极客
(B) GeeksforGeeks
(C) 错误
(D) 极客
Answer:(A) Geeksfor
说明: printf() 允许可变数量的参数。由于没有格式说明符,第二个参数被忽略并警告。