PUERTA | PUERTA CS 2021 | Juego 2 | Pregunta 45

Considere el siguiente programa ANSI C:

#include < stdio.h >
#include < stdlib.h >
struct Node{
        int value;
        struct Node *next;};
int main( ) {
    struct Node *boxE, *head, *boxN; int index=0;
    boxE=head= (struct Node *) malloc(sizeof(struct Node));
    head → value = index;
    for (index =1; index<=3; index++){
        boxN = (struct Node *) malloc (sizeof(struct Node));
        boxE → next = boxN;
        boxN → value = index;
        boxE = boxN; }
for (index=0; index<=3; index++) {
    printf(“Value at index %d is %d\n”, index, head → value);
    head = head → next;
    printf(“Value at index %d is %d\n”, index+1, head → value); } } 

¿Cuál de las siguientes afirmaciones sobre el programa es correcta?
(A) Tras la ejecución, el programa crea una lista enlazada de cinco Nodes
(B) Tras la ejecución, el programa entra en un bucle infinito
(C) Falta un retorno que el compilador informará como un error
(D) Elimina la referencia de un puntero no inicializado que puede provocar un error en tiempo de ejecución.

Respuesta: (D)
Explicación:

Cuando depure el bucle 1, obtendrá la lista vinculada de tamaño 4 

En el segundo ciclo, el valor se imprimirá 0 0 1 1 2 2 3 3 después de que el encabezado apunte a una ubicación aleatoria y resulte en un error de tiempo de ejecución. 
Opción correcta (D)

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 *