Salida de programas C++ | Conjunto 49

  1. ¿Cuál es la salida del siguiente programa? 
     

CPP

#include <iostream>
using std::cout;
int main()
{
    int i = 0;
    cout << (i = 0 ? 1 : 2 ? 3 : 4);
    return 0;
}
  1. una. 1b 
    . 2 
    c. 3d 
    . 4 
    e. error de compilación 
      
    Respuesta: C 
    Explicación: el operador ternario es asociativo de derecha a izquierda. Entonces la expresión se convierte en (i = 0 ? 1 : (2 ? 3 : 4)) que se evalúa como (i = 0 ? 1 : 3). Tenga en cuenta que la expresión «i = 0» asigna 0 a i y devuelve 0. Por lo tanto, se devuelve 3 y se imprime.
  2. ¿Cuál es la salida del siguiente programa? 
     

CPP

#include <iostream>
int main()
{
    printf("%.3lf", sizeof "Geeks" / sizeof "forGeeks");
    return 0;
}
  1. una. 0.000 
    b. 1.000 
    c. 0.667d 
    . Error de compilación 
    Respuesta: a 
    Explicación: El operador sizeof devuelve un número entero y no un doble. En el caso de strings, devuelve la longitud de la string, incluido el \0. El tamaño de «Geeks» es 6 y el tamaño de la string «forGeeks» es 9. En términos de números enteros, 6/9 es igual a 0.
  2. ¿Cuál es la salida del siguiente programa? 
     

CPP

#include <iostream>
using std::cout;
int main()
{
    cout << 5 ["GeeksforGeeks"];
    return 0;
}
  1. una. Frikis 
    b. f 
    c. para Geeks 
    d. Error de compilación 
     
Answer : b.
Explanation: In C/C++, the statement X[Y] is identical to *(X+Y). In this case the statement is equal to *(5+"GeeksforGeeks"). The + operator is commutative, so we can write the expression as *("GeeksforGeeks"+5). This statement means 5th character of the string from the beginning of the string. So finally we print f.    
  1. ¿Cuál es la salida del siguiente programa? 

CPP

#include <iostream>
using std::cout;
int main()
{
    int i = 0, j = 0;
    ++++j = ++++i + i++;
    cout << i;
    cout << j;
    return 0;
}
  1. una. 12b. 34 c. 22 días compilar dependiente 
Answer : d
Since ++ operator does not define a sequence point, applying it multiple times on same variable in an expression causes undefined behavior.
  1. ¿Cuál es la salida del siguiente programa? 

CPP

#include <iostream>
using std::cout;
int main()
{
    int i = 0, j = 0, k;
    i++;
    j++ ++;
    k = (i++) + j;
    cout << i;
    cout << j;
    cout << k;
    return 0;
}
  1. una. 123b. 124 c. 224 d. La respuesta de error de compilación es: d. Explicación: A diferencia de ++++j, la sentencia j++ ++; es ilegal.

Publicación traducida automáticamente

Artículo escrito por Shlomi Elhaiani 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 *