Logo Passei Direto
Buscar

ALGORITMOS E PROGRAMAÇÃO APLICADA - Prova Unidade IV

User badge image
VAD

em

Ferramentas de estudo

Questões resolvidas

O escopo de uma variável está vinculado à sua visibilidade e ao seu tempo de vida no programa em relação às sub-rotinas que ele possui. Conceitualmente falando, as variáveis podem ter escopo global ou local, sendo que em C é possível declarar cinco classes de variáveis. Dentre elas, assinale a alternativa referente à classe em C que possui o menor escopo possível e não necessita de nenhuma palavra-chave adicional em sua declaração, apenas tipo variável: a. Estáticas. b. Globais. c. Externas. d. Registro. e. Locais.

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, assinale a alternativa INCORRETA:
int *pti; int i = 10; pti = &i;
a. *pti é igual a 10.
b. Ao se executar *pti = 20; i passará a ter o valor 20.
c. pti é igual a 10.
d. Ao se alterar o valor de i, *pti será modificado.
e. pti armazena o endereço de i.

Ponteiros também podem ser declarados com associação a uma estrutura ou união, além dos tipos de dados básicos da linguagem C. Isto posto, assinale a alternativa referente ao significado correto de estrutura->membro: a. *estrutura.membro b. *estrutura[membro] c. estrutura.(*membro) d. (*estrutura).membro e. *(estrutura.membro)

Suponha uma função recebe por parâmetro um vetor do tipo float contendo os salários dos funcionários de uma multinacional. Segundo os tipos de variáveis em C aprendidos em nossa apostila, assinale a alternativa referente à classe mais apropriada para declarar a variável que acumulará a soma dos salários ao percorrer este vetor em um laço de repetição:
a. Registro.
b. Local.
c. Estática.
d. Global.
e. Externa.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

O escopo de uma variável está vinculado à sua visibilidade e ao seu tempo de vida no programa em relação às sub-rotinas que ele possui. Conceitualmente falando, as variáveis podem ter escopo global ou local, sendo que em C é possível declarar cinco classes de variáveis. Dentre elas, assinale a alternativa referente à classe em C que possui o menor escopo possível e não necessita de nenhuma palavra-chave adicional em sua declaração, apenas tipo variável: a. Estáticas. b. Globais. c. Externas. d. Registro. e. Locais.

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, assinale a alternativa INCORRETA:
int *pti; int i = 10; pti = &i;
a. *pti é igual a 10.
b. Ao se executar *pti = 20; i passará a ter o valor 20.
c. pti é igual a 10.
d. Ao se alterar o valor de i, *pti será modificado.
e. pti armazena o endereço de i.

Ponteiros também podem ser declarados com associação a uma estrutura ou união, além dos tipos de dados básicos da linguagem C. Isto posto, assinale a alternativa referente ao significado correto de estrutura->membro: a. *estrutura.membro b. *estrutura[membro] c. estrutura.(*membro) d. (*estrutura).membro e. *(estrutura.membro)

Suponha uma função recebe por parâmetro um vetor do tipo float contendo os salários dos funcionários de uma multinacional. Segundo os tipos de variáveis em C aprendidos em nossa apostila, assinale a alternativa referente à classe mais apropriada para declarar a variável que acumulará a soma dos salários ao percorrer este vetor em um laço de repetição:
a. Registro.
b. Local.
c. Estática.
d. Global.
e. Externa.

Prévia do material em texto

4- (Fácil) Os parâmetros servem como uma forma do programa principal poder se comunicar com uma sub-rotina, e também de uma sub-rotina se comunicar com outra sub-rotina, por meio da passagem de valores de um para outro. Seguem algumas afirmações sobre os tipos de parâmetros e sua forma de passagem:I.	Os parâmetros formais são os valores passados do programa principal ou sub-rotina em execução para a sub-rotina sendo chamada.II.	Os parâmetros reais são declarados por meio de variáveis logo após a declaração do nome da sub-rotina.III.	A passagem de parâmetro por valor caracteriza-se pela atualização do valor do parâmetro real quando o mesmo é alterado na sub-rotina por meio do parâmetro formal.IV.	Na passagem de parâmetro por referência, a sub-rotina recebe o endereço de memória da variável passada pelo parâmetro real ao invés da cópia do seu valor.Estão corretas:
A)	II apenas.
B)	IV apenas.
C)	I e III apenas.
D)	I, II e III apenas.
E)	I, II e IV apenas.
ANSWER: B
5- (Fácil) Na linguagem C, os parâmetros podem ser passados por valor ou por referência. Enquanto que na passagem por valor, é passada uma cópia do conteúdo da variável, na passagem por referência, é passado o endereço de memória da variável, permitindo, assim, ter seu conteúdo alterado dentro da função chamada. Assinale a alternativa correspondente ao operador usado para obter o endereço de memória de uma variável em C:
A)	Operador *.
B)	Operador &.
C)	Operador %.
D)	Operador ||.
E)	Operador ?:.
ANSWER: B
6- (Fácil) A recursividade é um mecanismo que permite uma função ou procedimento chamar a si mesmo de forma direta ou indireta quantas vezes for necessário. Assinale a alternativa que corresponde ao princípio da recursividade:
A)	Usar menos recursos da máquina.
B)	Reproduzir conceitos exclusivos da matemática.
C)	Facilitar a depuração do algoritmo com menos instruções.
D)	Ser uma alternativa às estruturas de repetição quando estas não estão disponíveis.
E)	Diminuir o problema maior em um problema menor de forma sucessiva, até não ser mais necessário que a sub-rotina continue chamando a si própria.
ANSWER: E
7- (Fácil) O escopo de uma variável está vinculado à sua visibilidade e ao seu tempo de vida no programa em relação às sub-rotinas que ele possui. Conceitualmente falando, as variáveis podem ter escopo global ou local, sendo que em C é possível declarar cinco classes de variáveis. Dentre elas, assinale a alternativa referente à classe em C que possui o menor escopo possível e não necessita de nenhuma palavra-chave adicional em sua declaração, apenas tipo variável:
A)	Locais.
B)	Globais.
C)	Externas.
D)	Estáticas.
E)	Registro.
ANSWER: A
8- (Fácil) A linguagem C oferece cinco escopos diferentes para a declaração de variáveis, de acordo com a necessidade de uso em um programa. Isto posto, assinale a alternativa referente ao uso correto das variáveis externas:
A)	Referenciar e acessar uma variável local declarada dentro de uma função.
B)	Referenciar e acessar uma variável global declarada em outro arquivo de programa.
C)	Referenciar e acessar uma variável estática declarada em outro arquivo de programa.
D)	Referenciar e acessar uma variável contida em uma biblioteca linkada com o programa na geração do arquivo executável.
E)	Referenciar e acessar variáveis existentes em outras aplicações atualmente em execução na máquina.
ANSWER: B
9- (Fácil) Uma sub-rotina consiste em blocos de instruções que realizam tarefas específicas. Ascencio e Campos (2010), assim como Manzano e Oliveira (1997), afirmam que uma sub-rotina é um trecho menor de código, um algoritmo mais simples, que resolve um subproblema por meio de operações de entrada, processamento e saída. Assinale a alternativa correta referente à principal diferença entre os dois tipos de sub-rotinas existentes, procedimentos e funções:
A)	Funções podem ser chamadas várias vezes em um programa; procedimentos, apenas uma vez.
B)	Procedimentos permitem um grande número de instruções, ao passo que as funções permitem um número restrito.
C)	Procedimentos permitem passagem de parâmetros por valor, e as funções, por referência.
D)	Funções sempre retornam um valor para a sub-rotina que a chamou; procedimentos nunca retornam valor.
E)	Os procedimentos possuem escopo local e as funções possuem escopo global.
ANSWER: D
10- (Fácil) Recursividade é o nome dado à possibilidade de uma função ou procedimento chamar a si mesma, com a finalidade de dividir um problema em partes menores e assim por diante, até que esteja suficientemente simples a sua resolução.Contudo, esta técnica apresenta uma desvantagem. Assinale a alternativa correta referente a ela:
A)	Torna o código menos legível e conciso.
B)	Consome maior quantidade de memória.
C)	Faz gravação em disco, tornando o processo mais lento.
D)	Exige dispositivos adicionais, como scanner e leitor de radiofrequência.
E)	Não permite que nenhum outro processo do sistema operacional execute em paralelo durante a recursão.
ANSWER: B
14- (Médio) 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, assinale a alternativa INCORRETA: int *pti;int i = 10;pti = &i;
A)	pti armazena o endereço de i.
B)	pti é igual a 10.
C)	*pti é igual a 10.
D)	Ao se executar *pti = 20; i passará a ter o valor 20.
E)	Ao se alterar o valor de i, *pti será modificado.
ANSWER: B
15- (Médio) Ponteiros também podem ser declarados com associação a uma estrutura ou união, além dos tipos de dados básicos da linguagem C. Isto posto, assinale a alternativa referente ao significado correto de estrutura->membro:
A)	*estrutura.membro
B)	*(estrutura.membro)
C)	(*estruturA).membro
D)	estrutura.(*membro)
E)	*estrutura[membro]
ANSWER: C
16- (Médio) Suponha uma função recebe por parâmetro um vetor do tipo float contendo os salários dos funcionários de uma multinacional. Segundo os tipos de variáveis em C aprendidos em nossa apostila, assinale a alternativa referente à classe mais apropriada para declarar a variável que acumulará a soma dos salários ao percorrer este vetor em um laço de repetição:
A)	Local.
B)	Global.
C)	Externa.
D)	Estática.
E)	Registro.
ANSWER: E
17- (Médio) A recursividade é um mecanismo que permite a uma função ou procedimento chamar a si mesmo. Assinale a alternativa que corresponde ao número máximo de vezes que uma sub-rotina pode chamar a si mesma:
A)	1.
B)	2.
C)	3.
D)	10.
E)	Ilimitado.
ANSWER: E
18- (Médio) Vimos em nossa apostila que vetores são na verdade ponteiros, cujo valor aponta para o endereço de memória do primeiro elemento do arranjo. Para receber um vetor de inteiros por parâmetro em uma função, por exemplo, utilizamos int *vetor ou _________. Assinale a alternativa referente à instrução que preenche corretamente a lacuna:
A)	int vetor[]
B)	int *vetor[]
C)	int[] vetor
D)	int[] *vetor
E)	int vetor[*]
ANSWER: A
19- (Médio) Funções são sub-rotinas que possuem um conjunto de instruções a ser executado quando chamada. Semelhantes a procedimentos, possuem a diferença de retornarem um valor para o processamento principal ou para a sub-rotina que a chamou. Dada a seguinte função em C:int quadrado(int n) { if (na recursividade não se aplica:
A)	Expressão algébrica.
B)	Fatorial.
C)	Potenciação.
D)	Série de Fibonacci.
E)	Árvore genealógica.
ANSWER: A
25- (Difícil) 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:void quadrado(float *r, float *t);int main(voiD) { float a, b; printf("Entre com um numero complexo (2 inteiros): "); scanf("%d %d", &a, &B); quadrado(&a, &B); printf("O quadrado do numero eh %f + i%f\n", a, B);}Com base nesse código, é correto afirmar que as variáveis a e b:
A)	Podem ser modificadas pela função printf(), porque a passagem de parâmetros é por referência.
B)	São parâmetros formais na chamada da função quadrado() dentro da função main().
C)	Não podem ser modificadas pela função quadrado(), porque a passagem de parâmetros é por valor.
D)	Indicam, quando precedidas pelo caractere &, que os parâmetros podem ser modificados pelas funções scanf() e quadrado().
E)	São utilizadas como passagem de parâmetros por resultado na função printf().
ANSWER: D
26- (Difícil) Os parâmetros servem como um ponto de comunicação bidirecional entre uma sub-rotina e o programa principal ou outra sub-rotina, pois possibilitam a passagem de valores da rotina chamadora ou sub-rotina chamadora à sub-rotina sendo chamada. Dado o seguinte programa em C, assinale a alternativa correta:#include void obtemReajuste(float salario, float perC) { if (salario = 100.00 && salario = 200.00 && salario = 300.00 && salario = 400.00 && salario valor e l->valor para suas declarações global e local, respectivamente.
ANSWER: D
28- (Difícil) Procedimentos são um conjunto de instruções com nome, início e fim, podendo ser chamado de qualquer lugar do programa, seja no processamento principal ou dentro de outra sub-rotina. Dado o seguinte programa em C:#include void calcula_quadrado(voiD) { int numero; printf("Informe um numero.: "); scanf("%d", &numero); if (numero > 0) numero *= numero; printf("Quadrado do numero: %d\n", numero);}int main(voiD) { int i; for (i = 1; i int aux(int n, int C) { if (n % c == 0 && n != 2) return 0; else if (c > n / 2) return 1; else return aux(n,c + 1);}int ehPrimo(int x) { return aux(x, 2);}int main(voiD) { int numero; printf("Digite um numero: "); scanf("%d",&numero); if (ehPrimo(numero)) printf("O numero eh primo\n"); else printf("O numero nao eh primo\n"); return 0;}
A)	2 não é o único número par considerado primo; 0 também o é.
B)	Um valor muito alto informado em numero ocasiona um alto consumo de memória para determinar se é primo.
C)	Os números serão incrementados para verificação da divisão até chegar ao valor informado pelo usuário.
D)	O algoritmo resultará em erro, pois espera que o retorno da função ehPrimo() seja comparado com 1.
E)	A recursividade é utilizada para percorrer todos os números primos em busca de um divisor para o valor especificado.
ANSWER: B

Mais conteúdos dessa disciplina