Buscar

prova_1_Alg_gti_gabarito

Prévia do material em texto

60 
 
 
 
 
 
 
Q1 (5 pontos). A partir do trecho de código abaixo, complete o programa criando as funções que faltam. 
 
 
Resposta: 
#include <iostream> 
using namespace std; 
 
struct aluno { 
 int mat; 
 float notas[3]; 
}; 
 
float calcula(struct aluno turma[]) { 
 int i, q; 
 float s1, s2, s3, m1, m2, m3; 
 s1 = turma[0].notas[0] + turma[0].notas[1] + turma[0].notas[2]; 
 s2 = turma[1].notas[0] + turma[1].notas[1] + turma[1].notas[2]; 
 s3 = turma[2].notas[0] + turma[2].notas[1] + turma[2].notas[2]; 
 
 m1 = s1/3; 
 m2 = s2/3; 
 m3 = s3/3; 
 
 cout<<"Escolha a media de um aluno\n"; 
 cout<<"Aluno 1: digite 1\n"; 
 cout<<"Aluno 2: digite 2\n"; 
 cout<<"Aluno 3: digite 3\n"; 
 cin>>q; 
 
 switch(q) { 
 case 1: return m1; 
 break; 
 case 2: return m2; 
 break; 
 case 3: return m3; 
 
1º Avaliação de Algoritmos II 
 
 
 
 
 
 
Nome: Data: 
Valor: 25 pontos Curso: 
 break; 
 default: cout<<"Invalido"; 
 break; 
 } 
} 
 
void leAluno(struct aluno turma[]) { 
 int i; 
 for(i=0; i<3; i++) { 
 cout<<"Entre com os dados do " << i+1 << " aluno\n"; 
 cout<<"Entre com a matricula: "; 
 cin>>turma[i].mat; 
 cout<<"Entre com a primeira nota: "; 
 cin>>turma[i].notas[0]; 
 cout<<"Entre com a segunda nota: "; 
 cin>>turma[i].notas[1]; 
 cout<<"Entre com a terceira nota: "; 
 cin>>turma[i].notas[2]; 
 cout<<"\n"; 
 } 
} 
 
void imprimeT(struct aluno turma[]) { 
 int i; 
 for(i=0; i<3; i++) { 
 cout<<"Dados do " << i+1 << " aluno\n"; 
 cout<<"Matricula: " << turma[i].mat << "\n"; 
 cout<<"Primeira Nota: " << turma[i].notas[0] << "\n"; 
 cout<<"Segunda Nota: " << turma[i].notas[1] << "\n"; 
 cout<<"Terceira Nota: " << turma[i].notas[2] << "\n"; 
 cout<<"\n"; 
 } 
} 
 
int main(int argc, char** argv) 
{ 
 struct aluno turma[3]; 
 leAluno(turma); 
 imprimeT(turma); 
 float m = calcula(turma); 
 cout<<"Media: " << m; 
 
 return 0; 
} 
 
Q2 (4 pontos). Ao se utilizar um vetor como parâmetro para uma função, que informação está sendo 
passada à função? 
a. Uma cópia de todos elementos do vetor 
b. Uma cópia do primeiro elemento do vetor 
c. O endereço do primeiro elemento do vetor 
d. O endereço de todos os elementos do vetor 
Q3 (4 pontos). Analise a função a seguir: 
 
O valor n = 10 exibe: 
a) 0 
b) 1 
c) 80 
d) 1920 
e) 3840 
Q4 (4 pontos). Analise a função a seguir: 
 
A chamada f(18,12) retornará como resultado o valor: 
a) 0 b) 6 c) 12 d) 24 e) 40 
Q5 (4 pontos). O que faz o seguinte programa e qual será sua saída. 
 
Resposta: Esse programa faz a tabuada do número armazenado na variável b da função mistério. Sua 
saída será o resultado da multiplicação. 
Q6 (4 pontos). Quais as afirmativas são verdadeiras? 
a. Você pode retornar para um programa quantas variáveis de uma função desejar através do comando 
return. F 
b. Uma função só pode ter um comando return. F 
c. Os protótipos de função servem para declarar as funções, isto é, indicar para o compilador qual o seu 
nome, tipo de retorno e o número e tipos dos parâmetros. V 
d. Variáveis declaradas em uma função são acessíveis por todas as outras funções. F 
e. Se uma função não retorna nada ela deve ser declarada como void. V 
f. O retorno da função main é feito para o sistema operacional. V 
g. As bibliotecas <iostream> e <string> contêm o protótipo de algumas funções da biblioteca do C++. V 
h. Funções podem ser definidas dentro de outras funções. F 
i. Não se pode utilizar variáveis com o mesmo nome em funções diferentes. F 
j. Os parâmetros recebidos por uma função armazenam cópias das variáveis usadas na chamada da 
função. V

Continue navegando