Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURA DE DADOS Lupa Calc. PPT MP3 CCT0826_A2_201904155481_V1 Aluno: JORGE LEONARDO FERREIRA FIDELIS Matr.: 201904155481 Disc.: ESTRUTURA DE DADOS 2020.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Ao definirmos uma função, podemos afirmar: I Toda função tem parâmetros II Quando nada retorna, o tipo é void III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas IV Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada Após uma análise das afirmativas acima, escolha a opção correta. Somente II III e IV estão corretas Somente I e II estão corretas Somente II está correta Somente II e III estão corretas Somente II e IV estão corretas Gabarito Coment. 2. Blocos únicos de códigos que realizam diversas tarefas distitintas são de dificil manutenção. Portanto, utiliza-se a tecnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas. Esta técnica, também chamada de modularização, tem como principal elemento: Os Grafos As Estruturas de Dados As funções As Filas Os Vetores 3. Funções são instrumentos de modularização de programas, que tem como finalidade tornar o código mais legível, isto é mais fácil de entender, evita replicação de instruções e permite o reuso das funções em outros programas. Então considere o seguinte código: #include< iostream > using namespace std; int main( ) { float a=10.0; float b=4.0; cout < < media(a,b); return 0; } float media(float x, float y) { return (x+y)/2;} Marque a alternativa CORRETA: O código não compila, pois há necessidade de se declarar float media(float, float) como protótipo da função float media(float x, float y)antes da função principal. O código compila normalmente e apresenta como resultado o valor 7.0 O código compila normalmente, pois como a descrição da função float media(float x, float y)está posicionada após a função int main ( ), não há necessidade do uso de protótipos. O código não compila, pois a função float media(float x, float y) retorna um valor que seria ser armazenado em uma variável do tipo float e só então poderia ser usado o comando cout para exibir o resultado. O código não compila, pois os parâmetros usados na chamada da função deveriam ser "x" e "y"; porém a chamada se deu com identificadores "a" e "b". Explicação: Quando uma função é posicionada depois da função main(), o protótipo dela precisa estar presente antes da função main(). Gabarito Coment. 4. 1) O que será impresso pela função Eureka ? Assinale a opção correta. void Eureka() { for (int i = 1; i <= 10; i++) if (i % 2 == 0) cout << i << " "; else if (i % 7 == 0) return; } 2 4 6 8 2 4 6 8 10 Nada é impresso, pois a função não compila. Para a função compilar, deveria ter int no lugar de void, já que há return na função. 2 4 6 Nada é impresso, pois a função não compila. A função não deveria usar return, pois não está de acordo com o uso de void. 5. Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o seguinte programa principal for executado? int main() { int n = 3; n = n + 2; dobro(n); cout << n; return 0; } 0 3 10 5 20 Explicação: A função não retorna valor, então o valor de "n" não é alterado permanecendo igual a 5. 6. Considere a função abaixo: int func (int a, int& b){ a = b - a; b = a * 2; a = b * 2; return a; } Considere o seguinte código na função main: int x = 2, y = 3, z; z = func (x, y); cout << x << "; " << y << "; " << z; O que será impresso? 2; 2; 1 1; 3; 1 2; 2; 4 1; 2; 4 4; 2; 4 Explicação: a recebeu o valor de x que era 2 b recebeu 3, a partir de y, que foi passado por referência. Executando a função, passo a passo, tem-se : a recebeu 1 b recebeu 2 a recebeu um novo valor, que é 4. Daí a função retorna o valor de a, que é 4. Voltando para a main temos que z recebeu o retorno da função que é 4, x não se alterou, valendo 2 e y recebeu 4, devido a alteração na função no parâmetro b, passado por referência. Daí, na tela será impresso : 2; 2; 4 7. A declaração de variáveis na programação é o ato de reservar um espaço na memória para poder armazenar valores de um determinado tipo. Essas variáveis podem ser classificadas como variáveis locais e globais. Sendo assim, qual das situações abaixo representa melhor o conceito das variáveis globais. Em duas funções diferentes temos duas variáveis também diferentes com o mesmo nome apresentando o mesmo valor. Se modificarmos o valor da variável 'Y' na função "soma", e depois imprimirmos na tela esta variável em outra função, onde tambem está declarada a variável 'Y', será acusado um erro de compilação. Se dentro de uma função "mostra" declararmos uma variável 'R' com um determinado valor poderemos imprimir esta variável em qualquer outra função do programa mostrando o valor atribuído na função "mostra". Em uma função "resul" tem-se uma variável ali declarada por 'T' que recebe o valor inteiro 5. Ao tentar chamar esta variável em outra função é mencionado um warning. Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa. Explicação: Uma variável é classificada com Global quando for declarada fora de todas as funções, significando que poderá ser alterada em qualquer uma delas. A resposta correta é : Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa. Gabarito Coment. 8. Considere o trecho de um programa escrito em C++ : int func1 (long num) { int n, na=1; while (num / 10 != 0){ na += 1; num /= 10; } return na; } main() { cout << func1 (132041); } Marque a opção correta que mostra o que é impresso na tela. 3 2 1 6 4 Explicação: Fazendo passo a passo : int func1 (long num) { int n, na=1; while (num / 10 != 0){ na += 1; num /= 10; } return na; } main() { cout << func1 (132041); } Passos : 1) Chamada da função passando o valor 132041 2) Começa a função com num recebendo o valor 132041 3) na recebe 1 4) enquanto num/10 é diferente de zero faça ... Vejamos : 132041/10 é diferente de zero então na recebe 2 e num recebe 13204 5) Volta no teste do loop... 13204 /10 é diferente de zero ? Sim. Então, na recebe 3 e num recebe 1320 6) Volta no teste do loop... 1320 /10 é diferente de zero ? Sim. Então, na recebe 4 e num recebe 132 7) Volta no teste do loop... 132 /10 é diferente de zero ? Sim. Então, na recebe 5 e num recebe 13 8) Volta no teste do loop... 13 /10 é diferente de zero ? Sim. Então, na recebe 6 e num recebe 1 9) Volta no teste do loop... 1 /10 é diferente de zero ? Não. Então, retornao valor e na que é 6. Não Respondida Não Gravada Gravada Exercício inciado em 06/04/2020 19:38:16.
Compartilhar