Prévia do material em texto
ESTRUTURA DE DADOS FUNÇÕES QUESTION 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; } A. 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. B. 2 4 6 8 10 C. 2 4 6 D. 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. E. 2 4 6 8 Correct Answer: C Section: (none) Explanation Explanation/Reference: QUESTION 2 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; } A. 5 B. 0 C. 3 D. 10 E. 20 Correct Answer: A Section: (none) Explanation Explanation/Reference: QUESTION 3 As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço reservado na memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço na memória, fora do escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a declaração desta forma estamos declarando uma variável do tipo: A. Global B. Inteiro C. Local D. Real E. Constante Correct Answer: A Section: (none) Explanation Explanation/Reference: QUESTION 4 Qual será a saída para o seguinte trecho de código? void FUNC1() { int B = -100; cout << "Valor de B dentro da função FUNC1: " << B; } void FUNC2() { int B = -200; cout << "Valor de B dentro da função FUNC2: " << B; } int main() { int B = 10; cout << "Valor de B: " << B; B = 20; FUNC1(); cout << "Valor de B: " << B; B = 30; FUNC2(); cout << "Valor de B: " << B; } A. Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 20 B. Valor de B: 10 Valor de B dentro da função FUNC1: -200 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 30 C. Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 10 Valor de B dentro da função FUNC2: -200 Valor de B: 30 D. Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -400 Valor de B: 30 E. Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 30 Correct Answer: E Section: (none) Explanation Explanation/Reference: QUESTION 5 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); } A. 9 B. 27 C. 6 D. 18 E. 3 Correct Answer: A Section: (none) Explanation Explanation/Reference: QUESTION 6 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. A. 50 B. 40 C. 20 D. 60 E. 30 Correct Answer: D Section: (none) Explanation Explanation/Reference: QUESTION 7 Considere os trechos abaixo: int valor = 100; void eureka (int &z) { int temp = 25; z--; temp = temp - 10; valor = valor - temp; cout << "Auxiliar = " << temp << endl; } int main() { int R = 1000; eureka(R); cout << "Result = " << R << " Valor = " << valor << endl; } Assinale a opção correta. A. Será impresso Auxiliar = 15 Result = 999 Valor = 85 sendo que z é um parâmetro passado por valor B. Será impresso Auxiliar = 15 Result = 1000 Valor = 100 sendo que z é um parâmetro passado por referência C. Será impresso Auxiliar = 15 Result = 1000 Valor = 85 sendo que z é um parâmetro passado por valor D. Será impresso Auxiliar = 15 Result = 1000 Valor = 85 sendo que z é um parâmetro passado por referência E. Será impresso Auxiliar = 15 Result = 999 Valor = 85 sendo que z é um parâmetro passado por referência Correct Answer: E Section: (none) Explanation Explanation/Reference: QUESTION 8 Assinale a opção certa. Quando não se escreve o protótipo de uma função ... A. A chamada da função não poderá ser feita em qualquer hipótese. B. A chamada da função poderá ser feita em qualquer hipótese. C. É preciso definir a função antes do programa principal. D. A definição da função deverá ser escrita, obrigatoriamente, após o programa principal. E. O programa não funcionará de forma alguma. Correct Answer: C Section: (none) Explanation Explanation/Reference: QUESTION 9 Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor. Um exemplo de função seria o conjunto de instruções para calcular o fatorial de um número e após a função ser executada, ela deve retornar o fatorial do número pedido. Marque a opção que representa um protótipo de função válido. A. retorno nomeFuncao(parametros); B. tipo parametros(int a, int b); C. void float(int a, int b); D. tipo parametros(parametros); E. nome tipo(parametros); Correct Answer: A Section: (none) Explanation Explanation/Reference: QUESTION 10 Na passagem por ____________________ , o endereço da variável da função chamadora é passado para a função chamada e, dessa forma, o valor poderá ser alterado, ou não. A. número B. caracter C. valor D. void E. referência Correct Answer: E Section: (none) Explanation Explanation/Reference: QUESTION 11 Em programação podemos utilizar um recurso que modulariza o programa chamado função. As funções precisam ser ativadas para que possam ser executadas. Para isso, é necessário chamar a função pelo seu nome e enviar, quando necessário, os valores respectivos para os parâmetros de entrada. Ao enviar os valores para os parâmetros de entrada, o programa pode fazer uma cópia deste valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos ativando a função por meio de: A. Envio de valor. B. Ponteiros C. Registro D. Envio de inteiro. E. Passagem por valor. Correct Answer: B Section: (none) Explanation Explanation/Reference: QUESTION 12 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. A. Somente I e II estão corretas B. Somente II e IV estão corretas C. Somente II III e IV estão corretas D. Somente II está correta E. Somente II e III estão corretas Correct Answer: D Section: (none) Explanation Explanation/Reference: QUESTION 13 Considere a função Adivinhe , n = 4 e que X é formado pela sequência "algoritmo". Assinale a opção que corretamente mostra o vetor Y ao fim da execução da função Adivinhe. void Adivinhe (char X[ ], char Y [ ], int n) { int i, j; j = 0; for ( i = n; i >= 0; i--) { Y[j] = X[i]; j++; } Y[j] = '\0'; } A. Ocorre erro, pois a função, que é do tipo void, não retorna o vetor Y. B. ogla C. algor D. algo E. rogla Correct Answer: E Section:(none) Explanation Explanation/Reference: QUESTION 14 Informe qual deverá ser a saída do programa abaixo: #include void func(int *x) { do{ cout << *x << " "; (*x)--; }while(*x>0); } main() { int x=5; func(&x); cout << x; system("pause"); } A. 5 4 3 2 1 6 B. 5 3 4 2 1 0 C. 5 3 4 2 1 4 D. 5 4 3 2 1 5 E. 5 4 3 2 1 0 Correct Answer: E Section: (none) Explanation Explanation/Reference: QUESTION 15 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: A. O código compila normalmente e apresenta como resultado o valor 7.0 B. 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. C. 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". D. 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. E. 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. Correct Answer: B Section: (none) Explanation Explanation/Reference: QUESTION 16 Caso uma estrutura homogênea (vetor) seja passada como parâmetro para uma função, então: A. Essa passagem pode ser "por valor" ou "por referência" B. Haverá um erro de compilação, pois vetores não podem ser parâmetros de funções C. Todos os valores contidos no vetor são copiados para a função D. Essa passagem é "por valor" E. Essa passagem é "por referência" Correct Answer: E Section: (none) Explanation Explanation/Reference: QUESTION 17 Assinale a opção CORRETA. O protótipo da função que permitirá calcular o volume de um paralelepípedo com medidas a, b e c de acordo com o trecho da chamada : cout << "Volume = " << volume(a,b,c); A. float volume (float, float); B. void volume (float, float, float &); C. float volume (float ; float ; float); D. float volume (float, float, float); E. void volume (float , float); Correct Answer: D Section: (none) Explanation Explanation/Reference: QUESTION 18 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. A. 2 B. 6 C. 1 D. 3 E. 4 Correct Answer: B Section: (none) Explanation Explanation/Reference: QUESTION 19 Nas linguagens C e C++, ao se declarar qualquer função, a especificação de tipo de dados que antecede o nome desta função define A. o tipo das variáveis que serão utilizadas dentro da função. B. o protótipo da função. C. o tipo dos dados dos parâmetros que são passados à função quando da sua chamada. D. o tipo do dado do valor retornado da função para quem a chamou. E. o escopo das variáveis do programa. Correct Answer: D Section: (none) Explanation Explanation/Reference: QUESTION 20 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"); } A. Valores 13 13 B. Valores10 13 C. Valores 13 10 D. Valores 10 10 E. Valores 31 01 Correct Answer: A Section: (none) Explanation Explanation/Reference: QUESTION 21 Para compararmos vetores de char, usaremos a função _____________________ . Para copiarmos o conteúdo de um vetor de char nas posições ocupadas por outro vetor de char, usaremos a função ______________________ . A. strcmp(); e strcmpi (); B. strcmp(); e strcpy(); C. strcmp(); e strcat(); D. strcat(); e strcpy() ; E. strcmp(); e strlen() ; Correct Answer: B Section: (none) Explanation Explanation/Reference: QUESTION 22 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; } A. 2 4 6 8 10 B. 2 4 6 8 C. 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. D. 2 4 6 E. 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. Correct Answer: D Section: (none) Explanation Explanation/Reference: QUESTION 23 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: A. Apenas II B. Nenhuma está correta C. Apenas III D. Apenas I E. Apenas I e II Correct Answer: B Section: (none) Explanation Explanation/Reference: QUESTION 24 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? A. 2, 2, 4 B. 1, 3, 1 C. 2, 2, 1 D. 1, 2, 4 E. 4, 2, 4 Correct Answer: A Section: (none) Explanation Explanation/Reference: QUESTION 25 O que será mostrado na tela pelo programa abaixo ? #include < iostream > using namespace std; int a,b; void dobro(int x){ //x passado por valor x=2*x; } int triplo(int y){ //y passado por valor return 3*y; } void altera(int x, int &y) { //x passado por valor e y passado por referencia x=x+a; y=x+b; } int main (){ a=2; b=3; dobro(a); b=triplo(b); altera(a,b); cout<< a << " e " << b << endl; } A. 2 e13 B. 9 e 16 C. 4 e 9 D. 2 e 9 E. 4 e 12 Correct Answer: A Section: (none) Explanation Explanation/Reference: QUESTION 26 A. O programa não executa corretamente, pois os protótipos estão fora da ordem em que as funções são descritas. B. O programa executa perfeitamente independente da ordem das funções já que existem os seus protótipos. C. O programa não executa corretamente pois as funções devem ser descritas antes da função main(), para que o compilador consiga reconhecê-las. D. O programa executa perfeitamente, mas não mostra o valor da media já que esta função não foi chamada na função main( ). E. O programa não executa corretamente, pois o protótipo da função media( ) não apresenta a identificação dos parâmetros, mas apenas os tipos dos mesmos. Correct Answer: B Section: (none) Explanation Explanation/Reference: QUESTION 27 Consideraa 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; } A. 08 e 18 B. 28 e 08 C. 28 e 18 D. 18 e 18 E. 18 e 28 Correct Answer: C Section: (none) Explanation Explanation/Reference: QUESTION 28 Blocos únicos de códigos que realizam diversas tarefas distintas são de difícil manutenção. Portanto, utiliza-se a técnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas. Esta técnica tem como principal elemento: A. As funções B. As Estruturas de Dados C. Os Vetores D. As Filas E. Os Grafos Correct Answer: A Section: (none) Explanation Explanation/Reference: