¡Buscando ejercicios de lenguaje C!

Programa 1

Pregunta: Un número entero, después de sumar 100, se convierte en un número cuadrado perfecto, y cuando se suma a 168, se convierte en un número cuadrado perfecto.

1. Análisis del programa: para determinar dentro de 100.000, primero agregue 100 al número antes de prescribir, luego agregue 268 al número antes de prescribir, si después de prescribir

El resultado de

satisface el siguientes condiciones, ese es el resultado. Consulte el análisis específico:

2. Código fuente del programa:

#include "math.h"

main()

{

long int i, x, y, z;

for (i=1; ilt; 100000; i )

{ x=sqrt(i) 100 ); /*x es el resultado después de sumar 100 y sacar la raíz cuadrada*/

y=sqrt(i 268); /*y es el resultado después de sumar 168 y sacar la raíz cuadrada*/

if(x*x==i 100amp;amp;y*y==i 268)/*Si el cuadrado de la raíz cuadrada de un número es igual al número, esto significa que el número es un número cuadrado perfecto*/

printf("\nld\n",

}

}

=); ========= =========================================== ========= ==

Programa 4

Pregunta: Ingrese un año determinado, un mes determinado y un día determinado, determine qué día del año es este día ¿es?

1. Análisis del programa: Tomando como ejemplo el 5 de marzo, primero se deben sumar los dos meses anteriores y luego sumar 5 días, que es el día del año. año bisiesto y cuando el mes de entrada sea mayor a 3 se debe considerar un día extra.

2. Código fuente del programa:

main()

{

int día, mes, año, suma, salto <; /p>

printf("\ningrese año, mes, día\n");

scanf("d, d, d", amp; año, amp; mes, amp; día );

switch(month)/*Primero calcula el número total de días del mes anterior*/

{

caso 1: suma=0; romper;

caso 2: suma=31;

caso 3: suma=59;

caso 4: suma=90;

p>

caso 5: suma=120;

caso 6: suma=151

caso 7: suma=181; ; romper;

caso 8: suma=212;

caso 9: suma=243; ;

caso 11: suma=304; ruptura

caso 12: suma=334

predeterminado: printf("error de datos"); break;

}

sum=sum día /*Suma el número de días en un día determinado*/

if(year400==0|| (año4==0amp;amp;año100 !=0))/*Juzga si es un año bisiesto*/

salto=1

else

salto=0;

if(leap==1amp;amp;monthgt;2)/*Si es un año bisiesto y el mes es mayor que 2, se debe agregar un día al número total de días*/

suma;

printf("Es el désimo día.",suma);}

======== ========================== ========================= ======

Programa 5

Título: Ingrese tres números enteros x, y, z. Genere estos tres números de pequeño a grande.

1. Análisis del programa: encontramos una manera de poner el número más pequeño en x, primero comparamos x con y, si xgt;y luego intercambiamos los valores de x e y, y luego usamos x Compare con z, si xgt;z, intercambie los valores de x y z, de modo que x pueda minimizarse.

2. Código fuente del programa:

main()

{

int x, y, z, t

scanf("ddd",amp;x,amp;y,amp;z);

if (xgt;y)

{t=x;x= y;y=t;} /*Intercambiar el valor de x, y*/

if(xgt;z)

{t=z;z=x;x=t }/*Intercambiar el valor de x, z*/

if(ygt;z)

{t=y;y=z;z=t;}/*Intercambiar z, Valor de y*/

printf("de pequeño a grande: d d d\n", x, y, z

}

==); == ================================================== == ========

Programa 12

Título: Determine cuántos números primos hay entre 101 y 200 y genere todos los números primos.

1. Análisis del programa: Método para juzgar números primos: use un número para dividir 2 en sqrt (este número) respectivamente. Si se puede dividir,

significa que el número. no es un número primo y viceversa es un número primo.

2. Código fuente del programa:

#include "math.h"

main()

{

int m, i, k, h=0, salto=1;

printf("\n"); m )

{ k=sqrt(m 1);

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

if(mi== 0)

{salto=0; romper;}

if(salto) {printf("-4d", m); h10==0)

printf("\n");

}

salto=1

}

printf("\nEl total es d", h

}

==================); =============================================

Programa 13

Título: Imprime todos los "números de narciso" El llamado "número de narciso" se refiere a un número de tres dígitos cuya suma cúbica es igual al número

> mismo. Por ejemplo: 153 es un "número narciso" porque 153 = 1 al cubo + 5 al cubo + 3 al cubo.

1. Análisis del programa: utilice un bucle for para controlar entre 100 y 999 números y descomponga cada número en unidades, decenas y centenas.

2. Código fuente del programa:

main()

{

int i, j, k, n

printf("El número de 'flor de agua' es:");

for(n=100;nlt;1000;n)

{

i=n/100;/*Descomponer las centenas*/

j=n/1010;/*Descomponer las decenas*/

k=n10;/*Descomponer it Fuera de una posición*/

if(i*100 j*10 k==i*i*i j*j*j k*k*k)

{

printf("-5d", n

}

}

printf("\n"); p> }

========================================= == ====================

Programa 14

Título: Descomponer un número entero positivo en factores primos. Por ejemplo: ingrese 90, imprima 90 = 2*3*3*5.

Análisis del programa: para descomponer n en factores primos, primero debe encontrar un número primo mínimo k y luego completar los siguientes pasos:

(1) Si este número primo es exactamente igual a n, significa que el proceso de descomposición de factores primos ha finalizado, simplemente imprímalo.

(2) Si nlt;gt;k, pero n es divisible por k, el valor de k debe imprimirse y el cociente de k dividido por n debe usarse como el nuevo entero positivo n ,

Repita el paso uno.

(3) Si n no es divisible por k, use k 1 como valor de k y repita el primer paso.

2. Código fuente del programa:

/* zheng int se divide yinshu*/

main()

{

int n, i;

printf("\ningrese un número:\n");

scanf("d", amp; p>

printf("d=",n);

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

{

while(n!=i)

{

if(ni==0)

{ printf("d*",i);

n=n/i

}

más

romper

}

}

printf("d",n);}

======================== === ======================================

Programa 15

Título: Utilice el anidamiento de operadores condicionales para completar esta pregunta: Los estudiantes con puntajes académicos >=90 están representados por A, los estudiantes con puntajes entre 60 y 89 están representados por B y los estudiantes con puntajes inferiores a 60 son representado por c.

1. Análisis del programa: (agt; b)?a: b Este es un ejemplo básico de un operador condicional.

2. Código fuente del programa:

main()

{

puntuación int

calificación de caracteres; ;

printf("ingrese una puntuación\n");

scanf("d", puntuación);

calificación=scoregt;= 90? 'A': (scoregt;=60?'B':'C');

printf("d pertenece a c", puntuación, nota);

}

============================================== = ===================

Problema: Una pelota cae libremente desde una altura de 100 metros. Cada vez que golpea el suelo, rebota. a la mitad de su altura original si cae, ¿cuántos metros recorrerá cuando toque el suelo por décima vez? ¿A qué altura está el décimo rally?

1. Análisis del programa: consulte las notas a continuación

2. Código fuente del programa:

main()

{

float sn=100.0, hn=sn/2;

int n;

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

{

sn=sn 2*hn; /*Número de metros recorridos por *** al aterrizar por enésima vez*/

hn=hn/2; tiempo Altura de rebote*/

}

printf("el total del camino es f\n", sn);

printf("el décimo es f metro\n", hn);

}

============================ = ===================================

Programa 21

Título: Mono comiendo melocotones Problema: El mono recogió unos cuantos melocotones el primer día, se comió la mitad inmediatamente y no quedó satisfecho, así que se comió uno más

A la mañana siguiente se comió el resto melocotones Se le cayó la mitad y se comió uno más. A partir de entonces, cada mañana comí mitad y media de lo que sobró del día anterior

. Cuando quise comer más en la mañana del décimo día, vi que solo quedaba un melocotón. ¿Cuántos escogió *** el primer día?

1. Análisis del programa: adoptar el método de pensamiento inverso e inferir de atrás hacia adelante.

2. Código fuente del programa:

main()

{

int día, x1, x2;

día=9;

x2=1;

mientras(díagt;0)

{x1=(x2 1)*2;/*ésimo El número de melocotones de un día es el doble del número de melocotones del segundo día más 1*/

x2=x1;

día--;

}

printf("el total es d\n", x1);

}

============= === =================================================

Procedimiento 22

Problema: Compiten dos equipos de tenis de mesa, cada uno con tres jugadores. El equipo A consta de tres personas a, byc, y el equipo B consta de tres personas x, y y z. Se ha realizado un sorteo para determinar la lista de partidos. Alguien preguntó a los jugadores sobre la plantilla para el partido. a dijo que no puede competir con x, y c dijo que no puede competir con x y z. Programe para conocer la lista de jugadores de los tres equipos.

1. Análisis del programa: Método para juzgar números primos: use un número para dividir 2 en sqrt (este número) respectivamente. Si se puede dividir,

significa que el número. no es un número primo y viceversa es un número primo.

2. Código fuente del programa:

main()

{

char i, j, k /*i es un; oponente, j es el oponente de b, k es el oponente de c*/

for(i='x'; ilt; ='z'; i)

for( j ='x';jlt;='z';j )

{

if(i!=j)

for(k='x ' ;klt;='z';k )

{ if(i!=kamp;amp;j!=k)

{ if(i!='x'amp ; amp;k!='x'amp;amp;k!='z')

printf("el orden es a--c\tb--c\tc--c\n", i , j, k);

}

}

}

}

==== == ================================================== == =======

Programa 23

Título: Imprime el siguiente patrón (diamante)

*

***

******

*********

******

** *

*

1. Análisis del programa: Primero divida el gráfico en dos partes. Las primeras cuatro líneas tienen una regla y las últimas tres líneas tienen una regla. double

Bucle For, la primera capa controla las filas y la segunda capa controla las columnas.

2. Código fuente del programa:

main()

{

int i, j, k

<; p>for(i=0;ilt;=3;i)

{

for(j=0;jlt;=2-i;j)

printf(" ");

for(k=0;klt;=2*i;k)

printf("*");

printf("\n");

}

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

{

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

printf(" ");

for(k=0;klt;=4-2*i; k )

printf("*");

printf("\n"); >

=============================================== ================

Programa 24

Título: Hay una secuencia de fracciones: 2/1, 3/2, 5 /3, 8/5, 13/8, 21/13... Encuentra la suma de los primeros 20 términos de esta secuencia.

1. Análisis del programa: comprenda las reglas cambiantes del numerador y el denominador.

2. Código fuente del programa:

main()

{

int n, t, number=20

flotar a=2, b=1, s=0;

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

{

s=s a/b;

t=a; a=a b=t; /*Esta parte es la clave del programa, por favor adivina el papel de t*/

}

printf("la suma es 9.6f\n", s);

}

========== = =================================================== = =

Programa 25

Título: ¡Encuentra la suma de 1 2!... ¡20!

1. La suma se ha vuelto agotadora.

2. Código fuente del programa:

main()

{

float n, s=0, t=1;

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

{

t*=n;

s =t;

}

printf("1 2! 3!... 20!=e\n",

}

================================================= ==============

Programa 26

Título: ¡Usa el método recursivo para encontrar 5!.

1. Análisis del programa: fórmula recursiva: fn=fn_1*4!

2. Código fuente del programa:

#include "stdio.h"

p> p>

principal()

{

int i;

int fact();

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

printf("\40: d!=d\n", i, hecho(i));

int hecho(j)

int j;

{

int suma;

if(j==0)

suma=1;

else

suma=j*fact(j-1);

devolver suma;

}

======================================= ==== ======================

Programa 27

Título: Utilice llamadas a funciones recursivas para convertir Los 5 caracteres ingresados ​​se imprimen en orden inverso.

1. Análisis del programa:

2. Código fuente del programa:

#include "stdio.h"

main()<. /p>

{

int i=5;

void palin(int n);

printf("\40:");

palin(i);

printf("\n");

}

void palin(n)

int n;

{

char siguiente;

if(nlt;=1)

{

siguiente=getchar();

printf("\n\0:");

putchar(siguiente);

}

else

{

siguiente=getchar();

palin(n-1); );

}

}

========================== = =====================================

Programa 28

Pregunta: Hay 5 personas sentadas juntas. ¿Cuántos años tiene la quinta persona? Dijo que era 2 años mayor que la cuarta persona. Cuando se le preguntó la edad de la cuarta persona, dijo que era 2 años mayor que la tercera persona. Le pregunté a la tercera persona y me dijo que era dos años mayor que la segunda. Preguntó a la segunda persona y dijo que era dos años mayor que la primera. Finalmente

Le pregunté a la primera persona y me dijo que tenía 10 años. ¿Cuántos años tiene la quinta persona?

1. Análisis del programa: utilizando el método recursivo, la recursividad se divide en dos etapas: retroceso y recursividad. Para saber la edad de la quinta persona, necesitas saber la edad de la cuarta persona, y así sucesivamente, hasta la primera persona (10 años), y luego de regreso.

2. Código fuente del programa:

age(n)

int n

{

int; c;

si(n==1) c=10;

si no c=edad(n-1)

retorno(c);

}

main()

{ printf("d",edad(5));

}

================================================= = ===============

Programa 29

Título: Dado un entero positivo de no más de 5 dígitos, requisitos: 1. Encontrar ¿Cuántos dígitos tiene? 2. Imprima los dígitos en orden inverso.

1. Análisis del programa: aprenda a descomponer cada dígito, como se explica a continuación: (Aquí hay un algoritmo simple, proporcionado por Zhao Xin, Clase 002, Normal College)

2. código fuente:

main()

{

long a, b, c, d, e, x

scanf (; "ld",amp; */

c=x1000/100; /*Descomponer el lugar de las centenas*/

d=x100/10;/*Descomponer el lugar de las decenas*/

e=x10;/*Descomponer el dígito de las unidades*/

if (a!=0) printf("hay 5, ld ld ld ld ld\n", e , d, c, b , a);

else if (b!=0) printf("hay 4, ld ld ld ld\n", e, d, c, b); /p>

else if (c!=0) printf("hay 3,ld ld ld\n",e,d,c);

else if (d!=0) printf("hay 2, ld ld\n", e, d);

else if (e!=0) printf("hay 1, ld\n", e

}

====================================== ========= ===================

Programa 30

Título: A 5 dígitos número, determine si es un número palíndromo. Es decir, 12321 es un número palíndromo, el dígito de las unidades es el mismo que el de los millares y el dígito de las decenas es el mismo que el de los millares.

1. Análisis del programa: igual que el Ejemplo 29

2 Código fuente del programa:

main()

{

long ge, shi, qian, wan, x

scanf("ld", amp; x

wan=x/10000;

qian=x10000/1000;

shi=x100/10;

ge=x10;

if (ge==wanamp;amp;shi = =qian)/*El dígito de las unidades es igual al dígito de los millares y el dígito de las decenas es igual al dígito de los millares*/

printf("este número es un huiwen\n");

else

printf("este número no es un huiwen\n");

}

========= ========= =========================================== ===

Programa 31

Pregunta: Ingrese la primera letra del día de la semana para determinar el día de la semana. Si las primeras letras son iguales, continúe. determinar la segunda letra.

1. Análisis del programa: es mejor utilizar declaraciones de situación si las primeras letras son iguales, utilice declaraciones de situación o declaraciones if para juzgar la segunda letra.

2. Código fuente del programa:

#include

void main()

{

letra de carácter. ;

printf("ingrese la primera letra de algún día\n");

while ((letter=getch())!='Y')/*Cuando la letra se presiona Termina cuando es Y*/

{ switch (letra)

{case 'S': printf("por favor ingrese la segunda letra\n");

if((letra=getch())=='a')

printf("sábado\n");

else if ((letter=getch( ))= ='u')

printf("domingo\n");

else printf("error de datos\n");

descanso ;

p>

caso 'F': printf("viernes\n"); descanso;

caso 'M': printf("lunes\n"); break;

case 'T': printf("ingrese la segunda letra\n");

if((letter=getch())=='u')

printf(" martes\n");

else if ((letter=getch())=='h')

printf("jueves\n ");

else printf("error de datos\n");

break;

caso 'W': printf("miércoles\n") ; romper;

predeterminado: printf("error de datos\n");

}

}

}

===== =========================================== ======== =======

Programa 34

Título: Práctica de llamadas a funciones

Análisis del programa:

p>

2. Código fuente del programa:

#include

void hello_world(void)

{

printf(" ¡Hola mundo!\n") ;

}

void three_hellos(void)

{

int counter;

for (contador = 1; contador lt; = 3; contador )

hello_world(); /*Llamar a esta función*/

}

void main(void)

{

tres_hellos();/*Llamar a esta función*/

}

}

=== =============

===============================================

Programa 36

Título: Encuentra números primos hasta 100

1. Análisis del programa:

2 Código fuente del programa:

< p. >#include

#include "math.h"

#define N 101

main()

{

int i, j, línea, a[N];

for(i=2; ifor(i=2; ilt; SQRT(N); I )

for(j=i 1;jlt;N;J)

{

if(a[i]!=0amp;amp;a[j]!=0)

if(a[j]a[i]==0)

a[j]=0;}

printf("\n"); /p>

for(i=2, línea=0; ilt; N; I )

{

if(a[i]!=0)

p>

{printf("5d", a[i]

línea;}

if(línea==10)

{ printf("\n");

line=0;}

}

}

====== = =================================================== = =====

Programa 37

Título: Ordenar 10 números

Análisis del programa: Puedes utilizar el método de selección, es decir, de los últimos 9 Durante el primer proceso de comparación, seleccione el elemento más pequeño e intercámbielo con el primer elemento. Por analogía, la próxima vez, el segundo elemento se comparará con los últimos 8 elementos y se intercambiará.

2. Código fuente del programa:

#define N 10

main()

{int i, j, min, tem , a[N];

/*input data*/

printf("por favor ingrese diez num:\n");

for(i= 0; ilt; N; yo )

{

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

scanf("d", amplificador ;a[i]);}

printf("\n");

for(i=0;ilt;N;I)

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

printf("\n");

/*ordenar diez números*/

for(i =0;ilt;N-1;I )

{min=i;

for(j=i 1;jlt;N;J )

if(a[min]gt;a[j]) min=j;

tem=a[i];

a[i]=a[min];

tem=a[i];

a[i]=a[min];

p>

a[min]=tem;

}

/*datos de salida*/

printf("Después de ordenar \n");

for(i=0;ilt;N; I)

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

}

=============== ================================== ===============

Programa 46

Título: Macro #define práctica de comando (1)

1. Análisis del programa:

2.

#include "stdio.h"

#define VERDADERO 1

#define FALSO 0

#define SQ(x) ( x)*(x)

void main()

{

int num ;

int otra vez=1;

printf("\40: el programa se detendrá si el valor de entrada es inferior a 50.\n");

while( otra vez)

{

printf("\40: Por favor ingrese número==gt;");

scanf("d", amp; num);

printf("\40: El cuadrado para este número es d \n",SQ(num));

if(numgt;=50)

again=TRUE;

else

otra vez=FALSO;

}

}

== ================= ================================== ==========

Programa 86

Título: Programa de concatenación de dos cadenas

1. Análisis del programa:

2. Código fuente del programa:

#include "stdio.h"

principal()

>

{char a[]="acegikm";

char b[]="bdfhjlnpq";

char c[80], *p;

int i=0, j=0, k=0;

mientras(a[i]!='\0'amp; amp;b[j]!='\0')

{si (a[i] { c[k]=a[i]; i ;}

else

c[k]=b[ j ];

k

}

c[k]='\0'; =='\0')

p=b j;

else

p=a i;

strcat(c, p) ;

pone(c);

}

======================= ========================================

Programa 87

Título: Resultado de la respuesta (transferencia de variable de estructura)

1. Análisis del programa:

2. Código fuente del programa:

#include " stdio.h"

estructura estudiante

{ int x;

char c;

} a;

main()

{a.x=3;

a.c='a';

f(a);

printf ( "d, c", a.x, a.c);

}

f(struct estudiante b)

{

b.x= 20 ;

b.c='y';

}

===================== = =========================================

Programa 88

Título: Leer 7 valores enteros (1-50). Cada vez que se lee un valor, el programa imprime el número de *

1. /p>

2. Código fuente del programa:

main()

{int i, a, n=1; =7)

{ hacer {

scanf("d",amp; a);

} while(alt; 1||agt ;50) ;

for(i=1;ilt;=a;i)

printf("*");

printf("\n ");

n;}

getch();

}

============ === ================================================ =

Programa 89

Título: Una empresa utiliza un teléfono público para transmitir datos. Los datos son un número entero de cuatro dígitos, que se cifran durante el proceso de transmisión. cada dígito Suma 5 a ambos, luego reemplaza el número con el resto dividido por 10, intercambiando el primer y cuarto dígito, y el segundo y tercer dígito.

1. Análisis del programa:

2. Código fuente del programa:

main()

{int a, i, aa[. 4], t;

scanf("d", y a);

aa[0]=a10

aa[1]=a100; /10;

aa[2]=a1000/100;

aa[3]=a/1000;

for(i=0; ilt; =3; yo )

{aa[i] =5;

aa[i]=10; (i=0;ilt;=3/2;i)

{t=aa[i];

aa[i]=aa[3-i];

p>

aa[3-i]=t;

}

for(i=3;igt;=0;i--)

printf("d",aa[i]);

}

================== ===== =========================================

Programa 90

Título: Una pregunta para grado asociado a licenciatura, lea el resultado.

1. Análisis del programa:

2. Código fuente del programa:

#include "stdio.h"

#define M 5.

principal()

{int a[M]={1, 2, 3, 4, 5}

int i, j, t;

i=0;j=M-1;

mientras(i {t=*(a i);

*(a i)=*(a j );

*(a j)=t;

i; j--;

}

for(i=0; i printf("d",*(ai));

}