有以下程序:includevoid fun(char *c,intD){*c=*c+1;d+=1;printf("%c,%c",*c,D;}main(有以下程序: #include<stdio.h> void fun(char *c,intD){ *c=*c+1; d+=1; printf("%c,%c",*c,D;} main() { char a='F',b='f'; fun(&b,A); printf("%c,%c\n",a,B);} 程序的输出结果为( )。A.g,GF,gB.g,FF,gC.G,

题目
有以下程序:includevoid fun(char *c,intD){*c=*c+1;d+=1;printf("%c,%c",*c,D;}main(

有以下程序: #include<stdio.h> void fun(char *c,intD){ *c=*c+1; d+=1; printf("%c,%c",*c,D;} main() { char a='F',b='f'; fun(&b,A); printf("%c,%c\n",a,B);} 程序的输出结果为( )。

A.g,GF,g

B.g,FF,g

C.G,fF,G

D.f,gf,g


相似考题
更多“有以下程序:#include<stdio.h>void fun(char *c,intD){*c=*c+1;d+=1;printf("%c,%c",*c,D;}main( ”相关问题
  • 第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+=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

  • 第3题:

    以下程序运行后,输出结果是______。 int d=1; fun(int p) { int d=5; d+=p++; printf("%d",d); } main() { int a=3; fun(a); d+=a++; printf("%d\n",d); }

    A.84

    B.99

    C.95

    D.44


    正确答案:A

  • 第4题:

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

  • 第5题:

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