更多“有以下程序: #define f(x)(x*x)main { int i1,i2; i1 = f(8)/(4);i2 = f(4+4)/f(2+2); printf ”相关问题
  • 第1题:

    有以下程序: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。

  • 第2题:

    有以下程序: #define f(x)(x*x) main() { int i1,i2; il=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
    解析:对带参数的宏的展开只是将语句中宏名后面括号内的实参字符串代替#define命令行中的形参。本题中“il=f(8)/f(4)”用“#define  f(x)  (x*x)”代替得il=(8*8)/(4*4),结果为4:  “i2=f(4+4)/f(2+2)”用“#define  f(x)  (x*x)”代替得i2= (4+4*4+4)/(2+2*2+2),求得结果为3。故本题输出的值为4,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题:

    有以下程序: # 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。

  • 第5题:

    有以下程序: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


    正确答案:B
    解析:根据define的定义,可得f(2)=2*5+1=11,f(1+1)=1+1*5+17。