itgle.com

下列程序的输出结果是______。includemain(){int i,j,k,a=3,b=2;i=(--a==b++)?--a;++b;下列程序的输出结果是______。#include<stdio.h>main(){ int i,j,k,a=3,b=2; i=(--a==b++)?--a;++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k);}A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3

题目
下列程序的输出结果是______。includemain(){int i,j,k,a=3,b=2;i=(--a==b++)?--a;++b;

下列程序的输出结果是______。#include<stdio.h>main(){ int i,j,k,a=3,b=2; i=(--a==b++)?--a;++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k);}

A.i=2,j=1,k=3

B.i=1,j=1,k=2

C.i=4,j=2,k=4

D.i=1,j=1,k=3


相似考题
更多“下列程序的输出结果是______。#include<stdio.h>main(){int i,j,k,a=3,b=2;i=(--a==b++)?--a;++b; ”相关问题
  • 第1题:

    下列程序执行输出的结果是()。includef(int A) {int b=0;static c=3;a=C++;b++;return(

    下列程序执行输出的结果是( )。 #include<stdio.h> f(int A) { int b=0; static c=3; a=C++;b++; return(a); } main() { int a=2,i,k; for(i=0;i<2;i++) k=f(a++); printf("%d\n",k); }

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析: 本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。
    在主函数中,第一次循环,i=0,调用k=f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。
    第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给 a返回,然后将c加1,得到k=a=4,c=5。

  • 第2题:

    下列程序执行输出的结果是()。include f(int a){ int b=0;stoic c=3;a=c++;b++;return(

    下列程序执行输出的结果是( )。 #include <stdio.h> f(int a) { int b=0; stoic c=3; a=c++;b++; return(a); } main() { int a=2,i,k; for(i=0;i<2;i++) k=f(a++); printf("%d\n",k); }

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。在主函数中,第一次循环,i=0,调用k=f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4, c=5。

  • 第3题:

    设有如下程序includemain(){int**k,*j,i=100j=&i;k=&j;printf("%d\n",**k);}

    设有如下程序 #include<stdio.h> main() { int**k,*j,i=100 j=&i; k=&j; printf("%d\n",**k); } 上述程序的输出结果是______。

    A.运行错误

    B.100

    C.i的地址

    D.j的地址


    正确答案:B
    解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

  • 第4题:

    下列程序执行输出的结果是()。 include f(int a) {int b=0; static c=3; a=C++;b++; re

    下列程序执行输出的结果是( )。

    #include<stdio.h>

    f(int a)

    { int b=0;

    static c=3;

    a=C++;b++;

    return(a);

    }

    main()

    { int a=2,i,k;

    for(i=0;i<2;i++)

    k=f(a++);

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

    }

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。
      在主函数中,第一次循环,i=0,调用k-f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。
      第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4,c=5。

  • 第5题:

    下列程序执行输出的结果是()。includef(int a){ int b=0;static c=3;a=c++;b++;return(

    下列程序执行输出的结果是( )。 #include<stdio.h> f(int a) { int b=0; static c=3; a=c++;b++; return(a); } main() { int a=2,i,k; for(i=0;i<2;i++) k=f(a++); printf("%d\n",k); }

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。在主函数中,第一次循环,i=0,调用k=f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4,c=5。