PUERTA | Cuestionario para Sudo GATE 2021 | Pregunta 18

Considere el siguiente programa en C:

#include <stdio.h>
#include <string.h>
  
struct s {
    int i;
    char *c;
} str[] = {100, "eclasses", 200, "geeks",300, "data",400,"structure",500,"students"};
  
int main()
{ 
    struct s *p = str;
    p += 1;
    printf("%s", p -> c);
    p--;
    printf("%s,", ++p -> c);
    printf(" %d, ", p[1].i);
    p=p+4;
    printf("%s", p -> c);
} 

¿Cuál de las strings estará en el resultado final del programa en C anterior?

Nota: esta pregunta es de selección múltiple (MSQ).
(A) geeksclasses
(B) 100
(C) estudiantes
(D) 200

Respuesta: (A) (C) (D)
Explicación: Aquí la estructura es el tipo de datos que contiene un tipo entero y una string. Dirección base de strings,

eclasses=1000
geeks=2000
data=3000
structure=4000
students=5000 

p contiene la dirección base del tipo de datos str.

p=p+1 

significa saltar al índice 0 al índice 1 <200,2000> en la array str.

Primera declaración de impresión, p->c apunta a la dirección base de la string y la declaración de impresión se imprime hasta que se encuentra nulo en la string.

geeks

Segunda declaración de impresión
p– significa volver al índice 0,
++p -> c significa recorrer la string un byte e imprimir la string restante

classes, 

Tercera instrucción de impresión
p[1].i imprime el entero almacenado en el índice 1.

200, 

Cuarta instrucción de impresión
p=p+4 significa ir al índice 4
p->c string de impresión almacenada en el índice 4

students 

Por lo tanto, las opciones (A), (C) y (D) son correctas.
Cuestionario de esta pregunta
Comente a continuación si encuentra algo incorrecto en la publicación anterior

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 *