Red de conocimiento informático - Conocimiento informático - Se sabe que hay 200 números de 4 dígitos en IN.DAT y se ha llamado a la función de lectura readDat() para almacenar estos números en la matriz a. Compile una función jsVal() cuya función.

Se sabe que hay 200 números de 4 dígitos en IN.DAT y se ha llamado a la función de lectura readDat() para almacenar estos números en la matriz a. Compile una función jsVal() cuya función.

m, int k, int xx[]), la función de esta función es almacenar k números primos mayores que el entero my cercanos a m en la matriz xx y devolverlo.

Finalmente, llame a la función writeDat() para leer 10 conjuntos de datos, obtener los resultados respectivamente y enviar los resultados al archivo out.dat.

Parte del programa fuente existe en el archivo prog1.c.

Por ejemplo: si ingresa 17 5, debería generar: 19, 23, 29, 31, 37.

No cambie el contenido de la función principal main() y la función de escritura writeDat().

int esP(int m)

{

int i

for(i=2; ilt; m; i)

if(m i==0) devuelve 0

devuelve 1;

}

void num(int m, int k , int xx[])

{ int s=0;

for(m=m 1;kgt;0;m)

if(isP( m))

}

********************************* **** *

Pregunta 2

Se sabe que hay 200 números de cuatro dígitos en el archivo de datos IN.DAT y se ha llamado a la función de lectura readDat() para almacenar estos números en la matriz a. Se pide a los candidatos que compilen una función jsVal(). Su función es: si los números en cada uno de los cuatro dígitos son 0 o 2 o 4 o 6 u 8, entonces cuente el número cnt que. cumple esta condición y coloca estos cuatro dígitos en Guárdelos en la matriz b en orden de mayor a menor. Finalmente, la función main() llama a la función de escritura writeDat() para enviar el resultado cnt y el número calificado de cuatro dígitos en la matriz b al archivo OUT.DAT.

Nota: Parte del programa fuente existe en el archivo prog1.c.

Se han definido matrices en el programa: a[200], b[200], se han definido variables: cnt

Por favor, no cambie ningún dato o función principal en los datos archivo IN.DAT El contenido de main(), la función de lectura readDat() y la función de escritura writeDat().

void jsVal()

{ int i, j, qw, bw, sw, gw

for(i=0; ilt; MAX; i; )

{ qw=a[i]/1000; bw=a[i]/10010;

sw=a[i]100/10; 10;

if(qwamp;amp;qw2==0amp;bw2==0amp;amp;sw2==0amp;gw2==0) b[cnt]=a[i] ;

}

for(i=0;ilt;cnt-1;i)

for(j=i 1;jlt;cnt;j)

if(b[i]lt; b[j])

}

*************** *** *******************★Pregunta 3

La función ReadDat() lee un artículo en inglés del archivo IN.DAT y lo almacena en una cadena en la matriz xx; programe la función StrOR(). Su función es mover el contenido de la cadena a la izquierda de todas las letras minúsculas o en la cadena en unidades de fila y almacenarlas en el lado derecho de la cadena. las letras minúsculas o y deje el resto. El contenido de la cadena se mueve al lado izquierdo de la cadena procesada y se almacena, y luego la cadena procesada se almacena nuevamente en la matriz de cadenas xx fila por fila. Finalmente, la función main() llama a la función WriteDat() para enviar el resultado xx al archivo OUT5.DAT.

El formato de almacenamiento del archivo de datos original es: el ancho de cada línea es inferior a 80 caracteres, incluidos signos de puntuación y espacios.

Nota: Parte del programa fuente se almacena en el archivo prog1.c.

No cambie el contenido de la función principal main(), la función de lectura de datos ReadDat() y la función de datos de salida WriteDat().

void StrOR(void)

{int i, righto, j, s, k

char tem[80]; > for(i=0;ilt;maxline;i)

for(j=strlen(xx[i])-1;jgt;=0;j--)

{ k=0; memset(tem, 0, 80);

if(xx[i][j]=='o')

{righto=j; p>

p>

for(s=righto 1; slt; strlen(xx[i]); s )

tem[k ]=xx[i][s]; /p>

for(s=0;slt;righto;s)

if(xx[i][s]!='o')

tem[k ]=xx[i ][s];

strcpy(xx[i], tem

}

más continuar

<); p> }

} ★Pregunta 4

La función ReadDat() lee un artículo en inglés del archivo IN.DAT y lo almacena en la matriz de cadenas xx. Compile la función StrOL. (), cuya función es invertir todas las palabras en una línea separadas por espacios o signos de puntuación en unidades de línea.

Finalmente, la cadena procesada (no debe contener signos de puntuación) se almacena nuevamente en la matriz de cadenas xx línea por línea, y finalmente se llama a la función writeDat() para enviar el resultado xx al archivo OUT6.DAT.

Por ejemplo: Texto original: Tú Él Yo

Soy estudiante.

Resultado: Yo Él Tú

Estudiante soy I

El formato de almacenamiento del archivo de datos original es: el ancho de cada línea es inferior a 80 caracteres, incluidos signos de puntuación y espacios.

Parte del programa fuente existe en el archivo prog1.c.

No cambie el contenido de la función principal main(), la función de lectura de datos ReadDat() y la función de datos de salida writeDat().

void StrOL(void)

{ int i, j, k, s, m, strl

char str[80];

for(i=0;ilt;maxline;i)

{ strl=strlen(xx[i]);

memset(str, 0, 80); /p>

s=k=0;

for(j=strl-1;jgt;=0;j--)

{ if(isalpha(xx[ i][j])) k;

else { for(m=1;mlt;=k;m)

str[s]=xx[i][j m] ;

k=0;

}

if(!isalpha(xx[i][j]))

str[ s ]=' ';

}

for(m=1;mlt;=k;m)

str[s]=xx[i] [j m];

str[s]='\0';

strcpy(xx[i], str }

}

************************************

☆Pregunta 5 (pregunta de clasificación de enteros)

Hay 200 números enteros positivos en el archivo in.dat, y cada número está entre 1000 y 9999. La función ReadDat() lee estos 200 números y los almacena en la matriz aa. Compile la función jsSort (). Su función es organizar los últimos tres dígitos de cada número en orden ascendente y luego sacar los primeros 10 números que cumplan esta condición y almacenarlos en la matriz bb en secuencia. Los dígitos son Si los valores son iguales, se ordenarán en orden descendente según el valor original. Finalmente, llame a la función WriteDat() para enviar el resultado bb al archivo out.dat.

Ejemplo: Antes de procesar 6012 5099 9012 7025 8088

Después de procesar 9012 6012 7025 8088 5099

Parte del programa fuente existe en el archivo prog1.c.

No cambie el contenido de la función principal main(), la función de lectura de datos ReadDat() y la función de datos de salida WriteDat().

void jsSort()

{

int i, j, datos

for(i=0; ilt; 199; i )

for(j=i 1;jlt;200;j) if(aa[i]1000gt;aa[j]1000||aa[i]1000==aa[j]1000amp; amp;aa[i]lt;aa[j])

for(i=0;ilt;10;i)

bb[i]=aa[i];

}

************************************

☆Pregunta 6: Ordenar números enteros positivos

Hay 200 enteros positivos en el archivo in.dat, y cada número está entre 1000 y 9999. La función ReadDat() lee estos 200 números y los almacena en la matriz aa. Compile la función jsSort (). Su función es ordenar los últimos tres dígitos de cada número en orden descendente y luego sacar los primeros 10 números que cumplan esta condición y almacenarlos en la matriz b en secuencia. son Si los valores son iguales, se ordenarán en orden ascendente según los valores originales. Finalmente, llame a la función WriteDat() para enviar el resultado bb al archivo out.dat.

Ejemplo: Antes de procesar 9012 5099 6012 7025 8088

Después de procesar 5099 8088 7025 6012 9012

Nota: Se ha proporcionado parte del programa fuente.

No cambie el contenido de la función principal main(), la función de lectura de datos ReadDat() y la función de datos de salida WriteDat().

void jsSort()

{

int i, j, datos

for(i=0; ilt; 199; i )

for(j=i 1;jlt;200;j )

si(aa[i]1000lt;aa[j]1000||aa[i]1000= =aa[j]1000amp;amp;aa[i]gt;aa[j])

for(i=0;ilt;10;i)

bb[i] =aa[i];

}

Pregunta 37 (Pregunta de sustitución de caracteres)

La función ReadDat() implementa la lectura de un artículo del archivo ENG.IN Artículo en inglés, almacenado en la matriz de cadenas xx; compile la función encryptChar (), reemplace todos los caracteres en la matriz xx de acuerdo con la relación de sustitución dada, guárdelo en la posición correspondiente de la matriz xx y finalmente llame a la función WriteDat. () Envíe el resultado xx al archivo PS7.DAT.

Relación de sustitución: f(p)=p*11 mod 256 (p es el valor ASCII de un determinado carácter en la matriz, f(p) es el valor ASCII del nuevo carácter después del cálculo), si el carácter original es Si la letra mayúscula o el valor calculado de f (p) es menor o igual a 32, el carácter permanece sin cambios; de lo contrario, se reemplazará el carácter correspondiente a f (p).

Parte del programa fuente existe en el archivo prog1.c. El formato de almacenamiento del archivo de datos original es: el ancho de cada línea es inferior a 80 caracteres.

No cambie el contenido de la función principal main(), la función de lectura de datos ReadDat() y la función de datos de salida WriteDat().

void encryptChar()

{ int i, j

for(i=0; ilt; maxline; i )

for(j=0;jlt;strlen(xx[i]);j )

if(xx[i][j]*11256lt;=32||xx[i][j]gt; ='A'amp;amp;xx[i][j]lt;='Z') continuar;

else xx[i][j]=xx[i][j]*11256;

}

************************************ *

★☆Pregunta 39 (pregunta de votación)

Hay un archivo de datos de votación IN.DAT para 10 personas y 100 líneas. El formato de almacenamiento de datos es la longitud de cada registro. tiene 10 dígitos. Un dígito representa la selección de la primera persona, el segundo dígito representa la selección de la segunda persona, y así sucesivamente: el contenido son todos los caracteres 0 y 1, 1 indica que la persona está seleccionada, 0 indica que el. persona no es seleccionada, todos Un voto que es elegido o no votado es inválido. La función de la función dada ReadDat() es leer los datos de votación en la matriz de cadenas xx. Programe la función CountRs() para contar los votos de cada persona y almacenar los votos en yy[0] a yy[9] en secuencia. Envíe el resultado yy al archivo OUT.DAT.

Parte del programa fuente existe en el archivo prog1.c.

No cambie el contenido de la función principal main(), la función de lectura de datos ReadDat() y la función de datos de salida writeDat().

void CountRs(void)

{ int i, j, count

for (i=0; ilt; 100; i )

{ recuento=0;

for(j=0; jlt; 10; j )

if(xx[i][j]=='1') recuento ;

si(count==0||count==10) continuar;

for(j=0;jlt;10;j)

si (xx[i][j]=='1') yy[j]

}

}

********; ********************

☆Pregunta 41 (problema SEIS/NUEVE)

El siguiente programa prog1. c La función es: calcular los números naturales SEIS y NUEVE La condición que satisfacen es el número cnt de SEIS SEIS SEIS=NUEVE NUEVE y la suma SUMA de todos los SEIS y NUEVE que satisface esta condición. Escriba la función countValue() para implementar los requisitos del programa y finalmente llame a la función writeDat() para generar los resultados cnt y sumarlos al archivo OUT15.DAT.

Entre ellos, S, I, X, N y E representan cada uno un número decimal.

Parte del programa fuente existe en el archivo prog1.c.

No cambie el contenido de la función principal main() y la función de datos de salida writeDat().

#include lt; stdio.hgt;

int cnt, suma

void countValue()

{ int s, i , x, n, e, seis, nueve;

for(s=1;slt;10;s)

for(i=0;ilt;10;i)

for(x=0;xlt;10;x)

for(n=1;nlt;10;n)

for(e=0; elt; 10; e )

{ seis=s*100 i*10 x;

nueve=n*1000 i*100 n*10 e;

if(3*seis==2*nueve)

}

}

*************** *** ****************

Pregunta 55 (pregunta de clasificación estadística de números primos)

Se sabe que hay 300 cuatro números en el archivo de datos in.dat hay un número de dígitos y se ha llamado a la función de lectura ReadDat() para almacenar estos números en la matriz a. Compile una función jsValue(). Su función es: encontrar el número cnt de estos cuatro. -números primos de dígitos, y luego coloque todos los números que cumplan Los cuatro dígitos de esta condición se almacenan en la matriz b en secuencia, y luego los cuatro dígitos de la matriz b se ordenan de menor a mayor, y finalmente la función de escritura writeDat () se llama para enviar el resultado al archivo out.dat.

Por ejemplo: 5591 es un número primo, entonces el número cumple las condiciones y se almacena en la matriz b, y el número cnt = cnt 1. 9812 es un número no primo, entonces el número no cumple las condiciones y es ignorado.

Parte del programa fuente existe en el archivo prog1.c.

Se han definido matrices en el programa: a[300], b[300], se han definido variables: cnt

Por favor, no cambie la función principal main(), la leer la función ReadDat() y escribir el contenido de la función writeDat().

int isP(int m){

int i

for(i=2; ilt; m; i)

if(mi==0)devuelve 0;

devuelve 1;

}

jsValue()

{int i, j , valor;

for(i=0;ilt;300;i)

if(isP(a[i])) b[cnt]=a[i];

for(i=0;ilt;cnt-1;i)

for(j=i 1;jlt;cnt;j)

if(b [i]gt;b[j])

}

*************************** *** ******

Pregunta 56 (Pregunta de sustitución de caracteres)

La función ReadDat() lee un artículo en inglés del archivo ENG.IN y lo almacena en un string En la matriz xx; compile la función encryptChar() para reemplazar todos los caracteres en la matriz xx de acuerdo con la relación de sustitución dada, y aún guárdela en la posición correspondiente de la matriz xx. Finalmente, llame a la función WriteDat() para. envíe el resultado xx al archivo en PS5.DAT.

Relación de sustitución: f(p)=p*11mod 256 (p es el valor ASCII de un determinado carácter en la matriz, f(p) es el valor ASCII del nuevo carácter después del cálculo), si después del cálculo f (el valor de p) es menor o igual a 32 o el carácter correspondiente a f (p) es una letra minúscula, entonces el carácter permanece sin cambios; de lo contrario, se reemplaza el carácter correspondiente a f (p).

Parte del programa fuente existe en el archivo prog1.c. El formato de almacenamiento del archivo de datos original es: el ancho de cada línea es inferior a 80 caracteres.

No cambie el contenido de la función principal main(), la función de lectura de datos ReadDat() y la función de datos de salida WriteDat().

void encryptChar()

{ int i, j

for(i=0; ilt; maxline; i )

for(j=0;jlt;strlen(xx[i]);j )

if(xx[i][j]*11256lt;=32||xx[i][j]*11256gt ;='a'amp;amp;xx[i][j]*11256lt;='z') continuar;

else xx[i][j]=xx[i][j]* 11256;

}