2010 Nankai C Language 100 Banco de pruebas de computadora
Computadora nivel 2 Computadora en lenguaje C Nankai 100 preguntas - 1
1: En la pregunta 1, las puntuaciones de m individuos se almacenan en la matriz de puntuación. Escriba la función divertida. Su función Sí: devolver aquellos con puntuaciones inferiores al promedio como valores de función y colocar aquellos con puntuaciones inferiores al promedio en la función especificada a continuación.
Respuesta:
int fun(int puntuación[], int m, int debajo[])
{
int i, k=0,promedio=0;
for(i=0;i promedio =puntuación[i]; promedio/ =m; for(i=0;i if(puntuación[i] { abajo[k]=puntuación[i]; k; } devuelve k; } p> 2: Para la pregunta 2, escriba la función divertida. Su función es encontrar todos los certificados entre 1 y 100 que se pueden dividir entre 7 u 11, pero que no se pueden dividir entre 7 y 11 al mismo tiempo. y colóquelos en la matriz señalada por a, devuelva el número de estos números hasta n. Respuesta: void fun(int *a, int *n) { int i, j=0; for(i=2; i<1000; i ) si ((i7==0 || i11==0) amp; amp; i77!=0) p> a[j ]=i; *n=j; } 3: Para la pregunta 3, escriba la función void fun (int x, int pp [], int *n), su función es encontrar los números enteros que pueden dividir x y que no son números pares, y colocarlos en la matriz señalada por pp en orden de pequeño a grande. El número de estos divisores El número se devuelve a través del parámetro formal n. Respuesta: void fun(int x, int pp[], int *n) { int i=1 , j=0; k=0, *t=pp; for(i=0; i<=x; i ) si(i2!=0) p> { t[j]=I j; } for(i=0; i if(xt[i]==0) { pp[k]=t[i]; p> p> k; } *n=k; } 4: Por favor escriba un La función void fun(char *tt, int pp[]) cuenta el número de apariciones de cada una de las 26 letras de la "a" a la "z" en el carácter tt y las coloca en la matriz a la que apunta pp a su vez. Respuesta: void fun(char *tt, int pp[]) { int i; para (i=0; i<26; i ) pp[i]=0; mientras (*tt) { cambiar (*tt) { caso 'a': pp[0]; descanso; caso 'b': pp[1]; descanso; caso 'c': pp[2]; descanso; caso 'd': pp[3]; p>caso 'e': pp[4]; descanso; caso 'f': pp[5]; caso 'g': pp[6]; romper; caso 'h': pp[7]; romper; caso 'i': pp[8]; caso 'j ': pp[9]; romper; caso 'k': pp[10]; romper; caso 'l': pp[11]; > caso 'm': pág[12]; salto; caso 'n': pág[12]; caso 'o': pág[14 ] ;romper; caso 'p': pp[15] ;romper; caso 'q': pp[16] ;romper; caso 'r': pp[17]; descanso; caso 's': pp[18]; caso 't': pp[19]; ; caso 'u': pp[20]; salto; caso 'v': pp[21]; caso 'w'; : pp [22] ;break; caso 'x': pp[23] ;break; caso 'y': pp[24] ;break; caso 'z': pág[25]; descanso; } tt; } } p> 5: Para la pregunta 5, escriba una función void fun(int m, int k, int xx[] La función de esta función es almacenar k números primos que sean mayores que el entero my cerrar). a m en el punto señalado por xx en la matriz. Respuesta: void fun(int m, int k, int xx[]) { int g=0, I, j, bandera=1; for(i=m 1;i { for(j=0 ; j { if(ij!=0) flag=1; si no p> { flag=0; romper } } si (flag==1 amp;amp;jgt;=i) { if (kgt;=0) { xx[g]=i; k--; } else romper; } } } 6: Para la pregunta 6, escriba una función void fun(char a[], char[], int n) , Su función es: eliminar los caracteres especificados por el subíndice en cada cadena. Entre ellos, a apunta a la cadena original, la cadena eliminada se almacena en la matriz señalada por b y el subíndice especificado se almacena en n. Respuesta: void fun(char a[], char b[], int n) { int I, j=0; for (i=0; i si (i!=n) { b[j]=a[i]; j; } b[j]='\0'; } 7: Para la pregunta 7, escriba una función int fun (int *s, int t, int *k) para encontrar y dividir el subíndice del elemento más grande almacenado en la matriz. en la unidad de almacenamiento señalada por k. Respuesta: void fun (int *s, int t, int *k) { int I, max; max=s[0]; for(i=0;i si (s[i]gt;max) { max=s[i] *k=I } } 8: Pregunta 8: Escribe la función fun. La función es: calcula s de acuerdo con la siguiente ofensiva y el resultado del cálculo se devuelve como un valor de función que se pasa a través del parámetro formal. S=1 1/(1 2) 1/(1 2 3) ……. 1/(1 2 3 4 …… n) Respuesta: flotar divertido (int n) { int i; flotador s=1.0, t=1.0; for(i=2;i <=n;i ) { t=t i; s=s 1/t; } return s; } 9: Pregunta 9: Escribe una función divertida Su función es: encontrar el valor de p según la siguiente fórmula y el resultado. es traído por el valor de la función Atrás. M y n son dos números enteros positivos y se requiere mgt; p=m!/n!(m-n)! Respuesta: float fun(int m, int n) { flotante p, t=1.0; int I for (i=1; i<=m; i ) t=t*I ; p=t; for(t=1.0, i=1; i<=n; i) t=t*I; p=p/t; for(t=1.0, i=1; i<=m-n; i) t=t*I; p=p/t; return p; } 10: Pregunta 10: Función de escritura divertida Su función es: Utilice el siguiente método iterativo simple para encontrar una raíz real de la ecuación cos(x)-x=0. Los pasos de iteración son los siguientes: (1) Tome el valor inicial de x1 como 0.0; (2) x0=x1, asigne el valor de x1 a cada x0; 3)x1=cos( x0), encuentre un nuevo x1; (4) Si el valor absoluto de x0-x1 es menor que 0.000001, realice el paso (5); de lo contrario, realice el paso (2); (5) El x1 buscado es una raíz real de la ecuación cos(x)-x=0, que se devuelve como valor de la función. El programa generará root=0.739085. Respuesta: flotar divertido() { flotar x1=0.0, x0; hacer { x0=x1; x1=cos(x0); } mientras( fabs(x0-x1)gt;1e-6); return x1; } 11: Pregunta 11 El siguiente programa define n×n La matriz bidimensional se asigna automáticamente en la función principal. Escriba la función fun (int a [][n]). La función de esta función es establecer todos los valores en el elemento triangular inferior izquierdo de la matriz en 0. Respuesta: int fun(int a[][N]) { int I, j; para(i=0;i para(j=0;j<=I;j) a[i][j] =0; } 12: Pregunta 12 El siguiente programa define una matriz bidimensional n×n y la asigna en la función principal. Escriba la función divertida. La función de la función es encontrar el valor promedio de los elementos circundantes de la matriz y devolverlo a s en la función principal como valor de la función. Respuesta: doble diversión(int w[][N]) { int I, j, k=0 ; doble s=0.0; for(j=0;j { s =w [0][j]; k; } para(j=0; j { s =w[N-1][j]; k } para(i=1; i<=N-2; i ) { s =w[i][0] k ; } for(i=1;i<=N-2;i) { s =w[i][N-1]; k; } return s/=k; } 13: Pregunta 13 Por favor escriba una función void fun(int tt[m][n], int pp[n] apunta a un grupo de funciones bidimensional con m filas yn columnas. Encuentre el elemento más pequeño en cada columna del bidimensional. grupo de funciones y luego colóquelo en la matriz unidimensional especificada por pp. Los números de la matriz bidimensional se han asignado en la función principal. Respuesta: void fun(int tt[M][N], int pp[N]) { int I, j, min; for(j=0;j { min=tt[0][j]; for(i=0;i { si (tt[i][j] min=tt[i][j]; } pp[j]=min; } } 14: No escriba la función divertida para la pregunta 14. La función de la función es encontrar la suma de los elementos circundantes de la matriz bidimensional y devolverla como el valor de la función. Los valores de la matriz bidimensional se asignan en la función principal. Respuesta: int fun(int a[M][N]) { int I, j, s= 0; for(j=0;j { s =a[0][j]; s =a[M-1][j]; } for(i=1; i<=M-2; i ) { s =a[i][0] s =a[i][N-1] } return s; } 15: Para la pregunta 15, escriba una función divertida sin signo (w sin signo), w es un entero sin signo mayor que 10, si w Como un número entero con n (n≥2) dígitos, la función devuelve el número de n-1 dígitos después de w como valor de la función. Respuesta: diversión sin signo (w sin signo) { t sin signo, s=0, s1=1, p= 0; t=w; mientras(tgt;10) { si(t/10) p=t10; s=s p*s1; s1=s1*10; t=t/10; } return s; } 16: Para la pregunta 16, escriba una función float fun(doble h). la función es Mantener un árbol de 2 dígitos para el valor de la variable h y redondear el tercer dígito (especificando que el valor de h es un número positivo). Respuesta: flotar divertido(flotar h) { long t; flotar s; h=h*1000; t=(h 5)/10 s=(flotación)t/100.0; p>return s; } 17: Para la pregunta 17, escriba una función fun(char *s). La función de esta función es establecer el contenido de la cadena. . Respuesta: void fun(char *s) { char ch; int I , m, n; i=0; m=n=strlen(s)-1; 2) { ch=s[i]; s[i]=s[m]; s[ m]=ch; i m--; } } 18: Pregunta 18: Escriba un programa para realizar la transposición (es decir, intercambio de filas y columnas) de una matriz (3 filas y 3 columnas). Respuesta: void fun(int array[3][3]) { int I, j, temp; for(i=0; i<3; i) for(j=0; j { temp=matriz[i][j]; matriz[i][j]=matriz[j][i]; matriz[j][i] =temp; } } 19: Pregunta 19: Escribe la función divertida La función de esta función es: eliminar el carácter especificado del carácter. , las mismas letras mayúsculas y minúsculas se tratan como caracteres diferentes. Respuesta: void fun(char s[], int c) { int i=0; char *p; p=s; mientras(*p) { si(*p !=c) { s[i]=*p i ; } p; } s[i]='\0'; } 20: Pregunta 20 Escribiendo una función int fun(int lim, int aa[max]), la función de esta función es encontrar todos los números primos menores o iguales a lim y ponerlos en la matriz aa. Esta función devuelve el número de números primos buscados. Respuesta: int fun(int lim, int aa[MAX]) { int k=0, I, j; for(i=lim;igt;1;i--) { for(j=2;j if(ij==0) romper si no continuar if(jgt; ;=i) { aa[k]=i; k ; } } return k ; } 21: Para la pregunta 21, escriba la función fun, para una cadena de 7 caracteres de longitud, excepto el primero. y últimos caracteres, organice los 5 caracteres restantes en orden descendente del código ASCII. Respuesta: void fun(char *s, int num) { char t; int I, j; for(i=1;i for(j=i 1;j if(s[i] { t=s[i]; s[i] ]=s[j]; s[j]=t; } } 22: Pregunta 22n Las puntuaciones de los estudiantes se han colocado en una estructura de lista vinculada con un nodo principal en la función principal, y h apunta al nodo principal de la lista vinculada. Escriba la función divertida. Su función es encontrar la puntuación más alta del estudiante y devolverla por el valor de la función. Respuesta: doble diversión(STREC *h) { doble máximo; STREC * q=h; max=h-gt;s; hacer { if(q-gt;sgt; max) max=q-gt;s; q=q-gt;siguiente; } mientras(q !=0); return max; } 23: Para la pregunta 23, escriba la función divertida. La función de esta función es: determinar. si la cadena ¿Es un palíndromo? Si es así, la función devuelve 1 y sí se genera en la función principal. De lo contrario, se devuelve 0 y no se genera en la función principal. Un palíndromo es una cadena que es igual cuando se lee hacia adelante y hacia atrás. Respuesta: int fun(char *str) { int I, n=0; /p> char *p=str; mientras (*p) { n; p; } for(i=0;i if (cadena[i]==cadena[n-1- i]); else { fg=0 romper }; p> return fg; } 24: Para la pregunta 24, escriba una función divertida. Su función es: convertir una cadena en un número entero (no debe llamarse). Función proporcionada por el lenguaje C para convertir una cadena a un número entero). Respuesta: long fun (char *p) { long s=0, t; int i=0,j,n=strlen(p),k,s1; if(p[0]=='-') i; p> p> for(j=I;j<=n-1;j) { t=p[j]-'0' ; s1=10; for(k=j;k t*=s1; s =t ; } if(p[0]=='-') return –s; else return s; } 25: Para la pregunta 25, escriba una función divertida. Su función es: comparar la longitud de dos cadenas. (No se debe llamar a c La función proporcionada por el lenguaje para encontrar la longitud de una cadena), la función devuelve la cadena más larga. Si las dos cadenas tienen la misma longitud, se devuelve la primera cadena. Respuesta: char *fun(char *s, char *t) { char *p, *t1= t, *s1=s; int n=0; m=0; mientras (*s1) { n ; s1 ; } mientras(*t1) { m ; p> p> t1; } if(ngt;=m) p=s; else p> p=t; return p; } 26: Para la pregunta 26, escriba una función divertida. Su función es: Calcular el valor de x de acuerdo con la siguiente fórmula (se requiere que la precisión sea 0.0005, es decir, la iteración se detiene cuando un elemento es menor que 0.0005): x/2=1 1/3 1×2/3×5 1×2×3 /3×5×7 1×2×3×4/3×5×7×9… 1×2×3×… ×n/3×5×7×(2n 1) Programa Después de ejecutarlo, si la precisión de entrada es 0,0005, la salida del programa es 3,14…. Respuesta: doble diversión(doble eps) { doble s; flotar n, t, pi; t=1; pi=0; n=1.0; s=1.0; mientras((fabs(s))gt;=eps) { pi =s; t=n/(2*n 1); s*=t; n; } pi=pi*2; devuelve pi; } 27: Para la pregunta 27, escriba una función divertida. Su función es: encontrar todos los números enteros del 1 al m (incluido m) que se pueden dividir entre 7 u 11 en la matriz a y devolver el número de estos números hasta n. . número. Respuesta: void fun(int m, int *a, int *n) { int I, j= 0; *n=0; for(i=1; i<=m; i ) si (i7==0 || i11 ==0) { a[j]=I j } *n=j; p> p> } 28: Para la pregunta 28, escriba una función divertida. Su función es: encontrar el valor más grande en el elemento de matriz de enteros unidimensionales y su subíndice. El valor y su índice se devuelven mediante parámetros formales. Los valores de los elementos de la matriz se han asignado en la función principal. En la función principal, x es el nombre de la matriz, n es el número de datos en x, max almacena el valor máximo y index almacena el subíndice del elemento donde se encuentra el valor máximo. Respuesta: diversión nula (int a[], int n, int *max, int *d) { int I; *max=a[0]; *d=0; for(i=0;I if(a[i]gt;*max) { *max=a[i]; *d= I; } } 29: Para la pregunta 29, escriba una función divertida. Su función es: agregar todos los siguientes caracteres en la cadena. señalado por ss. Las letras en posiciones impares se convierten a mayúsculas (si la posición no es una letra, no se convierte). Respuesta: void fun(char *ss) { int I, n; n=strlen(ss); for(i=1;i if(ss[i]gt;='a'amp;amp ; ss[i]<='z') ss[i]=ss[i]-32; } 30: Pregunta 30 Por favor Escribe una función divertida. Su función es encontrar y dividir el valor del elemento más grande en una matriz bidimensional entera de 2 × m y devolver este valor a la función que llama. Respuesta: int fun(int a[][M]) { int I, j, max <; /p> max=a[0][0]; for(i=0;i<2;i) for(j=0;j< M; j ) if(a[i][j]gt; max) max=a[i][j]; return max ; } 31: Para la pregunta 31, escriba la función fun. Su función es: excepto que el subíndice en la cadena señalada por s es un número par y el. El valor ascii también es un número par. Excepto los caracteres, todos los demás se eliminan; una nueva cadena formada por los caracteres restantes de la cadena se coloca en una matriz señalada por t. Respuesta: void fun(char *s, char t[]) { int I, j=0, n; n=strlen(s); for(i=0;I,n;i) if(i2==0amp;amp ;s[i]2==0) { t[j]=s[i]; j ; } t[j]='\0'; } 32: Para la pregunta 32, escriba la función divertida. Su función es: cambiar s Excepto los caracteres con subíndices impares y valores ascii impares en la cadena puntiaguda, todos los demás caracteres se eliminan y una nueva cadena formada por los caracteres restantes de la cadena se coloca en una matriz señalada por t. Respuesta: void fun(char *s, char t[]) { int I, j=0, n; n=strlen(s); for(i=0;I,n;i) if(i2!=0amp;amp ;s[i]2!=0) { t[j]=s[i]; j ; } t[j]='\0'; } 33: La pregunta 33 supone que la cadena de entrada solo contiene letras y * Número. Escriba la función divertida. Su función es: hacer que el número de signos * al final de la cadena no sea mayor que n si hay más de n números, elimine el exceso de signos * si hay menos que o igual a; n números, entonces nada. Si lo hace, el signo * en el medio y delante de la cadena no se eliminará. Respuesta: void fun(char *a, int n) { int i=0; char *p, *t p=t=a mientras (*t) t ; p> p> t--; mientras(*t=='*') { k; p> t--; } t; if(kgt; n) { mientras (*pamp; amp; p { a[i]=*p i; > p ; } a[i]='\0'; } } 34: Los registros de los estudiantes en la pregunta 34 consisten en números de estudiantes y calificaciones. Los datos de n estudiantes se han colocado en la matriz de estructura s en la función principal. Escriba la función divertida. datos del estudiante con el puntaje más alto en En la matriz señalada por h, tenga en cuenta: puede haber más de un estudiante con el puntaje más alto y la función devuelve el número de estudiantes con el puntaje más alto. Respuesta: int fun (STREC *a, STREC *b) { int I, j=0, n =0, máx; max=a[0].s; for(i=0;i si(a [i].sgt; max) max=a[i].s; for(i=0; i if(a[i].s==max) { *(b j)=a[i]; j; n; } return n; } 35: Para la pregunta 35, escriba una función para Eliminar todos los espacios de la cadena. Respuesta: void fun(char *str) { int i=0; char *p=str; mientras (*p) { if(*p!='') { str[i]=*p i } p; /p> str[i]='\0'; } 36: La pregunta 36 supone que la cadena de entrada solo contiene letras y signos *. Escriba la función divertida. Su función es mover todos los signos * iniciales de la cadena al final de la cadena. Respuesta: void fun(char *a) { int i=0, n=0; char *p; p=a; mientras (*p=='*') { n ; p ; } mientras (*p) { a[i ]=*p; i p } mientras(n!=0) { a[i]='*'; i n--; > a[i]='\0'; } 37: El registro de un estudiante en la pregunta 37 consta del número de estudiante, las calificaciones de 8 cursos y el promedio La puntuación, el número de estudiantes y las calificaciones de 8 cursos se han proporcionado en la función principal. Escriba la función divertida. Su función es: encontrar la puntuación promedio del estudiante y colocarla en el miembro ave del registro. Defina usted mismo los parámetros formales correctos. Respuesta: void fun(STREC *p) { doble av=0.0; int i: for(i=0; i av =p-gt; av/= N; p-gt; ave=av; } 38: Para la pregunta 38, escriba la función fun. Su función es: encontrar ss. El número de caracteres especificados en la cadena señalada y devuelve este valor. Respuesta: int fun(char *ss, char c) { int n=0; mientras (*ss) { si(*ss==c) n; ss; } return n; } 39: Para la pregunta 39, escriba la función divertida. La función de esta función es. : mover uno Para el contenido de una matriz dimensional, si hay n números enteros en la matriz, es necesario traducir los elementos de la matriz con subíndices de 0 a p (p es menor o igual que n-1) al final de la matriz. Respuesta: void fun(int *w, int p, int n) { int b[N], i, j=0; for(i=0; i<=p; i) { b[i]=w[i] ; j ; } for(i=0;i<=p;i) { w[j]=b[i]; j; } } 40: Pregunta 40 Por favor escriba la función divertida. La función de esta función es mover el contenido en la cadena. Las reglas de movimiento son las siguientes: mueva los caracteres del 1 al 1 al final de la cadena y mueva m+1 a los últimos caracteres. el frente del departamento de cuerdas. Respuesta: void fun(char *w, int m) { char b[N]; int I, j=0; for(i=0; i { b[j]= w[i]; j; } para (i=0; i w[i]=w[i m]; for(j=0;j { w[i ]=b[j]; i } w[i]='\0'; /p> 41: Para la pregunta 41, escriba la función divertida. La función de esta función es colocar los datos de caracteres en la matriz bidimensional de m filas yn columnas en una cadena en orden de columnas. Respuesta: void fun(char (*s)[n], char *b) {int i, j, k=0; /p> for(j=0;j for(i=0;i {b[k]= *(*(s i) j) k;} b[k]='\0';} 42: Pregunta 42 El siguiente procedimiento Una matriz bidimensional n × n se define y se asigna automáticamente en la función principal. Escriba la función fun(int a[][n], int n. La función de esta función es multiplicar el valor en el medio elemento triangular superior derecho de la matriz por m). Respuesta: void fun(int a[][n], int m) {int i, j; for(j=0;j for(i=0;i<=j;i) a[j]=a[j]*m ;} 43: Pregunta 43: Escriba una función para encontrar la cadena más larga entre las cadenas numéricas pasadas y devuelva la dirección de la cadena a través del puntero de parámetro formal max (usando **** como firmar para finalizar la entrada). Respuesta: char *fun(char (*a)[81], int num) {int i; char *max; max=a[0]; for(i=0; i if(strlen(max) max=a; return max;} 44: Pregunta 44: Escribe una función que pueda contar una longitud El número de veces aparece una cadena de 2 en otra cadena. Respuesta: int fun(char *str, char *substr) {int n; char *p, * r; n=0; mientras(*str) {p=str; r=substr; p> mientras(*str) {p=str; r=substr; p> mientras(*r) if(*r==*p) {r; p;} else romper; if(*r=='\0') n; str;} return n; } 45: La pregunta 45 supone que la cadena de entrada solo contiene letras y signos *. Escriba la función divertida. Su función es: eliminar solo los signos * iniciales y finales de la cadena, y no eliminar los signos * entre las letras de la cadena. El parámetro formal n proporciona la longitud de la cadena, el parámetro formal h proporciona el número de signos * iniciales en la cadena y el parámetro formal e proporciona el último número * de la cadena. Las funciones de cadena proporcionadas por el lenguaje C no se deben utilizar al escribir. Respuesta: void fun(char *a, int n, int h, int e) {int i=0; char *p; for(p=a h;p<a n-e;p) {*(a i)=*p; i ;} *(a i)='\0';} 46: Los registros de los estudiantes en la Pregunta 46 se nombran por sus números de estudiantes y grupos de grados, y los datos de n estudiantes universitarios han sido Colóquelo en la matriz de estructura s en la función principal. Escriba la función divertida. Su función es ordenar los registros de los estudiantes según sus puntajes, primero con los puntajes más altos. Respuesta: void fun(strec a[]) {int i, j; strec t;