更多“有以下程序: #include<stdio.h> main { int x=4,y; do { y=x; if(!y)printf("x"); else pr ”相关问题
  • 第1题:

    下列程序段的输出结果是______。 void fun(int *x,int *y) {printf("%d%d",*x,*y);*x=3;*y=4;} main() { int x=1,y=2; fun(&y,&x); printf("%d%d",x,y); }

    A.2 1 4 3

    B.1 2 1 2

    C.1 2 3 4

    D.2 1 1 2


    正确答案:A
    解析:本题中函数传递的是变量的地址,如果形参在函数中发生改变,相对应的实参也就有了改变。

  • 第2题:

    下列程序段的输出结果是( )。include void fun(int *x, int *y) { printf("%d %d ", *x,*y); *x=3;*y=4;}main() { int x=1,y=2; fun(&y,&x); printf("%d %d\n",x,y); }

    A、2143

    B、1212

    C、1234

    D、2112


    正确答案:A

  • 第3题:

    有以下程序:

    void f( int y,int *x)

    { y=y+*x; *x=*x+y; }

    main()

    {int x=2,y=4;

    f(y,&x);

    ptintf("%d %d\n",x,y);

    }

    执行后输出结果是【 】。


    正确答案:84
    84 解析:“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响。函数f(y,*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参y的值将不改变,而实参x的值将改变,故最后输出的y值为4,而x的值为8。

  • 第4题:

    有以下程序:

    #include<stdio.h>

    main

    { int x=4,y;

    do

    { y=x;

    if(!y)printf("x");

    else

    printf("y"):

    x--;

    }while(x);

    }

    程序的输出结果是( )。

    A.A.xyyx

    B.yyyy

    C.yyxx

    D.yxyx


    正确答案:B
    本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。

  • 第5题:

    下列程序段的输出结果是 ______。 void fun(int * x,int * y) {pnntf("%d%d",* x,* y);* x=3;*y=4;} main() { int x=1,y=2; fun(&y,&x); printf ("%d%d",x,y); }

    A.2 1 4 3

    B.1 2 1 2

    C.1 2 3 4

    D.2 1 1 2


    正确答案:A
    解析:本题中函数传递的是变量的地址,如果形参在函数中发生改变,相刘应的实参也就有了改变。