ISRO | CSRO ISRO 2020 | Pregunta 26

¿Cuál es la salida en una máquina de 32 bits con un compilador de 32 bits?

#include <stdio.h>
  
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);
 } 

(A) 60 70
(B) 50 50
(C) 50 60
(D) 60 50

Respuesta: (D)
Explicación: Bajo funciones 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 

Por lo tanto, se imprime 60 50.

#include <stdio.h> 
    
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); 
 }  

La opción (D) es correcta.
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *