La Red de Conocimientos Pedagógicos - Currículum vitae - respuestas en lenguaje c

respuestas en lenguaje c

Revisión de programación en lenguaje C:

1. Comprenda el significado de los siguientes términos: matriz, función, puntero de dirección, variable de puntero, acceso directo, acceso indirecto, estructura

2. Utilice el método de la burbuja para ordenar 10 números de pequeño a grande (ejemplo P134)

5. Ingrese las puntuaciones de 10 estudiantes y use funciones para implementar las siguientes funciones:

1 ) Calcular el puntaje promedio de todos los estudiantes

2) Calcular el puntaje más alto entre los estudiantes

3) Calcular el puntaje más bajo entre los estudiantes

4) Número estadístico de estudiantes aprobados;

5) Busque registros con una puntuación específica (como 90, si no hay ningún registro, dé una pista. Si lo hay, cuente el número). de registros que cumplan las condiciones.

6. Hay una matriz que ha sido ordenada. Ahora ingrese un número e insértelo en la matriz de acuerdo con las reglas de clasificación originales. (P153 Ejercicio 7.4)

7. Escriba una función que ingrese un número de 4 dígitos y requiera que genere estos 4 caracteres numéricos, pero deje un espacio entre cada dos caracteres numéricos. Por ejemplo, si ingresa 1990, debería aparecer "1 9 9 0". (Función requerida) (P202 Ejercicio 8.8)

8. Escribe una función para encontrar la longitud de una cadena. Ingrese una cadena en la función principal y genere su longitud. (Se requieren punteros y la función strlen() no se puede utilizar) (P279 Ejercicio 10.6)

9. Escriba un programa para ingresar el número del mes y generar el nombre en inglés del mes. Por ejemplo, al ingresar "3" se generará "Marzo" (requiere una serie de punteros). (P279 Ejercicio 10.18)

10. Restaura los valores en una matriz en orden inverso. Por ejemplo, la secuencia de la matriz de entrada es 8, 6, 5, 4, 1 y es necesario cambiarla a 1, 4, 5, 6, 8. (P153 Ejercicio 7.5)

11. Escriba una función para usar el "método de la burbuja" para ordenar los 10 caracteres de entrada de pequeños a grandes (se requiere una función). (P202 Ejercicio 8.11)

12. Almacene los n números enteros en la matriz a en orden inverso (use una función). (P237 Ejemplo 10.7)

13. Ingrese una línea de texto y descubra cuántas letras mayúsculas, minúsculas, espacios, números y otros caracteres hay. (Requiere implementación de puntero) (P279 Ejercicio 10.8)

14. Escriba una función para conectar dos cadenas (use una función personalizada, no la función strcat). (P202 Ejercicio 8.6)

15. Ingrese 3 cadenas y envíelas en orden de pequeña a grande. (Requiere el uso de punteros) (P278 Ejercicio 10.2)

16. Ingrese 10 números enteros, intercambie el número más pequeño con el primer número e intercambie el número más grande con el último número.

Escriba tres funciones: 1. Ingrese 10 números; 2. Procese; 3. Genere 10 números (el intercambio de datos requiere punteros) (P278 Ejercicio 10.3)

Respuesta de referencia:

2. el método de la burbuja para ordenar los 10 números de pequeño a grande

#include

void main()

{ int a[10] ; int i, j, t;

printf("ingrese 10 números :\n");

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

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

printf("\n");

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

for(i=0;i<10-j;i++)

si (a[i]>a[i+1])

{ t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("los números ordenados: \n");

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

printf(“%d “,a[i]);

}

3. Utilice el método recursivo para encontrar el valor del polinomio de Legendre de orden n. La fórmula recursiva es (requiere el uso de una función): (P202 Ejercicio 8.13)

pn(x)=. 1 n=0

x n=1

((2n-1)*x-pn-1(x)-(n-1)*pn-2(x)/ n n>1

3. #include

void main()

{

int x,n;

float p(int,int);

printf(“entrada n & x:”);

scanf(“%d,%d”, &n,&x);

printf(“n=%d,x=%d\n”,n,x);

printf(“P%d(%d) =%6.2f\n”,n,x,p(n,x));

}

flotador p(int n,int x)

{

si(n==0)

devuelve 1;

si no(n==1)

devuelve x ;

else

return ((2*n-1)*x*p((n-1),x)-(n-1)*p((n- 2),x))/n;

}

4. Ingrese 3 números enteros y envíelos en orden de pequeño a grande (se requiere tipo de puntero) (ejemplo P228)< / p>

4. Ingrese 3 números enteros y envíelos en orden de pequeño a grande (se requiere tipo de puntero)

#include

void main ()

{

clasificación nula (int*a, int*b,int*c);

int a,b,c;

scanf("%d%d%d",&a,&b,&c);

p>

sort(&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

clasificación nula (int *a, int *b,int *c)

{

int tmp;

if (*a>*b)

{

tmp=*a;

*a=*b;

*b=tmp;

}

if (*a>*c)

{

tmp=*a;

*a=*c;

*c=tmp;

}

si (*b>*c)

{

tmp=*b;

*b=*c;

*c=tmp;

}

}

5. Ingrese las puntuaciones de 10 estudiantes y use funciones para implementar las siguientes funciones:

1) Calcular la puntuación promedio de todos los estudiantes;

p>

6) Calcular la puntuación más alta entre los estudiantes;

7) Calcular la puntuación más baja entre los estudiantes;

8) Cuente el número de estudiantes que aprueban;

9) Busque registros con la puntuación especificada (como 90). Si no hay ningún registro, proporcione un mensaje. Si lo hay, cuente el número de registros que cumplen con las condiciones.

#include

void main()

{

int promedio(int a[]);

int max(int ​​​​a[]);

int min(int a[]);

int pass(int a[]);

int búsqueda(int a[],int g);

int i,j,g;

int puntuación[10],aver,m1,m2 ,p ,s;

printf("Ingrese 10 puntuaciones:\n");

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

scanf ("%d",&score[i]);

printf("\n");

aver=average(score);

m1= max(puntuación);

m2=min(puntuación);

p=pass(puntuación);

printf("Puntuación media: %d \ n",aver);

printf("Puntuación más alta: %d\n",m1);

printf("Puntuación más baja: %d\n",m2 ) ;

printf("El número de personas que aprobaron es: %d\n",p);

printf("¿Necesitas buscar?\n");

printf("Ingrese 1 para continuar la búsqueda, ingrese 0 para salir (1/0):");

scanf("%d",&j);

if(j== 1)

{

printf("Ingrese la puntuación que desea encontrar: \n");

scanf("% d",&g);

s=search(score,g);

if(s==0)

printf("No hay ningún registro que cumple con la condición");

else

printf("El estudiante con calificación %d*** tiene el nombre %d\n",g,s);

}

}

int promedio(int a[])

{

int i;

int aver,sum=a[ 0];

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

suma=sum+a[i];

aver=sum/10 ;

return aver;

}

int max(int ​​​​a[])

{

int i;

int m=a[0];

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

if(m

m=a[i];

return m;

}

int min(int a[])

{

int i;

int m=a[0];

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

if(m>a[i])

m=a[i];

return m;

}

int pass(int a[])

{

int i;

int s=0;

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

if(a[i]>=60)

s++;

return s;

}

int buscar(int a[],int g)

{

int i;

int s=0;

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

si (a[i]==g)

s++;

return s;

}

6. Una matriz bien ordenada requiere que después de ingresar un número, se inserte en la matriz de acuerdo con la regla de clasificación original.

Vid principal()

{int a[11]={1,4,6,9,13,16,19,28,40,100}

int temp1,temp2,number,end,i,j;

printf("La matriz inicial es la siguiente:

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

printf("%5d",a[i]);

printf("\n"); datos de inserción: ");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=número

else

{for(i=0;i<10;i++)

{ if(a [i]>número)

{temp1=a[i];

a[i]=número

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

{temp2=a[j];

a[j]=temp1

temp1=temp2; /p>

}

romper

}

}

}

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

printf("a%6d",a[i]);

}

7. e ingrese 4 dígitos, es necesario generar estos 4 caracteres numéricos, pero deje un espacio entre cada dos caracteres numéricos. Por ejemplo, si ingresa 1990, debería aparecer "1 9 9 0".

#include

void main()

{

void stradd(char str[]);

char str[80];

printf("Ingrese una cadena de números\n\n");

gets(str);

stradd(str);

printf("\n\nCadena después de agregar espacios\n\n");

puts(str);

}

void stradd(char str[])

{

char a[80];

int i=0, j;

for(j=0;str[j]!='\0';j++)

{

a[i]=str[ j] ;

a[i+1]=' ';

i+=2;

}

a[i] =' \0';

for(i=0;a[i]!='\0';i++)

{

str[i ]= a[i];

}

str[i]='\0';

}

8. que encuentra la longitud de una cuerda. Ingrese una cadena en la función principal y genere su longitud. (Requiere implementación de puntero)

#include "stdio.h"

int stringlength( char *str)

{int n;

n=0;

Mientras(*str!=0)

{n++;

str++;

}

Retorno(n);

}

int main()

{

char str〔100〕,

int len,

printf("Ingrese una cadena: "),

scanf("%s".str),

len = stringlength( str ),

printf("La longitud de la cadena es %d.".len),

return 0;

}< / p>

9. Escriba un programa que ingrese el número del mes y genere el nombre del mes en inglés n del mes. Por ejemplo, si se ingresa "3", se generará "Marzo", lo que requerirá procesamiento con una matriz de punteros.

#include

main()

{ char *month_name[13]={"mes ilegal","enero"," febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"} ;

int n;

printf("Mes de entrada: ");

scanf("%d",&n);

if((n<=12)&&(n>=1))

printf("Es %s.\n",*(nombre_mes+n));

else

printf("Está mal.\n");

}

10. Restaura los valores en una matriz en orden inverso. Por ejemplo, la secuencia de la matriz de entrada es 8, 6, 5, 4, 1 y es necesario cambiarla a 1, 4, 5, 6, 8.

#include

#define N 5;

void main()

{

int a[N],i,temp;

printf(“ingrese la matriz a:\n”);

for(i=0;i

scanf(“%d”,&a[i]);

printf(“array a:\n”);

for(i=0 ;i

{temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}

printf(“\nAhora, matriz a:\n”);

for(i=0;i

printf(“%4d”,a[ i]);

printf(“\n”);

}

11. Escribe una función que utilice el “método de la burbuja” para ordenar los caracteres. de menor a mayor (use una función).

#include

void main()

{ char str[80];

void sort(char str[]);

printf("Ingrese una cadena\n\n");

gets(str);

sort(str); /p>

printf("\n\nLos caracteres están ordenados de pequeño a grande:\n\n");

puts(str);

}< / p>

void sort(char str[])

{ int i,j;

char temp;

for(i=0; i

{

for(j=0;j

{

if(str[j]>str[j+1])

{

temp=str[j];

str[j]=str[j+1];

str[j+1]=temp;

}

}

}

}

12. Almacene los n números enteros en la matriz a en orden inverso (use una función).

#include

void inv(int x[ ], int n)/*El parámetro formal x es el nombre de la matriz*/

{

int temp, i, j, m=(n-1)/2;

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

{j=n-1-i;

temp=x[i];x[i]=x[j];x[j]=temp;}

retorno ;

void main()

{int i, a[10]={3,7,9,11,0,6, 7 ,5,4,2};

printf("La matriz antes de la conversión es:\n");

for(i=0;i<10;i++)< / p>

printf("%d,",a[i]);

printf("\n");

inv(a, 10);

p>

printf("La matriz convertida es:\n");

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

printf("%d ,",a[i]);

printf("\n");

13. texto y encuentre las letras mayúsculas intermedias, ¿cuántas letras minúsculas, espacios, números y otros caracteres hay? (Requiere implementación de puntero)

#include

#include

int main()

{

char str[40];//Crear una matriz de cadenas

int count[5]={0,0,0,0};//Crear una matriz de contadores E inicializar

printf("Ingrese una cadena.\n");

scanf("%s",str);

char *p= str;//El puntero p apunta a la matriz de cadenas str

int n=strlen(str);//Determina la longitud de la cadena de entrada

for(int i=0; i< n;i++)

{

if(*(p+i)>='A'&&*(p+i)<='Z')

{

count[0]++;//Cuenta el número de letras mayúsculas

}

else if(*(p+i )>=' a'&&*(p+i)<='z')

{

count[1]++;//Cuenta el número de letras minúsculas

}

else if(*(p+i)>='0'&&*(p+i)<='9')

{

count[2]++;//Número de números estadísticos

}

else if(*(p+i)=='')

{

count[3]++;//Cuenta el número de espacios

}

else

{

count [4]++;//Cuenta el número de otros caracteres

}

}

printf("Mayúsculas letras, minúsculas, números, espacios, otros caracteres:\n" );

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

{

printf("%d\t ",count[i]) ;//Imprimir cada número estadístico

}

imprimir

f("\n\n");

return 0;

}

14. Escribe una función para concatenar dos cadenas.

#include < stdio.h

#include

void concatenate(char string1[],char string2[],char string [])

{

int i,j;

for(i=0;string1[i]!='\0';i++)

cadena[i]=cadena1[i];

for(j=0;cadena2[j]!='\0';j++)

cadena [i+j]=string2[j];

string[i+j]='\0';

}

void main()

{

char s1[100],s2[100],s[100];

printf(“cadena de entrada1:”);

scanf(“%s”,s1);

printf(“cadena de entrada2:”);

scanf(“%s”,s2);

concatenar(s1,s2,s)

printf(“la nueva cadena es %s”,s);

}

15. Se emiten 3 cadenas en orden ascendente. (Requiere implementación de puntero)

#include

void main()

{

void sort (int * a, int*b,int*c);

int a,b,c;

scanf("%d%d%d",&a,&b,&c) ;

sort(&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c ) ;

}

clasificación nula (int *a, int *b,int *c)

{

int tmp; /p>

if (*a>*b)

{

tmp=*a;

*a=*b;

p>

*b=tmp;

}

if (*a>*c)

{

tmp = *a;

*a=*c;

*c=tmp;

}

si (*b>* c )

{

tmp=*b;

*b=*c;

*c=tmp;

}

}

16. Ingrese 10 números enteros, intercambie el número más pequeño con el primer número e intercambie el número más grande con el último número.

Escriba tres funciones: 1. Ingrese 10 números; 2. Procese; 3. Genere 10 números (el intercambio de datos requiere punteros)

#include

void input(int) número[])

{

Int I

Printf(“ingrese 10 números:”);

For(i= 0;i<10;i++)

Scanf(“%d”,&number[i]);

}

void max_min_value(int número[] )

{

int *max,*min,*p,temp;

max=min=número;

p>

For(p=número+1;p

if(*p>*max)

max=p;

else if(*p<*min)

min=p;

temp=número[0];número[0]=*min;*min=temp ;

if(max=número) max=min;

temp=número[9];número[9]=*max;*max=temp;

}

void output(int número[])

{

int *p;

printf(“Ahora, son: “);

for(p=número;p

Printf(“%d”,*p);

printf(“\ n”);

}

void main()

{

int número[10];

entrada(número);

max_min_value(número);

salida(número);

}