Red de conocimiento informático - Programación de la red - ¿Tiene alguna pregunta previa sobre el examen de la Copa Blue Bridge? Para el grupo de pregrado C, es mejor tener respuestas ~~~Envíeme un correo electrónico: 447472614@qq.com

¿Tiene alguna pregunta previa sobre el examen de la Copa Blue Bridge? Para el grupo de pregrado C, es mejor tener respuestas ~~~Envíeme un correo electrónico: 447472614@qq.com

Nota:

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 simuladas.

Instrucciones:

Este examen contiene dos tipos de preguntas: "Código para completar 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. El código a completar no debe contener más de una declaración (es decir, no se permiten puntos y comas).

Las preguntas de programación requieren que los concursantes diseñen programas que puedan dar resultados correctos para determinadas entradas. NOTA: Los datos de entrada utilizados en la calificación pueden diferir de los datos de ejemplo proporcionados en el examen. El programa del concursante debe ser general y no válido únicamente para los datos indicados en el examen.

Rellene los espacios en blanco con código (2 puntos completos)

Una cadena en el formato: "abccba", "abcba" se llama cadena palíndromo. El siguiente código determina. si una cuerda es una cuerda palíndromo. Por favor complete los espacios en blanco.

char buf[] = "abcde11edcba";

int x = 1;

for(int i=0; i

if(__________________)

{

x = 0;

descanso;

}

printf("%s\n", x ? "Yes":"No");

Código rellena los espacios en blanco (sobre 3 puntos)

El siguiente código convierte una cadena binaria en un número entero. Por favor complete las declaraciones que faltan;

char* p = "1010110001100";

int n = 0;

for(int i=0;i< strlen (p); i++)

{

n = __________________;

}

printf("%d\n", n );

Rellena los espacios en blanco con código (de 3 puntos)

Suponga que a, byc son tres números enteros que no son iguales entre sí. El siguiente código extrae el valor medio entre ellos 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) intercambiar(&a, &b);

if(b>c) intercambiar(&b, &c);

______________________;

int m = b;

Rellena los espacios en blanco con código (puntuación completa: 6 puntos)

El propósito de la siguiente función es averiguar qué día del año es una fecha determinada. Intenta perfeccionarlo.

Si pasa: año=1980, mes=1, día=1

entonces devuelve 1

Si pasa: año=1980, mes =2, día=1

luego devuelve 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

suma += días[bandera][i];

}

retorno suma;

}

Rellena los espacios en blanco con código (de 7 puntos)

Calcula cuántos tipos de Se pueden formar 3 A y 2 B Los problemas de permutación (como: AAABB, AABBA) son el campo de investigación de la "Combinatoria". Pero en algunos casos, la rápida velocidad informática de las computadoras también se puede utilizar 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;

return _______________________;

}

Rellena los espacios en blanco con código (sobre 10 puntos)

Cada una de las expansiones de (a+b ) a la enésima potencia Los coeficientes de los términos son muy regulares Para n=2, 3 y 4, son: 1 2 1, 1 3 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 enésimo coeficiente de la m-ésima capa. (m, n ambos comienzan 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 puntos)

Ingrese un número entero (1~20) desde el teclado

Luego use este número como tamaño de la matriz y complete los números 1, 2, 3...n*n en un forma de espiral en el sentido de las agujas del reloj.

Por ejemplo:

Si ingresa el número 2, el programa generará:

1 2

4 3

Si ingresa el número 3, el programa generará:

1 2 3

8 9 4

7 6 5

Ingrese el número 4 , luego la salida del programa:

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

Programación (máxima puntuación 9 puntos)

Ingrese una fecha desde el teclado en el formato aaaa-m-d

Se requiere calcular el número de días entre la fecha y el 1 de octubre de 1949

Por ejemplo:

El usuario ingresó: 1949-10-2

Salida del programa: 1

El usuario ingresó: 1949-11-1

Salida del programa: 31

Programación (de 12 puntos)

Cuando ingresa un número de tarjeta de crédito ¿Te preocupa cometer un error y provocar pérdidas? De hecho, no tienes que preocuparte tanto, porque no cualquier número de tarjeta de crédito es legal, sino que debe ser verificado a través del algoritmo de Luhn.

El proceso de verificación:

1. A partir del último dígito del número de tarjeta, suma los dígitos impares (1, 3, 5, etc.) al revés.

2. A partir del último dígito del número de la tarjeta, multiplica los dígitos pares por 2 en orden inverso (si el producto es un número de dos dígitos, réstale 9) y luego suma. .

3. Suma la suma de los dígitos impares a la suma de los dígitos pares, el resultado debe ser divisible por 10.

Por ejemplo, el número de tarjeta es: 5432123456788881

Luego se distribuyen los dígitos pares e impares (marcados en rojo): 5432123456788881

La suma de los impares dígitos = 35

El resultado de multiplicar dígitos pares por 2 (a veces restando 9): 1 6 2 6 1 5 7 7, suma = 35.

Finalmente, 35+35=70 es divisible por 10, y se pasa la verificación.

Escriba un programa para ingresar el número de tarjeta desde el teclado y luego determinar si se pasa la verificación. Mostrando: "Éxito", en caso contrario mostrando "Fallo".

Por ejemplo, entrada del usuario: 356827027232780

Salida del programa: Éxito

Programación (de 20 puntos)

Cualquiera de 5 dígitos número, por ejemplo: 34256, mezcle sus dígitos y reorganícelos, y podrá obtener el número más grande: 65432 y el número más pequeño 23456. Encuentre la diferencia entre estos dos números y obtendrá: 41976. Repita el proceso anterior para este número (si tiene menos de 5 dígitos, agregue 0 delante). De esta forma, los números caerán en un ciclo determinado (llamado agujero negro digital).

Por ejemplo, el número acaba de caer en el ciclo: [82962, 75933, 63954, 61974].

Escriba un programa para encontrar todos los bucles posibles de números de 5 dígitos y generarlos. Cada bucle ocupa 1 línea. Si los cinco dígitos son iguales, el bucle será [0], que puede ignorarse. El formato de salida del bucle se modela a partir de:

[82962, 75933, 63954, 61974]

No es necesario considerar el orden de los números.