问题 单项选择题

有以下程序: #include<stdio.h> void fun(char *c,int d) { *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

答案

参考答案:A

解析: 此题考查的是函数参数的传递。main函数中首先调用fun函数,fun函数的功能是使字符c的ASCII码值加1并输出,使d加1并输出对应的字符;fun(&b,a)输出“g,G”,但是由于fun函数的第一个参数进行的是地址传递,而第二个参数进行的是值传递,所以main函数中的printf函数输出“F,g”。

填空题
单项选择题