NOIP2006 La 12ª Olimpiada Nacional de Informática Juvenil Preguntas de Prueba Preliminares Grupo de Popularización Idioma Pascal Viernes, 2 de marzo de 2007 05:17 P.M. La 12ª Olimpiada Nacional de Informática Juvenil Preguntas de Prueba Preliminares
(Popular El lenguaje Pascal del grupo se puede completar en dos horas)
● ● Todas las respuestas a las preguntas del examen deben escribirse en la hoja de respuestas. La escritura en el papel del examen no será válida. ●● 1. Preguntas de opción múltiple. (** *20 preguntas de 1,5 puntos cada una, totalizando 30 puntos. Cada pregunta tiene una y sólo una respuesta correcta).
1. Entre los siguientes premios de clase mundial, los premios establecidos para científicos que han realizado contribuciones destacadas al campo de la informática y la tecnología son ( ).
A. Premio Wolf B. Premio Nobel C. Medalla Fields D. Premio Turing
2 Entre los siguientes software, no pertenece a la competencia NOIP (revancha) El recomendado. la configuración regional es ( ).
A. gcc/g B. Turbo Pascal
C. RHIDE D. free pascal
3. .
A. Registro B. ROM C. RAM D. Caché
4. Linux es un ().
A. Software de dibujo B. Lenguaje de programación C. Sistema operativo D. Navegador web
5.
A. Disco duro B. Unidad central de procesamiento C. Lenguaje de programación de alto nivel D. Registro central 6. En una computadora, la función de un firewall es ( ).
A. Prevenir la propagación del fuego B. Prevenir ataques a la red
C Prevenir fallas de la computadora D. Prevenir que los usuarios eliminen datos accidentalmente
7. siguiente sobre computadoras En la declaración de lenguaje, la incorrecta es ( ).
A. Pascal y C son lenguajes de alto nivel que se compilan y ejecutan.
B. Los programas en lenguajes de alto nivel son más fáciles de trasplantar de una computadora a otra que el ensamblador. programas en lenguaje
p>
C. C es el primer lenguaje informático de la historia que admite programación orientada a objetos
D. En comparación con el lenguaje ensamblador, los programas en lenguaje de alto nivel son. más fácil de leer
8 Entre las siguientes afirmaciones sobre algoritmos informáticos, la incorrecta es ( ).
A. Un algoritmo correcto debe tener al menos una entrada
B La mejora de los algoritmos ha promovido enormemente el progreso de la informática y la tecnología
C. El criterio principal para juzgar la calidad de un algoritmo es la complejidad temporal y espacial del algoritmo.
D Todavía hay muchas cuestiones importantes relacionadas con la economía nacional y los medios de vida de las personas, y no existe ningún método que las resuelva. se puede implementar en una computadora Algoritmo efectivo
9. Entre los siguientes algoritmos de clasificación, el algoritmo que no utiliza "comparación" como operación principal es ().
A. Ordenación por selección B. Ordenación por burbuja C. Ordenación por inserción D. Ordenación por base
10. Al programar (usando cualquier lenguaje de alto nivel, no necesariamente Pascal), si necesita ingresar una matriz bidimensional grande (por ejemplo, una matriz doble de 1000 * 1000) desde un archivo de disco, léala línea por línea (es decir, el bucle externo trata sobre filas) en comparación con la lectura por columnas (es decir, el bucle externo trata sobre columnas), en términos de eficiencia de entrada ().
A. No hay diferencia B. La lectura por fila es mayor.
C. La lectura por columna es mayor D. Depende del método de almacenamiento de la matriz.
11. En lenguaje Pascal, el valor de la expresión (21 xor 2) es ( )
A. 42 C.23 D.24
12. En lenguaje Pascal, la expresión condicional correcta para juzgar que a no es igual a 0 y b no es igual a 0 es ( )
A not a=0 or not b=0 B. not(( a=0 )y(b=0))
C no(a=0 y b=0) D. (alt;gt;0)y (blt;gt;0)
13. Cierta estación es larga y estrecha, sólo lo suficientemente ancha para dar cabida a un coche y tiene sólo una entrada y una salida. Se sabe que el estado de la estación está vacío en un momento determinado, y los registros de entrada y salida a partir de este momento son: "Entrada, salida, entrada, entrada, entrada, salida, salida, entrada, entrada, entrada, salida , afuera". Supongamos que el orden de los vehículos que entran a la estación es 1, 2, 3,..., entonces el orden de los vehículos que salen de la estación es ( ).
A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7
C. , 4, 3, 7, 2
14. Un árbol binario equilibrado con una altura de n significa que si se eliminan los nodos de las hojas y las ramas correspondientes, debería ser un árbol binario completo con una altura de n-1. Aquí, la altura del árbol es igual a la profundidad máxima de los nodos de hoja y la profundidad del nodo raíz es 0. Si un árbol binario equilibrado tiene 2381 nodos, la altura del árbol es ().
A. 10 B. 11 C. 12 D. 13
15.
A. 3350 B. 3351 C. 3352 D. 3540
16. Al ordenar una secuencia de 5 números, sin importar cuál sea el orden original, la clasificación de pequeño a grande se puede completar mediante al menos ( ) comparaciones.
A. 6 B. 7 C. 8 D. 9
17. Supongamos que A=B=D=verdadero, C=falso, el valor de la siguiente expresión de operación lógica es verdadero tiene ().
A. (A∧B)∨(C∧D) B. ((A∨B∨D)∧C)
A∧(B∨C∨D). ) D. (A∧B∧C)∨ D
18 El resultado de (2010)16 (32)8 es ( ).
A. (8234)10 B. (202B)16
C. (20056)8 D. (100000000110)2
19. El estado inicial de está vacío, los elementos a, b, c, d, e se colocan en la pila en secuencia. Es imposible que aparezcan las siguientes secuencias emergentes ().
A. a, b, c, e, d B. b, c, a, e, d
C. , c, e, b, a
20. Se sabe que el primer recorrido de raíz de un árbol binario con 6 nodos es 1 2 3 4 5 6 (el número es el número del nodo, el Lo mismo a continuación), el último recorrido de raíz El recorrido es 3 2 5 6 4 1, entonces el posible recorrido de raíz media del árbol binario es ( )
A. 1 5 4 6
C. 2 1 3 5 4 6 D. 2 3 1 4 6 5
II. Resolución de problemas (***2 preguntas, 5 puntos cada una, ***10 puntos)
1. (Buscando monedas falsas) Hay 80 monedas, una de las cuales es una moneda falsa. Su peso es un poco más ligero. Todas las monedas genuinas tienen el mismo peso. Si usas una báscula sin pesas, debes pesarlas. al menos varias veces para descubrir dinero falso? También deberá indicar el método de pesaje la primera vez.
Por favor escriba sus resultados:_____________________________________________.
2. (Juego de tomar piedras) Actualmente hay 5 montones de piedras, y el número de piedras es 3, 5, 7, 19, 50. A y B se turnan para tomar de cualquier montón (solo pueden tomar de un montón a la vez). tiempo, no pueden no tomarla), gana el partido que toma la última piedra. A toma primero y pregunta si A tiene una estrategia ganadora (es decir, no importa cómo la tome B, A puede ganar siempre que no cometa errores). Si es así, ¿cuánto debería tomar A de qué pila en el primer paso? Por favor escribe tus resultados:
_____________________________________________.
3. Leer el programa y escribir los resultados (***4 preguntas, 8 puntos cada una, total 32 puntos)
1 Programa ex301
var
u. : matriz[0..3] de entero;
i, a, b, x, y: entero
comenzar
y:=10;
para i:=0 a 3 hacer
read(u[i];
a:=(u[0] u[1] u); [2] u[3]) div 7;
b:=u[0] div ((u[1]-u[2]) div u[3]); p>x:=(u[0] a 2)-u[(u[3] 3) mod 4]
if (xgt; 10) entonces
y : =y (b*100-u[3]) div (u[u[0] mod 3]*5)
else
y:=y 20 (b* 100 -u[3]) div (u[u[0] mod 3]*5);
writeln (x, ', ', y
end. Nota: En este ejemplo, los datos de entrada proporcionados pueden evitar que el denominador sea 0 o que el subíndice se salga de los límites.
}
Entrada: 9 3 9 4
Salida: _______________
2.Programa ex302
const
m: matriz[0..4] de entero=(2, 3, 5, 7, 13
var
i, j: entero
);t:longint;
comenzar
para i:=0 a 4
comenzar
t:=1;
para j:=1 a m[i]-1 hacer
t:=t*2
t:=(t*2-1; )*t;
escribir (t, ' ');
fin
escribir
fin.
Salida: ____________________
3.Programa ex303
Const
NN=7
Tipo
<; p>Arr1=matriz[0..30] de char;var
s: arr1;
k, p: entero
Función divertida(s: arr1; a: char; n: entero): entero
var
j: entero
comenzar p> p>
j:=n;
mientras (alt; s[j])y(jgt; 0) hacen dec(j); j;
fin;
comenzar
para k:=1 a NN hacer
s[k]:=chr(ord ('A') 2*k 1);
k:=fun(s,'M',NN
writeln(k); >fin
Salida: _____________
4.program ex304;
var
x, x2: longint
procedimiento dígito(n, m: entero largo);
var n2: entero
comenzar
if(mgt; 0) entonces
comenzar
n2:=n mod 10;
escribir(n2:2
if(mgt;1) luego dígito(n); div 10, m div 10);
n2:=n mod 10;
escribir(n2: 2)
fin; p> fin;
comenzar
writeln('Ingrese un número:');
readln(x); =1 ;
mientras(x2lt;x) hacer x2:=x2*10
x2:=x2 div 10; );
escribir; 5
fin
Entrada: 9734526 <
/p>
Salida: ____________________________
4. Mejorar el procedimiento (los primeros 4 espacios en blanco, 2,5 puntos por cada espacio en blanco, los últimos 6 espacios en blanco, 3 puntos por cada espacio en blanco, 28 puntos)
1. (Permutación completa) La función del siguiente programa es utilizar el método recursivo para generar todas las permutaciones posibles de n números del 1 al n (nlt; 10) (no necesariamente generados en orden ascendente). Por ejemplo, si ingresa 3, debería generar (5 permutaciones por línea):
123 132 213 231 321
312
Programa:
Programa ex401;
Var
i, n, k: entero;
a: matriz[1..10] de entero <; /p>
p>
count: longint; {La variable count registra el número de arreglos diferentes, aquí se usa para controlar los saltos de línea}
Procedimiento perm(k: integer); p>
var j, p, t: entero;
comenzar
si ① entonces
comenzar
inc(cuenta
para p:=1 a k hacer
write(a[p]:1
write(' '); >
if ( ② ) entonces writeln;
salir
fin;
for j:=k to n do
comenzar
t:=a[k]; a[k]:=a[j]; a[j]:=t
③; p>t:=a[k ]; ④;
fin
fin
comenzar
writeln('Entrada n: ');
read(n);
count:=0;
para i:=1 para n hacer a[i]:=i;
⑤ ;
fin
2. Ingrese un número impar P (Plt; 100,000,000) desde el teclado, y su dígito de unidades no sea 5. un número entero S tal que P× S = 1111...1 (Bajo las condiciones dadas, la solución S debe existir). Se requiere que los siguientes resultados aparezcan en la pantalla en secuencia:
(1) Todos los números de S. Cada línea, excepto la última, genera 50 dígitos. (2) El número de dígitos del producto.
Ejemplo 1: Ingrese p=13, ya que 13*8547=111111, debería generar (1) 8547, (2) 6
Ejemplo 2: Ingrese p=147, luego El resultado de salida debe ser (1) 755857898715041572184429327286470143613
(2) 42, es decir, hay 42 unos en el lado derecho de la ecuación.
Programa:
programa ex402;
var
p, a, b, c, t, n: longint ; p>
var p>
begin
mientras (verdadero) do
begin
writeln ('Ingrese p, el último dígito es 1 o 3 o 7 o 9 :');
readln(p);
if (p mod 2lt;gt;0)y(p mod 5lt;gt;0) entonces
⑥; {Si el número ingresado cumple con los requisitos, finaliza el ciclo}
end; p>
mientras (alt ;p)
comienza
a:=a*10 1; inc(n); /p>
t: =0;
repetir
b:=a div p;
escribir(b:1); >
inc(t)
if ( ⑦ ) entonces escribe
c:= ⑧; a:= ⑨ inc(n); >hasta clt;=0;
dec(n);
writeln('n=', ⑩ ); >
Fuente: /noip2007 /blog/item/9bc3b9ee9f84d6292cf53457.html