有下列程序 #include<stdio.h> int fun(char a,char*s) { int temp; temp=a; a=*s: *s=temp: return a;

admin2019-01-11  59

问题 有下列程序
    #include<stdio.h>
    int fun(char a,char*s)
    {
    int temp;
    temp=a;
    a=*s:
    *s=temp:
    return a;
    }
    void main()
    {
    char a=’3’,b=’6’,c;
    c=fun(a,&b);
    printf(’’%c,%c,%c\n’’,a,b,c);
    }
    程序执行后的输出结果是(    )。

选项 A、6,3,6
B、6,3,3
C、3,6,3
D、3,3,6

答案D

解析 主函数调用fun函数时,将实参a的值和变量b的地址拷贝给形参变量a,和形参指针变量s。这时形参a的值为’3’,形参指针s和实参b指向同一块内存空间,此空间存放的值为’6’。在函数fun中,变量temp的值为’3’,形参a被重新赋值为’6’,执行语句*s=temp时,将’3’赋给指针变量s指向的内存空间,这时,实参b也指向这块内存空间。函数调用结束时,变量c=’6’,a=’3’,b=’3’。选项D正确;本题答案为D。
转载请注明原文地址:https://kaotiyun.com/show/17xp777K
0

相关试题推荐
最新回复(0)