Este conjunto de preguntas de simulación simula principalmente la forma de las proposiciones y el alcance de la evaluación. El número y la dificultad de las preguntas de la competencia real pueden ser diferentes de este conjunto de preguntas de simulación.
Descripción:
Este artículo contiene dos tipos de preguntas: "código rellenando los espacios en blanco" y "programación".
Las preguntas para completar los espacios en blanco requieren que los concursantes completen las partes faltantes basándose en la comprensión del principio de funcionamiento del código dado para que la lógica del programa sea correcta y completa. Complete el código con no más de una declaración (es decir, sin punto y coma).
Las preguntas de programación requieren que los jugadores diseñen programas que puedan dar resultados correctos para entradas determinadas. Nota: Los datos de entrada utilizados en la calificación pueden diferir de los datos de muestra proporcionados en el examen. El programa del jugador debe ser general y no sólo válido para los datos proporcionados en el examen.
Código para completar los espacios en blanco (puntuación total 2 puntos)
Las cadenas con forma de "abccba" y "abcba" se llaman palíndromos. El siguiente código determina si una cadena es un palíndromo. Por favor complete los espacios en blanco.
char buf[]= "abcde 11 edcba";
int x = 1
for(int I = 0; i<strlen(buf) /2; ; i++)
Si (____________________)
{
x = 0;
Romper;
}
printf("%s\n ",x?"Yes":"No");
Rellene los espacios en blanco con el código (3 elementos en total)
El siguiente código convierte una cadena binaria en un número entero. Complete las declaraciones que faltan;
char * p = " 1010110001100 ";
int n = 0
for(int I = 0; i<strlen ( p);i++)
{
n = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
}< / p>
printf("%d\n ",n);
Rellene los espacios en blanco con códigos (3 elementos en total)
Suponga que a, b, c son tres números enteros desiguales mutuos. El siguiente código toma el valor intermedio y lo registra en m. La función swap () puede intercambiar los valores de dos variables. Por favor mejora el código.
Si (a>b) transacción de swap. a,&b);
if (b > swap.b &c);
____________________;
int m = b; /p>
Rellena los espacios en blanco con código (sobre 6 puntos)
El propósito de la siguiente función es averiguar qué día del año es una fecha. Trabaja para perfeccionarlo.
Si se aprueba: año=1980, mes=1, día=1.
Devuelve 1.
Si se aprueba: año=1980, mes=2, día=1.
Luego regresa a 32
int getDayOfYear(int año, int mes, int día)
{
int días _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;
int flag =(año % 4 = = 0 &&año%100! =0) ||año%400 == 0?1 : 0;
int suma = día
for(int I = 0;i<month;i++){
suma+= días[flag][I];
}
Devolver la suma;
}
Usar código de relleno- the-blanks (7 en total)
El problema de calcular cuántos arreglos (como AAABB, AABBA) pueden formar tres A y dos B es un campo de investigación en matemáticas combinatorias. Pero en algunos casos, también se puede aprovechar la rápida velocidad informática de las computadoras para resolver problemas mediante un razonamiento inteligente. El siguiente programa calcula en cuántas disposiciones diferentes se pueden combinar M A y N B. Por favor mejoralo.
int f(int m, int n)
{
if(m==0 || n==0) devuelve 1;
Volver_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;
}
Rellena los espacios en blanco con código (de 10)
Los coeficientes en la enésima expansión de potencia de (a+b) son muy regulares. Para n=2, 3 y 4, son: 1 2 1, 1 3 1, 1 4 6 4 1 respectivamente. Estos coeficientes forman el famoso triángulo de Yang Hui:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
El siguiente programa proporciona el método de cálculo para calcular el coeficiente enésimo de la capa m, e intenta mejorar (Tanto m como n comienzan a contar desde 0).
int f(int m, int n)
{
if(m==0) devuelve 1;
if( n==0 || n==m) devuelve 1;
Devuelve _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ;
}
Programación (puntuación completa 15)
Ingrese un número entero (1~20) desde el teclado.
Luego los números 1, 2, 3... n * n se rellenan en la matriz en una espiral en el sentido de las agujas del reloj. Por ejemplo:
Ingrese el número 2, el programa generará:
1 2
4 3
Ingrese el número 3, el salida del programa:
p>
1 2 3
8 9 4
7 6 5
Ingrese el número 4, la salida del programa:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7 p>
Programación (puntaje total 9 puntos)
Ingrese la fecha en el teclado en el formato aaaa-M-d m-d.
Necesita calcular cuántos días hay en la fecha de 1949 65438 + 1 de octubre.
Por ejemplo:
Entrada del usuario: 1949-10-2.
Salida del programa: 1
Entrada del usuario: 1949-11-1.
Salida del programa: 31
Programación (12)
Cuando ingresa un número de tarjeta de crédito, ¿le preocupa la pérdida causada por errores de entrada? De hecho, no tiene que preocuparse tanto, porque no todos los números aleatorios de tarjetas de crédito son legítimos y deben ser verificados por el algoritmo de Luhn.
Proceso de verificación:
1. A partir del último dígito del número de la tarjeta, se suman los números impares (1, 3, 5, etc.) y se invierte.
2. A partir del último dígito del número de la tarjeta, multiplica el número par por 2 (si el producto es de dos dígitos, resta 9) y luego suma.
3. Suma la suma de los números impares y la suma de los números pares, y el resultado debería ser divisible por 10.
Por ejemplo, el número de tarjeta es 54321234567888881.
Luego la distribución de números pares e impares (marcados en rojo): 543212345678881.
La suma de números impares = 35
Multiplica los números pares por 2 (o resta 9 para algunos) para obtener 1 6 2 6 1 5 7 7, y la suma es 35 .
Finalmente, 35+35=70 puede ser divisible por 10 y la verificación se considera aprobada.
Escriba un programa para ingresar el número de tarjeta desde el teclado y luego determinar si se pasó la verificación. Mostrando "éxito", en caso contrario mostrando "fracaso".
Por ejemplo, la entrada del usuario: 356827027232780.
Resultado del programa: Éxito
Programación (de 20 puntos)
Cualquier número de cinco dígitos, como 34256, se puede interrumpir y reorganizar para obtener un Número máximo: 65432 y un número mínimo 23456. Encuentra la diferencia entre estos dos números y obtén: 41976. Repita el proceso nuevamente para este número (agregue un 0 inicial si hay menos de 5 dígitos). De esta forma, los números caerán en un círculo (llamado agujero negro digital).
Por ejemplo, el número acaba de caer en el círculo de [82962, 75933, 63954, 61974].
Escriba un programa para encontrar todos los ciclos posibles de 5 dígitos y generarlos. Cada ciclo ocupa 1 línea. Si los cinco dígitos son iguales, el bucle es [0] y se puede ignorar. El formato de salida del bucle es el siguiente:
[82962, 75933, 63954, 61974]
El orden de los números se puede ignorar.