La Red de Conocimientos Pedagógicos - Currículum vitae - Respuestas al tutorial de programación en lenguaje C ~ ¡Hay una recompensa adicional de 100 puntos!

Respuestas al tutorial de programación en lenguaje C ~ ¡Hay una recompensa adicional de 100 puntos!

1 Respuestas a ejercicios en lenguaje C "Tutorial de programación en lenguaje C (Segunda edición)"

Explicación

1 El "Tutorial de programación en lenguaje C" al que se hace referencia. En este artículo, el "Tutorial (segunda edición)" está editado por Li Fengxia y publicado por el Instituto de Prensa Tecnológica de Beijing.

2 Capítulo 1 Conocimientos básicos de programación

1. Preguntas de opción múltiple (página 23)

1-4.CBBC 5-8.DACA

2. Preguntas para completar en blanco (página 24)

1. Condiciones de juicio 2. Programación orientada a procesos 3. Estructurado 4. Programa 5. Lenguaje de programación orientado a objetos 7. Propiedad Finita 8. Bucle tipo Until 9. Algoritmo 10. Legibilidad 11. Modularidad 12. Análisis de problemas y división de módulos

3 Preguntas de aplicación (página 24)

2. Programa fuente:

main()

{int i,j,k; /* i: número de gallos, j: número de gallinas, k: número de polluelos 1/3 */

printf("pollo gallina pollito\n");

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

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

for(k=1;k<=33;k++)

si (i+j+k*3= =100&&i* 5+j*3+k==100)

printf(" %d %d %d\n",i,j,k*3);}

Resultados de la ejecución :

gallina polluelo

4 18 78

8 11 81

12 4 84

3. Ahora calcula los primeros 20 términos de la secuencia de Fibonacci.

Programa fuente del método recursivo:

main()

{long a,b;int i; ;

for(i=1;i<=10;i++) /*Para calcular los primeros 30 elementos, cambie 10 por 15. */

{printf("%8ld%8ld",a,b

a=a+b;b=b+a;}}

<); p> Programa fuente del método recursivo:

main()

{int i

for(i=0;i<=19;i++) p>

printf("%8d",fib(i));}

fib(int i)

{return(i<=1?1: fib( i-1)+fib(i-2));}

Resultado de la ejecución:

1 1 2 3 5 8 13 21 34 55

89 144 233 377 610 987 1597 2584 4181 6765

4. Programa fuente:

#include "math.h"

main()

{doble x,x0,deltax;

x=1.5

hacer {x0=pow(x+1,1./3);

deltax=fabs(x0-x);

x=x0;

}mientras(deltax>1e-12); %. 10f\n",x);}

Resultado de la ejecución:

1.3247179572

5. Se omite el programa fuente.

(Tanto el numerador como el denominador constituyen la secuencia de Fibonacci)

El resultado es 32.66026079864

6. Programa fuente:

main()

{int a,b,c,m;

printf("Por favor, ingrese a,b y c:");

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

if(a

if(a

if(b

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

Resultado de la ejecución:

Ingrese a,byc:123 456 789

789 456 123

7. Programa fuente:

main()

{int a

scanf("%d" ,&a);

printf(a%21==0?"Sí":"No");}

Resultado de la ejecución:

42

p>

42

p>

3 Capítulo 2 Descripción general del lenguaje C

1. Preguntas de opción múltiple (página 34)

1-4.BDCB 5 -8.AABC

2. Preguntas para completar en blanco (página 35)

1. sistema de compilación 3. Función función 4. Entrada y salida 5. Encabezado 6. .OBJ 7. Funciones de biblioteca 8. Texto

3 Preguntas de aplicación (página 36)

5.sizeof es la palabra clave, stru, _aoto, file, m_i_n, hello, ABC, SIN90, x1234, hasta que, cos2x, s_3 sean identificadores.

8. Programa fuente:

main()

{int a,b,c

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

c=a;a=b;b=c;

printf("%d %d",a,b);}

Resultado de la ejecución:

12 34

34 12

4 Capítulo 3 Tipos de datos y reglas de operación

1 Preguntas de opción múltiple (página 75)

1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB

2. Preguntas para completar los espacios en blanco (página 77)

1. Complemento 2.±(10^-308~10^308) 3.int (entero) 4. Un solo ojo de de derecha a izquierda 5. Llamada a función 6.a o b 7.1 8.65,89

3 Preguntas de aplicación (página 78)

1.10 9

2. resultados:

11

0

0

12

1

5 4to Capítulo Programación de estructura secuencial

1. Preguntas de opción múltiple (página 90)

1-5.DCDAD 6-10.BACBB

2. -las preguntas en blanco (Página 91)

1. 2. 5.169000 3. (1)-2002500 (2)I=-200,j=2500 (3)i=-200

j=2500 4.a=98,b=765.000000,c=4321.000000 5. ligeramente 6.0,0,3 7.3 8.scanf("%lf%lf%lf",&a,&b,&c); 9. 13 13.000000, 13.000000 10.a=a^c;c=c^a;a=a^c;(Este algoritmo no destruye el valor de b y no necesita definir variables intermedias).

3. Preguntas de programación (página 92)

1. Siga el ejemplo 2-1 en la página 27 del libro de texto.

2. Programa fuente:

main()

{int h,m

scanf("%d:%d; ",&h,&m);

printf("%d\n",h*6m);}

Resultado de la ejecución:

9: 23

563

3. Programa fuente:

main()

{int a=0

a=6

a=1

a=1

6 Programa fuente:

#include "stdlib.h" <. /p>

#include "time.h"

#define M 5

#define N 7

main()

{int a[M][N],i,j,t=0;

aleatorio()

for(i=0;i

{a[i][N-1]=0

for(j=0;j

{printf ("%4d",a[i][j]=aleatorio(91)+10

a[i][N-1]+=a[i][j];}

printf("%4d\n",a[i][N-1]);}

for(i=1;i

if(a[i][N-1]>a[t][N-1])t=i

if(t)for(j=0;j

{i=a[0][j];a[0][j]=a[t][j];a[t][j]=i;}

printf("-----------------\n");

for(i=0;i

10 Capítulo 7 Arreglos

for(j=0;j

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

}

Resultado de la ejecución:

89 17 32 95 35 20 288

39 48 22 27 73 22 231

51 87 39 71 84 46 378

84 94 97 77 27 26 405

69 50 56 89 37 46 347

p>

-----------------

84 94 97 77 27 26 405

39 48 22 27 73 22 231

51 87 39 71 84 46 378

89 17 32 95 35 20 288

69 50 56 89 37 46 347

7 Programa fuente:

#include "stdlib.h"

#include "time.h"

#define M 5

#define N 6

main()

{int a[M][N],i,j

struct data{int valor,x; , y;}max,min;

max.value=0;min.value=100

randomize(); ; yo

ntf("\n"),i++)

for(j=0;j

{printf("%4d",a[i][j ]=aleatorio(100)+1);

if(valor máximo

{valor máximo=a[i][j] ;max.x=i;max.y=j;}

if(valor mínimo>a[i][j])

{valor mínimo=a[i ][j];min.x=i;min.y=j;}

}

printf("-------------- ---\n");

i=a[0][N-1];a[0][N-1]=valor.max;a[max.x][max. y]=i;

i=a[M-1][0];a[M-1][0]=valor.mínimo;a[min.x][min.y]= i;

for(i=0;i

for(j=0;j

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

}

Resultado de la ejecución:

51 53 74 65 30 40

30 26 50 6 61 27

47 16 54 58 76 19

57 74 44 92 71 48

73 57 60 32 73 67

-----------------

51 53 74 65 30 92

30 26 50 73 61 27

47 16 54 58 76 19

57 74 44 40 71 48

6 57 60 32 73 67

9. Programa fuente:

main()

{char s[255];int i,j,b=1

printf("Ingrese a; cadena:");

scanf("%s",s);

i=strlen(s);

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

b=b&&(s[j-1]==s[i-j]);

printf(b?"Sí\n": "No\n");}

Resultado de la ejecución:

Ingrese una cadena:nivel

10.

main()

{char s[255],t,max=0,min=0,l,i

printf("Ingrese un; cadena(longitud>4):");

obtiene(s);

l=strlen(s);

for(i=0;i

{if(s[max]s[i])min=i;}

t=s[1];s[1]=s[max];s[max]=t;if(min==1)min=max

t=s[l; -2];s[l-2]=s[min];s[min]=t

printf("%s\n",s);}

Resultado de la ejecución:

Ingrese una cadena (len

gth>4):C++Builder

Cu+Beild+r

11. Programa fuente:

main()

{char m[13][10]={"****","enero","febrero","marzo",

"abril","mayo","junio"," julio","agosto","septiembre",

"octubre","noviembre","diciembre"};

int i,j,k,a,s,n ;

printf("Ingrese un número entero (100..999):");

scanf("%d",&n); ("%d:%d+%d+%d=%d, %d%%13=%d, %s\n", n,i,j,k,s,s,a,m[a=(( s=(i=n/100)+(j=n/10%10)+(k=n%10))%13)]);}

Resultado de la ejecución:

Ingrese un número entero (100..999):539

539:5+3+9=17, 17%13=4, abril

11 Capítulo 8 Funciones

1. Preguntas de opción múltiple (página 241)

1-5.BCCAA 6-10.CCDDD 11-15.ACACB

2. -las preguntas en blanco (Página 243)

1. No se puede ver la intención de la pregunta original. Debido a que necesitamos calcular la suma acumulada de 1 a n, n debe ser un número entero positivo ≥ 1. Pero hay una situación de n=0 en la pregunta. A menos que se especifique lo contrario cuando n = 0, la suma acumulada de 1 an es 0, o la fórmula de cálculo en la pregunta original se cambia para calcular la suma acumulativa de 0 an.

Según esta suposición, la pregunta original debe completarse como: ①return(0) ②return(n+sum(n-1))

Según el significado de la pregunta, el siguiente procedimiento es más razonable :

int sum (int n)

{if(n<=0)return(-1); /* -1 es un indicador de error*/

else if(n==1)return (1);

else return(n+sum(n-1));}

2. (n*facto(n-1))

3. Preguntas de programación (página 244)

3. Programa fuente:

main()

{int i,a, b,c;

for(i=100;i<999;i++)

if((a=i/100)* a*a+(b=i/10% 10)*b*b+(c=i%10)*c*c==i)

printf("%d\t",i); }

Resultado de la ejecución:

153 370 371 407

8. Programa fuente (algoritmo no recursivo):

#define P 13 /* P se puede cambiar a otros enteros positivos* /

main()

{int a[P],r,c

for( r=0;r<=P;r++)

{a[r]=1

for(c=r-1;c>=1;a[c- -]+=a[c-1]);

printf("%*d",(P-r)*3+1,a[0]); c=1;c<=r;printf(" %6d",a[c++]));

printf("\n");}

}

Resultado de la ejecución:

(Debe estar dispuesto en un triángulo. Es Tieba lo que hizo que se viera así, no es un problema con el programa)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

1 10 45 120 210 252 210 120 45 10 1

1 11 55 165 330 462 462 330 165 55 11 1

1 12 66 220 495 792 924 792 495 220 66 12 1

1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1

<

9. Programa fuente (algoritmo recursivo):

#include "stdio.h"

void printOCT(unsigned long n)

{unsigned long i

if(i=n>>3)printOCT(i

putchar((n&7)+48);}

main() <; /p>

{unsigned long i;

scanf( "%ld",&i

printOCT(i);}

Resultado de la ejecución.

Resultado:

1234567890

11145401322

Esta pregunta no requiere un algoritmo recursivo. Consulte el Capítulo 7, Pregunta 3, Pregunta 4 para conocer el programa fuente.

12 Respuesta: Respuestas a los ejercicios en lenguaje C "Tutorial de programación en lenguaje C (segunda edición)"

Sin embargo, las preguntas extraescolares de las versiones impresas en diferentes momentos no son las Igual que la nuestra. Fue la segunda edición en diciembre de 1999 y la 69ª edición en diciembre de 2005. No elegí completar los espacios en blanco. No sé cuántas preguntas de la solicitud son iguales a la pregunta original porque no puedo ver la pregunta original. Esto es más problemático.

Autor: 210.77.204.* 2006-5-9 18:38 Responder a esta afirmación

----------------- ------------------------------------------------- - ------------

13 Respuesta: Respuestas a ejercicios en lenguaje C "Tutorial de programación en lenguaje C (segunda edición)"

Compare el editor -Jefe y editor, eche un vistazo, ¿verdad? (Consulta el primer punto de la explicación).

¿No te dije que publicaras otra publicación si tienes alguna pregunta?

14 Consejos del Capítulo 9

1. Preguntas de opción múltiple (página 276)

1-5.DCDAC 6-10.CCABC 11-16. -20.DCDBD

2. Preguntas para completar los espacios en blanco (página 278)

1.①int * ②*z

2.*p++

3.①'\0' ②++

4.①q=p+1 ②qmáx ④*q

3. Preguntas de programación (página 280)

7. Programa fuente:

main()

{int i=0;char c[20 ];

do{scanf("%s",&c);i++;}

mientras(strcmp(c,"stop")); printf( "%d\n",i);}

Resultado de la ejecución:

Este automóvil corrió desde Nanyang

hacia Luoyang sin detenerse

10

9. Programa fuente:

main()

{char s[255],c[255]={0}; int i ;

obtiene(s);

for(i=0;s[i];c[s[i++]]++); >for (i=0;i<255;i++)

if(c[i])printf("%c=%d\t",i,c[i]);}

Resultado de la ejecución:

abcedabcdcd

a=2 b=2 c=3 d=3 e=1