niusouti.com

以下程序的输出结果是( )。 include main()fint x=0; sub(&x,16,2); printf("%d\n",以下程序的输出结果是( )。include<stdio.h>main()fint x=0;sub(&x,16,2);printf("%d\n",x);}sub(int*a,int n,int k){if(k<=n) sub(a,n/2,2*k);*a+=k;}

题目
以下程序的输出结果是( )。 include main()fint x=0; sub(&x,16,2); printf("%d\n",

以下程序的输出结果是( )。

include<stdio.h>

main()

fint x=0;

sub(&x,16,2);

printf("%d\n",x);

}

sub(int*a,int n,int k)

{if(k<=n) sub(a,n/2,2*k);

*a+=k;

}


相似考题
更多“以下程序的输出结果是( )。 include<stdio.h> main()fint x=0; sub(&amp;x,16,2); printf("%d\n", ”相关问题
  • 第1题:

    下列程序的输出结果是【】。 include void fun(int x) { if(x/2>0) fun(x/2); printf("%d"

    下列程序的输出结果是【 】。

    include <stdio.h>

    void fun(int x)

    {

    if(x/2>0) fun(x/2);

    printf("%d",x);

    }

    main()

    {

    fun(3);printf("\n");

    }


    正确答案:13
    13 解析:此题考查的是函数的递归调用,进入主函数调用fun()函数,进行if语句的判断,当x=3时,条件成立,执行fun(x/2);语句,递归调用fun()函数本身,进行if语句条件判断,if(x/2>0)条件不成立,用printf输出1;返回上一次调用fun()函数,printf输出3,因此程序的最终输出结果为:13。

  • 第2题:

    有以下程序:includedefine F(x,y) (x)*(y)main(){int a=3,b=4; printf("%d\n",F(a++,

    有以下程序: #include <stdio.h> #define F(x,y) (x)*(y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:本题考查带参数的宏定义。对F(a++,b++)展开后,宏的返回值为3×4=12,这里a++,b++都是先使用变量值,再自增。

  • 第3题:

    有以下程序:include define F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b

    有以下程序: #include <stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:在程序中先将表达式中的宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

  • 第4题:

    有以下程序:includemain(){int x=3,y=2,z=1; printf("%d\n",x/y&~z);程序运行后的

    有以下程序: #include <stdio.h> main() { int x=3,y=2,z=1; printf("%d\n",x/y&~z); 程序运行后的输出结果是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:D
    解析:&是按位“与”运算符,若参加运算的两个运算量的相应位都为1,则该位的结果值为1,否则为0。~是“取反”运算符,用来对一个二进制数按位取反,即将0变1,1变0。对于x/y&~z,先计算x/y的值,结果为1,用十六进制表示为0001;z用十六进制表示为0001,则~z为FFFE;最后进行&运算,整个表达式的值为0。

  • 第5题:

    以下程序的输出结果是()。includemain(){int k=17; printf("%d,%o,%x\n",k,k,k);}A.17,

    以下程序的输出结果是( )。 #include <stdio.h> main() { int k=17; printf("%d,%o,%x\n",k,k,k); }

    A.17,021,0x11

    B.17,17,17

    C.17,0x11,021

    D.17,21,11


    正确答案:D
    解析:printf函数对不同类型的数据用不同的格式描述符,“%d”是以带符号的十进制形式输出整数(正数不输出符号);“%o”以八进制无符号形式输出整数(不包括前导符0);“%x”以十六进制无符号形式输出整数(不包括前导符0x)。