C | Cuestionario C – 113 | Pregunta 1 – Part 1

#include <stdio.h>
  
int main()
{
    unsigned int i = 65000;
    while (i++ != 0);
    printf("%d", i);
    return 0;
}

(A) Bucle infinito
(B) 0
(C) 1
(D)

Respuesta de error de tiempo de ejecución: (C)
Explicación: El resultado será 1 pero después de mucho tiempo porque el bucle while continuará hasta que i se convierta en 4294967295 (suponiendo que unsigned int se almacena usando 4 bytes) y como el límite más alto de unsigned int es 4294967295 en la siguiente operación ++, se convertirá en cero y saldremos del bucle y se imprimirá 1.

Dado que el tiempo necesario es largo, el compilador en línea puede terminar el programa con un error de límite de tiempo excedido. Si en lugar de un int sin firmar, usa un int corto sin firmar, entonces el resultado (1) puede ser más rápido.
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 *