- ¿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; }
- 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. - ¿Cuál es la salida del siguiente programa?
CPP
#include <iostream> int main() { printf("%.3lf", sizeof "Geeks" / sizeof "forGeeks"); return 0; }
- 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. - ¿Cuál es la salida del siguiente programa?
CPP
#include <iostream> using std::cout; int main() { cout << 5 ["GeeksforGeeks"]; return 0; }
- 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.
- ¿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; }
- 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.
- ¿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; }
- 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