Red de conocimiento informático - Aprendizaje de código fuente - Recomiende algunas preguntas de práctica sobre matrices en lenguaje C.

Recomiende algunas preguntas de práctica sobre matrices en lenguaje C.

Preguntas basadas en computadora de Nankai de 2006

1: Para la pregunta 1, las puntuaciones de m individuos se almacenan en la matriz de puntuación. Escriba la función divertida. Su función es: comparar. Las puntuaciones inferiores al promedio de las personas se devuelven como un valor de función, colocando las puntuaciones por debajo del promedio en la función especificada a continuación.

Respuesta: int fun(int puntuación[],int m,int debajo[])

{

int i,k=0,aver=0 ;

for(i=0;i

promedio+=puntuación[i];

promedio/=m;

for(i=0;i

if(score[i]

{

abajo[k] =puntuación[i];

k++;

}

devolver k;

}

2: Pregunta 2: Escriba la función divertida. Su función es encontrar todos los certificados entre 1 y 100 que son divisibles por 7 u 11, pero que no pueden ser divisibles por 7 y 11 al mismo tiempo, y colocarlos en la matriz señalada. por a., devuelve el número de estos números hasta n.

Respuesta: void fun(int *a, int *n)

{

int i,j=0;

para (i=2;i<1000;i++)

si ((i%7==0 || i%11==0) && i%77!=0)

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 menor a mayor. se pasa a través del parámetro formal nreturn.

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(i%2!=0)

{

t[j]=I;

j++;

}

for(i=0;i

if(x%t[i]==0)

{

pp[k]=t[i];

k++;

}

*n=k;

}

4: Por favor escriba una función void fun para la pregunta 4 (char *tt,int pp[]), cuenta el número de apariciones de cada una de las 26 letras de "a" a "z" en el carácter tt y las coloca en la matriz señalada por pp por turno.

Respuesta: void fun(char *tt, int pp[])

{

int i;

for (i= 0;i<26;i++)

pp[i]=0;

mientras (*tt)

{

cambiar (*tt)

{

caso 'a': pp[0]++;descanso;

caso 'b': pp[1]+ +;romper;

caso 'c': pp[2]++;romper;

caso 'd': pp[3]++;romper;

caso 'e': pp[4]++;romper;

caso 'f': pp[5]++;romper;

caso 'g': pp[6]++;romper;

caso 'h': pp[7]++;romper;

caso 'i': pp[8]++;romper ;

caso 'j': pp[9]++;romper;

caso 'k': pp[10]++;romper;

caso 'l': pp[11]++;romper;

caso 'm': pp[12]++;romper;

caso 'n': pp[12 ]++;romper;

caso 'o': pp[14]++;romper;

caso 'p': pp[15]++;romper; p>

caso 'q': pp[16]++;romper;

caso 'r': pp[17]++;romper;

caso 's ': pp[18]++;romper;

caso 't': pp[19]++;romper;

caso 'u': pp[20] ++ ;romper;

caso 'v': pp[21]++;romper;

caso 'w': pp[22]++;romper;

caso 'x': pp[23]++;romper;

caso 'y': pp[24]++;romper;

caso 'z' : págs [25]++;descanso;

}

tt++;

}

}

5: 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 son mayores que el número entero my cerca de m en la matriz señalada). hasta por xx.

Respuesta: void fun(int m, int k, int xx[])

{

int g=0,I,j,flag=1 ;

for(i=m+1;i

{

for(j=0;j

{

if(i%j!=0)

flag=1;

else

{

bandera=0;

romper;

}

}

si (bandera== 1 && j>=i)

{

si (k>=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 todo). caracteres El carácter que especifica el subíndice en la 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;

para (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 el subíndice del elemento más grande en la matriz y guárdelo en el almacenamiento señalado por k. en la unidad.

Respuesta: void fun (int *s, int t, int *k)

{

int I, max;

max=s[0];

for(i=0;i

if (s[i]>max)

{

max=s[i];

*k=I;

}

}

8 : Pregunta 8: Escriba la función fun. La función es: calcule 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 :float fun (int n)

{

int i;

float 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 p de acuerdo con lo siguiente. fórmula El valor de, el resultado lo devuelve el valor de la función. M y n son dos números enteros positivos y se requiere m>n.

p=m!/n!(m-n)!

Respuesta: float fun(int m, int n)

{

float 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: Escribir función divertida Su función es: utilizar el siguiente método de iteración simple Buscar. 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: float fun()

{

float x1=0.0,x0;

hacer

{

x0=x1;

x1=cos(x0);

}

mientras(fabs(x0-x1)> 1e-6);

return x1;

}

11: Pregunta 11 El siguiente programa define una matriz bidimensional n×n, y en el main Asigna valores automáticamente en funciones. 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;

for(i =0;i

for(j=0;j<=I;j++)

a[i][j]=0;

}

12: Pregunta 12 El siguiente programa define una matriz bidimensional n×n y asigna valores 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++;

}

for(j=0;j

{

s+=w[N-1][j];

k++;

}

for(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: Para la pregunta 13, escriba una función void fun (int tt[m][n],int pp[n]), tt apunta a un grupo de funciones bidimensional con m filas yn columnas. Encuentre el elemento más pequeño en cada columna del grupo de funciones bidimensional y colóquelo. en la dimensión especificada por pp en la matriz. 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 un valor de 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];

}

devuelve 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 es n (n≥2) dígito entero, 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 firmar (w sin firmar)

{

t sin signo,s=0,s1=1,p=0;

t=w;

mientras(t>10)

{

si(t/10)

p=t %10;

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). El valor en h conserva un árbol de 2 dígitos y el tercer dígito se redondea (especificando que el valor en h es un número positivo).

Respuesta: float fun(float h)

{

long t;

float s;

h=h*1000;

t=(h+5)/10;

s=(float)t/100.0;

devolver 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;

p>

i=0;

m=n=strlen(s)-1;

mientras(i<(n+1)/2 )

{

ch=s[i];

s[i]=s[m];

s[m] ]=ch;

i++;

m--;

}

}

18: Escritura un programa para la pregunta 18, Realizar la transpuesta de la matriz (3 filas y 3 columnas) (es decir, intercambiar las filas y columnas).

Respuesta: void fun(int array[3][3])

{

int I,j,temp;

for(i=0;i<3;i++)

for(j=0;j

{

temp=array[ 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 los caracteres especificados de los caracteres en mayúsculas y minúsculas. la misma letra tiene un manejo de caracteres diferente.

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 Escribir 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;i>1;i--)

{

for(j=2;j

if(i%j==0)

romper;

si no

continuar;

if(j>=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 primer y último carácter, el. Los 5 caracteres restantes están organizados 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

si(s[i]

{

t=s[i];

s[i]=s[j] ;

s[j]=t;

}

}

22: Las puntuaciones de n estudiantes en la pregunta 22 ya están en Coloque 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->s;

hacer

{

si(q->s>max)

max=q->s;

q=q->siguiente;

}

mientras(q!=0);

return max;

}

23: Para la pregunta 23, escriba una función divertida. La función de esta función es determinar si la cadena es un palíndromo. La función devuelve 1 y la función principal es La función genera sí; de lo contrario, devuelve 0 y la función principal genera no. 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;fg=1;

char *p=str;

mientras (*p)

{

n++;

p++;

}

for(i=0;i

if (str[i]==cadena[n-1-i]);

else

{

fg=0;

romper;

}

regresar 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 llamar a la función de conversión de cadenas proporcionada por el. Función en lenguaje C para convertir 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++;

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 las longitudes de dos cadenas (no debe llamar al método proporcionado por el lenguaje C. para encontrar la longitud de una cadena), la función devuelve una 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++;

t1++;

}

si(n>=m)

p=s;

si no

p= t;

return p;

}

26: Para la pregunta 26, escriba una función divertida. Su función es: encontrar el valor de x según. la siguiente fórmula (se requiere que la precisión sea 0,0005, es decir, la iteración se detiene cuando un elemento es inferior a 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;

float n,t,pi;

t=1;pi=0;n=1.0;s=1.0;

mientras((fabs(s))>=eps)

{

pi+=s;

t=n/(2*n+1);

s*=t;

n++; p>

}

pi=pi*2;

devuelve pi;

}

27: Pregunta 27 Por favor 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 por 7 u 11 en la matriz a y devolver el número de estos números hasta n.

Respuesta: void fun(int m, int *a, int *n)

{

int I,j=0;

for(i=1;i<=m;i++)

si (i%7==0 || i%11 ==0)

{

a[j]=I;

j++;

}

*n=j;

}

28: Para la pregunta 28, escriba una función divertida. Su función es: encontrar el valor más grande y su subíndice en el elemento de matriz de enteros unidimensionales, y el valor más grande y su subíndice. El índice se devuelve a través del parámetro formal. 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 vacía (int a[],int n, int *max, int *d)

{

int I;

*max=a[0];

*d=0;

for(i=0;I

si (a[i]>*max)

{

*max=a[i];

*d=I;

}

}

29: Para la pregunta 29, escriba una función divertida. Su función es: convertir todos los subíndices de la cadena señalada por ss en letras en posiciones impares. mayúscula (si no es una letra en esta posición, no se convertirá).

Respuesta: void fun(char *ss)

{

int I,n;

n=strlen(ss);

for(i=1;i

if(ss[i]>='a'&& ss[i]<='z')

ss[i]=ss[i]-32;

}

30: Para la pregunta 30, escriba una función divertida. Su función es: Encuentre y divida el valor del elemento más grande en una matriz bidimensional entera de 2 × m y devuelva este valor a la función que llama.

Respuesta: int fun(int a[][M])

{

int I,j,max;

max =a[0][0];

for(i=0;i<2;i++)

for(j=0;j

if(a[i][j]>max)

max=a[i][j];

return max;

}

31: Para la pregunta 31, escriba la función fun. Su función es eliminar todos los caracteres de la cadena señalada por s excepto los caracteres cuyos subíndices son números pares y cuyos valores ascii también lo son. números pares; 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(i%2==0&&s[i]%2== 0)

{

t[j]=s[i];

j++;

}

t[j]='\0';

}

32: Para la pregunta 32, escriba la función fun. Su función es: eliminar el subíndice de la cadena apuntada. por s. Excepto los caracteres que son un número impar y tienen un valor ASCII impar, todos los caracteres restantes 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(i%2!=0&&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 signos *. 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 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;k=0;

char *p, *t;

p=t=a;

mientras (*t)

t++;

t- -;

mientras(*t=='*')

{

k++;

t--;

}

t++;

if(k>n)

{

mientras (*p&&p

{

a[i]=*p;

i++;

p++;

}

a[i]='\0';

}

}

34: Los registros de los estudiantes de la pregunta 34 los obtiene It consta de números 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. Su función es colocar los datos de los estudiantes con las puntuaciones más altas en la matriz señalada. h Nota: Puede haber más de un estudiante con la puntuación más alta y la función devuelve el número de estudiantes con la puntuación más alta.

Respuesta: int fun (STREC *a, STREC *b)

{

int I,j=0,n=0, max; p>

max=a[0].s;

for(i=0;i

if(a[i].s >max )

max=a[i].s;

for(i=0;i

si(a[i ]. s==máx)

{

*(b+j)=a[i];

j++;

n++;

}

return n;

}

35: Para la pregunta 35, escriba una función para eliminar todos los espacios. .

Respuesta: void fun(char *str)

{

int i=0;

char *p=str;

mientras (*p)

{

si(*p!='')

{

str[i]=*p;

i++;

}

p++;

}

cadena [i]='\0';

}

36: La pregunta 36 supone que la cadena de entrada solo contiene letras y signos *. Por favor 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; 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 ID del estudiante, las calificaciones de 8 cursos y el puntaje promedio. La identificación del estudiante y 8 cursos. Los resultados se dan 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 promedio del registro. Defina usted mismo los parámetros formales correctos.

Respuesta: void fun(STREC *p)

{

double av=0.0;

int i:

for(i=0;i

av+=p->s[i];

av/=N;

p->ave=av;

}