Question 1
Question
¿A dónde apunta el puntero s1 tras la ejecución de la siguiente instrucción?
char* const s1 = "ABC";
s1++;
Question 2
Question
En el siguiente código, ¿qué valor tienen las variables antes de ejecutar la sentencia return?
int& min(int &a, int& b){
return (a<b) ? a : b
}
int main(){
int i=1, j=2;
min(i,j)=3;
return 0;
}
Question 3
Question
En el siguiente código, ¿qué valor tiene la variable arg tras la ejecución de la función f()?
void f(int param){
param=10;
}
int main(){
int arg=1;
f(arg);
}
Question 4
Question
void f(int *param){
param=10;
}
int main(){
int arg=1;
f(&arg);
}
Question 5
Question
¿A dónde apunta el puntero s1 tras la ejecución de la siguiente instrucción?
const char *s1="ABC";
s1++;
Question 6
Question
El lenguaje C++ solo permite la sobrecarga de funciones cuando:
Answer
-
se utiliza el mismo nombre de función y el mismo número de parámetros con tipos distintos
-
se utiliza el mismo nombre de función y distinto número de parámetros
-
se utiliza el mismo nombre de función y lista de parámetros distinta
-
se utiliza el mismo nombre de función y la misma lista de parámetros pero distinto valor de retorno
Question 7
Question
Dada la definición de la clase, ¿cual de las siguientes códigos es incorrecto para el constructor?
class dummy{
int x,y;
public:
dummy(int, int);
};
Answer
-
dummy::dummy(int i, int j): x(i), y(j) {}
-
dummy::dummy(int i, int j){ x=i; y=j;}
-
Todas son correctas
-
dummy::dummy(int i, int j): x(i) {y=j}
Question 8
Question
¿Cuál de los siguientes elementos del lenguaje C++ no permite especificar métodos?
Question 9
Question
Declarar un miembro protected en una clase implica:
Answer
-
que tiene la misma visibilidad que si fuese public y las clases derivadas lo heredan
-
que tiene la misma visibilidad que si fuese private y las clases derivadas lo heredan
-
que tiene la misma visibilidad que si fuese private y las clases derivadas no lo heredan
-
que tiene la misma visibilidad que si fuese public y las clases derivadas no lo heredan
Question 10
Question
Si se realiza herencia protected, los miembros public de la clase base:
Answer
-
son protected en la clase derivada
-
son private en la clase derivada
-
son public en la clase derivada
-
no son accesibles en la clase derivada
Question 11
Question
Para definir que un miembro de la clase es compartido por todas las instancias de la clase, se utiliza la palabra reservada:
Answer
-
inline
-
static
-
virtual
-
friend
Question 12
Question
Si se realiza la herencia public, los miembros private de la clase base:
Answer
-
no son accesibles en la clase derivada
-
son protected en la clase derivada
-
son public en la clase derivada
-
son private en la clase derivada
Question 13
Question
Para identificar la ocurrencia de diferentes situaciones excepciones en un mismo bloque de código, es necesario:
Answer
-
para cada tipo de excepción, especificar un bloque catch con un parámetro del tipo de excepción a manejar
-
anidar varios bloques try
-
lanzar la sentencia throw con varios parámetros, uno por cada tipo de excepción
-
especificar un bloque catch con varios parámetros, uno por cada tipo de excepción
Question 14
Question
En el lenguaje C++ la ocurrencia de una situación excepcional que requiere un tratamiento especial se invoca con la palabra clave:
Answer
-
try
-
throw
-
exception
-
catch
Question 15
Question
El código a ejecutar para manejar la ocurrencia de una excepción se encierra en un bloque:
Answer
-
catch
-
try
-
exception
-
throw
Question 16
Question
¿Qué métodos deben especificarse en toda plantilla (template)?
Answer
-
no hay que especificar ningún método de forma obligatoria
-
un constructor por defecto
-
un constructor de copia y el operador de asignación
-
todos los constructores, el destructor y e operador de asignación
Question 17
Question
En el lenguaje C++ las plantillas (template) permiten:
Answer
-
definir funciones y clases con tipos genéricos que se instancian en tiempo de compilación
-
reutilizar la definición de una función para alterar su comportamiento
-
definir clases abstractas de las que no se pueden crear instancias
-
definir funciones y clases con tipos genéricos que se instancian en tiempo de ejecución
Question 18
Question
Dada la siguiente definición de plantilla (template), ¿cuál de los siguientes usos de la plantilla es la correcta?
template<class T, int N>
class miVector{
private:
T v[N];
public:
miVector(int n);
};
Answer
-
int N=5;
miVector<int,5> v(N);
-
int N=5;
miVector<int, N> v(N);
-
const int N=5;
miVector<int, N> v;
-
int N=5;
miVector<int, N> v(5);
Question 19
Question
Al utilizar una plantilla (template), ¿cuándo no es necesario indicar el tipo genérico?
Answer
-
en las plantillas de funciones cuando el tipo genérico se utilice como parámetro de la función y el compilador pueda deducir el tipo sin ambigüedad
-
únicamente en las plantillas de clases cuando el compilador pueda deducir el tipo genérico sin ambigüedad
-
siempre hay que especificar el tipo de los parámetros de una plantilla
-
nunca hay que especificar los tipos al utilizar una plantilla
Question 20
Question
Dada la siguiente definición de plantilla (template), ¿cuál de los siguientes códigos es correcto para el constructor?
template<class T, int N>
class miVector{
private:
T v[N];
public:
miVector(int n);
};
Answer
-
template <class T, int N> miVector<T,N>::miVector(int n=N){ v=new T[n];}
-
template <class T, int N> miVector<T,N>::miVector(int n){ v=new T[n]{}
-
template <class T, int N> miVector(int n=N){ v=new T[N];}
-
template <class T, int N> miVector<T,N>::miVector(int n=N){}
Question 21
Question
Dada la siguiente definición de clases, ¿qué valor se visualiza en la función main()?
Question 22
Question
Dada la siguiente definicón de clases, ¿qué valor se visualiza en la función main()?
Question 23
Question
Dada la siguiente definición de clases, ?qué valor se visualiza en la función main()?
Question 24
Question
A donde apunta el puntero s1 tras la ejecución de la siguiente secuencias:
Const char* s1="ABC";
S1++;
Answer
-
No se ejecuta
-
'A'
-
'C'
-
'B'
Question 25
Question
La clase base de las excepciones utilizadas en la librería estándar es
Answer
-
Exception
-
Logic_error
-
Bad_exception
Question 26
Question
La utilización de plantillas/template de funciones en el lenguaje C++ permite...
Answer
-
La definición de una familia parametrizada de funciones
-
La utilización en el código de la STL
-
La declaración de una jerarquía de clases.
-
Especificar al compilador la forma de crear una familia parametrizada de clases
Question 27
Question
Si se utiliza herencia public, los miembros private de la clase base:
Answer
-
Son private en la clase derivada
-
Son public en la clase derivada
-
No son accesibles en la clase derivada
-
Son protected en la clase derivada
Question 28
Question
Dada la siguiente definición de clase, ¿cuál de las siguientes sentencias no
se corresponde con una llamada correcta del constructor?
Class dummy{
Public:
Dummy(){};
};
Answer
-
dummy *a = new dummy;
-
dummy a();
-
dummy a;
-
Todos son correctas;
Question 29
Question
¿Qué elementos adminten la clausula firend?
Question 30
Question
El lenguaje C++ permite especificar un valor por defecto en un parámetro de una función:
Answer
-
Cuando todos los parámetros de la función son constantes
-
Cuando todos los parámetros siguientes en la lista también tiene valor por defecto
-
Cuando todos los parámetros de la función tiene valor por defecto.
-
Cuando todos los parámetros anteriores en la lista también tiene valor por defecto
Question 31
Question
Dada la siguiente definición de clases, ?qué valor se visualiza en la función main()