📜  C预处理程序测试4

📅  最后修改于: 2020-10-23 06:02:59             🧑  作者: Mango

C预处理程序测试4

16)以下程序的输出是什么?

#define MYFILE 
int main()
{
  printf("Hello\n");
  printf("Welcome to javatpoint\n");
  return 0;
}
#include MYFILE
  1. Hello\n Welcome to javatpoint\n
  2. Hello Welcome to javatpoint
  3. Hello Welcome to javatpoint
  4. Compile error

正确的选项是(b)。

说明:

  • 文件名也可以用作扩展名。
  • 预处理程序指令#include可以在程序中的任何位置使用。

在预处理期间,宏MYFILE被替换为 ,然后如下所示编译并执行程序:

int main()  
{  
  printf("Hello\n");  
  printf("Welcome to javatpoint\n");  
  return 0;  
}  
#include  

因此,程序的输出为:

你好

欢迎来到javatpoint

17)如果头文件在程序中包含两次,是否会导致错误?

  1. Yes
  2. No
  3. It is compiler dependent

正确的选项是(c)。

说明:

在GCC编译器和Turbo C中,编译器会处理这些问题,并且不会产生任何错误。在其他编译器中,可能会发生错误。

除非头文件已做好保证,否则请确保该文件不再包含在头文件中。

因此,由于在程序中两次使用头文件而导致的程序错误取决于编译器。

18)预处理程序可以捕获简单的错误,例如嵌套注释,大括号不匹配或缺少声明。

正确的选项是(b)。

说明:

该语句为假,因为预处理器无法捕获错误。它仅用给定的表达式替换宏。

编译器用于检测程序中的错误。

19)在每个C程序中,至少有一个预处理程序指令。

正确的选项是(b)。

说明:

该语句为假,因为任何C程序都不强制使用预处理程序指令。我们也可以使用C语言开发程序,而无需使用任何预处理程序指令。

20)以下程序的输出是什么?

#include
#define MAX(x, y) (x > y ? x : y)

int main()
{
    int a;
    a = MAX(3+1, 2+4);
    printf("%d\n", a);
    return 0;
}
  1. 5
  2. 9
  3. 8
  4. 6

正确的选项是(d)。

说明:

宏MAX(x,y)(x> y?x:y)返回给定两个数字的最大值。

步骤1: int a;变量“ a”被声明为整数类型。

步骤2:a = MAX(3 + 1,2 + 4);变成

=>一个=(3 + 1> 2 + 4?3 + 1:2 + 4)

=>一个=(4> 6?4:6)

=>一个= 6

步骤3: printf(“%d \ n”,a);它输出变量“ a”的值。

因此,程序的输出为6。