Examen Nacional de Grado en Computación 2011 Nivel 2 Base de datos de pruebas de computadora en lenguaje C
Episodio 1
Programa llenando los espacios en blanco
En el programa dado, la función de fun es sumar cada bit de la variable indicada por el parámetro formal n Divida números pares, forme un nuevo número desde el orden superior original hasta el orden inferior y devuelva la variable indicada a través del puntero de parámetro formal n. Si ingresa un número: 27638496, el nuevo número es 729.
El primer espacio: { t = * n 10
Segundo espacio: if (t2!=0)
El tercer espacio: * n = x; ;
2. Modificación del programa
La función de diversión en el programa dado modi1.c es calcular n! . Por ejemplo, si ingresa 5 para n, se generará 120,00000.
Doble diversión (entero)
{ doble resultado = 1.0;
/* * * * * *Encontrado******/ p >
Si (n==0)
Devuelve 1.0;
mientras (n gt; 1. ampn lt170)
/* * * * * *Encontrado******/
Resultado* = n-;
Devolver resultado;
}
Programación; Disposición
Escriba una función divertida, su función es convertir una cadena numérica en un número entero (la función proporcionada por el lenguaje C para convertir una cadena en un número entero no está permitida). Por ejemplo, si ingresa la cadena "-1234", la función la convierte al valor entero -1234.
Larga diversión (char *p)
{
int i, len, t
long x = 0 ; p>
p>
len = strlen(p);
if(p[0]=='-')
{ t =-1;len -;p;}
else t = 1;
mientras(*p)
x = x * 10-48 (* p ); p>
Devuelve Las cadenas, los números enteros y los números de punto flotante se escriben en un archivo de texto y luego se leen del archivo de texto uno por uno en forma de caracteres y se muestran en la pantalla del terminal.
Complete el contenido correcto en el subrayado del programa y elimine el subrayado para que el programa pueda obtener los resultados correctos.
Nota: El programa fuente se almacena en BLANK1. c debajo de la carpeta del candidato.
FILE * fp está en 1;
Segundo lugar while(!feof(fp)) {
Tercer lugar putchar(ch); FP);}
2. Modificación del programa
El papel de la diversión en el programa dado MODI1. c elimina todos los caracteres numéricos de la cadena para formar una nueva cadena y reemplaza la cadena original.
Diversión no válida(char)
{ int i,j;
for(i=0,j=0;s[i]!='\ 0';i)
if(s[I] gt;= ' 0 ' amp amps[I] lt;='9')
/* * * * * * Encontrado ******/
s[j ]= s[I];
/* * * * * *Encontrado ******/
s[j]= ' \ 0 ';
}
3. Preguntas de programación
Por favor escriba la función divertida y su función. coloque los datos de caracteres en la matriz bidimensional con m filas yn columnas en una cadena en orden de columnas.
diversión vacía(char s[][N], char *b)
{
int i, j, n = 0;
for(I = 0;iltn;i)
/*Por favor complete la declaración correspondiente para completar su función*/
{
for (j = 0; j ltm; j ) {
b[n]= s[j][I];
n = I * M j 1;
}
}
b[n]= '\0';
}
Episodio 3
1. Completar los espacios en blanco según el programa
Al definir las variables de la estructura estudiantil, el programa almacena el número de estudiante, el nombre y las calificaciones de los tres cursos. Todos los datos de los estudiantes se envían a archivos en formato binario. La función de diversión es reescribir los datos del último estudiante en el archivo al que hace referencia el nombre de archivo del parámetro formal, es decir, sobrescribir los datos originales de este estudiante con los datos del nuevo estudiante, mientras que los datos de otros estudiantes permanecen sin cambios.
No.1: fp=fopen(nombre de archivo,
“rb”)
Segundo lugar: fseek(fp,-1L*
sizeof(STU), SEEK_END);
Tercer lugar: fwrite(;n,
sizeof(STU), 1, FP);
2. Modificación del programa
El papel de Creatlink en el programa MODI1 dado. c es crear una lista vinculada unidireccional de nodos líderes y asignar un valor de 0 a m-1 al campo de datos de cada nodo. Corrija el error en la parte especificada de la función Creatlink para que pueda obtener el resultado correcto.
NODO *Creatlink(int n, int m)
{ NODO *h=NULL, *p, * s
int
/* * * * * *Encontrado******/
p=(nodo*) malloc(tamañode(nodo));
h = p ;
p->;siguiente = null
for(I = 1;i lt= n;i)
{s=(NODE *) malloc (tamaño de (NODO)).
s- gt; datos = rand() m;
s- gt; siguiente = p- siguiente
p->; s;
p = p- gt;Siguiente;
}
/* * * * * *Encontrado******/
Return h;
}
3. Programación; disposición
Escribe la función divertida, su función es contar un carácter El número de caracteres en la cadena y se devuelve como un valor de función.
Ingrese una línea de cadena en la función principal, estipulando que todas las palabras constan de letras minúsculas, las palabras están separadas por varios espacios y no hay espacios al comienzo de una línea.
Interés (char *s)
{
int k = 1;
while(*s)
{ if(* s = = ' ')k
s }
Devuelve k; 4 episodios
1. Completa los espacios en blanco según el programa
Al definir las variables de la estructura estudiantil, el programa almacena el número de alumno, el nombre y las calificaciones de tres cursos. . Todos los datos de los estudiantes se envían a archivos en formato binario. La función de diversión es leer los datos de los estudiantes del archivo indicado por el nombre de archivo del parámetro formal, ordenar los datos de los estudiantes de pequeño a grande y luego enviar los datos ordenados de los estudiantes al archivo indicado por el nombre de archivo en formato binario, sobrescribiendo el contenido del archivo original. .
Fp = fopen(nombre de archivo, "rb") en 1;
Segundo bit if (s[I].SnO>s[j].sno)
p>
El tercer fwrite(s, sizeof(STU), N, FP);
2 Modificación del programa
El papel de la diversión en el programa MODI1 dado. . c agrega el signo n * delante de la cadena para formar una nueva cadena. Esta nueva cadena es diferente y cubre la cadena original. Nota: La longitud máxima de una cadena es 79.
void fun(char s[ ], int n)
{
char a[80], * p;
int I;
/* * * * * *Encontrado******/
p = s;
for(I = 0;I ltn ; i )
a[I]= ' * ';
Hacer
{ a[I]= * p;
i;
}
/* * * * * *Encontrado******/
mientras(*p)
a[I]= 0;
strcpy(s, a);
}
3. Disposición de programación
Por favor hacer que la función sea interesante. La función es contar el número de personas de distintas edades. Llamar a una función aleatoria puede obtener n edades y colocarlas en la matriz de edades de la función principal. La función requiere que el número de personas de 0 a 9 años se coloque en d[0], el número de personas de 10 a 19 años se coloque en d[1] y el número de personas de 20 a 20 años. Los resultados se muestran en la función principal.
vacío divertido(int *a, int *b)
{
int i, j;
for(I = 0 ;iltm;i )b[I]= 0;
for(I = 0;iltn;i )
{ j = a[I]/10;
for(I = 0;iltn;i )
{ j = a[I]/10; p>
if(j gt;10)b[M-1];
else b[j];
}
} p>
Episodio 5
1. según el programa
En un programa determinado, la función de diversión es convertir cadenas, números enteros y flotantes de parámetros dados en Los puntos se escriben en un archivo y luego se leen del archivo de texto uno por uno. en forma de cadenas Las funciones de biblioteca atoi y atof se llaman para convertir las cadenas en números enteros y de punto flotante correspondientes, y luego se muestran en la pantalla.
1: FILE * FP;
Segundo lugar: fclose(FP);
Tercer lugar: fscanf (FP, "s s", str, str 1). , str 2);
2. Modificación del programa
El papel de la diversión en el programa dado MODI1. c es encontrar la M superior (m
STU *fun(STU a[ ], int m)
{ STU b[N], * t;
int i, j, k;
/* * * * * *Encontrado******/
t=(STU *)calloc(sizeof( STU) , m);
for(I = 0;iltn;i)
b[I]= a[I];
for( k = 0 ;k ltm;k )
{ for(I = j = 0;i ltn;i)
if(b[i].s gtb[j]. s)j = I;
/* * * * * *Encontrado******/
t[k]= b[j];
b [j]. s = 0;
}
return t;
}
3.
Escriba la función divertida. La función elimina todos los mismos números en la matriz unidimensional, dejando solo uno. Los números en la matriz se han ordenado de menor a mayor y la función devuelve la cantidad de datos eliminados. matriz.
int fun(int a[ ], int n)
{
int i, j=1, k = a[0];
for(I = 1; iltn;i)
if (k!=a[i]){
a[j]= a[I]
k = a[I];}
a[j]= 0;
Devuelve j;
} p >
Episodio 6
1. Completa los espacios en blanco según el programa
En el programa dado, la función de diversión es devolver el valor anual de una función basada en sobre el valor del parámetro formal I. .Cuando la llamada es correcta, el programa genera:
x2=3.000000
x 1 * x 1 x 1 * x2 = 40.000000<. /p>
Primer lugar: double fun(int i, double x, double y)
Segundo lugar: return f 1(x);
Tercer lugar: return f2 (x, y);
2. Modificación del programa
La función divertida MODI1 en el programa dado compara dos cadenas y devuelve la primera dirección de la cadena más larga como valor de la función.
# include ltstdio.h gt
/* * * * * *Encontrado******/
char *fun(char *s , char *t)
{
int sl=0, TL = 0
char *ss, *TT
ss; = s; TT = t;
mientras(*ss)
{ sl;
/* * * * * *Encontrado**** ** /
ss;
}
Y (*tt)
{ tl;
/ * * * * * *Encontrado ******/
TT;
}
if (TL gt; sl) devuelve t
else devuelve s;
}
3. Programación; disposición
Escriba la función divertida, su función es mover el contenido de la cadena. Las reglas de movimiento son las siguientes: mueva los caracteres del 1 al 1 de manera uniforme hasta el final de la cadena, mueva el 1 del 1 al final de la cadena;
Fondos no válidos (char *w, int m)
{
int I
for(I = 0; i ltm; ;i )
diversión 1(w);
}
Episodio 7
1. Completa los espacios en blanco según el procedimiento.
El programa utiliza variables de estructura para almacenar la información de un estudiante definiendo y asignando valores iniciales, y la función de diversión es generar la información del estudiante.
Visualización no válida (stu tt) en 1
Segundo printf ("5.1f", TT.score[I]);
Segundo espectáculo (std)
2. Modificación del programa
La función divertida en el programa MODI1 dado es encontrar el número más grande y el segundo número más grande en la matriz, usando un [0] Intercambiar el mayor número con el número en a[1] e intercambiar el segundo número más grande con el número en a[1].
int fun(int *a, int n)
{ int i, m, t, k
for(I = 0; i lt2; i ){
/* * * * * *Encontrado******/
m = I;
for(k = I 1 ; k ltn;k )
/* * * * * *Encontrado******/
if(a[k] gt;a[m])m = k
t = a[I]; a[I]= a[m]; a[m]= t
}
}
p>
3. Programación; Disposición
Escriba una diversión sin signo (w sin signo), donde w es un entero sin signo mayor que 10, si w es un entero de n (n gt; = 2) dígitos. , la función encuentra los últimos n-1 dígitos de w y los devuelve como valor de la función.
Por ejemplo, si el valor de W es 5923, la función devuelve 923; si w es 923, la función devuelve 23.
Diversión sin firmar (w sin firmar)
{
Si (w gt=10000) devuelve w 10000;
Si (w gt =1000) devuelve w 1000;
Si (w gt=100) devuelve w 100;
devuelve w 10;
}
Episodio 8
1. Complete los espacios en blanco según el programa
A través de la definición y la asignación, el programa dado utiliza variables estructurales para almacenar el número de estudiante, el nombre y los tres cursos. Fracción. La función divertida es multiplicar las notas del alumno en todas las materias por un sistema A.
Nulo modificado (STU *ss, float a) en 1
Segundo lugar ss-gt; puntuación[I]* = a;
La tercera modificación (;std, a);
2 Modificación del programa
diversión en el programa dado Función en MODI1. c es: encontrar k! lt13 >, el valor del factorial se devuelve como valor de función. Por ejemplo, k=10, el resultado debería ser: 3628800.
Longqu(int k)
{
/* * * * * *Encontrado ******/
if (k gt; 0)
return(k * fun(k-1));
/* * * * * *Encontrado******/
else if(k==0)
Devuelve 1L;
}
3.Programación; El programa define una matriz bidimensional N*N y la asigna automáticamente en la función principal. Escriba la función fun(int a[ ][N], int n. Su función es multiplicar el valor en el elemento del triángulo inferior izquierdo de la matriz por N).
int fun(int a[ ][N], int n)
{ int i, j
for(I = 0; i ltn; i )
for(j = 0; j lt= I; j )
a[I][j]* = n;
} p>
Episodio 9
1. Complete los espacios en blanco según el programa
En el programa dado, la función de la diversión es completar los datos en los datos del nodo. campo de la lista enlazada unidireccional Ordene los nodos sin líder de menor a mayor. Es decir, si los datos en el campo de datos del nodo de la lista vinculada original son: 10, 4, 2, 8 y 6, entonces los datos en el campo de datos del nodo de la lista vinculada ordenada son: 2, 4, 6, 8 y 10.
En 1, q = p->; siguiente;
Y (q) está en la segunda posición
La tercera posición es p = p- gt. ; Siguiente;
2. Modificación del programa
El papel de la diversión en el programa MODI1. c es convertir las letras de la cadena representada por S al orden alfabético de las letras posteriores (pero Z se convierte en A, Z se convierte en A), y otros caracteres permanecen sin cambios.
Diversión no válida (caracteres)
{
/* * * * * *Encontrado******/
mientras (*s)
{ if(* s gt; a' and amp amp* s lt='Z '
| | * s gt= ' a ' amp amp* s lt='z ')
{ if(* s = = ' Z ')* s = ' A ';
si no (* s = = ' z ') * s = ' a ';
else * s = * s 1;}
/* * * * * *Encontrado******/
s;
}
}
3. Programación; disposición
void fun(int *w, int p, int n )
{
int i, j=0, b[N]
for(I = p 1; i ltn; i )b [j ]= w[I];
for(I = 0;ilt= p;i)
b[j]= w[I];
for(I = 0;iltn;i)
w[I]= b[I];
}
Episodio 10
Rellene los espacios en blanco con 1 programa
En el programa dado, la función de diversión es determinar si la matriz N×N (donde N es un número impar) apuntada por el parámetro formal A es " magic" Square", si es así, la función devuelve un valor de 1; si no, la función devuelve un valor de 0; El criterio del “cuadrado mágico” es que la suma de los elementos de cada fila, columna, diagonal principal y antidiagonal de la matriz sea igual.
fila = columna = 0 = 0 en 1;
Si ((fila!= columna)| |(fila!=m1)) devuelve 0;
El tercer bit devuelve 1;
2 modificaciones del programa
Se da la función de MODI1. La función Cfun calcula el valor de la siguiente fórmula t=1-1/2-1/3-...-1/metro en función del parámetro entero m.
# include ltsdio.h gt
Doble diversión (int m)
{
Doble t = 1.0;
int I;
for(I = 2; i lt= m; i)
/* * * * * * * *Encontrado ****** * ***/
t = t-1.0/I;
/* * * * * * * *Encontrado **********/
volver t;
}