📌  相关文章
📜  国际空间研究组织 | ISRO CS 2020 |问题 26

📅  最后修改于: 2022-05-13 01:58:04.213000             🧑  作者: Mango

国际空间研究组织 | 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)是正确的。
这个问题的测验