若有以下程序: #include void sp(int *a) { int b=2; *a:,*a*2;printf(*%d,",*a); a=&b; *a=*a*2;printf("%d,",*a);

admin2021-07-09  30

问题 若有以下程序:
    #include
    void sp(int  *a)
    {  int b=2;
    *a:,*a*2;printf(*%d,",*a);
    a=&b;    *a=*a*2;printf("%d,",*a);
    }   
    main( )
    {  int k=3;
    sp(&k);printf("%d\n",k);   
    }
    则程序的输出结果是(    )。

选项 A、6,12,12
B、6,4,3
C、6,4,6
D、9,4,9

答案C

解析 首先在主函数中给整型变量k赋值为3,调用sp函数,将变量k的地址作为实参传递给形参指针变量a;在sp函数中,*a=*a*2;即结果为6,由于指针变量a指向地址k,所以k值此时也变成6,通过printf()函数输出。整型变量b的地址赋给指针变量a,再执行*a=*a*2;语句,即结果为4,通过printf()函数输出。返回主函数,输出k的值6。因此C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/zdtp777K
0

最新回复(0)