Requisito previo: punteros y referencias
P.1 ¿Cuál es el resultado de este programa?
#include <iostream> using namespace std; void fun(int& a, int b) { a += 2; b += 1; } int main() { int x = 10, y = 2; fun(x, y); cout << x << " " << y << " "; fun(x, y); cout << x << " " << y; return 0; }
Opción
a) 10 2 10 2
b) 12 2 14 2
c) 12 3 14 3
d) 12 2 14 3
Answer : b
Explicación: en este programa, en main() pasamos dos valores x o y en fun() y fun() recibió la referencia de x, por lo que incrementó su valor, pero y se incrementó pero no es una referencia, por lo que y es el mismo en el bloque principal.
P.2 ¿Cuál es el resultado de este programa?
#include <iostream> using namespace std; void f2(int p = 30) { for (int i = 20; i <= p; i += 5) cout << i << " "; } void f1(int& m) { m += 10; f2(m); } int main() { int n = 20; f1(n); cout << n << " "; return 0; }
Opción
a) 25 30 35 20
b) 20 25 30 20
c) 25 30 25 30
d) 20 25 30 30
Answer : d
Explicación: en este programa, main() llama a f1() y pasa el valor de n en f1() y f1() recibe la referencia de n e incrementa 10 de su valor ahora n es 30. Nuevamente llame a f2() y pasa el valor de m en f2(), f2() recibe el valor de m y verifica la condición e imprime el valor.
P.3 ¿Cuál es el resultado de este programa?
#include <iostream> using namespace std; void fun(char s[], int n) { for (int i = 0; s[i] != '\0'; i++) if (i % 2 == 0) s[i] = s[i] - n; else s[i] = s[i] + n; } int main() { char str[] = "Hello_World"; fun(str, 2); cout << str << endl; return 0; }
Opción
a) EgjnmaTqpnb
b) FgjnmaUqpnb
c) Fgjnm_Uqpnb
d) EgjnmaTqpnb
Answer : b
Explicación: En main(), llama a fun() y pasa una string y un número entero es 2. En fun(), el bucle i se itera y verifica la condición si i es par, luego disminuye el valor del índice en 2 y si i es impar, entonces aumentar en 2.
P.4 ¿Cuál es el resultado de este programa?
#include <iostream> using namespace std; int main() { int x[] = { 12, 25, 30, 55, 110 }; int* p = x; while (*p < 110) { if (*p % 3 != 0) *p = *p + 1; else *p = *p + 2; p++; } for (int i = 4; i >= 1; i--) { cout << x[i] << " "; } return 0; }
Opción
a) 110 56 32 26
b) 110 57 30 27
c) 110 56 32 25
d) 100 55 30 25
Answer : a
Explicación: en este programa, un puntero p contiene una dirección base de la array x, por lo que *p contiene un valor de x[0] y p++ apunta a la dirección del siguiente elemento.
P.5 ¿Cuál es el resultado de este programa?
#include <iostream> using namespace std; int main() { char* str = "GEEKSFORGEEK"; int* p, arr[] = { 10, 15, 70, 19 }; p = arr; str++; p++; cout << *p << " " << str << endl; return 0; }
Opción
a) 10 EEKSFORGEEK
b) 15 GEEKSFORGEEK
c) 15 EEKSFORGEEK
d) 10 GEEKSFORGEEK
Answer : C
Explicación: en esto, str contiene una dirección base de string y el puntero p contiene una dirección base de array. Si la string y el puntero se incrementan en 1, está apuntando al siguiente valor de dirección de la string y la array.
Este artículo es una contribución de Gyayak jain . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
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