Salida de programas C++ | Conjunto 22

Prediga el resultado de los siguientes programas en C++. Pregunta 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Explicación: A chained statement cannot be used to initialize variables at the time of declaration. Hence the statement a = b = c = 0; is an illegal statement. However following way a legal syntax and can be used in C++ or C.
int abc; a = b = c = 0;  

Pregunta 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Explicación: Dado que faltan la condición de prueba de inicialización y la condición de incremento/decremento dentro del bucle for, la ejecución quedará atrapada en un bucle infinito.
Pregunta 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Explicación: ¡Hola! 3 es el resultado porque cuando se ejecuta el bucle for no tiene ninguna tarea que realizar debido al punto y coma (;) presente en la línea donde se definió el bucle for. El bucle se ejecutará tres veces y el valor de i se convertirá en 3 y luego se ejecutará el resto de las declaraciones.
Pregunta 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Explicación: El operador coma () es un operador binario que evalúa el primer operando y descarta el resultado y luego evalúa el segundo y luego devuelve el valor del segundo. Aquí la asociatividad del operador coma () es de izquierda a derecha y es fácil entender que la expresión (14563) se evalúa como 3 y luego el resultado 1 + 3 se asigna a i.
Pregunta 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Explicación: El enunciado b = (a = 50) + 10; utiliza el concepto de asignación integrada. Aquí el valor de 50 se asigna a la variable a y el resultado 50+10 se asigna a b. Pregunta 6 CPP
   #include       using     namespace     std  ;   int     main  ()   {      char     a     =     30       b     =     40       c     =     10  ;      char     d     =     (  a  *  b  )  /  c  ;      cout      < <     int  (  d  );      return     0  ;   }   
Output:
120  
Explicación: C++ también puede realizar cálculos aritméticos considerando los valores ASCII de los caracteres si la operación aritmética se realiza en variables del tipo de datos char. En este caso, la respuesta es 120, que es el valor ASCII para x.
Pregunta 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Explicación: Cualquier número distinto de cero en C++ se trata como valor verdadero. Aquí, en este código, la declaración if tiende a disminuir el valor de i pero dentro del bloque if la función main() se llama una y otra vez. Aquí el programa parece estar en un bucle infinito, pero la variable i es de naturaleza estática y tiene su vida útil hasta la ejecución, por lo que el programa se detendrá si i se vuelve 0.
Pregunta 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Explicación: Cualquier número distinto de cero en C++ se trata como valor verdadero. Aquí, en este código, la declaración if tiende a disminuir el valor de i, pero dentro del bloque if la función main() se llama una y otra vez (todas las declaraciones ahora se ejecutarán como si fuera un programa nuevo), por lo tanto, la ejecución del programa quedará atrapada en un bucle infinito ya que no existe una condición de terminación. Crear cuestionario