Está en la página 1de 26

EJERCICIOS DE AUTOEVALUACIÓN

3.1 Complete los espacios en blanco:


a) Al procedimiento para resolver un problema en términos de las acciones que se deben ejecutar y del orden en
el que se deben ejecutar dichas órdenes se le llama Algoritmo

b) A la especificación del orden de ejecución de las instrucciones por medio de la computadora se le llama:
Control de programa
c) Todos los programas pueden escribirse en términos de tres tipos de instrucciones de control: Secuencia,
selección, repetición.
d) La instrucción de selección if…else se utiliza para ejecutar una acción cuando una condición es verdadera y
otra acción cuando dicha condición es falsa.

e) A muchas instrucciones agrupadas dentro de llaves ({ y }), se les llama Instrucción

compuesta
f) La instrucción de repetición while especifica que una instrucción o grupo de instrucciones se
ejecutará de manera repetida mientras una condición sea verdadera.
g) A la repetición de un conjunto de instrucciones, un número específico de veces se le llama repetición
Controlada por contador.
h) Cuando no se sabe por adelantado el número de veces que se repetirá un conjunto de instrucciones, se puede
utilizar un valor Centinela para terminar la repetición.

3.2 Escriba cuatro instrucciones diferentes de C que sumen 1 a la variable entera x.


x = x + 1;
x += 1;
++x;
x++;

3.3 Escriba una instrucción sencilla en C para llevar a cabo cada una de las siguientes tareas:
a) Asigne la suma de x y y a z, e incremente el valor de x en 1 después del cálculo.
z = x++ + y;
b) Multiplique la variable producto por 2 mediante el uso del operador *=.
producto *= 2;
c) Multiplique la variable producto por 2 mediante el uso de los operadores =y*.
producto = producto * 2;
d) Verifique si el valor de la variable cuenta es mayor que 10. Si lo es, imprima “Cuenta es mayor que
10”.
if ( cuenta > 10 )
printf( “Cuenta es mayor que 10.\n” );
e) Decremente la variable x en 1, después réstela de la variable total.
total -= --x;
f) Sume la variable x a la variable total, después decremente x en 1.
total += x--;
g) Calcule el residuo de la división de q entre divisor y asigne el resultado a q. Escriba la instrucción de
dos maneras distintas.
q %= divisor;

q = q % divisor;

h) Imprima el valor 123.4567 con dos dígitos de precisión. ¿Qué valor se imprime?
printf( “%.2f”, 123.4567 );
despliega 123.46
i)Imprima el valor de punto flotante 3.14159 con tres dígitos de precisión a la derecha del punto
decimal. ¿Qué valor se imprime?
printf( “%.3f\n”, 3.14159 );

despliega 3.142.

3.4 Escriba una instrucción en C para llevar a cabo cada una de las siguientes tareas:
a) Defina las variables suma y x de tipo int.
int suma, x;
b) Inicialice la variable x en 1.Capítulo 3 Desarrollo de programas estructurados en C 77
x = 1;
c) Inicialice la variable suma en 0.
suma = 0;
d) Sume la variable x a la variable suma y asigne el resultado a la variable suma.
suma += x; o suma = suma + x;
e) Imprima “La suma es: ” seguida del valor de la variable suma
printf( “La suma es: %d\n”, suma );
3.5 Combine las instrucciones que escribió en el ejercicio 3.4 dentro de un programa que calcule la
suma de los enteros 1 a 10. Utilice la instrucción while para hacer un ciclo con las instrucciones para el
cálculo y el incremento.
El ciclo deberá terminar cuando el valor de x sea 11.
1 /* Calcula la suma de los enteros 1 a 10 */
02 #include <stdio.h>
03
04 int main()
05 {
06 int suma, x; /* define las variables suma y x */
07
08 x = 1; /* inicializa x */
09 suma = 0; /* inicializa suma */
10
11 while ( x <= 10 ) { /* repite el ciclo mientras x sea menor o igual que */
12 suma += x; /* suma x a suma */
13 ++x; /* incrementa x */
14} /* fin de while */
15
16 printf( “La suma es: %d\n”, suma ); /* despliega la suma */
17
18 return 0;
19 } /* fin de la función main */

3.6 Determine los valores de las variables producto y x después realizar el cálculo siguiente. Suponga que
producto y x tienen un valor igual que 5 al comenzar la ejecución de la instrucción.
producto *= x++;

producto = 25, x = 6;

3.7 Escriba instrucciones sencillas para


a) Introducir la variable entera x mediante scanf.
scanf( “%d”, &x );

b) Introducir la variable entera y mediante scanf.


scanf( “%d”, &y );

c) Inicializar la variable entera i en 1.


i = 1;

d) Inicializar la variable entera potencia en 1.


potencia = 1;

e) Multiplicar la variable potencia por x y asignar el resultado a potencia.


potencia *= x;
f) Incrementar la variable i en 1.
y++;

g) Verificar i para ver si es menor o igual que y en la condición de una instrucción while.
if ( y <= x )

h) Mostrar la variable entera potencia mediante printf.


printf( “%d”, potencia );

3.8 Escriba un programa en C que utilice las instrucciones del ejercicio 3.7 para calcular x a la potencia y. El
programa debe tener una instrucción de repetición while.
1 /* eleva x a la potencia y */
2 #include <stdio.h>
3
4 int main()
5{
6 int x, y, i, potencia; /* declaración de las variables */
7
8 i = 1; /* inicializa i */
9 potencia = 1; /* inicializa potencia */
10 scanf( “%d”, &x ); /* lectura de x del usuario */
11 scanf( “%d”, &y ); /* lectura de y del usuario */
12
13 while ( i <= y ) { /* repite el ciclo while mientras i sea menor o
igual que y */
14 potencia *= x; /* multiplica potencia por x */
15 ++i; /* incrementa i */
16 } /* fin del while */
17
18 printf( “%d”, potencia ); /* despliega la potencia */
19
20 return 0;
21 } /* fin de la función main */

3.9 Identifique y corrija los errores en cada una de las siguientes instrucciones:
a) while ( c <= 5 ) {
producto *= c;
++c;
b) scanf( “%.4f”, &valor);
c) if ( genero == 1 )
printf( “Mujer\n” );
else;
printf( “Hombre\n” );

a) Error: falta la llave derecha que cierra el cuerpo del while.


Corrección: añada la llave derecha después de la instrucción ++c.
b) Error: se especifica precisión dentro de la especificación de conversión de scanf.
Corrección: elimine .4 de la especificación de conversión.
c) Error: el punto y coma después de else en la instrucción if…else provoca un error de lógica.
Corrección: elimine el punto y coma después de else

3.10 ¿Qué es lo que está mal en la siguiente instrucción de repetición while (suponga que z tiene un valor 100),
la cual
se supone debe calcular la suma en orden descendente de los enteros de 100 a 1?:
a) while ( z >= 0 )
suma += z;

El valor de la variable z nunca cambia dentro de la instrucción while. Por lo tanto, se crea un ciclo infinito. Para
prevenir que se presente un ciclo infinito, z debe disminuir de manera que alcance un valor igual a 0.

3.11 Identifique y corrija los errores de cada una de las siguientes instrucciones [Nota: Puede haber más de un
error en
cada porción de código]:

a) if ( edad >= 65 );
printf( “La edad es mayor o igual que 65\n” );
else
printf( “La edad es menor que 65\n” );

if ( edad >= 65 ) //SIN punto y coma


printf( “La edad es mayor o igual que 65\n” );
else
printf( “La edad es menor que 65\n” );
b) int x = 1, total;
while ( x <= 10 ) {
total += x;
++x;
}

int x, total;
x=1;
while ( x <= 10 ) {
total += x;
++x;
}

c) while ( x <= 100 )


total += x;
++x;

Int x, total;
while ( x <= 100 )
total += x;
++x;

d) while ( y > 0 ) {
printf( “%d\n”, y );
++y;
}

EJERCICIOS DE AUTOEVALUACIÓN
3.1 Complete los espacios en blanco:

a) La solución a cualquier problema involucra la realización de una serie de acciones en un orden específico.

b) Un sinónimo de procedimiento es metodo .

c) A la variable que acumula la suma de varios números se le llama TOTAL.

d) Al proceso de asignarles ciertos valores a las variables al principio del programa se le llama INICIALIZACIÓN .

f) Un diagrama de flujo es una representación gráfica de un algoritmo.

g) En un diagrama de flujo, el orden en el que se deben realizar los pasos se indica mediante símbolos de Las
líneas y flechas
.
h) El símbolo de terminación indica el FIN y el INICIO de cada algoritmo.

3.13 ¿Cuál es la salida de la siguiente porción de código?


1 #include <stdio.h>
02
03 int main()
04 {
05 int x = 1, total = 0, y;
06
07 while ( x <= 10 ) {
08 y = x * x;
09 printf( “%d\n”, y );
10 total += y;
11 ++x;
12 }
13
14 printf( “El total es: %d\n”, total );
15
16 return 0;
17 }

3.14 Escriba una instrucción individual en pseudocódigo que indique cada una de las siguientes acciones:
a) Despliegue el mensaje “Introduzca dos números”.
printf(“Introduzca dos número”);

b) Asigne la suma de las variables x, y, y z a la variable p.


p=x+y+z;

c) Verifique la siguiente condición dentro de una instrucción de selección if…else: el valor actual de la variable
m es mayor que el doble del valor actual de la variable v.

int main(int argc, char *argv[]) {


int m, v;
m=0;
v=1;
printf("Introducir valor de m");
scanf("%d", &m);
if(m>=v*2)
printf("\nm es mayor que v");
else
printf("m no es mayor que v");

return 0;
}

d) Obtenga el valor de las variables s, r, y t desde el teclado

int s,r,t;
printf("Introduzca valores para s,r,t \n");
scanf("%d %d %d" , &s, &r, &t);

3.15 Formule un algoritmo en pseudocódigo para cada una de las siguientes:


a) Obtenga dos números desde el teclado, calcule la suma de los números y despliegue el resultado.
int a,b,res;
printf("Introduzca valores para a y b \n");
scanf("%d \n %d" , &a, &b);
res=a+b;
printf("la suma de a y b es %d", res);
return 0;
}

b) Obtenga dos números desde el teclado, y determine y despliegue cuál (si existe) es el mayor de los dos.

int main(int argc, char *argv[]) {


int a, b;
printf("Introduzca valores para a y b \n");
scanf("%d \n %d" , &a, &b);
if(a==b)
printf("son iguales");
else if(a>b)
printf("El valor de a=%d es mayor que b=%d", a, b);
else if(a<b)
printf("El valor de b=%d es mayor que a=%d", b, a);
return 0;

c) Obtenga una serie de números positivos desde el teclado, y determine y despliegue la suma de los números.
Asuma que el usuario introduce un valor centinela -1 para indicar el “fin de la entrada de datos”

#include <stdio.h>
#include <stdlib.h>
/* 02 Programa controlada por centinela */
int main()
{
int contador; /* números introducidos */
int numero; /* numero */
int total; /* suma de los numeros */

/* fase de inicialización */
total = 0; /* inicializa el total */
contador = 0; /* inicializa el contador del ciclo */

/* obtiene el primer numero del usuario */


printf( "Introduzca un numero, el valor -1 es para terminar: " );
scanf( "%d", &numero ); /* lee el numero del usuario */

/* repite el ciclo mientras no se introduzca el valor centinela */


while ( numero != -1 ) {
total = total + numero; /* suma cde numero a total */
contador = contador + 1; /* incrementa el contador */

/* obtiene el siguiente numero del usuario */


printf( "Introduzca un numero, el valor -1 es para terminar: " );
/* indicador para la entrada */
scanf("%d", &numero); /* lee el siguiente numero */

} /* fin de while */
/* si el usuario introdujo al menos un numero */
if ( contador != 0 ) {
printf( "La suma de los valores es: %d\n", total );

} /* fin de if*/
else { /* si no introdujo un numero */
printf( "No se introdujeron numeros\n" );
} /* fin de else */
return 0;
} /* fin de la función main */

3.16 Indique si las siguientes frases son verdaderas o falsas. Si una frase es falsa, explique por qué.
a) La experiencia ha demostrado que la parte más difícil para solucionar un problema por medio de la
computadora
es crear un programa funcional en C.
b) Un valor centinela debe ser un valor que no se confunda con un valor de dato legítimo.
c) Las líneas de flujo indican las acciones que se deben realizar.
d) Las condiciones que se escriben dentro de un símbolo de decisión siempre contienen operadores
aritméticos (es
decir, +, -, *, /, y %).
e) En el mejoramiento arriba-abajo, paso a paso, cada mejora es una representación completa de todo
el algoritmo.

Para los ejercicios 3.17 al 3.21, realice cada uno de los siguientes pasos:
1. Lea el enunciado del problema.
2. Formule el algoritmo mediante el uso de pseudocódigo y mejoramiento arriba-abajo, paso a paso.
3. Escriba un programa en C.
4. Pruebe, depure y ejecute el programa en C.
3.17 Los conductores están preocupado por el kilometraje obtenido en sus automóviles. Un conductor
mantiene el registro de muchos llenados de tanque de gasolina mediante el registro de miles de
kilómetros conducidos y los litros empleados durante cada llenado del tanque. El programa debe calcular
y desplegar los kilómetros por litro obtenidos durante cada llenado de tanque. Después de procesar toda
la información, el programa debe calcular y desplegar los kilómetros por litro combinados de todos los
llenados de tanque. He aquí un ejemplo del diálogo de entrada/salida:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {

int contador; /* números introducidos */


int litros; //litros
int km; /* numero=km */
int total; /* suma de los numeros */
/* fase de inicialización */
total = 0; /* inicializa el total */
contador = 0; /* inicializa el contador del ciclo */

/* obtiene los litros*/


printf( "Introduzca los litros utilizados, (-1 es para terminar):\n" );
scanf( "%d", &litros ); /* lee el numero del usuario */
/* obtiene los Kms */
printf( "Introduzca los Kilometros conducidos, (-1 es para terminar):\n" );
scanf( "%d", &km ); /* lee el numero del usuario */

printf("Los kilometros por litros de este tanque fueron %d\n", total= km/litros);

/* repite el ciclo mientras no se introduzca el valor centinela */


while ( km != -1 ) {
total = total + km; /* suma cde numero a total */
contador = contador + 1; /* incrementa el contador */

/* obtiene el siguiente numero del usuario */


printf( "Introduzca los Kms conducidos, (-1 es para terminar): \n" );
/* indicador para la entrada */
scanf("%d", &km); /* lee el siguiente numero */
printf("Los kilometros por litros de este tanque fueron %d\n", km/litros);

} /* fin de while */
/* si el usuario introdujo al menos un numero */
if ( contador != 0 ) {
printf( "Los kilometros recorridos fueron: %d\n", total );
printf("El promedio de Kms por litros fue de: %f\n", total=(float) total/litros);

} /* fin de if*/
else { /* si no introdujo un numero */
printf( "No se introdujeron Kilometros\n" );
} /* fin de else */
return 0;
}

3.18 Desarrolle un programa en C que determine si un cliente de una tienda departamental excede el
límite de crédito de su cuenta. Para cada cliente, se dispone de los siguientes datos:
1. Número de cuenta.
2. Saldo al inicio del mes.
3. Total de elementos cargados al cliente en este mes.
4. El total de los créditos aplicados a la cuenta del cliente durante el mes.
5. El límite de crédito autorizado.
El programa debe introducir cada uno de estos datos, calcular el nuevo saldo (= saldo inicial + cargos –
créditos), y determinar si el nuevo saldo excede el límite de crédito del cliente. Para aquellos clientes que
excedan el límite de crédito, el programa debe desplegar el número de cuenta, el límite de crédito, el
saldo nuevo y el mensaje “Límite de crédito excedido”. A continuación, se muestra un ejemplo del
diálogo de entrada/salida:
3.19 Una gran empresa de productos químicos le paga a sus vendedores mediante un esquema de
comisiones. Los vendedores reciben $200 semanales más el 9% de sus ventas totales durante la semana.
Por ejemplo, un vendedor que vende $5000 de productos químicos durante la semana recibe $200 más
el 9% de $5000, o un total de $650. Desarrolle un programa que introduzca las ventas totales de cada
vendedor durante la última semana y que calcule y despliegue los ingresos de ese vendedor. Procese las
cantidades de un vendedor a la vez. A continuación se muestra un ejemplo del diálogo de
entrada/salida:

3.20 El interés simple


interés = préstamo * tasa * días / 365; La fórmula anterior asume que tasa es la tasa de interés anual, y
por lo tanto incluye la división entre 365 (días). Desarrolle un programa que introduzca préstamo, tasa y días
para varios préstamos, y que calcule y despliegue el interés simple para cada préstamo, utilizando la
fórmula anterior. A continuación se muestra un ejemplo del diálogo de entrada/salida:
3.21 Desarrolle un programa que determine el pago bruto de cada uno de los empleados. Esta empresa paga
“horas
completas”
por las primeras 40 horas trabajadas por cada empleado y paga “hora y media” por todas las horas extras
trabajadas después de las 40. Usted tiene una lista de los empleados de la empresa, el número de horas que
trabajó
cada empleado la semana pasada y el pago por hora de cada empleado. Su programa deberá introducir esta
información
para cada empleado, y deberá determinar y desplegar el pago bruto por empleado. A continuación, mostramos
un ejemplo del diálogo de entrada/salida:
3.22 Escriba un programa que demuestre la diferencia entre el predecremento y el posdecremento
mediante el uso del operador --.

3.23 Escriba un programa que utilice un ciclo para imprimir los números 1 a 10 dentro de la misma línea,
separados cada uno por tres espacios en blanco
3.24 El proceso para encontrar el número más grande (es decir, el máximo de un grupo de números) se utiliza
con frecuencia en aplicaciones para computadora. Por ejemplo, un programa que determina el ganador de un
concurso de unidades vendidas por cada vendedor. El vendedor que vende el mayor número de unidades gana.
Escriba un programa en pseudocódigo y posteriormente un programa que introduzca una serie de 10 números
y determine e imprima el mayor de éstos. [Clave: Su programa debe utilizar tres variables de la siguiente
manera]:
contador: Un contador para contar los números de 1 a 10 (es decir, para llevar la cuenta de cuántos números
se han introducido y determinar si ya se procesaron los 10 números).
numero: El número actual que se introduce al programa.
mayor: El número más grande encontrado hasta el momento.

3.25 Escriba un programa que utilice ciclos para imprimir la siguiente tabla de valores.
3.26 Escriba un programa que utilice ciclos para producir la siguiente tabla de valores:

A A+2 A+4 A+6


3579
6 8 10 12
9 11 13 15
12 14 16 18
15 17 19 21
3.27 Mediante un método similar al del ejercicio 3.24, encuentre los dos valores más grandes de los 10
números.
[Nota: Debe introducir un número a la vez.]

3.28 Modifique el programa de la figura 3.10 para validar sus entradas. Para cualquier entrada, si el valor
introducido es diferente a 1 o 2, continúe el ciclo hasta que el usuario digite un valor correcto.

3.29

01 #include <stdio.h>
02
03 /* la función main inicia la ejecución del programa */
04 int main()
05 {
06 int contador = 1; /* inicializa contador */
07
08 while ( contador <= 10 ) { /* repite 10 veces */
09
10 /* muestra una línea de texto */
11 printf( “%s\n”, contador % 2 ? “****” : “++++++++” );
12 contador++; /* incrementa contador */
13 } /* fin de while */
14
15 return 0; /* indica que el programa terminó con éxito */
16
17 } /* fin de la función main */

3.30 ¿Qué despliega el siguiente programa?


01 #include <stdio.h>
02
03 /* la función main inicia la ejecución del programa */
04 int main()
05 {
06 int fila = 10; /* inicializa la fila */
07 int columna; /* declara columna */
08
09 while ( fila >= 1 ) { /* repite el ciclo hasta que fila < 1 */
10 columna = 1; /* establece la columna en 1 al comenzar la
iteración */
11
12 while ( columna <= 10 ) { /* repite 10 veces */
13 printf( “%s”, fila % 2 ? “<”: “>” ); /* salida */
14 columna++; /* incrementa columna */
15 } /* fin del while interno */
16
17 fila--; /* decrementa fila */
18 printf( “\n” ); /* comienza la nueva línea de salida */
19 } /* fin del while externo */
20
21 return 0; /* indica que el programa terminó con éxito */
22
23 } /* fin de la función main */

3.31 (Problema de asociación de else.) Determine la salida para cada una de las siguientes variables, cuando x
es 9
y yes 11, y cuando x es 11 y y es 9. Observe que el compilador ignora el sangrado de un programa en C.
Además,
el compilador siempre asocia un else con su if previo, a menos que se le indique lo contrario mediante la
colocación
de llaves {}. Debido, en primera instancia, a que el programador puede no estar seguro cuál es el if que
coincide con el else, a este problema se le conoce como el problema de “asociación de else”. Eliminamos el
sangrado
del siguiente código para hacer el problema más interesante. [Pista: Aplique las convenciones de sangrado
que aprendió.]
a) if ( x < 10 )
if ( y > 10 )
printf( “*****\n” );
else
printf( “#####\n” );
printf( “$$$$$\n” );

b) if ( x < 10 ) {
if ( y > 10 )
printf( “*****\n” );
}
else {
Capítulo 3 Desarrollo de programas estructurados en C 85
printf( “#####\n” );
printf( “$$$$$\n” );
}

3.32 (Otro problema de asociación de else.) Modifique el siguiente código para producir la salida que aparece a
continuación.
Utilice las técnicas de sangrado apropiadas. No debe hacer cambio alguno que no sea el de insertar llaves.
El compilador ignora el sangrado de un programa. Eliminamos el sangrado del siguiente código para hacer más
interesante
el problema. [Nota: Es posible que no sea necesario hacer modificaciones.]

if ( y == 8 )
if ( x == 5 )
printf( “@@@@@\n” );
else
printf( “#####\n” );
printf( “$$$$$\n” );
printf( “&&&&&\n” );
a) Si suponemos que x = 5 y y = 8, se produce la siguiente salida.

$$$$$
&&&&&
b) Si suponemos que x = 5 y y = 8, se produce la siguiente salida.

@@@@@

c) Si suponemos que x = 5 y y = 8, se produce la siguiente salida.


@@@@@
&&&&&

d) Si suponemos que x = 5 y y = 7, se produce la siguiente salida. [Nota: Las últimas tres instrucciones printf
son parte de una instrucción compuesta.]
#####
$$$$$
&&&&&
3.33 Escriba un programa que lea la medida de uno de los lados de un cuadrado y que despliegue dicho
cuadrado con asteriscos. Su programa debe trabajar con cuadrados de tamaño entre 1 y 20. Por ejemplo, si su
programa lee un tamaño 4, debe desplegar:

3.34 Modifique el programa que escribió en el ejercicio 3.33 de manera que despliegue el perímetro del
cuadrado.
Por ejemplo, si su programa lee un tamaño 5, debe desplegar:
3.35 Un palíndromo es un número o una frase de texto que se lee igual hacia delante y hacia atrás. Por
ejemplo, cada uno de los siguientes números de cinco dígitos, son palíndromos: 12321, 55555, 45554, y 11611.
Escriba un programa que lea números de cinco dígitos y que determine si es o no, un palíndromo. [Pista: Utilice
los operadores de división y residuo para separar el número en sus dígitos individuales.]

3.36 Introduzca un número entero que contenga sólo unos y ceros (es decir, un entero “binario”) y que
despliegue
Su equivalente decimal. [Pista: Utilice los operadores de división y residuo para separar los dígitos del número
“binario”, uno por uno, de derecha a izquierda. Así como en el sistema de numeración decimal, el dígito más a
la derecha
tiene un valor de posición de 1, y el siguiente dígito a la izquierda tiene un valor por posición de 10, después
de 100, después de 1000, y así sucesivamente, en el sistema binario de numeración, el dígito que se encuentra
a la derecha tiene un valor por posición de 1, el siguiente dígito a la izquierda tiene un valor por posición de 2,
después de 4, de 8, y así sucesivamente. Así, el número 234 se puede interpretar como 4 * 1 + 3 * 10 + 2 * 100.
El equivalente decimal del número binario 1101 es 1 * 1 + 0 * 2 + 1 * 4 + 1 * 8 o 1 + 0 + 4 + 8 o 13.]
3.37 ¿Cómo puede determinar la rapidez real con la que opera su propia computadora? Escriba un
programa mediante un ciclo while que cuente de 1 a 300,000,000 por unos. Cada vez que la cuenta alcance un
múltiplo de 100,000,000 despliegue dicho número en la pantalla. Utilice su reloj para determinar cuánto tarda
cada millón de repeticiones deL ciclo.

3.38 Escriba un programa que despliegue 100 asteriscos, uno a la vez. Después de cada diez asteriscos, el
programa debe desplegar un carácter de nueva línea. [Pista: Cuente de 1 a 100. Utilice el operador módulo para
reconocer cada vez que el contador alcance un múltiplo de 10.]

3.39 Escriba un
programa que
lea un número
entero y que
determine y
despliegue
cuántos dígitos
del entero son
siete
3.41 Escriba un programa que despliegue los múltiplos del número entero 2, a saber 2, 4, 8, 16, 32, 64, y así
sucesivamente. Su ciclo no debe terminar (es decir, debe crear un ciclo infinito). ¿Qué sucede cuando ejecuta
este programa?
3.42 Escriba un programa que lea el radio de un círculo (como un valor float) y que calcule y despliegue el
diámetro, la circunferencia y el área. Utilice el valor 3.14159 para π.
3.43 ¿Qué está mal en la siguiente instrucción? Rescriba la instrucción para realizar lo que
probablemente intentaba hacer el programador.

printf( “%d”, ++( x + y ) );

3.44 Escriba un programa que lea tres valores de tipo float diferentes de cero y que determine (y
despliegue) si éstos pueden representar los lados de un triángulo recto
3.45 Escriba un programa que lea tres enteros diferentes de cero y que determine (y despliegue) si pueden
representar los lados de un triángulo recto.

3.46 Una empresa quiere transmitir datos mediante la línea telefónica, pero les preocupa que sus teléfonos pudieran
Estar intervenidos. Todos sus datos se transmiten como enteros de cuatro dígitos. A usted le pidieron que escriba un
programa que encripte sus datos de manera que se transmitan de forma más segura. El programa debe leer un
entero de cuatro dígitos y encriptar la información de la siguiente manera: reemplace cada dígito con el residuo de
la división entre 10 de la suma de dicho dígito más 7. Posteriormente, intercambie el primer dígito con el tercero, e
intercambie el segundo dígito con el cuarto. Luego despliegue el entero encriptado. Escriba un programa por
separado
que introduzca un entero encriptado de cuatro dígitos y lo desencripte para formar el número original.
3.47 El factorial de un número entero positivo n se escribe n! (que se pronuncia “n factorial”) y se define como:
n! = n · (n - 1) · (n - 2) · … · 1 (para valores de n mayores o iguales que 1) y n! = 1 (para n = 0) Por ejemplo, 5! = 5 ·
4 · 3 · 2 · 1, que es igual a 120. a) Escriba un programa que lea un entero positivo y que calcule y despliegue su
factorial. b) Escriba un programa que estime el valor de la constante matemática e, mediante el uso de la
fórmula: e= 1 + + + + ... c) Escriba un programa que calcule el valor de ex mediante el uso de la fórmula: ex= 1 +
+ + + ...

También podría gustarte