Universidade Metodista de Angola
Departamento de Engenharias
Curso de Engenharia Industrial e Sistemas Eléctricos (Manhã)
Segunda Frequência
Programação I
Data: 22/11/2010
Duração: 2h00
Docente: Gustavo Sebastião
Instruções:
Variante A
-A prova é individual
-Ler com bastante atenção e por completo antes de começar a responder
-Responda as questões a partir do enunciado.
-A prova contem 6 problemas que devem ser resolvidos usando a linguagem de programação C.
-Erros cometidos ao desenvolver os programas tais como, falta de ponto e vírgula no final das instruções, abertura de
chavetas, plicas, aspas, sem as fechar, entre outros, irão conduzir a uma cotação reduzida.
Nome_____________________________________________________________________________Nº___________
1. [2.5 val] Escreva um programa em linguagem C que recebe do teclado o valor da base maior B, o valor da base
menor b e a altura h de um trapézio, calcula e apresenta a área do trapézio. A área do trapézio é calculada através
da fórmula (1.1).
Atrapézio =
(b + B )
×h
2
(1.1)
Resolução:
#include <stdio.h>
#include <stdlib.h>
int main(){
float b,B,h;Area;
printf(“Insira a base menor do trapezio: ”);
scanf(“%f”,&b);
printf(“Insira a base maior trapezio: ”);
scanf(“%f”,&B);
printf(“Insira a altura do trapezio: ”);
scanf(“%f”,&h);
Area = ((B + b)/2) * h;
printf(“A área do trapezio e: %.3f”,Area);
exit(0);
}
2. [2.0 val] Escreva um programa em linguagem C que recebe um carácter maiúsculo do teclado e indica o estado
civil de acordo com a tabela abaixo.
Caracter
‘C’
‘S’
‘D’
‘V’
Estado Civil
“Casado”
“Solteiro”
“Divorciado”
“Viúvo”
Solução:
#include <stdio.h>
#include <stdlib.h>
int main(){
char c;
printf(“Insira o estado civil: ”);
scanf(“%c”,&c);
getchar();
switch(c){
case ‘C’: printf(“Casado\n”);break;
case ‘S’: printf(“Solteiro\n”);break;
case ‘D’: printf(“Divorciado\n”);break;
case ‘V’: printf(“Viuvo\n”);break;
default: printf(“Estado Civil Invalido\n”);
}
exit(0);
}
3.
[2.5 val] Escreva um programa que imprime no ecrã todos os múltiplos de 5 compreendidos entre 100 e 200.
Solução:
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for(i = 100 ; i<=200 ; i++)
if(i%5==0)
printf(“%d ”,i);
exit(0);
}
4. [2.5 val] Escreva uma função em linguagem C que recebe como argumento um número inteiro e determina se esse
número é impar. A função deve devolver 0 se o número recebido for impar, caso o número não for impar a função
deve devolver 1.
Solução:
int impar(int v){
if(v%2==0)
return 1;
else
return 0;
}
5. [3.0 val] Desenvolva um programa que recebe do teclado um número inteiro e determina se o número inserido é
impar usando a função do problema anterior. O programa deve imprimir a mensagem “O número é impar” caso o
número inserido for impar, caso contrário o programa deve imprimir a mensagem “O número não é impar”.
Solução:
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,m;
printf(“Insira um número inteiro: ”);
scanf(“%d”,&n);
m = impar(n);
if(m==0)
printf(“O numero e impar”);
else
printf(“O numero nao e impar”);
exit(0);
}
6.
[3.0 val].Escreva um programa em linguagem C que calcula e apresenta o determinante da matriz A representada
abaixo.
 −2 5 
A=

 1 − 3
Solução:
#include <stdio.h>
#include <stdlib.h>
int main(){
int A[2][2]={{-2,5},{1,-3}};
int det;
det = A[0][0]*A[1][1]-A[0][1]*A[1][0];
printf(“O determinante da matriz A vale: %d ”, det);
exit(0);
}
7. [2.5 val] Dado o programa abaixo. Diga justificando o que o programa imprime no ecrã.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
#define DIM 3
int main(){
int A[3][3];
int i,j;
int count = 0;
for(i = 0 ; i < DIM ; i++)
for(j = 0 ; j < DIM ; j++){
A[i][j]= count;
count++;
}
for(i = 0 ; i < DIM ; i++){
for(j = 0 ; j < DIM ; j++)
printf(“%d ”, A[i][j]);
printf(“\n”);
}
exit(0);
}
Solução:
O programa imprime no ecrã os seguintes números:
0 1 2
3 4 5
6 7 8
8. [2.0 val] Dado o programa abaixo. Com a ajuda da tabela ASCII, diga justificando o que o programa imprime no
ecrã.
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
int main(){
char v[6]={65,78,71,79,76,65};
int i;
for(i = 1 ; i<6 ;i++)
printf(“%c”,v[i]);
exit(0);
}
Solução:
O programa imprime no ecrã os seguintes caracteres: NGOLA
Boa Sorte!
Download

Resolução da Variante A