国际空间研究组织 | ISRO CS 2020 |问题 26
带有 32 位编译器的 32 位机器的输出是什么?
#include
rer(int **ptr2, int **ptr1)
{
int* ii;
ii = *ptr2;
*ptr2 = *ptr1;
*ptr1 = ii;
**ptr1 *= **ptr2;
**ptr2 += **ptr1;
}
void main( )
{
int var1 = 5, var2 = 10;
int *ptr1 = &var1, *ptr2 = &var2;
rer(&ptr1, &ptr2);
printf(“%d %d “, var2, var1);
}
(一) 60 70
(乙) 50 50
(三) 50 60
(四) 60 50答案: (D)
说明:在 rer 函数下:
ptr2 = 3000 ptr1 = 4000
ii = 1000
*(3000) = *(4000)
i.e., outer ptr1 = 2000
*(4000) = 1000
i.e., outer ptr2 = 1000
**ptr1 *= **ptr2
will convert var1 = 50
**ptr2 += **ptr1
will convert var2 = 60
因此,60 50 被打印出来。
#include
int rer(int **ptr2, int **ptr1)
{
int* ii;
ii = *ptr2;
*ptr2 = *ptr1;
*ptr1 = ii;
**ptr1 *= **ptr2;
**ptr2 += **ptr1;
} ;
int main( )
{
int var1 = 5, var2 = 10;
int *ptr1 = &var1, *ptr2 = &var2;
rer(&ptr1, &ptr2);
printf("%d %d ", var2, var1);
}
选项(D)是正确的。
这个问题的测验