Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aluno: MAX OLIVEIRA DE LIMA Matr.: 201903004381 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. Obrigatoriamente devem possuir parâmetros. Não podem ser chamadas dentro de outras funções. Obrigatoriamente devem retornam algum valor. Não devem conter variáveis locais em seu código. São blocos de instruções que são executados quando são chamadas em alguma parte do programa. Explicação: Uma função é um bloco de instruções que pode ser chamada a partir de outra função, que pode ter ou não parâmetros, que pode ou não retornar valor, que pode ter ou não variáveis locais. 2. Sobre funções, é correto afirmar: http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# javascript:duvidas('902261','7118','1','3520942','1'); javascript:duvidas('609834','7118','2','3520942','2'); 50 Haverá um erro de compilação 5 10 0 Gabarito Coment. 3. 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". Considere a função: void dobro(int x) { x = 10 * x; } Qual será o valor impresso na tela quando o programa principal for executado? int main() { int n; n = 5; dobro(n); cout << n; return 0; } 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. http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# javascript:duvidas('28148','7118','3','3520942','3'); 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. 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. 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. Em duas funções diferentes temos duas variáveis também diferentes com o mesmo nome apresentando o mesmo valor. 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. 4. http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# http://simulado.estacio.br/bdq_simulados_exercicio.asp# javascript:duvidas('1184216','7118','4','3520942','4'); 60 50 30 20 40 Explicação: int func1 (int vtx[], int tam) { int soma=0; //inicializa soma com zero. for (int i=0 ; i < tam; i++) { if (i % 2 !=0) //testa se i é ímpar. Se for, acumula na soma o valor de vtx[i] soma += vtx[i]; Considere o trecho de um programa escrito em C++. int func1 (int vtx[], int tam) { int soma=0; for (int i=0 ; i < tam; i++) { if (i % 2 !=0) soma += vtx[i]; } return soma; } int main() { int vt[5] = {10,20,30,40,50}; cout << func1 (vt,5); } Marque a opção correta que mostra o que é impresso na tela. } return soma; } Fazendo um teste de mesa parcial ... vetor tam soma i {10, 20, 30, 40, 50} 5 0 0 20 1 2 E continua ... se vê que a função está somando os elementos do vetor que possuem índices ímpares. Logo, serão somados 20 e 40, que dará 60. A soma 60 é retornada e impressa na main. 5. http://simulado.estacio.br/bdq_simulados_exercicio.asp# javascript:duvidas('1184211','7118','5','3520942','5'); 9 18 27 6 3 Explicação: Fazendo um teste de mesa, temos que o valor 9 retornado e impresso na main. Iniciando um teste de mesa.... n1 n2 aux 27 18 9 18 9 0 continua... continua... continua.. Considere o trecho de um programa escrito em C++. int func1 (int n1, int n2) { int aux = n1 % n2; while ( aux != 0) { n1 = n2; n2 = aux; aux = n1 % n2; } return n2; } int main() { cout << func1 (27, 18); } Marque a opção correta que mostra o que é impresso na tela. 6. Valores: 13 13 Valores: 31 01 Valores: 10 10 Valores: 10 13 Valores: 13 10 Explicação: A execução começa pela main. São passados o valor de a, que é 13 e o endereço de b, que vale 10. Em seguida, é chamada a função troca e são passados o valor de a e o endereço de b. Executando a função troca, x recebe 13 e *y recebe 10. Mas ocorre a troca, usando tmp como Diga, para o trecho do programa abaixo, qual a opção que representa a saída em tela. Considere que o programa será compilado sem erros, e irá executar também sem problemas. void troca (int x, int *y){ int tmp; tmp = *y; *y = x; x = tmp; } int main() { int a = 13, b = 10; troca( a, &b ); cout<<"Valores: "<< a<<"\t"<< b<< endl; system("pause"); } http://simulado.estacio.br/bdq_simulados_exercicio.asp# javascript:duvidas('2835767','7118','6','3520942','6'); auxiliar. Então x recebe 10 e *y recebe 13. Ao terminar a execução da função, voltamos para a main e temos a sem mudanças e b com a mudança ocorrida na função. Note que x é um parâmetro passado por valor e y é um parÂmetro passado por referência. Portanto, a ficou 13 e b ficou 13. Logo, será impresso : Valores: 13 13 7. Apenas I Apenas I e II Apenas II Apenas III Nenhuma está correta Explicação: Analisando cada afirmativa ... I . Falso. Em C++ os vetores passados como parâmetros são sempre passados por referência. II. FAlso. Variáveis globais são uma péssima forma de usar recursos, comprometendo principalmente a manutenção do programa. III. FAlso. A função poderá retornar explicitamente um valor com return, mas terá que passar o outro parâmetro por referência e não por valor. Outra forma, será passar todos os parâmetros por referência. Considere as seguintes afirmativas : I) Os vetores em C++, quando passados como parâmetros de funções, são obrigatoriamente passados "por valor" e não "por referência". II) Variáveis globais são um recurso adequado para troca de informações entre funções distintas. III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve fazê-lo usando parâmetros passados "por valor". As afirmativas corretas são: http://simulado.estacio.br/bdq_simulados_exercicio.asp# javascript:duvidas('1025880','7118','7','3520942','7'); Portanto, não opção correta. 8. 28 e 08 08 e 18 28 e 18 18 e 28 18 e 18 Explicação: Teste de Mesa a b x y aux 18 28 //Na main() 18 28 18 28 //Quando a função é chamada x, recebe o endereço de a e y, o de b. Logo acessam os mesmos endereços 18 28 18 28 18 //Na função, aux é declarada e inicializada com o valor de x 18 28 28 28 18 //Na função x = y; Deixará x com valor 28 1828 28 18 18 //Na função y = aux; Deixará y com valor 18 Como a função é void, nada retorna e nem precisa porque os valores foram trocados pela função Considera a FUNÇÃO abaixo: void inverte(int &x, int &y) { int aux = x; x = y; y = aux; } Quais valores serão impressos na tela quando o seguinte programa principal for executado? int main() { int a = 18, b = 28; inverte(a, b); cout << a <<" e "<< b; return 0; } http://simulado.estacio.br/bdq_simulados_exercicio.asp# javascript:duvidas('862507','7118','8','3520942','8'); misterio(...) que recebeu por passagem por referência.
Compartilhar