执行下面的一段C程序后,输出结果变量应为______。 sub (int x,

最全题库2022-08-02  55

问题 执行下面的一段C程序后,输出结果变量应为______。sub (int x, int y, int *z)    {    *z=y-x;    }    main()    {    int a, b, c;    sub (10, 5, &a);    sub(7, a, &b);    sub(a, b, &c);    printf ("%d, %d, %d\n", a, b, c);    }A. 5, 2, 3 B. -5, -12, -7 C. -5, -12, -17 D. 5, -2, -7

选项 A. 5, 2, 3
B. -5, -12, -7
C. -5, -12, -17
D. 5, -2, -7

答案 B

解析 本题考查C语言方面的基础知识。sub()函数的作用是将形参y和x的差值存入z指向的那个内存地址,所以在sub(10,5,&a)中,10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元。在执行函数后,a的值随*z变化,所以,此次函数被调用后a的值为以y-x=-5。同理可知,执行sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12。执行sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。
转载请注明原文地址:https://tihaiku.com/congyezige/2424443.html

最新回复(0)