Red de conocimiento informático - Conocimiento del nombre de dominio - Solicitud urgente: 2010 Nankai 100 preguntas por computadora Nivel 2 Lenguaje C

Solicitud urgente: 2010 Nankai 100 preguntas por computadora Nivel 2 Lenguaje C

Nankai Nivel 2 Lenguaje C basado en computadora 100 preguntas

1. Pregunta correcta 1

La función del siguiente programa dado es: leer un número entero (2). <=k《=10000》, imprime todos sus factores primos (es decir, todos los factores que son números primos. Por ejemplo, si se ingresa el número entero 2310, se deben generar 2, 3, 5, 7, 11). p>

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa! p>Programa de preguntas de prueba:

#include

#include

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

IsPrime(int n); ————Eliminar el punto y coma

{ int i,m;

m=1;

for ( i=2; i

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

si !(n%i) ——————si (!(n% i ))

{ m=0; romper }

retorno (m);

}

principal()

{ int j,k;

clrscr();

printf("nIngrese un número entero entre 2 y 10000:");scanf("%d " ,&k);

printf("nnEl factor(es) primo(s) de %d es(son):",k);

for (j=2;j<= k ;j++)

if ((!(k%j))&&(IsPrime(j)) printf("n %4d",j);

printf("n " );

)

2. Pregunta de programación 1

m Las puntuaciones personales se almacenan en la matriz de puntuación. Por favor escriba la función divertida. Su función es: El número de personas con puntuaciones por debajo del promedio se utiliza como valor de función, y las puntuaciones por debajo del promedio se colocan en la matriz señalada a continuación.

Por ejemplo, los datos en la matriz de puntuación son 10. 20, 30, 40, 50, 60, 70, 80 y 90, el número de personas devueltas por la función debe ser 4 y los datos a continuación deben ser 10, 20, 30 y 40.

Nota: Parte del programa fuente se proporciona a continuación.

No cambies nada en la función principal ni en otras funciones. Solo completa las llaves de la función divertida con algunas declaraciones que hayas escrito.

Programa de prueba:

#include

#include

#include

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

{

——————int i,k =0;promedio flotante=0;

for(i=0;i

promedio+=(puntuación[i]);

aver/=m;

for (i=0;i

if (score[i]

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

k++;

retern(k);}

}

main()

{int i, n, debajo[9];

int puntuación [9]={10,20,30,40,50,60,70,80,90};

clrscr();

n=fun(score,9,below);

printf("nPor debajo de la puntuación promedio están:");

for (i=0;i

}

3. p>

En el siguiente programa dado, la función de la función fun es: comparar los caracteres en las posiciones correspondientes de las dos cadenas a y b uno por uno, y almacenar los caracteres con un valor ASCII mayor o igual en el c matriz a la vez para formar una nueva cadena. Por ejemplo, si la cadena en a es aBCDeFgH y la cadena en b es: ABcd, entonces la cadena en c es: aBcdeFgh.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

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

void fun(char *p ,char *q,char *c)——Eliminar punto y coma

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

{int k=1;—Cambiar 1 a 0

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

while(*p!=*q) —— != cambiado a ||

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

{if (*p<*q) c[k]=*q; ——El signo menor que se cambia a menor o igual

else c[k ]=*p;

si ( *p) p++;

si (*q) q++;

k++;

}

}

main()

{char a[10]="aBCDeFgh",b[10]="ABcd",c[80]= {''};

fun( a,b,c);

printf("La cadena a:"); puts(a);

printf("La cadena b:"); pone (b);

printf("El resultado:");

}

4. Corrección 3

Lo siguiente En un programa dado, la función de la función divertida es eliminar todos los caracteres numéricos de la cadena en secuencia, formar una nueva cadena y reemplazar la cadena original.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

void fun (char *s )

{ int i,j;

for (i=0,j=0;s[i]!='\0';i++)

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

if ( s[i]>='0' && s[i]<='9')

s[j]=s[i] ——————j se cambia a j++;

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

s[j]="\0"; ——————s[j]='\0'

}

principal()

{char item[80];

clrscr();

printf("\nIngrese una cadena:");gets(item);

printf( "\n\nLa cadena es :\%s\n",item);

fun (item);

printf("\n\nLa la cadena de cambio es:\ %s\n",item);

}

5. Corrección 4

En el siguiente programa dado, la función de La función divertida es: cobre separado El número de letras mayúsculas y minúsculas en la cadena. Por ejemplo, si ingresa la cadena s: AAaaBBb123CCccccd, el resultado debería ser: superior=6, inferior=8.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

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

diversión vacía (char *s,int a, int b) —— ——a debería ser *a, b debería ser *b

{ while(*s)

{ if (*s>='A' && *s<= 'Z ')

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

a++; ————(*a)++;

si (*s>='a' && *s<='z')

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

b++; ———(*b)+ +;

s++;

}

}

principal()

{ char s[100] ;int superior=0,inferior=0;

clrscr();

printf("nPor favor una cadena:");gets(s) ;

fun(s,&upper, &lower);

printf("n superior=%d inferior=%dn",superior,inferior);

}

6. Corrección 5

Supongamos que los números en la secuencia entera no se repiten y se almacenan en la matriz. En el programa que se proporciona a continuación, la función de la función fun es eliminar el elemento con valor x en la matriz. Almacenado en n está el número de elementos de la matriz.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#define N 20

fun (int *a,int n, int x)

{int p=0,i;

a[n]=x;

mientras (x!=a[p])

p=p+1;

si (p==n) devuelve -1;

else

{para (i= p;i

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

a[i+1]=a[i]; ————a[i]=a[i+1];

devolver n-1;

}

}

main()

{int w[N]={ -3,0, 1,5,7,99,10,15,30,90},x,n,i;

n=10;

printf("El datos originales:n" );

for (i=0;i

printf("nInput x (para eliminar) :");scanf("%d",&x);

printf("Eliminar:%dn",x);

n=fun(w ,n,x) ;

if (n==-1) printf("***¡Ni ser encontrado!***nn");

else

{printf ("Los datos después de la eliminación:n");

for (i=0,i

}

}

7. Corrección 6

En el siguiente programa, la función fun es: según el tipo de número entero El valor del parámetro formal m se calcula mediante la siguiente fórmula. t=1-1/2×2-1/3×3-…-1/m×m

Por ejemplo, si el valor en m es 5, debería generarse: 0,536389.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba:

#include

#include

doble diversión (int m )

{ doble y=1.0;

int i;

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

para (i=2;i

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

y-=1/(i*i); ————“1” se cambia a “1.0”

return(y );

}

main ()

{int n=5;

clrscr();

printf("\nEl resultado es %1f\n ",fun(n));

}

Corrección 7

A continuación se proporciona. En el programa, la función de la función divertida es: utilizar el método de selección Ordenar los n elementos de la matriz en orden ascendente.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba:

#include

#define N 20

void fun(int a[], int n)

{ int i,j,t,p;

for (j=0;j

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

{p=j——Agregar ";"

para (i=j;i,n;i++) ——j se cambia a j+1

if (a[i]

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

p=j ——j se cambia a i

t=a[p];a[p]=a[j];a[j]=t;

}

}

principal()

{

int a[N]={9,6,8,3,-1},i,m=5;

printf("Datos antes de ordenar:");

for (i=0;i

fun(a,m);

printf("Datos ordenados:");

for (i=0;i

}

9. Corrección de error 8 (2004.7.27)

p>

En el siguiente programa, la función de la función fun es encontrar el carácter con el valor de código ASCII más grande en la cadena str y colocarlo en la primera posición y mover el carácter original antes del carácter para Mover; secuencia. Por ejemplo, antes de llamar a la función divertida, ingrese la cadena: ABCDeFGH y el contenido de la cadena después de la llamada es eABCDFGH.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba:

#include

fun(char *p)

{ char max,*q ;int i=0;

max=p[i];

while(p[i]!=0)

{ si(max

{max=p[i];

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

p=q+i; ——Cambiar a q=p+i;

}

i++;

}

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

mientras (qp

{*q=*(q-1);

q--;

}

p[0]=max;

}

main()

{char str[80];< / p>

printf("Ingrese una cadena: ");gets(Str);

printf("\nLa cadena original: ");puts(Str);

fun(str);

printf("\nLa cadena se mueve después:");puts (str);ptintf("\n\n");

}

10. Corrección 9 (2004.7.27)

En el siguiente programa dado, la función de función divertida es contar el número de estudiantes con puntajes inferiores al promedio de los puntajes de n estudiantes. El número de personas se devuelve mediante el valor de la función y la puntuación promedio se almacena en la unidad de almacenamiento señalada por el parámetro formal aver. Por ejemplo, si ingresa las puntuaciones de 8 estudiantes:

80,5 60 72 90,5 98 51,5 88 64

El número de estudiantes con puntuaciones inferiores al promedio es 4 (puntuación promedio: 75,5625 ).

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba:

#include

#include

#define N 20

int fun (float *s,int n,float *aver)

{float ave,t=0.0;

int count=0,k,i ;

para (k=0;k

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

t=s[k] ——t+=s[k];

ave=t/n ;

for (i=0;i

if (s[i]

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

*aver=&ave; ——eliminar&

recuento de retorno;

}

main()

{float s[30],aver;

int m,i;

clrscr() ;

printf("nIngrese m:";scanf("%d",&m);

printf("nIngrese %d marca:n ",m);

for (i=0;i

printf("nEl número de estudiantes :%dn",fun (s,m,&aver));

printf("Ave=%fn",aver);

)

11 Corrección de errores 10 (2004.8 .1)

En el siguiente programa dado, la función de la función fun es reemplazar todas las subcadenas apuntadas por t1 que aparecen en la cadena apuntada por s con la subcadena apuntada por. t2, formando una nueva La cadena se coloca en la matriz señalada por w. Aquí, se requiere que las longitudes de las cadenas a las que apuntan t1 y t2 sean las mismas. Por ejemplo, cuando el contenido del carácter señalado por s es abcdabfab, el contenido de la subcadena señalada por t1 es ab y el contenido de la subcadena señalada por t2 es 99, el resultado es el señalado por 2

El contenido de la matriz debe ser 99cd99f99.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba:

#include

#include

#include

int divertido (char *s, char *t1,char*t2,char*w)

{

int i; *r,*a;

strcpy(w,s);

mientras(*w)

{p=w;r=t1;

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

while(r) ——r se cambia a *r

if(*r==*p) {r++;p++}

de lo contrario romper;

p>

if(*r=='')

{a=w;r=t2;

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

mientras(* r){*a=*r;a++ ;r++} ——Cambiar a while(*r){*a=*r;a++;r++;}

w+=strlen(t2);

}

más w++;

}

}

main()

{

char s[ 100],t1[100],t2[100],w[100];

clrscr();

printf("nPor favor ingrese la cadena S:");scanf(" %s",s);

printf("nPor favor ingrese la cadena t1:");scanf("%s",t1);

printf("nPor favor ingrese la cadena t2: ");scanf("%s",t2);

if (strlen(t1)==strlen(t2))

{

printf( "nEl resultado es :%sn",w);

}

else printf("Error:strlen(t1)!=strlen (t2)n");

}

12. Corrección 11 (2004.8.1)

En el programa dado MODI1.C, la función del La función divertida es: primero ingrese un 3 desde el teclado El valor de cada elemento de la matriz de fila 3 columnas, y luego genere el producto de los elementos diagonales principales.

Por favor, corrija los errores en el programa, o complete el contenido apropiado y elimine las líneas horizontales para que pueda producir resultados correctos.

Nota: ¡No cambie la función principal, no agregue ni elimine líneas y no cambie la estructura del programa!

Programa de prueba:

#include

int fun()

{

int a [3] [3], suma;

int i, j;

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

_____; ——suma = 1;

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

{ para (j=0;j<3;j++)

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

scanf (〃%d〃 a [i] [j]); ", &a[ i][j]);

}

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

suma=suma*a [i] [ i];

printf (〃Sum=%dn〃, suma);

}

main ()

{ fun ( ); }

13. Corrección 12 (8.1)

La función del siguiente programa es: leer un número entero k (2≤k≤10000) e imprimirlo todo. sus factores primos (es decir, todos los factores que son primos). Por ejemplo, si ingresa un número entero: 2310, debería generar: 2, 3, 5, 7, 11.

Corrija los errores gramaticales en el programa para que pueda producir resultados correctos.

Nota: ¡No cambie la función principal, no agregue ni elimine líneas y no cambie la estructura del programa!

Programa de prueba:

#include 〃conio.h〃

#include 〃stdio.h〃

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

IsPrime ( int n ); ——IsPrime(int n)

{ int i, m;

m = 1;

para ( i = 2; i < n/ i++ )

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

si !( n%i ) ——si(!(n%i))

{ m=0; romper }

retorno ( m );

}

principal ()

{ int j, k;

clrscr ( );

printf (〃nPor favor, ingrese un número entero entre 2 y 10000:〃 scanf ( 〃%d〃,&k );

printf ( 〃 nn Los factores primos de % d son ( are ):〃, k );

for ( j = 2; j <= k; j++ )

si ( ( ! k%j ) ) && ( IsPrime ( j ) ) } printf ( 〃n % 4d〃, j );

printf (〃n〃);

}

14, Corrección de error 13 (8.4)

En el siguiente programa, la función de la función divertida es: basándose en el parámetro formal m, calcular el valor de la siguiente fórmula.

t=1+ 1/2 + 1/3 + 1/4 + … + 1/m

Por ejemplo, si ingresa 5, se debería generar 2.283333.

Corrija los errores gramaticales en el programa para que pueda producir resultados correctos.

Nota: ¡No cambie la función principal, no agregue ni elimine líneas y no cambie la estructura del programa!

Programa de prueba:

#include

#include

doble diversión(int m )

{

doble t=1.0;

int i;

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

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

t+=1.0/k; ——k se cambia a i

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

____________ ——Completar retorno t;

}

main()

{

int m;

clrscr();

printf( “nPor favor ingrese 1 número entero: ”);

scanf(“%d”,&m);

printf(“nEl resultado es %1fn”,fun(m));

}

15. Corrección 14 (8.4)

En el siguiente programa, las funciones de las funciones fun y funx son:

Utilice el método de bisección para encontrar la ecuación 2x×x ×x-4x×x+3x-6=una raíz de 0, y se requiere que el error absoluto no exceda 0,001. Por ejemplo, si ingresa -100 para my 90 para n, la función encontrará una raíz de 2.000.

Corrija los errores gramaticales en el programa para que pueda producir resultados correctos.

Nota: ¡No cambie la función principal, no agregue ni elimine líneas y no cambie la estructura del programa!

Programa de prueba:

#include

#include

doble funx(doble x )

{

return(2*x*x*x-4*x*x+3*x-6);

}

doble diversión(doble m, doble n)

{

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

int r;——cambiado a doble r;

r=(m+n)/2;

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

while( fabs(n-m)<0.001) —— "<" se cambia a " >= "

{if(funx(r)*funx(n)<0 m=r;

else n=r;

r=(m+n)/2;

)

return r;

)

main()

{

doble m,n,root;

printf("Ingrese m n:n"); scanf(" %1f%1f",&m,&n);

root=fun(m,n);

printf("root=%6.3fn",root);

}

16. Corrección 15 (8.5)

En el siguiente programa dado, la función de la función fun es determinar si el carácter ch coincide con el carácter. en la cadena señalada por str. cierto carácter es el mismo; si son iguales, no haga nada si son diferentes, inserte el dispositivo al final de la cadena.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

#include

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

void fun(char str, char ch)-----------------------1

{ while(*str && *str != ch) str++;

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

si (*str==ch)-------------------------------------- --2

{ str[0]=ch;

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

str[1]='0';----------------------- --------- ----3

}

}

main()

{char s [81],c;

clrscr();

printf("nPor favor ingrese una cadena:n");gets

printf(" nPor favor ingrese el carácter a buscar:") ;

c=getchar();

fun(s,c);

printf("nEl resultado es %sn",s);

p>

}

Respuesta a la pregunta 15:

1. void fun(char *str, char ch)

2. if (*str= ='

17. Corrección 16 (8.5)

En el siguiente programa dado, la función de la función Creatlink es crear una lista de enlace único con el nodo principal y proporcione datos para cada nodo. Asigne valores de 0 a m-1 al campo.

Corrija los errores en el programa para que el programa pueda producir. resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

#include

typedef struct aa

{ int data;

struct aa *next;

}NODE;

NODO *Creatlink(int n, int m)

{NODO *h=Null, *p,*s;

int i;

s= (NODO *)malloc(tamaño de(NODO));

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

h=p;----------------------- --- -----------1

p->siguiente=NULL;

para (i=1;i<=n;i++)

{s=(NODO *)malloc(tamañode(NODO));

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

s->data=rand()%m;------- ------ ----------2

s->siguiente=p->siguiente;

p->siguiente=s;

p =p->siguiente;

}

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

volver p;-------------- ----------- -------3

}

enlace externo(NODO *h)

{NODO * p;

p= h->siguiente;

printf("nnLA LISTA:nn CABEZA");

while(p)

{printf("->%d" ,p->datos);

p=p->siguiente;

}

printf(" n");

}

main()

{ NODE *head;

clrscr();

head=Creatlink(8,22);

outlink(head);

}

Respuesta a la pregunta 16:

1. h=p=s;

2.data=rand()%(m-1);

3. >18. Corrección 17(8.5)

En el siguiente programa, la función de la función fun es calcular y generar la suma de los 10 números naturales más grandes dentro de k que pueden ser divisibles por 13 o 17. El valor de k se pasa desde la función principal. Si el valor de k es 500, el valor de la función es 4622.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

int fun(int k)

{int m=0, mc=0,j;

mientras ((k>=2)&&(mc<10))

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

{si ((k%13=0)|| (k %17=0))------------------1

{m=m+k;mc++;}

k --;

}

devolver m;

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

____________------------------------- - ----2

main()

{clrscr();

printf("%dn",fun(500));

}

Respuesta a la pregunta 17:

1 si ((k%13==0)||(k%17==0))

2. }

19. Corrección 18 (8.5)

En el siguiente programa, la función de la función fun es realizar el intercambio de dos números enteros. Por ejemplo, ingrese 60 y 65 para a y b respectivamente, y el resultado será: a=65 b=60

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

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

Diversión vacía (int a,b)----- ---- ------------------1

{int t;

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

t=b;b=a;a=t;------- ------ ------------------2

}

principal()

{int a,b;

clrscr();

printf("Ingrese a,b:");scanf("%d%d",&a,&b);

divertido (&a,&b);

printf("a=%d b=%dn",a,b);

}

18 Respuesta:

1. diversión vacía (int *a,int *b)

2.

20. Corrección 19 (8.5)

En el siguiente programa dado, la función de la función divertida es: comenzando desde el bit bajo, saca los números en los dígitos pares del variable entera larga s, y formar un nuevo número a la vez en t. Por ejemplo, cuando el número en s es 7654321, el número en t es 642.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#include

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

Diversión vacía (s larga, t larga)---- ---- ------------------1

{long sl=10;

s/=10;

*t=s%10;

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

mientras (s<0)-------------------------------------- ---2

{s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}

main()

{long s,t;

clrscr();

printf(" nPor favor ingrese s:");scanf("%ld",&s);

fun(s,&t);

printf(" El resultado es: %ldn",t );

}

Respuesta a la pregunta 19:

1. void fun (s larga, *t larga)

2. while (s>0)

21. Corrección 20 (8.5)

Se han colocado N matrices de enteros ordenados en una pila de matrices. En el siguiente programa dado, la función fun La función es: use el algoritmo de búsqueda binaria para encontrar la posición del número entero m en la matriz. Si se encuentra, se devuelve su valor de subíndice; de ​​lo contrario, se devuelve -1.

El algoritmo básico de la media búsqueda es: antes de cada búsqueda, determine el rango a buscar en la matriz: bajo y alto (bajo alto, la búsqueda finaliza.

Corrija los errores en el programa para que pueda producir resultados correctos.

¡Tenga cuidado de no cambiar la función principal, agregar o eliminar líneas, ni cambiar la estructura del programa!

Programa de prueba

#include

#define N 10

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

diversión vacía(int a[],int m)-- --- ---------------------1

{int bajo=0,alto=N-1,medio;

while(bajo<=alto)

{mid=(bajo+alto)/2;

if (m

alto= medio 1;

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

si no (m>=a[mid])-------------------------- --2

bajo=medio+1;

else return(mid);

}

return(-1);

}

main()

{int i,a[N]={-3,4,7,9,13,45,67, 89,100,180},k,m ;

printf("Los datos en la matriz a son los siguientes:");

for(i=0;i

printf("Ingrese m:");scanf("%d",&m);

k=fun(a, m);

if(k>=0) printf("m=%d,index=%d\n",m,k);

else printf("No ser encontrado!\n");

}

Respuesta a la pregunta 20:

1. int fun(int a[],int m)

2.si no (m>a[mid])