Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1) Considere o seguinte programa escrito em Linguagem C, que verifica a quantidade de dias que cada mês possui.
- main(){
- int mes, dias;
- printf ("Entre o mês (em número) ");
- scanf (%d,&mes);
- switch (mes){
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- dias = 31; break;
- case 2:
- dias = 2; break;
- case 4:
- case 6:
- case 9:
- case 11:
- dias = 30; break;
- default:
- dias = 0;
- printf ("O número do mês é incorreto");
- }
- }
- Sobre a instrução SWTICH evidenciada no programa acima, analise as seguintes asserções e a relação proposta entre elas:
- I. O último case ou o default de um switch não necessita de break.
- PORQUE
- II. Depois de executar as instruções associadas ao último case termina a instrução switch.
- A respeito dessas asserções, assinale a opção correta.
- Alternativas:
- a)
- As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
- b)
- As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
- c)
- A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
- d)
- A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
- e)
- As asserções I e II são proposições falsas.
- 2)
- A sintaxe do laço do... while em Linguagem C é:
- do
- instrução;
- while (condição);
- Sobre a instrução do... while, analise as seguintes asserções e a relação proposta entre elas:
- I. A instrução do... while difere dos laços while e for.
- PORQUE
- II. O teste da condição é realizado no início do corpo do laço e não depois.
- A respeito dessas asserções, assinale a opção correta.
- Alternativas:
- a)
- As asserções I e II são proposições verdadeiras e a II é uma justificativa da I.
- b)
- As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
- c)
- A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
- d)
- A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
- e)
- As asserções I e II são proposições falsas.
- 3)
- Considere o seguinte programa escrito em Linguagem C:
- #include
- main(){
- int n;
- n = 1;
- while (n<=10)
- printf ("%d", 5*n);
- n = n + 1;
- }
- }
- Sobre este programa, analise as seguintes sentenças:
- I. A variável n é iniciada com 1.
- II. Se n tiver um valor menor ou igual a 10, a condição devolve verdade e então são executadas as duas instruções dentro do bloco do while.
- III. Em resumo, o programa apresenta na tela os 10 primeiros números em ordem crescente.
- IV. Em resumo, o programa apresenta na tela os resultados da multiplicação de 5 pelo valor atual da variável que controle o laço, sendo esta uma variação de 1 a 10.
- Agora, assinale a alternativa que apresenta a resposta correta.
- Alternativas:
- a)
- Somente a afirmativa IV está correta.
- b)
- As afirmativas I e II estão corretas.
- c)
- As afirmativas I, II e III estão corretas.
- d)
- As afirmativas I, II e IV estão corretas.
- e)
- As afirmativas I, II, III e IV estão corretas.
- 4)
- A sequência de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13, 21, ...) é uma sequência de números inteiros, que se inicia com 0 e 1, e tem a propriedade de que cada elemento é a soma dos dois elementos anteriores, por exemplo: 0 + 1 = 1 e 1 + 1 = 2.
- Sobre a sequência de Fibonacci e sua implementação computacional, analise as seguintes sentenças:
- I. A utilização da recursividade torna a solução e implementação do problema simples e intuitiva.
- II. A definição recursiva da implementação computacional seria:
- fibonacci(n) = n se n= 0 ou n =1
- fibonacci(n) = Fibonacci (n-1) + Fibonacci(n-2) se n>=2.
- III. A implementação recursiva é o único meio de se de se computar o enésimo termino da sequência de Fibonacci.
- IV. A implementação iterativa também pode apresentar uma solução para o problema.
- Agora, assinale a alternativa que apresenta a resposta CORRETA.
- Alternativas:
- a)
- Somente a afirmativa II está correta.
- b)
- As afirmativas I e II estão corretas.
- c)
- As afirmativas I, II e III estão corretas.
- d)
- As afirmativas I, II e IV estão corretas.
- e)
- As afirmativas I, II, III e IV estão corretas.
- 5)
- O algoritmo QuickSort é um método de ordenação muito rápido e eficiente. Ele baseia-se na técnica "dividir e conquistar", onde a ideia é reduzir um problema em problemas menores, resolver cada um destes subproblemas e combinar as soluções parciais para obter a solução do problema original. A recursividade é uma forma interessante de se implementar este algoritmo.
- Em resumo, o algoritmo QuickSort é composto dos seguintes passos:
- 1. Rearranjo da lista de modo eu todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele.2. Recursivamente ocorre a ordenação da sublista dos elementos menores e sublista dos elementos maiores.3. Escolha de um elemento da lista, denominado pivô.
- Assinale a alternativa que apresenta a ordem correta dos passos do algoritmo QuickSort.
- Alternativas:
- a)
- 1 – 2 – 3.
- b)
- 2 – 1 – 3.
- c)
- 3 – 1 – 2.
- d)
- 3 – 2 – 1.
- e)
- 2 – 3 – 1.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement