( 26 )有以下程序#include <stdio.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 ( " %e , %e \ n ", b , a ) ;}程序运行后的输出结果是A ) b , B , b , AB ) b , B , B , AC ) a , B , B

题目

( 26 )有以下程序

#include <stdio.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 ( " %e , %e \ n ", b , a ) ;

程序运行后的输出结果是

A ) b , B , b , A

B ) b , B , B , A

C ) a , B , B , a

D ) a , B , a , B


相似考题
参考答案和解析
正确答案:A
更多“( 26 )有以下程序#include &lt;stdio.h&gt;void fun ( char *c , int d ){*c=*c+1 ; d=d+1 ;prin ”相关问题
  • 第1题:

    设有以下函数:

    void fun(int n,char*$s){……}

    则下面对函数指针的定义和赋值均正确的是

    A.void(*pf)( );pf=fun;

    B.void*Pf( );pf=fun;

    C.void*pf( ); *pf=fun;

    D.void(*pf)(int,char);nf=&fun;


    正确答案:A
    解析:函数指针的定义形式是:数据类型标识符(*指针变量名)( )。void(*pf)( )定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

  • 第2题:

    有以下程序

    #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。

  • 第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题:

    设有以下函数:

    voidfun(intn,char}s){……}

    则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)(int,char);pf=&fun;

    B.void+pf( );pf=fun;

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char*);pf=fun;


    正确答案:D
    函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的人口地址,指向函数的指针应该定义为void(+pf)()。如果定义为void·pf(),则表示函数pf返回值为一个基类型为void的指针。因此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
    解析:本题考查用地址作为参数与值作为参数传递之间的不同。在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正确。