Universidade Metodista de Angola - UMA Programação I Licenciatura em Engenharia Informática 2ªFrequência Data: 14 de Novembro de 2009 (2º Semestre, Ano lectivo 2009) Duração: 1h30min Prof. Gustavo Sebastião Turno: tarde Teste Tipo Nome____________________________________________________________________Nº__________ Obs: A prova contem 6 problemas que devem ser resolvidos usando a linguagem de programação C standard (ASI-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. 1. [3.0 val] Escreva um programa em linguagem C que lê do teclado a altura de um grupo de 20 pessoas e apresenta no ecrã o número de pessoas com altura superior a dois metros. Observação: O aluno é livre de usar vector ou não. 2. [3.0 val] O que é que o programa abaixo imprime no ecrã? #include <stdio.h> #include <stdlib.h> int main(){ char str[33]="Universidade_Metodista_de_Angola"; str[12]='\n'; str[22]='\0'; printf("%s",str); exit(0); } 3. [4.0 val] Desenvolva um programa em linguagem C que calcula o determinante de matrizes diagonais de números reais de dimensão n x n. O programa inicialmente deve ler do teclado a dimensão da matriz, em seguida ler os elementos da matriz diagonal e posteriormente calcular o seu determinante. 4. [3.0 val] A função factorial recebe como argumento um inteiro e retorna o factorial desse número. Escreva um programa em Linguagem C que calcula e apresenta no ecrã o factorial dos primeiros 12 números inteiros incluindo o zero, usando a função factorial. int factorial(int x){ int i; int n = 1; for( i = 1 ; i <= x ; i++ ) { n = n * i; } return n; } 5. [3.0 val] Escreva uma função em Linguagem C que recebe como argumento três números inteiros e devolve o maior deles. 6. [4.0 val] A função primo recebe como argumento um número inteiro, devolve 1 se o inteiro for um número primo e devolve 0 caso o número não seja primo. Desenvolve um programa em Linguagem C que lista os números primos compreendidos entre 12 e 30 usando essa função primo. int primo(int num){ int divisor = 2; int resto; if(num == 1) return 1; resto = num % divisor; while(resto != 0){ divisor++; resto = num % divisor; } if(divisor == num) return 1; else return 0; } Boa Sorte!