PUERTA | Cuestionario para Sudo GATE 2021 | Pregunta 19

Considere el programa C dado a continuación.

#include<stdio.h>
#include<string.h>
int main()
{
    char *s1[]={"Dubai","Singapore","Paris","Sanghai","HongKong"};
    char **s2[]={(s1+2),(s1+1),(s1+3),(s1+4),(s1+0)};
    char ***s3=s2;
    char str1[]="I love to visit ";
    char str2[]="times every year.";
    s3++;
    printf("%s",str1);
    printf("%s ",**++s3);
    printf("%d-%d ",s3-s2,*s3-s1);
    printf("%s",str2);
    return  0;
}

¿Cuál de las siguientes strings es/son parte de la salida del programa C anterior?

Nota: esta pregunta es de selección múltiple (MSQ).

(A) Dubái
(B) Sanghai
(C) 2-3
(D) 3-4

Respuesta: (B) (C)
Explicación: Sea
Dirección base s1=1000
Dirección base s2=2000
La array de punteros s1 contiene las direcciones base de los instrumentos de cuerda.
s2=1000 array de doble puntero contiene las direcciones de la array de punteros s1.
El puntero triple s3=2000 contiene la dirección base de la array de direcciones s2.

s3++ significa incremento al siguiente valor de índice en 4, lo que significa 2000 + 4 = 2004
En la primera instrucción impresa
**++ s3 nuevamente s3 incrementado a 2008.
En 2008 (s2) contiene a s1+3 y (s1+3) apunta a “ sanghai”.

En la segunda declaración impresa

s3-s2 = 2008 - 2000 / 4(size of the data type) = 2
*s3 - s1= 1012-1000/4 = 3 

Entonces, el resultado del programa C dado es: Me encanta visitar Sanghai 2-3 veces al año.
Por lo tanto, ‘Sanghai’ y ‘2-3’ son strings que forman parte de la salida.
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 *