Buscar

Prova Algoritmos Unidade IV

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Questão 1 
Um procedimento consiste em um trecho de código com início e fim e identificado por um nome, o qual é 
usado para chamar a rotina de qualquer parte do programa principal ou em uma sub-rotina qualquer. Em C, 
quando uma função é chamada isoladamente em uma linha de instrução, ela é executada e ao seu término o 
processamento retorna para _________________________________. 
Assinale a alternativa que preenche corretamente a lacuna: 
a. O início da função main(). 
b. O início da função chamada, para executá-la novamente. 
c. O final da função main(). 
d. A instrução seguinte à chamada da função executada. 
e. A próxima chamada de função em main(). 
Feedback 
A resposta correta é: A instrução seguinte à chamada da função executada. 
Questão 2 
Funções são sub-rotinas que têm como objetivo desviar a execução do programa principal para realizar uma 
tarefa específica. Dada a seguinte declaração de função em C: char* diaSemana(int numero), assinale a 
alternativa correta referente ao significado de char* nesta declaração: 
a. Indica o nome da sub-rotina chamadora. 
b. Indica o tipo de dado a ser retornado pela função. 
c. Indica o nome do parâmetro sendo passado para a função. 
d. Indica o tipo de parâmetro sendo passado para a função. 
e. Indica o nome da função. 
Feedback 
A resposta correta é: Indica o tipo de dado a ser retornado pela função. 
Questão 3 
Uma sub-rotina consiste em trechos pequenos de instruções que realizam tarefas específicas, a fim de 
resolver um subproblema dentro de um problema maior, por meio de operações de entrada, processamento e 
saída (ASCENCIO; CAMPOS, 2010; MANZANO; OLIVEIRA, 1997). Seguem algumas afirmações sobre as 
vantagens do uso de sub-rotinas em algoritmos: 
I. Dividem o problema maior em subproblemas, que podem ser resolvidos com as sub-rotinas. 
II. Tornam o teste mais complexo. 
III. Tornam o código reaproveitável, evitando trechos duplicados. 
IV. Deixam o algoritmo mais legível. 
Estão corretas: 
a. II e IV apenas. 
b. I e II apenas. 
c. I, III e IV apenas. 
d. I, II e IV apenas. 
e. I, II, e III apenas. 
Feedback 
A resposta correta é: I, III e IV apenas. 
Questão 4 
A linguagem C oferece o recurso da prototipagem, permitindo escrever funções depois da função main(). 
Assinale a alternativa correta referente ao que acontece quando definimos um protótipo de função: 
a. É criada uma cópia reduzida da função, antes da chamada da função main(). 
b. A linguagem trata a função prototipada como desconhecida. 
c. O compilador trata a função prototipada como externa. 
d. O protótipo da função é executado no lugar da função main(). 
e. O compilador é informado de que as funções prototipadas estão localizadas após a função main(). 
Feedback 
A resposta correta é: O compilador é informado de que as funções prototipadas estão localizadas após a 
função main(). 
Questão 5 
A programação estruturada consiste na utilização de técnicas que decompõem a solução de um problema em 
“blocos” que interagem com um bloco principal. Assinale a alternativa referente ao motivo correto da 
linguagem C não ser tecnicamente estruturada em blocos: 
a. Não suporta passagem de parâmetros usando ponteiros de estruturas e uniões. 
b. Não permite que a função main() seja a primeira escrita no programa. 
c. Não suporta passagem de parâmetros usando ponteiros de tipos de dados definidos pelo usuário. 
d. Não permite definir uma função dentro de outra função. 
e. Não permite recursividade. 
Feedback 
A resposta correta é: Não permite definir uma função dentro de outra função. 
Questão 6 
O operador unário sizeof obtém o tamanho em bytes de uma variável ou especificador de tipo de dado. Dado 
o seguinte programa em C, assinale a alternativa correta: 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
 
int somaAleatorios(int tamanho) { 
 int numeros[tamanho], i, soma = 0; 
 for (i = 0; i < tamanho; i++) { 
 numeros[i] = rand() % 99; 
 printf("numeros[%d] = %d\n", i, numeros[i]); 
 soma += numeros[i]; 
 } 
return soma; 
} 
 
int main(void) { 
 int valor, tamanho = sizeof(int); 
 srand(time(NULL)); // Geração aleatória de números 
 valor = somaAleatorios(tamanho); 
 printf("Valor da soma aleatoria: %d\n", valor); 
 return 0; 
} 
a. A variável soma poderia ser declarada sem atribuição de valor: neste caso o compilador assumiria o 
valor 0 automaticamente para ela por ser do tipo int. 
b. A variável tamanho está sendo passada por referência para a função somaAleatorios(). 
c. O programa resultará em um erro de execução por causa do NULL passado por parâmetro para a 
função time(). 
d. A condição de parada do for deixará de processar um elemento do vetor numeros. A comparação 
correta seria i &lt;= tamanho. 
e. O vetor números poderá ter tamanho variado de acordo com a máquina e o sistema operacional onde 
o programa está sendo executado. 
Feedback 
A resposta correta é: O vetor números poderá ter tamanho variado de acordo com a máquina e o sistema 
operacional onde o programa está sendo executado. 
Questão 7 
A linguagem C permite que seus programas sejam modularizados, por meio do uso de funções, ou seja, a 
divisão do processamento em blocos de tarefas específicas. As funções geralmente retornam um valor, de 
acordo com o tipo com que ela foi declarada. Seguem algumas afirmações sobre funções em C: 
I. As funções podem conter variáveis particulares a ela e pode também chamar outras funções. 
II. Uma função pode não precisar retornar valor, bastando, para isso, declará-la com void. 
III. Parâmetros, se existirem, devem ser passados e recebidos entre os parênteses da função. 
IV. O comando return é utilizado para retornar um valor diferente do que foi declarado para a função. 
Estão corretas: 
a. III apenas. 
b. I e II apenas. 
c. III e IV apenas. 
d. I apenas. 
e. I, II e III apenas. 
Feedback 
A resposta correta é: I, II e III apenas. 
Questão 8 
Ponteiros são variáveis que armazenam um endereço de memória, geralmente a posição de outra variável da 
memória; por isso o ponteiro “aponta” para outra variável (SCHILDT, 1996). Assinale a alternativa correta 
referente à declaração de um ponteiro para caractere: 
a. char_ptc ptc; 
b. char *ptc; 
c. &c; 
d. *char ptc; 
e. *ptc; 
Feedback 
A resposta correta é: char *ptc; 
Questão 9 
O processo de passagem de parâmetros permite estabelecer uma linha de comunicação entre os conteúdos 
dos trechos de sub-rotinas e dos trechos de programa que chamam essas sub-rotinas. Dado o seguinte 
trecho de código em C, assinale a alternativa correta: 
 
void imprimeCabecalho(void) { 
 ... 
} 
void calcula(void) { 
int soma; 
 ... 
 imprimeCabecalho(); 
} 
a. O escopo da variável soma é contido pela função imprimeCabecalho(). 
b. O escopo e o tempo de vida da variável soma são iguais e contidos pela função imprimeCabecalho(). 
c. O escopo da variável soma é dinâmico e se estende durante toda execução do programa. 
d. O escopo da variável soma se estende da função calcula() para a função imprimeCabecalho(). 
e. O tempo de vida da variável soma estende-se durante o tempo em que a função imprimeCabecalho() é 
executada. 
Feedback 
A resposta correta é: O tempo de vida da variável soma estende-se durante o tempo em que a função 
imprimeCabecalho() é executada.. 
Questão 10 
Ponteiros são variáveis que armazenam um endereço de memória, geralmente a posição de outra variável da 
memória; por isso o ponteiro “aponta” para outra variável (SCHILDT, 1996). Dado o seguinte trecho de código 
em C, assinale a alternativa correta: 
 
#include <stdio.h> 
int main(void) { 
 int c, *x1, *x2; x1 = &c; 
 x2 = x1; 
 printf("%p %p\n", x1, x2); 
 return 0; 
} 
a. A sua execução apresentará dois valores iguais. 
b. A sua execução não apresentará mensagens ou resultados. 
c.O código possui erros léxicos e sintáticos. 
d. Sua execução apresentará uma mensagem de erro. 
e. A sua execução apresentará na tela o resultado: “%p %p\n x1 x2”. 
Feedback 
A resposta correta é: A sua execução apresentará dois valores iguais.

Continue navegando

Outros materiais