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;ilt;=20;i)
for(j =1;jlt;=33;j)
for(k=1;klt;=33;k)
if (i j k*3==100amp;amp ; i* 5 j*3 k==100)
printf(" d d d\n", i, j, k*3 }
Resultado de la ejecución:
gallina pollito
4 18 78
8 11 81
12 4 84
3. Calcula ahora Fibonacci Los primeros 20 términos de la secuencia.
Programa fuente del método recursivo:
main()
{long a, b int i; ;
for(i=1;ilt;=10;i) /*Para calcular los primeros 30 elementos, cambie 10 por 15.
*/
{printf("8ld8ld", a, b);
a=a b; b=b a;}}
Programa fuente del método recursivo:
main()
{int i;
for(i=0; ilt; =19; i)
printf( "8d", fib(i));}
fib(int i)
{return(ilt;=1?1: fib(i-1) fib(i- 2));}
Resultados 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()
{double x, x0, deltax ;
x=1.5;
hacer {x0=pow(x 1, 1./3);
x=x0;
}mientras(deltaxgt;1e-12);
printf(".10f\n",x);}
p>
p>
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()
printf("Ingrese a, byc: ");
scanf("d d d", amp; a, amp ;b,amp;c);
if(alt;b){m=a;a=b;b=m;}
if(alt;c){m =a;a=c;c=m;}
if(blt;c){m=b;b=c;c=m;}
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", amp; a) ;
printf(a21==0?"Sí":"No");}
Resultado de la ejecución:
42
Sí
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
1-4.BDCB 5-8.AABC
p>2. Complete los espacios en blanco (página 35)
1. Principal 2. Sistema de compilación C 3. Función función 4. Entrada y salida 5. Encabezado 6. .OBJ 7. Función de biblioteca 8 .Text
3. Preguntas de aplicación (página 36)
5.sizeof es la palabra clave, stru, _aoto, file, m_i_n, hola, ABC, SIN90, x1234, hasta, cos2x, s_3 son identificadores.
8. Programa fuente:
main()
{int a, b, c
scanf("d d", amplificador; a, amplificador b);
c=a; a=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. Múltiples preguntas de elección (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. Ojo único 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.
p>
11
0
0
12
1
5 Capítulo 4 Programación estructural de secuencias
1. Preguntas de opción múltiple (página 90)
1-5.DCDAD 6-10.BACBB
2. Preguntas para completar en blanco (página 90) 91 páginas)
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("lflflf", amp; a, amp; b, amp; c); 9. 13 13.000000, 13.000000 10.a=a^c; c=c^a; a=a^c; variables.)
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", amp; h, amp; m);
printf("d\n", h*60 m);}
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; ilt; M; i)
{a[i][N-1]=0
for(j=0;jlt;N-1;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;ilt;M;i)
si (a[i][N-1]gt; a[t][N-1])t=i
if(t)for(j=0;jlt;N;j)
{i=a[0][j]; a[0][j]=a[t][j]; a[t][j]=i;}
printf("-----------------\n");
for(i=0;ilt;M;printf("\n") , i)
10 Capítulo 7 Arreglos
for(j=0;jlt;N;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
----------------
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. p>
#include "stdlib.h"
#include "time.h"
#define M 5
#define N 6
main()
{int a[M][N], i, j
estructura de datos{int valor, x, y;}max;
, min;
valor máximo=0; valor mínimo=100;
aleatorio(); printf("\n"),i )
for(j=0;jlt;N;j)
{printf("4d",a[i][j] =aleatorio(100) 1);
if(max.valuelt;a[i][j])
{max.value=a[i][j];max .x=i;max.y=j;}
if(min.valuegt;a[i][j])
{min.value=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;ilt;M;printf("\n"),i )
for(j=0;jlt;N;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:
main()
{char s[255]; int i, j, b=1
printf("Ingrese una cadena:"
scanf("s", s);
i=strlen(s);
for(j=1;jlt;=i/) 2;j)
b=bamp;amp;(s[j-1]==s[i-j]);
printf(b?"Sí\n":" No\n");}
Resultado de la ejecución:
Ingrese una cadena: nivel
Sí
10. Programa fuente:
main()
{char s[255], t, max=0, min=0, l, i
printf("Ingrese una cadena; (longitudgt; 4): ");
obtiene(s);
l=strlen(s);
for(i=0; ilt; l;i)
{if(s[max]lt;s[i])max=i;if(s[min]gt;s[
i])mín=i;}
t=s[1]; s[1]=s[máx]; s[máx]=t;
t=s[l-2]; s[l-2]=s[min]; s[min]=t
printf("s\n", s);}
Resultado de la ejecución:
Ingrese una cadena (longitudgt; 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);
printf("d:d d d=d, d13=d, s\n", n, i, j, k, s, s, a , m[a=((s=(i=n/100) (j=n/1010) (k=n10))13)]);}
Resultado de la ejecución:
Ingrese un número entero (100..999): 539
539: 5 3 9=17, 1713=4, abril
11 Función del Capítulo 8
1. Preguntas de opción múltiple (página 241)
1-5.BCCAA 6-10.CCDDD 11-15.ACACB
2. preguntas (página 241) 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 en la que aparece 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(nlt;=0)return(-1); /* -1 es un indicador de error*/
else if(n==1)return( 1);
else return(n suma(n-1));}
2. *facto(n-1))
3. Preguntas de programación (página 244)
3. Programa fuente:
main()
{int i, a, b, c;
for(i=100;ilt;999;i)
if((a=i/100)*a* a (b=i/1010)*b *b (c=i10)*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; rlt; =; P; r )
{ a[r]=1;
for(c=r-1;cgt;=1; a[c--] =a[c- 1]);
printf ("*d", (P-r)*3 1, a[0]); ("6d",a[c]));
printf("\n");}
}
Resultado de la ejecución:
(Debe estar dispuesto en un triángulo, es un Tieba. La razón por la que es así no es un problema del 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 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.
#include "stdio.h"
void printOCT(unsigned long n)
{unsigned long i
if(i; =ngt;gt;3)printOCT(i);
putchar ((namp; 7) 48);}
principal
()
{unsigned long i;
scanf("ld",amp;i
printOCT(i);}
Resultado de la ejecución:
1234567890
11145401322
Esta pregunta no requiere un algoritmo recursivo. Consulte el Capítulo 7, Pregunta 3, Pregunta 4. 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 lo mismo, como el nuestro. Fue la segunda edición en diciembre de 1999 y la edición número 69 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 ②qlt;p 10 ③*qgt;max ④*qlt;min
3 Preguntas de programación (Página 280)
7. Programa fuente:
main()
{int i=0]; p>
do{scanf("s",amp;c);i;}
while(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}; /p >
obtiene(s);
for(i=0; s[i]; c[s[i]]
for(i=0); ; ilt ;255;i)
if(c[i])printf("c=d\t",i,c[i]);}
Resultado de la ejecución:
p>abcedabcdcd
a=2 b=2 c=3 d=3 e=1