有以下程序:includedefine N 5define M N+1define f(x)(x*M)main(){int i1,i2;i1=f有以下程序: #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",i1,i2); } 程序的运行结果是( )。A.12 12B.11 7C.11 11D.12 7

题目
有以下程序:includedefine N 5define M N+1define f(x)(x*M)main(){int i1,i2;i1=f

有以下程序: #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",i1,i2); } 程序的运行结果是( )。

A.12 12

B.11 7

C.11 11

D.12 7


相似考题
更多“有以下程序:#include<stdio.h>#define N 5#define M N+1#define f(x)(x*M)main(){int i1,i2;i1=f ”相关问题
  • 第1题:

    有以下程序:includedefineN5defineMN+1definef(x)(x*M)main(){ inti1,i2;i1=f(2);i

    有以下程序: #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
    解析:题目中第1条要替换的语句i1=f(2);展开后是i1=(2*M);再展开为i1=(2*N+1);最后展开为i1=(2*5/1),结果使i1=11。而第2条语句i2=f(1+1);展开后为i2=(1+1*M);再展开为i2=(1+1*N+1);最后展开为i2=(1+1*5+1),结果使i2=7。故应该选择B。

  • 第2题:

    有以下程序: # define f(x) (x*x) main() { int i1, i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("% d, % d\n", i1, i2); } 程序运行后的输出结果是______。

    A.64, 28

    B.4, 4

    C.4, 3

    D.64, 64


    正确答案:C
    解析:用宏代换有:i1=f(8)/f(4)=(8×8)/(4×4)=4,i2=f(4+4)/f(2+2)=(4+4×4+4)/(2+2×2+2)=3。

  • 第3题:

    有以下程序includedefineN5defineMN+1definef(x)(x*M)main(){ inti1,i2;i1=f(2);i2

    有以下程序 #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
    解析:根据宏替换的替换规则,我们可知,f(2)=2*N+1=2,5+1=11,f(1+1)=1+1*N+1=1+1*5+ 1=7。

  • 第4题:

    有以下程序:include define f(x) (x * x)main ( ){ int i1 ,i2;i1 = f(8)/f(4) ;i2

    有以下程序:#include <stdio, h>#define f(x) (x * x)main ( ){ int i1 ,i2; i1 = f(8)/f(4) ;i2 =f(4 +4)/f(2 +2); printf("% d,% d\n" ,i1 ,i2);

    A.64,28

    B.4,4

    C.4,3

    D.64,64


    正确答案:C
    解析:程序中i1=f(8)/f(4)宏替换后得到i1=(8*8)/(4*4),结果为4;i2=f(4+4)/f(2+2)宏替换后得到i2=(4+4*4+4)/(2+2*2+2),其结果为3。故本题输出的值为4,3。

  • 第5题:

    有以下程序

    #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
    解析:根据宏替换的替换规则,我们可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。