Sunteți pe pagina 1din 12

Preguntas varias.

Nivel 1

1. [pregunta_01.txt] Escribe un programa que te pida la edad y que te diga un saludo distinto dependiendo de
si eres niño, joven, adulto, mayor o muy mayor.

Solución:

#include <i o s t r e a m >


using namespace s t d ;

int main ( ) {

int edad ;

c o u t << e n d l ;
c o u t << ” I n t r o d u c e tu edad : ” ;
c i n >> edad ;
c o u t << e n d l ;

i f ( edad <15){
c o u t << ” Eres un n i n o . ” ;
} e l s e i f ( edad < 30) {
c o u t << ” Eres un j o v e n . ” ;
} e l s e i f ( edad < 50) {
c o u t << ” Eres un a d u l t o . ” ;
} e l s e i f ( edad < 70) {
c o u t << ” Eres un mayor . ” ;
} else {
c o u t << ” Eres un muy mayor . ” ;
}

c o u t << e n d l ;
c o u t << e n d l ;
c o u t << e n d l ;

return 0 ;
}

2. [pregunta_02.txt] Escribe un programa que lea distancias hasta que lea un cero y que te muestre la suma de
todas ellas y la distancia media

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int num=0, suma=0;
int c o n t a d o r = 0 ;
f l o a t media ;
c o u t << ”Numeros a sumar : ( 0 para t e r m i n a r ) . ” ;
c o u t <<endl<< ”Numero : ” ;
c i n >> num ;
suma = num ;
c o n t a d o r ++;

while (num != 0 ) {

Página 1 de 12
Preguntas varias. Nivel 1

c o u t << e n d l ;
c o u t << ”Numero : ” ;
c i n >> num ;
suma += num ;
c o n t a d o r ++;
}

media = ( f l o a t ) suma / c o n t a d o r ;
c o u t << ”Suma : ” << suma ;
c o u t << ” Media : ” << media ;
}

3. [pregunta_03.txt] Escribe un programa que contenga una función booleana. Esta función devolverá verdadero
si el entero que recibe es un número primo, y falso en caso contrario. Haz que aparezcan en pantalla los mil
primeros numeros primos.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
bool esPrimo ( int ) ;
void primos ( int ) ;
const int NUM = 1 0 0 0 ;
int main ( ) {
int num ;
c o u t << ” I n t r o d u c e un numero : ” ;
c i n >> num ;
i f ( esPrimo (num) ) {
c o u t << ”Es primo . ” << e n d l ;
} else {
c o u t << ”No e s primo . ” << e n d l ;
}
primos (NUM) ;
}

bool esPrimo ( int num) {


bool primo = true ;
f or ( int i= 2 ; i <num ; i ++) {
i f ( ( num % i )==0){
primo = f a l s e ;
break ;
}
}
return primo ;
}

void primos ( int num) {


c o u t << ” Los p r i m e r o s ”<< num << ” numeros primos son : ” ;
f or ( int c o n t= 1 , a =1; c o n t < num ; a++){
i f ( esPrimo ( a ) ) {
c o n t++;
c o u t << a << ” , ” ;
}
}
}

Página 2 de 12
Preguntas varias. Nivel 1

4. [pregunta_04.txt] Realiza un programa que acepte un año (numero) y que indique si es o no bisiesto. Los años
bisiestos son los divisibles por 4, excepto si son divisibles por 100, en ese caso solo son bisiestos si tambien son
divisibles por 400.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
bool e s B i s i e s t o ( int ) ;
int main ( ) {
int anno ;
c o u t << ” I n t r o d u c e un anno : ” ;
c i n >> anno ;
i f ( e s B i s i e s t o ( anno ) ) {
c o u t << ”Es b i s i e s t o ” ;
} else {
c o u t << ”No e s b i s i e s t o . ” ;
}

bool e s B i s i e s t o ( int anno ) {


bool b i s i e s t o = f a l s e ;
i f ( ( anno % 4 ) == 0 ) {
i f ( ( anno % 1 0 0 ) == 0 ) {
i f ( ( anno % 4 0 0 ) == 0 ) {
b i s i e s t o = true ;
}
} else {
b i s i e s t o = true ;
}
}
return b i s i e s t o ;
}

5. [pregunta_05.txt] Realiza un programa que valide la fecha introducida (dia, mes y año), indicando si es o no
valida. En el caso de que la fecha no sea valida se debe indicar el motivo.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
bool e s B i s i e s t o ( int ) ;
int main ( ) {
struct Fecha {
int dia , mes , anno ;
} fecha ;
bool c o r r e c t o = true ;
c o u t << ” Dia : ” ;
c i n >> f e c h a . d i a ;
c o u t << ”Mes : ” ;
c i n >> f e c h a . mes ;
c o u t << ”Anno : ” ;
c i n >> f e c h a . anno ;

Página 3 de 12
Preguntas varias. Nivel 1

i f ( f e c h a . anno < 0 ) {
c o u t << e n d l << ” El anno no e s c o r r e c t o . ” ;
correcto = false ;
} e l s e i f ( ( f e c h a . mes < 0 ) | | ( f e c h a . mes > 1 2 ) ) {
c o u t << e n d l << ” El mes no e s c o r r e c t o . ” ;
correcto = false ;
} else i f ( fecha . dia < 0) {
c o u t << e n d l << ” El d i a no e s c o r r e c t o . ” ;
correcto = false ;
} else {
switch ( f e c h a . mes ) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 1 0 :
case 1 2 :
i f ( fecha . dia > 31) {
c o u t << e n d l << ” El d i a no e s c o r r e c t o . ” ;
correcto = false ;
}
break ;
case 2 :
i f ( fecha . dia > 29) {
c o u t << e n d l << ” El d i a no e s c o r r e c t o . ” ;
correcto = false ;
} e l s e i f ( ( f e c h a . d i a == 2 9 ) &&(! e s B i s i e s t o ( f e c h a . anno ) ) ) {
c o u t << e n d l << ” El d i a no e s c o r r e c t o . ” ;
correcto = false ;
}
break ;
default :
i f ( f e c h a . d i a >30){
c o u t << e n d l << ” El d i a no e s c o r r e c t o . ” ;
correcto = false ;
}
}
}

c o u t << e n d l << e n d l ;
if ( correcto ) {
c o u t << e n d l << ” Fecha c o r r e c t a ” << e n d l ;
}
}

bool e s B i s i e s t o ( int anno ) {


bool b i s i e s t o = f a l s e ;
i f ( ( anno % 4 ) == 0 ) {
i f ( ( anno % 1 0 0 ) == 0 ) {
i f ( ( anno % 4 0 0 ) == 0 ) {
b i s i e s t o = true ;
}
} else {
b i s i e s t o = true ;
}
}

Página 4 de 12
Preguntas varias. Nivel 1

return b i s i e s t o ;
}

6. [pregunta_06.txt] Operador condicional. Realiza un programa que eleve al cuadrado un numero entero in-
troducido por el usuario. Se debe preservar el signo del numero (10 al cuadrado es 100 y -10 al cuadrado es
-100).

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int num ;
c o u t << ” I n t r o d u z c a un numero : ” ;
c i n >> num ;
c o u t << ”Su cuadrado f a l s o e s : ” ;

i f (num < 0 ) {
c o u t << −1 ∗ num ∗ num ;
} else {
c o u t << num ∗ num ;
}
}

7. [pregunta_07.txt] Escribe un programa que calcule la potencia de dos numeros enteros dados por el usuario
(el exponente es siempre entero positivo).

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int b a s e ;
int exponente ;
int p o t e n c i a ;
c o u t << ” I n t r o d u c e l a b a s e : ” ;
c i n >> b a s e ;
c o u t << ” I n t r o d u c e e l exponente ( >0) : ” ;
c i n >> exponente ;

while ( exponente < 0 ) {


c o u t << ” El exponente debe s e r mayor que 0 . ” ;
c i n >> exponente ;
}

potencia = 1;
f or ( int i = 1 ; i <= exponente ; i ++){
p o t e n c i a ∗= b a s e ;
}
c o u t << ” P o t e n c i a : ” << p o t e n c i a ;
}

Página 5 de 12
Preguntas varias. Nivel 1

8. [pregunta_08.txt] Escribe un programa que contenga una función booleana. Esta función debe devolver ver-
dadero si el carácter que recibe es un punto o un carácter de final de interrogación o de exclamación; en caso
contrario debe devolver falso.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
bool e s T e r m i n a c i o n ( char ) ;
int main ( ) {
char c a r a c t e r ;
c o u t << e n d l << ” I n t r o d u z c a un c a r a c t e r : ” ;
c i n >> c a r a c t e r ;
i f ( esTerminacion ( c a r a c t e r ) ) {
c o u t << e n d l << ”Es un s i g n o de t e r m i n a c i o n . ” ;
} else {
c o u t << e n d l << ”No e s un s i g n o de t e r m i n a c i o n . ” ;
}
}

bool e s T e r m i n a c i o n ( char c a r a c t e r ) {
bool t e r m i n a c i o n = f a l s e ;
i f ( ( c a r a c t e r == ’ . ’ ) | | ( c a r a c t e r == ’ ? ’ ) | | ( c a r a c t e r == ’ ! ’ ) ) {
t e r m i n a c i o n = true ;
}
return t e r m i n a c i o n ;
}

9. [pregunta_09.txt] Escribe un programa que acepte como entrada un número entero positivo de cinco dı́gitos,
lo separe en sus distintos dı́gitos y los imprima separándolos cada uno con tres espacios. (Puedes emplear los
operadores de división y de módulo.)

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int numero ;
int d i g i t o ;
do{
c o u t << e n d l << ”Numero de c i n c o c i f r a s : ” ;
c i n >> numero ;
} while ( ( numero <0) | | ( numero > 1 0 0 0 0 0 ) ) ;

f or ( int i = 1 0 0 0 0 0 ; i >0; i /=10) {


d i g i t o = numero / i ;
numero −= d i g i t o ∗ i ;
c o u t << d i g i t o << ” ”;
}
c o u t << e n d l ;
}

10. [pregunta_10.txt] Usando las estructuras de selección: if, if/else realiza un programa que lea tres números
y visualice el mayor de ellos.

Página 6 de 12
Preguntas varias. Nivel 1

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
const int NUM MAX = 3 ;
int num [NUM MAX] ;
int max ;
c o u t << e n d l << ”\b” ;
c o u t << ” I n t r o d u c e t r e s numeros y t e d i g o c u a l e s mayor . ”<< e n d l ;
f or ( int i = 0 ; i <NUM MAX; i ++){
c o u t << ” I n t r o d u c e e l numero ” << i +1 << ” : ” ;
c i n >> num [ i ] ;
}

max = num [ 0 ] ;
f or ( int i = 1 ; i < NUM MAX; i ++){
i f (max < num [ i ] ) {
max = num [ i ] ;
}
}

c o u t << e n d l << e n d l << ” El numero maximo de l a s e r i e e s e l : ” << max ;


c o u t << e n d l << e n d l ;

11. [pregunta_11.txt] Usando las estructuras de selección: if, if/else modifica el programa anterior para que
también visualice el menor.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
const int NUM MAX = 3 ;
int num [NUM MAX] ;
int max , min ;
c o u t << e n d l << ”\b” ;
c o u t << ” I n t r o d u c e t r e s numeros ”<< e n d l ;
f or ( int i = 0 ; i <NUM MAX; i ++){
c o u t << ”Numero ” << i +1 << ” : ” ;
c i n >> num [ i ] ;
}

max = min = num [ 0 ] ;


f or ( int i = 1 ; i < NUM MAX; i ++){
i f (max < num [ i ] ) {
max = num [ i ] ;
} e l s e i f ( min > num [ i ] ) {
min = num [ i ] ;
}
}
c o u t << ”Mayor : ” << max << ”Menor : ” << min <<e n d l ;
}

Página 7 de 12
Preguntas varias. Nivel 1

12. [pregunta_12.txt] Expresa la siguiente instrucción de salida usando la estructura de selección if/else
cout <<(grado >=60?” Aprobado ” : ” Suspenso ” ) ;

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int grado ;
c o u t << e n d l << e n d l << ”Grado : ” ;
c i n >> grado ;
i f ( grado >= 6 0 ) {
c o u t << e n d l << ” Aprobado ” << e n d l ;
} else {
c o u t << e n d l << ” Suspenso ” << e n d l ;
}
}

13. [pregunta_13.txt] Usando la estructura de selección switch escribe un programa que lea del teclado el carácter
correspondiente a un determinado color (’ró ’R’para indicar rojo, ’vó ’V’para indicar verde, áó Á’para indicar
azul, y cualquier otro carácter para indicar negro) y visualice en la pantalla el nombre del color indicado por el
usuario.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
char c o l o r ;
c o u t << e n d l << ” I n t r o d u z c a un c o l o r ( r /v/a ) : ” ;
c i n >> c o l o r ;
c o u t << e n d l << ”Ha e l e g i d o e l c o l o r ” ;

switch ( c o l o r ) {
case ’ a ’ :
case ’A ’ :
c o u t << ” a z u l ” ;
break ;
case ’ r ’ :
case ’R ’ :
c o u t << ” r o j o ” ;
break ;
case ’ v ’ :
case ’V ’ :
c o u t << ” v e r d e ” ;
break ;
default :
c o u t << ” c o l o r d e s c o n o c i d o . ” ;
}
}

14. [pregunta_14.txt] Usando la estructura de selección switch escribe un programa que indique si el carácter
introducido por el usuario es o no una vocal.

Página 8 de 12
Preguntas varias. Nivel 1

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
char c a r a c t e r ;
c o u t << e n d l << ” I n t r o d u z c a una l e t r a : ” ;
c i n >> c a r a c t e r ;
c o u t << e n d l << e n d l ;
c o u t << e n d l << ”La l e t r a ” ;

switch ( c a r a c t e r ) {
case ’ a ’ :
case ’A ’ :
case ’ e ’ :
case ’E ’ :
case ’ i ’ :
case ’ I ’ :
case ’ o ’ :
case ’O ’ :
case ’ u ’ :
case ’U ’ :
c o u t << e n d l << ”una v o c a l ” ;
break ;
default :
c o u t << e n d l << ”no e s una v o c a l ” ;
}
}

15. [pregunta_15.txt] Usando la estructura de iteración for realiza un programa que calcule y visualice la tabla
de multiplicar para los diez primeros números.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
c o u t << e n d l << ” Tabla de m u l t i p l i c a r . ” ;
c o u t << e n d l << e n d l ;
f or ( int i = 1 ; i <= 1 0 ; i ++){
f or ( int j = 1 ; j <= 1 0 ; j ++){
c o u t << i << ”x” << j << ”=” << i ∗ j << ”\ t ” ;
}
c o u t << e n d l ;
}
}

16. [pregunta_16.txt] Usando la estructura de iteración for escribe un programa que calcule la siguiente suma:
1/2 + 1/3 + 1/4 + ... + 1/50

Solución:

#include <i o s t r e a m >

Página 9 de 12
Preguntas varias. Nivel 1

using namespace s t d ;
int main ( ) {
f l o a t suma = 0 . 0 ;
c o u t << e n d l << ”La suma de 1/2 + 1/3 + 1/4 + . . . + 1/50 e s : ” ;
f or ( int i = 2 ; i <=50; i ++) {
suma += ( f l o a t ) 1/ i ;
}
c o u t << e n d l << suma << e n d l ;
}

17. [pregunta_17.txt] Usando la estructura de iteración while escribe un programa que calcule la media de seis
números solicitados al usuario.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int cantidadNumeros ;
f l o a t numero ;
int i ;
f l o a t media = 0 ;

c o u t << e n d l << ” Cantidad de numeros ? ” ;


c i n >> cantidadNumeros ;

i = 0;
while ( i < cantidadNumeros ) {
c o u t << e n d l << ”Numero ” << i +1 << ” : ” ;
c i n >> numero ;
media += numero ;
i ++;
}
media /= cantidadNumeros ;
c o u t << e n d l << ”La media e s : ” << media ;
c o u t << e n d l ;
}

18. [pregunta_18.txt] Realiza un programa que utilice bucles for para calcular la media de varias listas consec-
utivas de números, siendo introducido por el teclado tanto el número de listas como el número de elementos de
cada lista.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int numListas =0, numNumeros=0, numero =0;
int t o t a l G e n e r a l =0, t o t a l L i s t a =0, mediaGeneral =0, m e d i a L i s t a =0;
c o u t << ”Numero de l i s t a s : ” ;
c i n >> numListas ;
f or ( int n = 0 ; n<numListas ; n++){
c o u t << ”Numero de v a l o r e s : ” ;

Página 10 de 12
Preguntas varias. Nivel 1

c i n >> numNumeros ;
totalLista = 0;
f or ( int m = 0 ; m<numNumeros ; m++){
c i n >> numero ;
t o t a l L i s t a+=numero ;
}
m e d i a L i s t a = t o t a l L i s t a / numNumeros ;
t o t a l G e n e r a l+= m e d i a L i s t a ;
}
mediaGeneral = t o t a l G e n e r a l / numListas ;
c o u t << ”Numero de l i s t a s : ” << numListas << ” Media : ” << mediaGeneral<<
endl ;
}

19. [pregunta_19.txt] Utilizando la estructura de salto continue, escribe un programa que contabilice el número
de múltiplos de tres introducidos por el usuario hasta que este introduzca el valor 0

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int numero ;
// Para p r e v e n i r que c u e n t a e l c e r o
int c o n t a d o r= −1;

do{
c o u t << e n d l << ” I n t r o d u c e numero ( 0 para t e r m i n a r ) : ” ;
c i n >> numero ;
i f ( numero %3 !=0) continue ;
c o n t a d o r++;

} while ( numero != 0 ) ;

c o u t << e n d l << ”Numero de m u l t i p l o s de 3 : ” ;


c o u t << c o n t a d o r << e n d l ;
}

20. [pregunta_20.txt] Usando la estructura de iteracion do/while y la sentencia continue, escribe un programa
que calcule la media de los números no negativos introducidos por el usuario hasta que éste introduzca el número
cero.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
int numero ;
f l o a t media =0;
int c o n t a d o r = 0 ;
do{
c o u t << e n d l << ” I n t r o d u c e numero ( 0 para t e r m i n a r ) : ” ;
c i n >> numero ;

Página 11 de 12
Preguntas varias. Nivel 1

i f ( numero < 0 ) continue ;


media +=numero ;
c o n t a d o r++;

} while ( numero != 0 ) ;

media /= c o n t a d o r ;

c o u t << e n d l << ” Media de l o s numeros p o s i t i v o s e s : ” ;


c o u t << media << e n d l << e n d l ;
}

21. [pregunta_21.txt] Realiza un programa que calcule la distancia en kilómetros recorrida por un coche y su
velocidad media. Para ello, se deberá de introducir el punto kilométrico inicial y final junto con el tiempo (hora,
minuto y segundo) empleado.

Solución:

#include <i o s t r e a m >


using namespace s t d ;
int main ( ) {
struct D i s t a n c i a {
float kilometroInicial , kilometroFinal ;
} distancia ;

struct Tiempo {
int hora , minuto , segundo ;
} tiempo ;

float distanciaRecorrida ;
f l o a t segundosEmpleados ;

c o u t << ” K i l o m e t r o i n i c i a l : ” ;
c i n >> d i s t a n c i a . k i l o m e t r o I n i c i a l ;
c o u t << ” K i l o m e t r o f i n a l : ” ;
c i n >> d i s t a n c i a . k i l o m e t r o F i n a l ;
c o u t << ” J o r a s empleadas : ” ;
c i n >> tiempo . hora ;
c o u t << ” Minutos empleados : ” ;
c i n >> tiempo . minuto ;
c o u t << ” Segundos empleados : ” ;
c i n >> tiempo . segundo ;
distanciaRecorrida = distancia . kilometroFinal − distancia . kilometroInicial ;
c o u t << ” D i s t a n c i a r e c o r r i d a : ” << d i s t a n c i a R e c o r r i d a << ” km . ” ;
segundosEmpleados=tiempo . segundo + tiempo . minuto ∗ 60 + tiempo . hora ∗ 3 6 0 0 ;
c o u t << ” Segundos : ” << segundosEmpleados << ” s . ” ;
c o u t << ” Horas : ” << segundosEmpleados / 3600 << ” h o r a s . ” ;
c o u t << ” V e l o c i d a d : ”<<d i s t a n c i a R e c o r r i d a / ( segundosEmpleados / 3 6 0 0 )<<” km/h . ” ;
}

Página 12 de 12

S-ar putea să vă placă și