更多“有以下程序: main() { int m=3, n=4, x; x=-m++; x=x+8/++n; printf("% d\n", x); } 程序运行后的输出结果是______。A.3B.5C.-1D.-216”相关问题
  • 第1题:

    有以下程序 void change(int k[]){k[0]=k[5];} main() { int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4) { change(&x[n]); n++;} for(n=0;n<5;n++) printf("%d",x[n]); printf("\n"); } 程序运行后输出的结果是______。

    A.678910

    B.13579

    C.12345

    D.62345


    正确答案:A
    解析:本题考点为数组名作函数参数,当n=O时,把x[0]的地址传绐被调函数change,即将形参k与实参x指向同一个存储单元x[0],执行被调函数后,k[0]=6,即x[0]=6:当n=1时,形参k指向x数组的第1个数组元素所在单元,即 k[0]与x[1]共用同一存储单元,执行被调函数后,k[0]=7,即x[1]=7,依次类推得出x[0]到x[4]的值分别为6、7、8、 9、10。

  • 第2题:

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

    main()

    {char c;int n=100;

    loat f=10;double x;

    x=f*=n/=(c=50);

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

    }


    正确答案:×
    0

  • 第3题:

    有以下程序

    include<stdio.h>

    fun(int x)

    {if(x/2>O)fun(x/2);

    prinff(“%d.”,x);

    {

    main( )

    { fun(6),printf(“\n”);}

    程序运行后的输出结果是【 】。


    正确答案:1 3 6
    1 3 6 解析:依次执行fun(6),fun(3),fun(1),当执行fun(6)时要调用fun(3),执行fun(3)时要调用fun(1),所以输出的结果为1 3 6。

  • 第4题:

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

    有以下程序: #include<studio.h> #defme 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符合题意。

  • 第5题:

    以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

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

    include<stdio.h>

    main()

    { int x=20;

    printf("%d", 0<x<20);

    printf("%d\n", 0<x && x<20);

    }


    正确答案:10
    10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

  • 第6题:

    以下程序运行后的输出结果是 [ ]。

    main()

    {int x, a=1,b=2,c=3,d=4;

    x=(a<b)?a:b; x=(x<c)?x:c; x=(d>x)?x:d;

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

    }


    正确答案:√
    1 解析:条件运算符优先于赋值运算,但低于逻辑运算、关系运算、算术运算。条件运算的一般形式为(表达式1)?(表达式2):(表达式3),当(表达式1)值为真时,(表达式2)的值为整个表达式的值;当(表达式1)的值为假时,(表达式3)的值为整个表达式的值。题中执行表达式“x=(ab)?a:b”后,x=1;再执行表达式“x=(xc)?x:c”后,x=1,将此值代入后—个表达式“x=(d>x)?x:d”,由于“d>x”值为真,故x的值为1。

  • 第7题:

    有以下程序

    #include <stdi0.h>

    imf(im x); .

    main()

    { int n=1,m; ‘

    m=f(f(f(n)));printf(”%d\n”,m);

    l

    intf(int x)

    { returnx*2;l

    程序运行后的输出结果是( )。

    A.8

    B.2

    C.4

    D.1


    正确答案:A
    第一次调用m=f(f(f(1))),第二次为m=f(f(2)),第三次为m=f(4),即返回值为8,选项A)正确。

  • 第8题:

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

  • 第9题:

    以下程序运行后的输出结果是main(){ int x=15; while(x>10&&x<50) { x++; if(x/3) { x++; break; } else continue; } printf("%d\n",x);}


    正确答案:17
    当x=15时,while条件为真,执行x++;,这时x的值为16,if条件为真,执行x++;后跳出循环体,此时x的值为17。

  • 第10题:

    有以下程序:

    include<stdio.h>

    int f(int x):

    main

    {int n=1,m;

    m=f(f(f(n)));printf("%d\n",m);

    }

    int f(int x)

    {return x*2;)

    程序运行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.8


    正确答案:D

    本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

  • 第11题:

    阅读程序: main( ) {int x; scanf("%d',& x); if (x- -<5)printf("%d\n",x); else printf("%d\、n",x+ +); } 程序运行后,如果从键盘上输入5,则输出结果是 ( )

    A.3

    B.4

    C.5

    D.6


    正确答案:B

  • 第12题:

    单选题
    有以下程序:#include int f(int x); main(){ int n=1,m;  m=f(f(f(n))); printf(%d,m); }int f(int x) { return x*2;} 程序运行后的输出结果是(  )。
    A

    4

    B

    2

    C

    8

    D

    1


    正确答案: D
    解析:
    考查函数嵌套调用,第一次调用的是最内层的f(n),即f(1)返回值2。第二次调用中间的f(f(n)),即f(2)返回值4。最后调用最外层的f(f(f(n))),即f(4)返回值8,最后打印输出。答案选择C选项。

  • 第13题:

    有以下程序: main() {int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是 ______。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:执行“printf("%d%d",m++,++n);”后,输出的是m和n+l的值1235,接着执行“printf("%d%d\n"n++,++m);”输出n和m+1的值3514。

  • 第14题:

    有以下程序:

    int sub(int n) { return(n/10+n%10); }

    main()

    { int x, y;

    scanf("% d", &x);

    y=sub(sub(sub(x)));

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

    }

    若运行时输入:1234<回车>,程序的输出结果是【 】。


    正确答案:10
    10 解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

  • 第15题:

    有以下程序 main() { int m=3 n=4,X; X=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是

    A.3

    B.5

    C.-1

    D.-2


    正确答案:D
    解析:本题考核的知识点是运算符的优先级。主函数中首先定义了整型变量m、n和x,并给m和n赋初值为3和4,接着执行两条赋值语句,第一条x=-m++等价于x=-(m++),其值即为-3,第二条x=x+8/++n等价于X=X+8/(++n),即为x=-3+8/5=-2,因此最后输出x的值为-2。所以,4个选项中选项D符合题意。

  • 第16题:

    有以下程序 main() { iht m=3,n=r,x; x=-m++; X=x+8/++n;printf("%d\n",x); } 程序运行后的输出结果是

    A.3

    B.5

    C.-1

    D.-2


    正确答案:D
    解析:主函数中首先定义了整型变量m、n和x,并给m和n赋初值为3和 4,接着执行两条赋值语句,第一条x=-m++等价于x=-(m++),其值即为-3,第二条x=x+ 8/++n等价于x=x+8/(++n),即为x=-3+8/5=-2,因此最后输出x的值为-2。

  • 第17题:

    以下程序的输出结果是( )。 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;

    }


    正确答案:14
    14 解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k=n不成立,因此,最后得x=2+4+8=14。

  • 第18题:

    以下程序运行后的输出结果是 ______。 main() { int x=0210;printf("%x\n",x); }

    A.88

    B.86

    C.77

    D.21


    正确答案:A
    解析:x以0开头是以八进制的形式赋值的,输出时要输出其对应的十六进制。0210对应的十六进制是88。

  • 第19题:

    有以下程序: include main( ){ int m =12,n=34;printf( "% d% d" ,m++ , ++n);printf(

    有以下程序: #include <stdio.h>main( ){ int m =12,n=34; printf( "% d% d" ,m++ , ++n); printf("% d% d \n" ,n ++ , ++m); }程序运行后的输出结果是( )。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:程序执行printf("%d%d",m++,++n);后,输出的是m和n+1的值1235,然后m+1=13,再执行printf("%d%d\n",n++,++m);输出n和m+1的值3514,之后n+1=36。这里要注意的是m++和++m的区别:m++是先输出m的值,再执行m++;++m是先执行++m,再输出m的值。

  • 第20题:

    有以下程序:includedefine N 8void fun(int*x,int i){*x=*(x+i)+1;}main(){int a[N]=

    有以下程序: #include<stdio.h> #define N 8 void fun(int*x,int i) {*x=*(x+i)+1;} main() {int a[N]={1,2,3,4,5,6,7,8},i; fun(a,2); for(i=0;i<N/2;i++) {printf("%d",a[i]);} printf("\n"); } 程序运行后的输出结果是( )。

    A.1 3 1 3

    B.3 2 3 4

    C.4 2 3 4

    D.1 2 3 4


    正确答案:C
    解析:函数fun(int*x,int i)的功能是把数组元素x[i]的值加1赋给x[0]。所以在主函数中执行fun(a,2)后,数组元数a[0]的值等于4。然后在for循环语句中,输出数组a中的前4个元素的值,分别是4,2,3,4。

  • 第21题:

    有以下程序: #include<stdio.h> int f(int x): main {int n=1,m; m=f(f(f(n)));printf("%d\n",m); } int f(int x) {return x*2;) 程序运行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.8


    正确答案:D
    本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

  • 第22题:

    有以下程序: main() { int n=0,m=l,x=2; if(!n) x-=l: if(!m) x-=2; if(!x) x-=3; printf (" %d\n",x); } 执行后的输出结果是 ______。

    A.2

    B.1

    C.3

    D.6


    正确答案:B
    解析:因n=0,故!n为真,执行语句x-=1得x=x-1=2-1=1;条件!m和!x不成立,所以x=1,正确答案为1。

  • 第23题:

    有以下程序: include main( ){ int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d

    有以下程序: #include <stdio. h > main( ) { int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d \n" ,x); } 程序运行后的输出结果是( )。

    A.3

    B.5

    C.-1

    D.-2


    正确答案:D
    解析:程序中x=-m++执行后x=-3,执行x=x+8/++n相当于执行x=-3+8/5,即n先增加1,再代入表达式运算,结果为-2。