有以下程序 include define N 5 define M N+1有以下程序 #include <stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) main() { int i1,i2; i1=f(2) i2=f(1+1); printf("%d %d\n",i1,i2); } 程序的运行结果是______。A.12 12B.11 7C.11 11D.12 7

题目
有以下程序 include define N 5 define M N+1

有以下程序 #include <stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) main() { int i1,i2; i1=f(2) i2=f(1+1); printf("%d %d\n",i1,i2); } 程序的运行结果是______。

A.12 12

B.11 7

C.11 11

D.12 7


相似考题
参考答案和解析
正确答案:B
解析:在编译时预处理程序用“替换文本”来替换宏,并用对应的实参来替换“替换文本”。此题中的替换文本分别为: N+1、(x*M)。引用带参的宏名i1=f(2),在经过宏替换后i1=2'N+1=2'5+1=11(注:因为对宏M的替换中N+1没有加括号,所以对宏f(x)的替换文本展开后就变为:x*N+1形式);与上相同i2在引用带参的宏名并替换展开后变为:
  i2=1+1*N+1=1+1*5+1=7,所以答案选B。
更多“有以下程序 #include <stdio.h> #define N 5 #define M N+1 ”相关问题
  • 第1题:

    在C程序中如果要使用数学函数,如sqrt(x),pow(x,y)等,需要在程序中加入的语句是______

    A.#define <math.h>

    B.#define <stdio.h>

    C.#include <stdio.h>

    D.#include <math.h>


    C

  • 第2题:

    2、在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是

    A.#include <math.h>

    B.#include <stdio.h>

    C.#define <math.h>

    D.#define <stdio.h>


    A

  • 第3题:

    6、用scanf和printf函数时要用以下哪个语句导入头文件?

    A.#include<std.h>

    B.#include<stdio.h>

    C.#define<stdio.h>

    D.#include stdio.h


    stdio.h

  • 第4题:

    16、在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是

    A.#include <math.h>

    B.#include <stdio.h>

    C.#define <math.h>

    D.#define <stdio.h>


    #include

  • 第5题:

    在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是()

    A.#include <stdio.h>

    B.#define <stdio.h>

    C.#include <math.h>

    D.#define <math.h>


    #include

  • 第6题:

    在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是________。

    A.#include <math.h>

    B.#include <stdio.h>

    C.#define <math.h>

    D.#define <stdio.h>


    C