Você está na página 1de 5

Faculdade de Engenharia

Universidade Católica de Angola


Prova Fundamentos de programação I - Variante B
1ª Questão [5 Pontos]
Desenvolva um programa em C para ler um número inteiro positivo p e verificar
se esse número é primo. Um número inteiro positivo p é primo se tem
exatamente dois divisores positivos 1 e p. O número inteiro 1 não é primo.

#include <stdio.h>
#include <stdlib.h>
int main()
{
int p, i, div = 0;
printf("\n Entre com um numero inteiro positivo ."); scanf("%",&p);
if (p < 1)
printf("\n Erro: Numero invalido");
else
{
for ( i = 1 ; i <= p ; i = i + 1)
if ( n%i == 0 ) div = div + 1;

if ( div == 2 )
printf("\ %d e um numero primo");
else
printf("\ %d e um numero primo");
system("PAUSE");
return 0;
}
}

1
2ª Questão [ 5 Pontos]
Dado um número inteiro n ≥ 0 e um número inteiro d tal que 0 ≤ d ≤ 9.
Desenvolva um programa para contar o número de vezes que o número d está
contido em n.

#include < stdio.h>


#include <stdlib.h>
int main()
{
int n, algarismo, digit;
printf("\n Entre com um número inteiro"); scanf("%d", &n);
if ( n < 0 )
printf("\n Erro: Numero invalido");
else
{
printf("\n Entre com um algarismo :"); scanf("%d",&algarismo);
if ( algarismo < 0 )
printf("\n Erro: algarismo nao pode ser negativo");
else if ( algarismo > 9 )
printf("\n Erro: algarismo nao pode ser maior do que 9");
else
{
total = 0;
while ( n > 0 )
{
digit = n % 10;
if ( digit == algarismo ) total = total + 1;
n = n/10;
}
printf("\n Total de digitos = %d",total);
}
system("PAUSE");
return 0;
}

2
3ª Questão [ 5 Pontos]
Simule detalhadamente a execução do seguinte programa, indicando os dados
de todos os valores assumidos pelas variáveis e relações. Indique também a
saída deste programa.

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, num, ant, comp, compmax, i;
scanf("%d", &n);
scanf("%d", &ant);
comp = 1;
compmax = 1;
for (i = 1; i < n; i= i + 1)
{
scanf("%d", &num);
if (num > ant)
{
comp = comp + 1;
if (compmax < comp)
compmax = comp;
}
else
comp = 1;
ant = num;
}
printf("O comprimento:%d\n", compmax);
return 0;
}

Dados : 9, 5, 10, 3, 2, 4, 7, 9, 8, 5

Resposta

itera n num comp compmax i ant i< n num > ant compmax < comp
0

O comprimento : 5

3
4ª Questão[ 5 Pontos]
Uma agência de modelos possui um conjunto indeterminado de fichas com dos
seus manequins. Cada manequim possui a seguinte informação: código do
manequim, sexo (1= homens 0= mulheres), idade, altura em centímetros, peso
em quilogramas, cor dos olhos (1=azuis 2=verdes 3= castanhos), cor do cabelo
(1=preto, 2= loiro, 3= ruivo, 4= castanho). Desenvolva um programa que não
utiliza composição de condições para imprimir:

- Quantidade de mulheres loiras com olhos azuis ou verdes, altura entre 1,70 à
1,75 metros com peso inferior a 70 kg.
- Quantidade de homens com cabelos castanhos, altura superior a 1,80 metros
e peso entre 78 kg a 85 kg.
-Percentagem que essas mulheres e esses homens têm em relação ao total de
manequins.

#include <stdio.h>
#include <stdlib.h>
#define SENTINELA 0
int main()
{
int sexo,codigo,idade,altura,peso cabelos,olhos,nmulhres= 0; nhomens= 0;
printf(" \n Entre com o numero do manequim : "); scanf(" %d ",codigo);
while (codigo != SENTINELA)
{
printf("\n Entre com os restantes dados do manequin ");
scanf( " %d %d %d ",&sexo,&idade,&altura);
scanf(" %d %d %d ",&peso,&olhos,&cabelos);
if (sexo == 0)
{
if (altura <= 170)
if (altura <=175)
if (peso < 70)
if (olhos == 1)
nmulheres++;
else if ( olhos == 2 )
nmulheres++;
}
else if (sexo == 1)
{
if (altura > 180)
if ( peso >= 78)
if (peso <= 85)
if ( cabelos == 4)
nhomens++;
}
printf(" \n Entre com o numero do manequim : ");
scanf(" %d ",codigo);
}

4
printf(" \n Numero de homens : %d ",nhomens);
printf("\n Numero de mulheres: %d",nmulheres);

printf("\n Percentagem mulheres %f ", nmulheres*100/(nhomens+nmulheres));


printf("\n Percentagem homens %f ", nhomens*100/(nhomens+nmulheres));

system("PAUSE");
return 0;
}

Boa Sorte

Manuel Menezes

Você também pode gostar