Preguntas del examen C de nivel 2 de computadora

Preguntas de la prueba C del examen de nivel 2 de computadora

Si bien C es bueno en la programación orientada a objetos, también puede realizar programación basada en procesos, por lo tanto, en términos de la escala de los problemas. al que C puede adaptarse, el tamaño está determinado por Of. Las siguientes son las preguntas del examen C para el examen por computadora de nivel 2 que he recopilado. Espero que las lea atentamente.

1 [Pregunta de opción única] ¡Se sabe! esa función FA llama a la función FB. Si desea cambiar esto, si dos funciones están definidas en el mismo archivo, entonces ().

A. FA debe definirse antes de FB

B. FB debe definirse antes de FA

C. Si FA se define después de FB, el prototipo de FA Debe aparecer antes de la definición de FB

D. Si FB se define después de FA, entonces el prototipo de FB debe aparecer antes de la definición de FA

Respuesta de referencia: D

Análisis de referencia: si se utiliza una función definida por el usuario, y la función está en la misma unidad de programa que la función que la llama (es decir, la función de llamada principal), y la posición está después de la función de llamada principal, la La función que se llamará debe ser antes de llamar a esta función. Declare las funciones utilizadas.

 2[Pregunta de opción única] La descripción de la vista de datos utilizada por un solo usuario se llama

A. Modo externo B. Modo conceptual C. Modo interno D. Modo de almacenamiento

Respuesta de referencia: A

3[Pregunta de opción única] Al generar un objeto de clase derivada, la condición para que el constructor de clase derivada llame al constructor de clase base es ( ).

A. No se requieren condiciones

B. El constructor está definido explícitamente en la clase base

C. El constructor está definido explícitamente en la clase derivada

p>

p>

D. El constructor de la clase derivada llama explícitamente al constructor de la clase base

Respuesta de referencia: D

Análisis de referencia: el constructor de la clase derivada debe llamar al constructor de clase base Constructor para inicializar subobjetos de clase base. Por lo tanto, al definir el constructor de una clase derivada, además de inicializar sus propios miembros de datos, también debe ser responsable de llamar al constructor de la clase base para inicializar los miembros de datos de la clase base.

4[Pregunta de opción única] ¿Cuál de las siguientes afirmaciones es correcta ( )?

A. En la programación orientada a objetos, cada objeto tiene una relación estrecha

B. En la programación orientada a objetos, cada objeto es público

C. En la programación orientada a objetos, cada objeto es relativamente independiente y tiene poca interdependencia.

D Las tres afirmaciones anteriores son incorrectas

Respuesta de referencia: C

Análisis de referencia. : La programación orientada a objetos utiliza objetos para simular entidades en el dominio del problema. Cada objeto es relativamente independiente y tiene poca interdependencia. La interconexión entre objetos se realiza a través de mensajes.

5[Pregunta de respuesta corta] A continuación se muestran dos programas. Analice la diferencia en sus resultados de ejecución.

Programa 1:

#include

class Point

{

int x, y

p>

Público:

Punto(){x=y=0;}

Punto(int i, int j){x=i; y=j;}

Operador de punto (Punto);

void disp() ( coutlt;lt;”(”lt;

 }

Punto Punto::operador (Punto P)

 {

 this-gt; > return *this;

 }

void main()

 {

 Punto pl(2, 3), p2(3 , 4), p3 ;

coutlt;lt;"p1:";p1.disp();

coutlt;lt;"p2:";p2.disp();

p3=pl p2;

coutlt;lt;"Después de ejecutar p3=p1 p2"lt

coutlt;lt;"p1:", p1; .disp();

coutlt;lt;"p2:";p2.disp();

coutlt;lt;"p3:";p3.disp(); /p>

}

Programa 2:

#include

class Point{

int x, Y

público:

Punto(){x=y=O;}

Punto(int i, int j){x=i, y=j;}

 Operador de punto (Punto);

void disp f){coutlt;lt; ”(”lt;

 }

Punto Punto::operador ( Punto P)

 {

Punto s;

s.x=x p.x; s.y=y p.y; devolver s;

p>

}

void main()

{

Punto pl(2, 3), p2(3, 4), p3;

coutlt;lt;”p1:”;p1.disp();

coutlt;lt;”p2:”;p2.disp ();

p3=pl p2;

coutlt;lt;"Después de ejecutar p3=p1 p2"lt

coutlt;lt;"p1: ";p1.disp();

p>

coutlt;lt;"p2:";p2.disp();

coutlt;lt;"p3:" ;p3.disp();

}

Análisis de referencia: las funciones principales en los dos programas son exactamente las mismas y la sobrecarga del operador en la clase Point se implementa en forma de funciones miembro Es solo que la función de sobrecarga del operador del programa 1 usa este puntero, mientras que la operación del programa 2 Fu Zhong.

Las funciones de carga utilizan objetos locales.

p3=p1 p2 es equivalente a p3=p1.operador (p2). Para el programa 1, este puntero apunta al objeto p1, ejecute this-gt Asignar a p3. Por lo tanto, los valores x e Y de los dos objetos p1 y p3 son los mismos, es decir, p3 = pl p2 es equivalente a p1 = p1 p2, p3: p1, y los resultados de la operación son los siguientes:

p1: (2, 3)

p2: (3, 4)

Después de ejecutar p3=pl p2

P1: (5, 7)

p2: (3, 4)

P3: (5, 7)

Para el programa 2, ejecute la función sobrecargada del operador, Punto s; la declaración define un objeto, s.x=x p.x; s.y= La declaración y p.y; se utiliza para modificar los valores x e Y del objeto s. La declaración retil~l s; los objetos p1 y p2 no cambian. Los resultados de la ejecución son los siguientes:

p1: (2, 3)

p2: (3, 4)

Después de ejecutar p3=pl p2

 p1: (2, 3)

 p2: (3, 4)

 p3: (5, 7);