You are on page 1of 4

CONTROL DE FUNDAMENTOS DE INFORMATICA - Curso12/13

Nombre:………………………………………………………………………………

Grupo de 1
er
curso:……………………

1. (1 punto) ¿Cuál es la salida por pantalla del siguiente código?

#include <stdio.h>
#include <stdlib.h>
main()
{ int a=−8;
while (a<0)
{a=a+1;}
printf("%d\n",a);
if (a>0)
{ printf("1\n"); }
printf("2\n");
system("PAUSE");
}

Solución:
0
2

2. (1 puntos) Completa los huecos del siguiente programa para que indique si el resultado de la
multiplicación de dos números es nulo, negativo o positivo, sin realizar su
multiplicación.
Programa:
#include <stdio.h>
#include <stdlib.h>

main()
{ int n, m;

printf("Introduce los dos número de la multiplicación: ");
scanf("%d %d", &n, &m);

if (n==0 || m==0)
{
printf("El resultado de la multiplicación será nulo \n");
}
else
{ if ((m>0 && n>0)|| (m<0 && n<0))
{printf("El resultado de la multiplicación será positivo \n"); }
else
{ printf("El resultado de la multiplicación será negativo \n");}
}
system ("PAUSE");
}

A

3. (2 puntos) Un número perfecto, es un número entero positivo que, es igual a la suma de sus
divisores excluido él mismo.
Completar los huecos para que el programa muestre los números perfectos que hay entre
dos números introducidos por el usuario.

#include <stdlib.h>
#include<stdio.h>
main()
{ int n,i,sum;
int min,max;
printf("Introduce el valor mínimo: ");
scanf("%d",&min);
printf("Introduce el valor máximo: ");
scanf("%d",&max);

printf("Los números perfectos que hay entre %d y %d son:
",min,max);

for(n=min;n<=max;n++)
{ i=1;
sum=0;
while(i<n)
{
if(n%i==0)
{sum=sum+i; }
i++;
}
if(sum==n)
{printf("%d ",n);}
}

system(" PAUSE");
}

4. (3 puntos) La secuencia de Collatz de un número entero positivo se construye de la siguiente
forma:
• si el número es par, se divide entre dos;
• si es impar, se multiplica por tres y se le suma uno;
• y así sucesivamente hasta llegar a uno.
Desarrolla un programa en C que muestre la secuencia de Collatz de un número entero
positivo, y además nos diga la longitud de la secuencia y la suma de sus números. Si el
número introducido es menor o igual que 0 se tendrá que volver a pedir hasta que se
introduzca un número N mayor que cero:
Ejemplo :
Dame un numero entero positivo: -3
Dame un numero entero positivo: 0
Dame un numero entero positivo: 18
18 9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
La secuencia tiene 21 numeros y la suma es 357.
#include <stdio.h>
#include <stdlib.h>
main()
{ int n, sum=0,tot=0;

printf("Dame un número entero positivo: ");
scanf("%d",&n);
while (n<=0)
{ printf("Dame un número entero positivo: ");
scanf("%d", &n);
}
while (n>=1)
{
printf("%d ",n);
sum=sum+n;
tot=tot+1;
if(n%2==0) //par
n=n/2;
else
n=n*3+1;
}
printf("\nLa secuencia tiene %d numeros y la suma es %d",tot,sum);
system ("PAUSE");
}
5. (3 puntos) Un jugador debe lanzar dos dados numerados de 1 a 6, y su puntuación es la suma
de los valores obtenidos.
Para una misma puntuación puede haber varias combinaciones posibles. Por ejemplo, la
puntuación 4 se puede lograr con las siguientes tres combinaciones: 1+3, 2+2 y 3+1.
Escribe un programa que pregunte al usuario una puntuación, y muestre como resultado la
cantidad de combinaciones de dados con las que se puede obtener dicha puntuación.
Ejemplo de ejecucuón 1 :
Introduce una puntuación: 4
Hay 3 combinaciones para obtener 4
Ejemplo de ejecucuón 2 :
Introduce una puntuación: 11
Hay 2 combinaciones para obtener 11
Ejemplo de ejecucuón 3 :
Introduce una puntuación: 17
Hay 0 combinaciones para obtener 17
#include<stdio.h>
main()
{ int n,i,j,sum,tot=0;
printf("Introduce una puntuación: ");
scanf("%d",&n);
for(i=1;i<=6;i++)
{ for(j=1;j<=6;j++)
{ sum=i+j;
if (sum == n)
{tot++;}
}
}
printf("Hay %d combinaciones para coseguir %d",tot,n);}

system(" PAUSE");}