以下程序打印的值是
void f(int* p, int m)
{
m = m + 5;
*p = *p + m;
return;
}
void main()
{
int i=5, j=10;
f(&i, j);
printf("%d", i+j);
}
(A) 10
(B) 20
(C) 30
(D) 40答案: (C)
解释:
#include"stdio.h"
void f(int* p, int m)
{
m = m + 5;
*p = *p + m;
return;
}
int main()
{
int i=5, j=10;
f(&i, j);
printf("%d", i+j);
}
对于我来说,地址已通过。对于j,传递值。因此,在函数f中,p将包含i的地址,而m将包含值10。f()的stst语句会将m更改为15。然后将15添加到地址p的值。它将使i = 5 + 15 =20。j将保持为10。print语句将打印20 + 10 =30。因此答案为C。
这个问题的测验