Prévia do material em texto
03/12/2023 09:35:19 1/4
REVISÃO DE SIMULADO
Nome:
LUCAS DA SILVA MACHADO
Disciplina:
Linguagem de Programação I
Respostas corretas são marcadas em amarelo X Respostas marcardas por você.
Questão
001 Por meio da passagem de parâmetro por referência, uma função torna-se capaz de
retornar valores além do próprio retorno padrão da função. O trecho de código abaixo
implementa a função soma_ao_dobro que retorna em sua saída padrão a soma entre
dois números inteiros. Mas, adicionalmente, a função também utiliza a passagem de
parâmetro por referência para retornar o dobro dessa soma.
int soma_ao_dobro(int a, int b, _______)
{
int soma = a + b;
int dobro = soma * 2;
*c = dobro;
return a + b;
}
int main()
{
int x = 10;
int y = 15;
int w;
int z;
z = soma_ao_dobro(x,y,&w);
}
Dito isso e considerando o código acima, o que deve ser preenchido na lacuna dos
parâmetros de entrada da função soma_ao_dobro para que a variável w, no programa
principal, receba o dobro da soma entre x e y:
A) int c
B) int w
C) int *w
D) int *b
X E) int *c
Questão
002 Em geral, uma função é utilizada para realizar um certo processamento em um conjunto
de dados de entrada a fim de produzir um determinado valor de saída. Na prática,
porém, as linguagens de programação permitem definir funções que não recebem
nenhum parâmetro de entrada e tampouco fornecem um valor de retorno. Em C, por
exemplo, a definição dessa função poderia ser feita como mostrado abaixo. O tipo de
dado void é utilizado em C para denotar que uma variável ou função é vazia, ou seja,
não armazena (ou retorna - no caso das funções) nenhuma informação.
void funcao()
{
/*bloco de código*/
}
Levando em conta as afirmações acima, é correto afirmar que:
A) no contexto de linguagens de programação, uma função que não retorna nenhum valor
e que não recebe nenhum parâmetro de entrada, não é, de fato, uma função.
X B) uma função desse tipo, embora não retorne nenhum valor, pode ser usada para
modularizar trechos de código extensos e frequentemente executados a fim de tornar o
código-fonte mais legível e organizado.
03/12/2023 09:35:19 2/4
C) há linguagens de programação que até permitem criar uma função que não retorne
nenhum valor, desde que recebam ao menos um parâmetro de entrada.
D) não há nenhuma linguagem de programação que permita criar uma função que não
retorne nenhum valor e que não receba nenhum parâmetro de entrada.
E) uma função desse tipo não tem nenhuma aplicabilidade prática, nem sequer para
organizar ou estruturar melhor o código-fonte.
Questão
003 Em programas reais, é comum implementar funções que evocam outras funções. O
mesmo pode ser feito diretamente em apenas uma linha de comando, em que o
resultado de uma função torna-se o parâmetro de entrada para uma outra. Dito isso,
qual seria o valor variável resultado ao final da execução desse código:
int soma(int n1, int n2)
{
return n1 + n2;
}
int main()
{
int a = 5;
int b = 2;
int resultado;
resultado = soma(soma(a,b),soma(a,b));
}
A) 10.
B) 5.
C) 8.
D) 7.
X E) 14.
Questão
004 Na linguagem C, os parâmetros de entrada em uma função são considerados
posicionais. Isso quer dizer que o valor indicado no primeiro argumento da função será
associado ao primeiro parâmetro de entrada, o segundo argumento, associado ao
segundo parâmetro de entrada, e assim sucessivamente. Considerando essa afirmação
e de acordo com o código fonte abaixo, é correto afirmar que a seguinte mensagem
será impressa na tela
A) 0 3 5.
B) 0 5 3.
C) 3 5 0.
D) 5 3 0.
X E) 5 0 3.
03/12/2023 09:35:19 3/4
Questão
005 A modularização é uma prática em que o programador pode estruturar melhor o seu
código-fonte a fim de se beneficiar de vantagens como organização e possibilidade de
reuso. Considerando o trecho de código em C abaixo, é correto afirmar que a função
soma
int soma (int a, int b)
{
return a + b;
}
X A) implementa a passagem de parâmetro por valor.
B) implementa a passagem de parâmetro por referência.
C) retorna um vetor de caracteres.
D) possui três parâmetros no total.
E) possui apenas um parâmetro de entrada.
Questão
006 No trecho de código abaixo, o retorno da função f é atribuído à variável x.
int main()
{
int m, n, x;
m = 9;
n = 5;
x = f(&m, n);
}
Considerando que a variável x receba o valor 4, é correto afirmar que o corpo da função
f é igual a:
A) int f(int *n1, int n2)
{
return (*n1 - *n2);
}
X B) int f(int *n1, int n2)
{
return (*n1 + n2);
}
C) int f(int *n1, int *n2)
{
return (*n1 + n2);
}
D) int f(int *n1, int *n2)
{
return (n1 - *n2);
}
E) int f(int *n1, int n2)
{
return (*n1 - n2);
}
Questão
007 A respeito dos códigos monolítico e modular, é correto afirmar que:
A) Ambos são formados por uma única estrutura ou parte de código.
B) Ambos são formados por módulos.
X C) O código modular é formado por módulos, enquanto que o monolítico é composto por
uma única estrutura ou parte de código.
03/12/2023 09:35:19 4/4
D) O código monolítico é formado por módulos, enquanto que o modular é composto por
uma única estrutura ou parte de código.
E) Não há diferença entre esses dois tipos de código.
Questão
008 O trecho de código abaixo implementa uma função na linguagem C que faz uso das
passagens de parâmetro por valor e por referência, respectivamente, para os
parâmetros x e y.
int fnc(int x, int *y)
{
return x + *y;
}
int main()
{
int a, b;
r = fnc(a, &b);
}
A respeito do código acima, é correto afirmar que:
X A) O valor da variável b será alterado após a chamada da função fnc.
B) O valor da variável a será alterado após a chamada da função fnc.
C) A variável r irá receber o resultado da divisão de a pelo resultado da soma entre a e b.
D) A variável r irá receber o resultado da soma entre a e b.
E) A variável r irá receber o resultado da multiplicação de a pelo resultado da soma entre
a e b.