Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Estácio de Sá - Estrutura de dados - Professora : Jane * Aluno(a) : 2/2017 INSTRUÇÕES IMPORTANTES: 1. Faça tudo, sem exceção, na folha pautada, especificando o número da questão e do item. 2. Faça, obrigatoriamente, as questões 1,2,e 3 com caneta. Questões de código : lápis ou caneta. Não use lápis fraco. AV1 1) Considere os trechos abaixo: int v = 300; void xpto (int &k) { int aux = 200; k = k * 2; aux = aux – 50; v = v + aux; cout << "Auxiliar = " << aux << endl; } int main() { int x = 60; xpto(x); cout << "Número = " << x << " Valor = " << v << endl; } RESPOSTA : a) Auxiliar = 150 Número = 120 Valor = 450 b) Por referência c) Global : v Local à função xpto : k e aux Local à main : x Pede-se : (1.5) a) Mostre o que é impresso na tela. (0.4) b) Qual é o tipo de passagem de parâmetro usado na função xpto ? (1.6) c) Diga que variáveis são locais e quais são globais, identificando o escopo das locais. (1.0) 2) Considere a função XYZ , n = 9 e que O é formado pela sequência “estrutura”. Mostre o vetor D ao fim da execução da função XYZ, considerando que D possui espaço suficiente para a operação realizada. void XYZ (char O[ ], char D [ ], int n) { int i, j; j = 0; for ( i = n - 1; i >= 0 ; i = i - 2) { D[j] = O[i]; j++; } D[j] = '\0'; } RESPOSTA : D será ‘a’ ‘u’ ‘u’ ‘t’ ‘e’ ‘\0’ (1.0) 3) Analise a função abaixo, considerando o tipo Modelo e marque a opção correta. int Misterio (Modelo x[ ], int c, int n) { for (int i = 0; i < n; i++) if (x[i].numero == c) return i; return -1; } (A) Retorna a posição do valor c em x , se o valor c for encontrado em x. (B) Retorna o valor de c se o valor n foi encontrado. (C) Ocorre erro na função Misterio se o valor de c não estiver sido encontrado em x. (D) Retorna -1 se o valor de c estiver em x. (E) Retorna -1 se o valor de n foi encontrado. struct Modelo { int numero; char nome[30], agencia[25]; }; (1.5) 4) Considere o tipo struct Corredor { int numero; char nome[30], equipe[30]; float premio; }; e faça o que se pede : a) Declare uma variável cd do tipo definido acima. b) Use cd e defina o premio sendo R$ 600000,00 e o nome sendo Nick Leite. RESPOSTA : a) Corredor cd; b) cd.premio = 600000.00 ; strcpy(cd.nome, “Nick Leite”); (1.0) 5) Em uma feira de computação, o stand de Bill Góis mostrava como trabalhar com as estrutura de dados lista e pilha. Dada como entrada a sequência de números inteiros 10, 12, 13, 14, 15, 16 e 17, Bill empilhava os ímpares na pilha P e depois inseria em uma lista L os valores 80, 30, 50, de forma ordenada crescentemente. Ao final, exibiu primeiro os valores retirados da lista, sem perder a ordem seguida na inserção e em seguida, exibiu os valores desempilhados . Qual é a sequência final, considerando, respectivamente, as retiradas na lista e na pilha ? Mostre seu raciocínio, exibindo as etapas da pilha e da lista e ao final, destaque a sequência final solicitada. RESPOSTA : Pilha : empilhou 13, depois 15 e por fim, 17. Ao desempilhar, teremos : 17, 15 e 13, nesta ordem. Lista : inseriu 30, 50 e 80, pois a inserção foi ordenada crescentemente. Sequência final : 30, 50, 80, 17, 15, 13 (2.0) 6) Um técnico de futebol de salão está selecionando atletas com altura de 1,70 até 1,90 e idade de 16 até 18 anos. Faça um programa em C++ para ler a altura e a idade de um atleta e imprimir uma das mensagens "Aceito no time" ou "Não aceito no time". Para isso ... • faça a entrada de dados na main; • implemente uma função de nome obterAtleta que receba a idade e a altura do atleta e imprima uma das mensagens indicadas, como especificado; • chame a função obterAtleta na main. Use, obrigatoriamente, o protótipo void obterAtleta (int, float); na sua solução. RESPOSTA : Ver cpp Pilha ... passo a passo : Lista ... passo a passo : Sequência final :
Compartilhar