有以下程序 #include 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(

admin2020-11-23  17

问题 有以下程序
#include
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

解析 计算字符常量时一般使用其ASCII码进行运算。’a’+1=’b’,fun()中的第一个参数为地址传参,形参的变化会影响实参的变化,所以两次输出的b值都为字符’b’;第二个参数为值传参,形参变化不会影响实参,所以在函数fun()体内输出字符’B’,函数fun()体外输出结果为字符’A’,所以答案选A。
转载请注明原文地址:https://jikaoti.com/ti/mtD0FFFM
0

最新回复(0)