有以下程序 void fun(char *c,int d) { *c=*c+1;d=d+1; printf(“%c,%c”,*c,d); } main() { char a='A',b='a'; fun(&b,a);printf(“%c,%c\n”,a,b); } 程序运行后的输出结果是A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

题目

有以下程序 void fun(char *c,int d) { *c=*c+1;d=d+1; printf(“%c,%c”,*c,d); } main() { char a='A',b='a'; fun(&b,a);printf(“%c,%c\n”,a,b); } 程序运行后的输出结果是

A.B,a,B,a

B.a,B,a,B

C.A,b,A,b

D.b,B,A,b


相似考题
更多“有以下程序void fun(char *c,int d){*c=*c+1;d=d+1; printf(“%c,%c”,*c,d);}main(){ char a='A', ”相关问题
  • 第1题:

    有以下程序

    #include <atdio.h>

    Void Fun(char*c,int d)

    { *c=*c+1;d=d+1;

    PrintF(“%c,%c,”,*c,d);

    }

    Main()

    { char B+’a’,a=’A’;

    Fun(&B,a);printF(“%c,%c\n”,B,a);

    }

    程序运行后的输出结果是

    A.B,B,B,A

    B.B,B,B,A

    C.a,B,B,a

    D.a,B,a,B


    正确答案:A
    解析:函数fun的第一个参数传指针,可以将更改后的值传回调用函数,第二个参数传值,不能将更改后的值传回调用函数,故选A。

  • 第2题:

    有以下程序 void fun(char *c, int D) { *c-*c+1;d=d+1; printf("%c, %c,",*c, D) ;}main(){ char a='A', b='a'; fun(&b, A) ; printf("%c, %c\n", a, B) ;} 程序运行后的输出结果是

    A.B, a, B, a

    B.a, B, a, B

    C.A, b, A, b

    D.b, B, A, b


    正确答案:D
    解析:本题考查用地址作为参数与值作为参数传递之间的不同。在c语言中,数据传递是单向传递的。“值传递”就是实参把对应的值传给相应的形参变量,然后形参和实参不再有任何联系,在被调用函数中,对形参的修改并不影响对应的实参。“地址传递”就是实参把相应的地址传给相应的行参变量,在被调用函数中对行参的修改将修改对应的实参地址对应的值.程序中定义了两个字符型变量'a'和'b',并分别赋初值为,At和'a',然后调用函数fun(),将b的地址和a值作为实参.在函数fun()中第一个参数是传递地址,故在调用函数fun()中对参数做的修改(即将b值加一)将影响字符型变量的值(变为b),函数fun()第二个参数是传值的,故在调用函数fun()对第二个参数做的修改不影响字符型变量a(即'a'的值仍为'A'),所以在fun()函数中输出的是d为b,B,接着在主函数中,输出a,b,然后退出fun()函数,接着执行后面的语句,输出A,b.所以最后输出为b,B,A,b。所以4个选项中D正确。

  • 第3题:

    有以下程序: void fun(char *c,int d) { *c=*c+1;d=d+1; printf("%c,%c,",*c,d); } main() { char a='A',b='a'; fun(&b,a); printf("%c,%c\n",a,b); } 程序运行后的输出结果是( )。

    A.B,a,B,a

    B.a,B,a,B

    C.A,b,A,b

    D.b,B,A,b


    正确答案:D
    解析:程序中定义了两个字符型变量'a'和'b',并分别赋初值为'A'和'a',然后调用函数fun(),将b的地址和a值作为实参。在函数fun()中第一个参数是传递地址,故在调用函数fun()中对参数做的修改(即将b值加一)将影响字符型变量的值(变为b),函数fun()第二个参数是传值的,故在调用函数fun()对第二个参数做的修改不影响字符型变量a(即'a'的值仍为'A'),所以在fun()函数中输出的d为b,B,接着在主函数中,输出a,b,然后退出fun()函数,接着执行后面的语句,输出A,b。所以最后输出为b,B,A,b。4个选项中D正确。

  • 第4题:

    有以下程序:

    include<stdio.h>

    void fun(char*C,int d)

    {*c=*c+1,d=d+1;

    printf(%"c%,c",*c,d);

    }

    main( )

    {char b=aa=A;

    fun(&b,a);printf(%"c,%c\n",b,a);

    )

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

    A.b,B,b,A

    B.b,B,B,A

    C.a,B,B,a

    D.a,B,a,B


    正确答案:A

    本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。

  • 第5题:

    有以下程序: #include<stdio.h> void fun(char*C,int d) {*c=*c+1,d=d+1; printf(%"c%,c",*c,d); } main( ) {char b=aa=A; fun(&b,a);printf(%"c,%c\n",b,a); ) 程序运行后的输出结果是( )。

    A.b,B,b,A

    B.b,B,B,A

    C.a,B,B,a

    D.a,B,a,B


    正确答案:A
    本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。