You are on page 1of 4

CONTROL DE FUNDAMENTOS DE INFORMATICA - Curso 11/12

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

Grupo:……………………SubGrupo(Prácticas Aula):…………………………………

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

#include <stdio.h>
#include <stdlib.h>
main()
{ int i=1,j=0,x=0, s;
while((i<6)&&(j<i))
{ s= i+j-2;
switch (s)
{case 0:x=x+2;
break;
case 1:x=x+3;
break;
}
printf ("%d",x);
i++;
j++;
}
system("PAUSE");
}

Solución: 0 3 3 3 3

2. Completar el siguiente programa para que lea un número x y después lea una
secuencia de números terminada en 0. El programa deberá contar cuántos números
hay en total en la secuencia y cuántos son menores que x.

#include <stdio.h>
#include <stdlib.h>
main()
{ int x, num, menores, total ;

…menores=0;……
total=0;
printf("Dame un número");
scanf("%d", &x);
printf("Dame una secuencia (para finalizar 0)\n");
scanf("%d", &num);

while (…num!=0…..)
{ total++;

if (…num<x………….)
{menores++; }
scanf("%d",&num);
}
printf(" la secuencia tiene en total %d números, y menores que %d tiene %d números",
…total, x , menores …..);

printf("\n\n");
system("PAUSE");
}

3. ¿Qué aparece en pantalla al ejecutarse el siguiente programa?:

#include <stdlib.h>
#include <stdio.h>
void segmenta(int a, int b);
main()
{
segmenta( 5, 10 );
segmenta( 15, 8 );

system("PAUSE");
}
//FUNCION
#include<stdio.h>
#include<stdlib.h>
void segmenta(int a, int b)
{ int i;
if ( a > b )
{ for( i=a; i >=b; i-- )
{ printf( " %d ", i ); }
printf( "\n" );
} else
{ for( i=a; i <= b; i++ )
{ printf( " %d ", i ); }
printf( "\n" );
}
}
Solución:
5 6 7 8 9 10
15 14 13 12 11 10 9 8
4. Hacer un programa que busque todos los números piratas comprendidos entre el
1000 y el 9999. Un número es pirata si la suma de las dos cifras de más peso es
igual a producto de las dos de menos peso. Ejemplo: 2241 (2+2=4*1)
El programa debe mostrar todos los números piratas que encuentre e indicar cuántos
son: Ejemplo:
Números piratas:
1011
1112
……
…….
9992
En total se han encontrado 207 números piratas
Solución:
#include <stdio.h>
#include <stdlib.h>
main()
{int j,d1,d2,d3,d4,n, cont=0;

printf ("Numeros piratas\n");

for (j=1000;j<=9999;j=j+1)
{ n=j;
d1=n%10;
n= n/10;
d2=n%10;
n=n/10;
d3=n%10;
d4=n/10;
if (d4+d3==d2*d1)
{ printf("%d\n",j);
cont ++;
}
}
printf ("En total se han encontrado %d numeros
piratas\n", cont);
system("PAUSE");
}
5. Hacer un programa en C que permita leer las notas de los alumnos que se han
presentado al examen de informática. Si la nota introducida para un alumno es
mayor que 10 se dará un mensaje de error, y no se tendrá en cuenta dicha nota. La
entrada de datos finalizará al introducir una nota negativa. Una vez leídas todas las
notas, el programa nos tendrá que indicar:
a. El número de alumnos que se ha presentado.
b. El número de alumnos aprobados.
c. La nota media, la nota mínima y la máxima.

Dame la nota: 8
Dame la nota: 21
Nota incorrecta. Dame la nota: 13
Nota incorrecta. Dame la nota: 4.25
Dame la nota: 7.5
..............................
Dame la nota: -1

Número de alumnos presentados: 63
Numero de aprobados:42
La nota media es 7.75. La máxima 9.75 y la mínima 0.15


Solución:

#include <stdio.h>
#include <stdlib.h>
main(){
float nota,max, min,suma=0,media;
int cont=0, aprobados=0;

max = 0; min = 10;
printf("Dame la nota: ");
scanf("%f", &nota);

while (nota>=0)
{ if (nota<=10)
{ cont=cont+1;
suma=suma+nota;
if (nota>=5) {aprobados=aprobados+1;}
if (max<nota){max=nota;}
if (min>nota){min=nota;}
}
else
{ printf("Nota incorrecta.");}
printf("Dame la nota: ");
scanf("%f", &nota);
}
if (cont>0)
{
media = suma/cont;
printf("Numero de alumnos presentados %d\n",cont);
printf("Numero de aprobados %d\n", aprobados);
printf("La nota media %.2f, la maxima %.2f, la minima
%.2f\n",media, max, min);
}
system("PAUSE");
}