📜  C 程序的输出 |设置 48

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

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() 允许可变数量的参数。由于没有格式说明符,第二个参数被忽略并警告。