Logo Passei Direto
Buscar

Questionarios - PROGRAMAÇÃO ORIENTADA A OBJETOS I

User badge image
LeviBushido

em

Ferramentas de estudo

Questões resolvidas

Considere a seguinte estrutura de classes: a classe Postagem representa o caso geral, e as classes Carta, Telegrama e Encomenda representam classes especializadas que herdam da classe Postagem.
Assinale a alternativa correta:
Um método que receba como parâmetro um objeto da classe Postagem poderá receber também um objeto das classes Carta, Telegrama e Encomenda.
Um método que receba como parâmetro um objeto da classe Carta poderá receber também um objeto da classe Postagem.
Um método que receba como parâmetro um objeto da classe Postagem não poderá receber como parâmetro um objeto de qualquer outra classe.
Um método que receba como parâmetro um objeto da classe Encomenda também poderá receber um objeto da classe Carta e Telegrama.
Um método que receba um objeto da classe Telegrama também poderá receber um objeto de qualquer uma das classes do enunciado.
a.
b.
c.
d.
e.

Qual a novidade introduzida pelo paradigma estruturado que continua sendo adotada até hoje, mesmo quando utilizamos o paradigma orientado a objetos?
a. A proibição do uso de desvios incondicionais.
b. O uso de objetos.
c. O uso de classes.
d. O uso de polimorfismo.
e. O uso de herança.

Qual das alternativas abaixo não se aplica ao conceito de “encapsulamento”?
a. Ocultar o comportamento de um algoritmo.
b. Promover a reutilização de código.
c. Ocultar a estrutura interna de um objeto.
d. Garantir que um objeto modele apenas aspectos relacionados ao conceito que ele abstrai.
e. Garantir que nenhum conceito relacionado ao objeto seja modelado em algum outro objeto.

Qual é a motivação para o surgimento do paradigma orientado a objetos?
a. O reúso de código.
b. O tratamento simultâneo de dados e comportamentos.
c. O aumento do desempenho de sistemas computacionais.
d. A redução do custo de processadores e memórias, permitindo a criação de sistemas cada vez mais complexos.
e. O surgimento de ambientes operacionais gráficos.

Qual é a relação entre classe e objeto?
a. O objeto é uma instância de uma classe.
b. Uma classe é uma instância de um objeto.
c. Ambos são a mesma coisa.
d. A classe é o código-fonte e o objeto é o código compilado.
e. O objeto é o código-fonte e a classe é o código compilado.

Quando usamos as expressões “paradigma estruturado” e “paradigma orientado a objetos”, usamos o termo “paradigma” com qual significado?
a. Padrão.
b. Comportamento praticado de maneira automática.
c. Práticas de desenvolvimento que são ruins e, por isso, que devem ser abandonadas.
d. Linguagem de programação e análise de sistemas.
e. Metodologia de desenvolvimento de sistemas.

Sobre a agregação, podemos dizer:
a. É uma associação em que pode ser entendido o relacionamento entre “o todo e a parte”.
b. Com a agregação podemos realizar a reutilização de código.
c. É a maneira com que se realiza a herança entre classes.
d. É um relacionamento entre classes que promove maior eficiência, reduzindo o uso de memória ocupada pelos objetos.
e. É como a orientação a objetos associa dados e comportamentos no objeto.

Sobre a associação, podemos dizer:
a. É uma modalidade de polimorfismo.
b. Com a associação podemos realizar a reutilização de código.
c. É a maneira com que se realiza a herança entre classes.
d. É uma maneira de se relacionar classes entre si.
e. É como a orientação a objetos associa dados e comportamentos no objeto.

Sobre a generalização, podemos dizer:
a. É uma associação em que é possível reconhecer o relacionamento entre “oculto e visível”.
b. É uma associação em que é possível reconhecer o relacionamento entre “classe e objeto”.
c. É a manifestação do polimorfismo entre classes.
d. É a maneira como a orientação a objetos relaciona dados e comportamentos no objeto.
e. É a maneira com que se podem definir atributos e métodos comuns a várias classes.

Sobre polimorfismo, é errado afirmar que:
a. Ajuda a economizar memória e aumentar a velocidade de processamento.
b. Melhora a clareza do código.
c. Ocorre quando se usa sobrecarga e sobrescrita.
d. Facilita o trabalho do programador.
e. Só existe no paradigma orientado a objetos.

Considere o trecho de código em C# abaixo e escolha a alternativa correta.
int numero = 10; Numero = 10;
a. O código armazena o valor 10 na variável numero duas vezes.
b. A primeira linha apresenta erro, pois não se pode atribuir um valor a uma variável na mesma linha em que ela é declarada.
c. A segunda linha é desnecessária, porque a variável já possui o valor 10 armazenado.
d. As atribuições estão erradas, pois o valor atribuído à variável deve estar entre aspas.
e. As variáveis numero e Numero são variáveis diferentes.

Observe o trecho de código abaixo e responda qual alternativa apresenta o conteúdo das variáveis primeiro e segundo, respectivamente:
a. True e True
b. True e False
c. False e True
d. False e False
e. O programa apresenta erros

Qual será a saída gerada pela execução do seguinte código?
int i; for (i = 0; i <10; i++) { if (i > 0) { continue; } } Console.WiriteLine("i = {0}", i);
a. i = 0
b. i = 1
c. i = 10
d. i = 11
e. O código apresenta erros

Observe o seguinte trecho de código e responda qual o valor será armazenado na variáel s:
string s = "Manipulação de strings" .Substring(7,4);
a. "Mani"
b. "ings"
c. "pulação"
d. "strings"
e. "ação"

Qual das alternativas abaixo apresenta uma declaração de variável correta?
a. double d = “10.5”;
b. string = “10.5”;
c. int a;
d. string s = 10.5;
e. a = int 10.5;

Quando compilamos um código fonte em alguma das linguagens do Framework.NET, nós obtemos:
a. Um programa compilado em linguagem de máquina que pode ser executado diretamente por um computador na plataforma PC/Windows;
b. Um programa compilado em linguagem de máquina que pode ser executado diretamente por um computador em diversas plataformas;
c. Um código compilado em Linguagem Intermediária que pode ser executado em qualquer plataforma que possua um Framework.NET instalado;
d. Um código interpretado diretamente a partir do código fonte pelo Framework.NET em plataforma PC/Windows;
e. Um código interpretado diretamente a partir do código fonte pelo Framework.NET em qualquer plataforma dotada de um Framework.NET disponível.

Considere o seguinte trecho de código e assinale a alternativa que traz a saída que é apresentada quando o programa é executado:
class Vegetal { public string Nome; } class Program { static void Main(string[] args) { Vegetal tomate = new Vegetal(); Vegetal banana = new Vegetal(); tomate.Nome = "Carmen"; banana.Nome = "Prata"; console.WiriteLine("{0}, {1}", tomate.Nome, banana.Nome); } }
a. Carmen, Prata.
b. Prata, Carmen.
c. Carmen, Carmen.
d. Prata, Prata.
e. O programa apresenta erros.

Observe o código abaixo e assinale a alternativa correta:
class Exemplo { public void Metodo() { } public Exemplo() { } }
a. A classe Exemplo apresenta um método e um atributo.
b. A classe Exemplo apresenta dois atributos.
c. A classe Exemplo apresenta um método construtor.
d. A classe Exemplo apresenta dois métodos construtores.
e. A classe Exemplo apresenta erros.

Assinale a alternativa que explica corretamente qual é o erro do código abaixo:
class Data { public int Dia; public int Mes; public int Ano; public Data(int Dia, int Mes, int Ano) { this.Dia = Dia; this.Mes = Mes; this.Ano = Ano; } } class Program { stattic void Main(string[]args) { Data d = new Data(); } }
a. A classe Data não possui um construtor.
b. A classe Data não possui um construtor, que não recebe nenhum parâmetro.
c. Os parâmetros do método construtor da classe Data entram em conflito com os atributos da classe Data, pois são idênticos.
d. Os parâmetros do método construtor da classe Data são ambíguos com relação aos atributos da classe Data, pois são idênticos.
e. O código não apresenta erros.

Observe o código abaixo e assinale a alternativa correta:
class Vegetal { public string Especie; } class Legume : Vegetal { public string Nome; { class Program { static void Main(string[]args) { Legume l = new Legume(); l.Especie = "Lactuca Sativa"; l.Nome = "Alface"; } } } }
a. O código não compila, pois o objeto l da classe Legume não possui um atributo chamado Especie.
b. O código não compila, pois o objeto l da classe Legume não possui um atributo chamado Nome.
c. O código não compila, pois a declaração da classe Vegetal está errada.
d. O código não compila, pois a declaração da classe Legume está errada.
e. O código compila sem erros.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

Questões resolvidas

Considere a seguinte estrutura de classes: a classe Postagem representa o caso geral, e as classes Carta, Telegrama e Encomenda representam classes especializadas que herdam da classe Postagem.
Assinale a alternativa correta:
Um método que receba como parâmetro um objeto da classe Postagem poderá receber também um objeto das classes Carta, Telegrama e Encomenda.
Um método que receba como parâmetro um objeto da classe Carta poderá receber também um objeto da classe Postagem.
Um método que receba como parâmetro um objeto da classe Postagem não poderá receber como parâmetro um objeto de qualquer outra classe.
Um método que receba como parâmetro um objeto da classe Encomenda também poderá receber um objeto da classe Carta e Telegrama.
Um método que receba um objeto da classe Telegrama também poderá receber um objeto de qualquer uma das classes do enunciado.
a.
b.
c.
d.
e.

Qual a novidade introduzida pelo paradigma estruturado que continua sendo adotada até hoje, mesmo quando utilizamos o paradigma orientado a objetos?
a. A proibição do uso de desvios incondicionais.
b. O uso de objetos.
c. O uso de classes.
d. O uso de polimorfismo.
e. O uso de herança.

Qual das alternativas abaixo não se aplica ao conceito de “encapsulamento”?
a. Ocultar o comportamento de um algoritmo.
b. Promover a reutilização de código.
c. Ocultar a estrutura interna de um objeto.
d. Garantir que um objeto modele apenas aspectos relacionados ao conceito que ele abstrai.
e. Garantir que nenhum conceito relacionado ao objeto seja modelado em algum outro objeto.

Qual é a motivação para o surgimento do paradigma orientado a objetos?
a. O reúso de código.
b. O tratamento simultâneo de dados e comportamentos.
c. O aumento do desempenho de sistemas computacionais.
d. A redução do custo de processadores e memórias, permitindo a criação de sistemas cada vez mais complexos.
e. O surgimento de ambientes operacionais gráficos.

Qual é a relação entre classe e objeto?
a. O objeto é uma instância de uma classe.
b. Uma classe é uma instância de um objeto.
c. Ambos são a mesma coisa.
d. A classe é o código-fonte e o objeto é o código compilado.
e. O objeto é o código-fonte e a classe é o código compilado.

Quando usamos as expressões “paradigma estruturado” e “paradigma orientado a objetos”, usamos o termo “paradigma” com qual significado?
a. Padrão.
b. Comportamento praticado de maneira automática.
c. Práticas de desenvolvimento que são ruins e, por isso, que devem ser abandonadas.
d. Linguagem de programação e análise de sistemas.
e. Metodologia de desenvolvimento de sistemas.

Sobre a agregação, podemos dizer:
a. É uma associação em que pode ser entendido o relacionamento entre “o todo e a parte”.
b. Com a agregação podemos realizar a reutilização de código.
c. É a maneira com que se realiza a herança entre classes.
d. É um relacionamento entre classes que promove maior eficiência, reduzindo o uso de memória ocupada pelos objetos.
e. É como a orientação a objetos associa dados e comportamentos no objeto.

Sobre a associação, podemos dizer:
a. É uma modalidade de polimorfismo.
b. Com a associação podemos realizar a reutilização de código.
c. É a maneira com que se realiza a herança entre classes.
d. É uma maneira de se relacionar classes entre si.
e. É como a orientação a objetos associa dados e comportamentos no objeto.

Sobre a generalização, podemos dizer:
a. É uma associação em que é possível reconhecer o relacionamento entre “oculto e visível”.
b. É uma associação em que é possível reconhecer o relacionamento entre “classe e objeto”.
c. É a manifestação do polimorfismo entre classes.
d. É a maneira como a orientação a objetos relaciona dados e comportamentos no objeto.
e. É a maneira com que se podem definir atributos e métodos comuns a várias classes.

Sobre polimorfismo, é errado afirmar que:
a. Ajuda a economizar memória e aumentar a velocidade de processamento.
b. Melhora a clareza do código.
c. Ocorre quando se usa sobrecarga e sobrescrita.
d. Facilita o trabalho do programador.
e. Só existe no paradigma orientado a objetos.

Considere o trecho de código em C# abaixo e escolha a alternativa correta.
int numero = 10; Numero = 10;
a. O código armazena o valor 10 na variável numero duas vezes.
b. A primeira linha apresenta erro, pois não se pode atribuir um valor a uma variável na mesma linha em que ela é declarada.
c. A segunda linha é desnecessária, porque a variável já possui o valor 10 armazenado.
d. As atribuições estão erradas, pois o valor atribuído à variável deve estar entre aspas.
e. As variáveis numero e Numero são variáveis diferentes.

Observe o trecho de código abaixo e responda qual alternativa apresenta o conteúdo das variáveis primeiro e segundo, respectivamente:
a. True e True
b. True e False
c. False e True
d. False e False
e. O programa apresenta erros

Qual será a saída gerada pela execução do seguinte código?
int i; for (i = 0; i <10; i++) { if (i > 0) { continue; } } Console.WiriteLine("i = {0}", i);
a. i = 0
b. i = 1
c. i = 10
d. i = 11
e. O código apresenta erros

Observe o seguinte trecho de código e responda qual o valor será armazenado na variáel s:
string s = "Manipulação de strings" .Substring(7,4);
a. "Mani"
b. "ings"
c. "pulação"
d. "strings"
e. "ação"

Qual das alternativas abaixo apresenta uma declaração de variável correta?
a. double d = “10.5”;
b. string = “10.5”;
c. int a;
d. string s = 10.5;
e. a = int 10.5;

Quando compilamos um código fonte em alguma das linguagens do Framework.NET, nós obtemos:
a. Um programa compilado em linguagem de máquina que pode ser executado diretamente por um computador na plataforma PC/Windows;
b. Um programa compilado em linguagem de máquina que pode ser executado diretamente por um computador em diversas plataformas;
c. Um código compilado em Linguagem Intermediária que pode ser executado em qualquer plataforma que possua um Framework.NET instalado;
d. Um código interpretado diretamente a partir do código fonte pelo Framework.NET em plataforma PC/Windows;
e. Um código interpretado diretamente a partir do código fonte pelo Framework.NET em qualquer plataforma dotada de um Framework.NET disponível.

Considere o seguinte trecho de código e assinale a alternativa que traz a saída que é apresentada quando o programa é executado:
class Vegetal { public string Nome; } class Program { static void Main(string[] args) { Vegetal tomate = new Vegetal(); Vegetal banana = new Vegetal(); tomate.Nome = "Carmen"; banana.Nome = "Prata"; console.WiriteLine("{0}, {1}", tomate.Nome, banana.Nome); } }
a. Carmen, Prata.
b. Prata, Carmen.
c. Carmen, Carmen.
d. Prata, Prata.
e. O programa apresenta erros.

Observe o código abaixo e assinale a alternativa correta:
class Exemplo { public void Metodo() { } public Exemplo() { } }
a. A classe Exemplo apresenta um método e um atributo.
b. A classe Exemplo apresenta dois atributos.
c. A classe Exemplo apresenta um método construtor.
d. A classe Exemplo apresenta dois métodos construtores.
e. A classe Exemplo apresenta erros.

Assinale a alternativa que explica corretamente qual é o erro do código abaixo:
class Data { public int Dia; public int Mes; public int Ano; public Data(int Dia, int Mes, int Ano) { this.Dia = Dia; this.Mes = Mes; this.Ano = Ano; } } class Program { stattic void Main(string[]args) { Data d = new Data(); } }
a. A classe Data não possui um construtor.
b. A classe Data não possui um construtor, que não recebe nenhum parâmetro.
c. Os parâmetros do método construtor da classe Data entram em conflito com os atributos da classe Data, pois são idênticos.
d. Os parâmetros do método construtor da classe Data são ambíguos com relação aos atributos da classe Data, pois são idênticos.
e. O código não apresenta erros.

Observe o código abaixo e assinale a alternativa correta:
class Vegetal { public string Especie; } class Legume : Vegetal { public string Nome; { class Program { static void Main(string[]args) { Legume l = new Legume(); l.Especie = "Lactuca Sativa"; l.Nome = "Alface"; } } } }
a. O código não compila, pois o objeto l da classe Legume não possui um atributo chamado Especie.
b. O código não compila, pois o objeto l da classe Legume não possui um atributo chamado Nome.
c. O código não compila, pois a declaração da classe Vegetal está errada.
d. O código não compila, pois a declaração da classe Legume está errada.
e. O código compila sem erros.

Prévia do material em texto

• Pergunta 1 
0,25 em 0,25 pontos 
 
Considere a seguinte estrutura de classes: a classe Postagem representa o caso geral, e as 
classes Carta, Telegrama e Encomenda representam classes especializadas que herdam da 
classe Postagem. 
Assinale a alternativa correta: 
 
Resposta 
Selecionada: 
a. 
Um método que receba como parâmetro um objeto da classe 
Postagem poderá receber também um objeto das classes Carta, 
Telegrama e Encomenda. 
Respostas: a. 
Um método que receba como parâmetro um objeto da classe 
Postagem poderá receber também um objeto das classes Carta, 
Telegrama e Encomenda. 
 
b. 
Um método que receba como parâmetro um objeto da classe Carta 
poderá receber também um objeto da classe Postagem. 
 
c. 
Um método que receba como parâmetro um objeto da classe 
Postagem não poderá receber como parâmetro um objeto de qualquer 
outra classe. 
 
d. 
Um método que receba como parâmetro um objeto da classe 
Encomenda também poderá receber um objeto da classe Carta e 
Telegrama. 
 
e. 
Um método que receba um objeto da classe Telegrama também 
poderá receber um objeto de qualquer uma das classes do enunciado. 
Comentário 
da resposta: 
Resposta: A 
Comentário: com o uso do polimorfismo de classes, também conhecido 
como polimorfismo de objetos ou polimorfismo dinâmico, podemos 
tratar um objeto de uma classe como se fosse de outra, desde que a outra 
classe seja uma superclasse. Em outras palavras, quando uma classe 
pode ser utilizada, qualquer uma de suas subclasses também poderá ser. 
No exemplo do exercício, se um objeto da classe Postagem pode ser 
usado, um objeto de quaisquer de suas subclasses também poderá ser. 
Afinal, uma Carta é um tipo de Postagem, assim como um Telegrama e 
uma Encomenda. 
 
 
• Pergunta 2 
0,25 em 0,25 pontos 
 
Qual a novidade introduzida pelo paradigma estruturado que continua sendo adotada até 
hoje, mesmo quando utilizamos o paradigma orientado a objetos? 
Resposta Selecionada: a. 
A proibição do uso de desvios incondicionais. 
Respostas: a. 
A proibição do uso de desvios incondicionais. 
 
 b. 
O uso de objetos. 
 c. 
O uso de classes. 
 d. 
O uso de polimorfismo. 
 e. 
O uso de herança. 
Comentário 
da resposta: 
Resposta: A 
Comentário: o paradigma estruturado surgiu quando se percebeu que o 
uso de desvios incondicionais costuma deixar o código de computador 
mais difícil de ser entendido, tornando sua manutenção demorada e 
cara. Por isso, mesmo no paradigma orientado a objetos, não se utilizam 
mais desvios incondicionais. 
 
• Pergunta 3 
0,25 em 0,25 pontos 
 
Qual das alternativas abaixo não se aplica ao conceito de “encapsulamento”? 
Resposta 
Selecionada: 
b. 
Promover a reutilização de código. 
Respostas: a. 
Ocultar o comportamento de um algoritmo. 
 b. 
Promover a reutilização de código. 
 c. 
Ocultar a estrutura interna de um objeto. 
 
d. 
Garantir que um objeto modele apenas aspectos relacionados ao 
conceito que ele abstrai. 
 
e. 
Garantir que nenhum conceito relacionado ao objeto seja modelado 
em algum outro objeto. 
Comentário 
da resposta: 
Resposta: B 
Comentário: o encapsulamento significa que devemos isolar, ocultar, 
encapsular (colocar uma cápsula em torno de) um conceito. Qualquer 
dado e comportamento relacionados ao conceito modelado pelo objeto 
devem estar no próprio objeto. Além disso, se um dado ou 
comportamento diz respeito ao conceito modelado pelo objeto, ele não 
deve aparecer em nenhum outro objeto. 
 
 
• Pergunta 4 
0,25 em 0,25 pontos 
 
Qual é a motivação para o surgimento do paradigma orientado a objetos? 
Resposta 
Selecionada: 
b. 
O tratamento simultâneo de dados e comportamentos. 
 
Respostas: a. 
O reúso de código. 
 b. 
O tratamento simultâneo de dados e comportamentos. 
 c. 
O aumento do desempenho de sistemas computacionais. 
 
d. 
A redução do custo de processadores e memórias, permitindo a 
criação de sistemas cada vez mais complexos. 
 e. 
O surgimento de ambientes operacionais gráficos. 
Comentário 
da resposta: 
Resposta B 
Comentário: a ideia básica por trás do paradigma orientado a objetos é o 
desenvolvimento simultâneo de dados e dos comportamentos que 
manipulam esses dados numa única entidade, o objeto. Assim, o objeto 
modela um conceito tanto com os dados relacionados a esse conceito 
quanto com os comportamentos que utilizam e manipulam esses 
mesmos dados. 
 
• Pergunta 5 
0,25 em 0,25 pontos 
 
Qual é a relação entre classe e objeto? 
Resposta Selecionada: a. 
O objeto é uma instância de uma classe. 
Respostas: a. 
O objeto é uma instância de uma classe. 
 b. 
Uma classe é uma instância de um objeto. 
 c. 
Ambos são a mesma coisa. 
 d. 
A classe é o código-fonte e o objeto é o código compilado. 
 e. 
O objeto é o código-fonte e a classe é o código compilado. 
Comentário 
da resposta: 
Resposta: A 
Comentário: a classe é um conjunto de objetos que compartilham da 
mesma estrutura interna. Se dois objetos pertencem à mesma classe, 
ambos possuem os mesmos métodos e atributos, ainda que os valores 
armazenados pelos atributos sejam diferentes. Quando escrevemos um 
código de computador, estamos descrevendo uma classe com a qual 
vários objetos podem ser instanciados a partir dessa mesma classe. 
 
 
• Pergunta 6 
0,25 em 0,25 pontos 
 
Quando usamos as expressões “paradigma estruturado” e “paradigma orientado a 
objetos”, usamos o termo “paradigma” com qual significado? 
Resposta 
Selecionada: 
d. 
Linguagem de programação e análise de sistemas. 
Respostas: a. 
Padrão. 
 b. 
Comportamento praticado de maneira automática. 
 
c. 
Práticas de desenvolvimento que são ruins e, por isso, que devem 
ser abandonadas. 
 d. 
Linguagem de programação e análise de sistemas. 
 e. 
Metodologia de desenvolvimento de sistemas. 
Comentário 
da resposta: 
Resposta: D 
Comentário: nesse sentido, o termo “paradigma” é utilizado para se 
referir tanto à análise de sistemas quanto às linguagens de programação. 
Temos análise estruturada de sistemas e linguagens estruturadas de 
programação, assim como temos análise de sistemas orientada a objetos 
e linguagens de programação orientadas a objetos. 
 
 
• Pergunta 7 
0,25 em 0,25 pontos 
 
Sobre a agregação, podemos dizer: 
Resposta 
Selecionada: 
a. 
É uma associação em que pode ser entendido o relacionamento entre 
“o todo e a parte”. 
Respostas: a. 
É uma associação em que pode ser entendido o relacionamento entre 
“o todo e a parte”. 
 b. 
Com a agregação podemos realizar a reutilização de código. 
 c. 
É a maneira com que se realiza a herança entre classes. 
 
d. 
É um relacionamento entre classes que promove maior eficiência, 
reduzindo o uso de memória ocupada pelos objetos. 
 
e. 
É como a orientação a objetos associa dados e comportamentos no 
objeto. 
Comentário da 
resposta: 
Resposta: A 
 
Comentário: quando temos duas classes que se relacionam com uma 
associação e, além disso, reconhecemos em uma delas o conceito de 
“todo” e na outra o conceito de “parte”, dizemos que a associação 
caracteriza uma agregação. 
 
• Pergunta 8 
0,25 em 0,25 pontos 
 
Sobre a associação, podemos dizer: 
Resposta 
Selecionada: 
d. 
É uma maneira de se relacionar classes entre si. 
Respostas: a. 
É uma modalidade de polimorfismo. 
 b. 
Com a associação podemos realizar a reutilização de código. 
 c. 
É a maneira com que se realiza a herança entre classes. 
 d. 
É uma maneira de se relacionar classes entre si. 
 
e. 
É como a orientação a objetos associa dados e comportamentos no 
objeto. 
Comentário 
da resposta: 
Resposta: D 
Comentário: cada classe deve abstrair um conceito por completo. Em 
geral, diferentes conceitos se relacionam no problema estudado. Por 
exemplo, o conceito de pessoa relaciona-se com o conceito de endereço e 
o de conta bancária. Assim, se esses conceitos forem abstraídos nas 
classes Pessoa, Endereço e Conta Corrente, essas classespodem se 
relacionar com o uso da associação. 
 
 
• Pergunta 9 
0,25 em 0,25 pontos 
 
Sobre a generalização, podemos dizer: 
Resposta 
Selecionada: 
e. 
É a maneira com que se podem definir atributos e métodos comuns 
a várias classes. 
Respostas: a. 
É uma associação em que é possível reconhecer o relacionamento 
entre “oculto e visível”. 
 
b. 
É uma associação em que é possível reconhecer o relacionamento 
entre “classe e objeto”. 
 c. 
É a manifestação do polimorfismo entre classes. 
 d. 
 
É a maneira como a orientação a objetos relaciona dados e 
comportamentos no objeto. 
 
e. 
É a maneira com que se podem definir atributos e métodos comuns 
a várias classes. 
Comentário 
da resposta: 
Resposta: E 
Comentário: quando identificamos que diversas classes possuem 
atributos e/ou métodos em comum, podemos defini-los uma única vez 
numa classe que representa o caso geral. Com o uso da generalização, 
podemos então definir as classes especializadas que irão herdar as 
características (atributos e métodos) da classe geral. Assim, definem-se 
os atributos e métodos das classes especializadas uma única vez, 
promovendo o reúso de código. 
 
• Pergunta 10 
0,25 em 0,25 pontos 
 
Sobre polimorfismo, é errado afirmar que: 
Resposta 
Selecionada: 
a. 
Ajuda a economizar memória e aumentar a velocidade de 
processamento. 
Respostas: a. 
Ajuda a economizar memória e aumentar a velocidade de 
processamento. 
 b. 
Melhora a clareza do código. 
 c. 
Ocorre quando se usa sobrecarga e sobrescrita. 
 d. 
Facilita o trabalho do programador. 
 e. 
Só existe no paradigma orientado a objetos. 
Comentário 
da resposta: 
Resposta: A 
Comentário: como praticamente todo recurso de orientação a objetos, o 
polimorfismo não ajuda a economizar memória ou poder de 
processamento. A orientação a objetos visa tornar o trabalho de 
desenvolvimento de sistemas mais fácil, permitindo que o desenvolvedor 
crie algoritmos cada vez mais complexos. Historicamente, esse 
paradigma passa a ser mais difundido conforme o custo de memória e de 
poder de processamento vai se tornando mais barato. 
 
 
 
 
• Pergunta 1 
0,25 em 0,25 pontos 
 
 
Considere o trecho de código em C# abaixo e escolha a alternativa correta. 
 
 int numero = 10; 
 Numero = 10; 
Resposta 
Selecionada: 
e. 
As variáveis numero e Numero são variáveis diferentes. 
Respostas: a. 
O código armazena o valor 10 na variável numero duas vezes. 
 
b. 
A primeira linha apresenta erro, pois não se pode atribuir um valor a 
uma variável na mesma linha em que ela é declarada. 
 
c. 
A segunda linha é desnecessária, porque a variável já possui o valor 
10 armazenado. 
 
d. 
As atribuições estão erradas, pois o valor atribuído à variável deve 
estar entre aspas. 
 e. 
As variáveis numero e Numero são variáveis diferentes. 
Comentário da 
resposta: 
Alternativa correta: E. 
Comentário: a linguagem C# diferencia letras maiúsculas de letras 
minúsculas. Por isso, as variáveis numero e Numero são variáveis 
diferentes. Se a variável Numero não tiver sido declarada 
anteriormente, o trecho de código apresenta erros. 
 
 
• Pergunta 2 
0,25 em 0,25 pontos 
 
Ao se executar o seguinte trecho de códifo, qual será a saída gerada no console ? 
 
 int a = 10; 
 int b = 6; 
 int c = 2; 
 int d = 3; 
 
 Console.WriteLine(a + b / c - d); 
 
Resposta Selecionada: a. 
10 
Respostas: a. 
 
10 
 b. 
5 
 c. 
3 
 d. 
6.5 
 e. 
11 
Comentário da 
resposta: 
Alternativa correta: A. 
Comentário: o C# realiza as operações aritméticas com a mesma 
precedência da aritmética convencional, ou seja, são realizadas 
primeiro as operações *, / e % para só depois executar as operações + e 
-. 
 
• Pergunta 3 
0,25 em 0,25 pontos 
 
Observe o trecho de código abaixo e responda qual alternativa apresenta o conteúdo das 
variáveis primeiro e segundo, respectivamente: 
 
bool segundo = 7 > 5 && 7 % 5 ==1; 
bool segundo = 4 * 3 != 10 && !(3 > 3); 
 
Resposta Selecionada: c. 
False e True 
Respostas: a. 
True e True 
 b. 
True e False 
 c. 
False e True 
 d. 
False e False 
 e. 
O programa apresenta erros 
Comentário da resposta: Alternativa correta: C. 
Comentário: 
primeiro = 7 > 5 && 7 % 5 == 1 
primeiro = True && 7 == 1 
 
primeiro = True && False 
primeiro = False 
segundo = 4 * 3 != 10 && !(3 > 3) 
segundo = 12 != 10 && !False 
segundo = True && True 
segundo = True 
 
• Pergunta 4 
0,25 em 0,25 pontos 
 
Ao se executar trecho de código, quantas vezes o método Console.WiriteLine() será 
executado ? 
 
 for (int i = 10; i != 0; -=2) 
 { 
 Console.WiriteLine("i = {0}", i); 
 } 
 
 
Resposta Selecionada: a. 
5 vezes. 
Respostas: a. 
5 vezes. 
 b. 
10 vezes. 
 c. 
Infinitas vezes. 
 d. 
Nenhuma vez. 
 e. 
O código apresenta erros. 
Comentário 
da resposta: 
Alternativa correta: A. Comentário: o primeiro parâmetro do loop for 
serve para definir e inicializar uma variável contadora, a qual pode 
iniciar com qualquer valor. O segundo parâmetro define um teste que 
deve resultar em True para que o loop continue iterando. O terceiro 
parâmetro é usado para se atualizar o valor da variável contadora, que 
neste caso é reduzida de dois em dois a cada iteração. Quando o valor de 
i torna-se igual a zero, o loop termina. A saída deste código é a seguinte: 
 
 
 
 
 
• Pergunta 5 
0,25 em 0,25 pontos 
 
Qual será a saída gerada pela execução do seguinte código? 
 
 int i; 
 for (i = 0; i <10; i++) 
 { 
 if (i > 0) 
 { 
 continue; 
 } 
 } 
 Console.WiriteLine("i = {0}", i); 
 
Resposta Selecionada: c. 
i = 10 
Respostas: a. 
i = 0 
 b. 
i = 1 
 c. 
i = 10 
 d. 
i = 11 
 e. 
O código apresenta erros 
Comentário 
da resposta: 
Alternativa correta: C. 
Comentário: o laço for será executado usando a variável i como 
contadora, iniciando com 0, sendo incrementada de um em um e será 
encerrada quando i = 10. Dentro do laço, o if será executado a partir da 
segunda iteração, quando i assume valores maiores que 0. Entretanto, o 
comando executado pelo if é o continue, que interrompe apenas a 
iteração corrente, mas não interrompe o laço que será executado até o 
final, quando i assume o valor 10. 
 
 
• Pergunta 6 
0,25 em 0,25 pontos 
 
Observe o seguinte trecho de código e responda qual o valor será armazenado na variáel 
s: 
 
 string s = "Manipulação de strings" .Substring(7,4); 
 
Resposta Selecionada: e. 
“ação” 
Respostas: a. 
“Mani” 
 b. 
“ings” 
 c. 
“pulação” 
 d. 
“strings” 
 e. 
“ação” 
Comentário 
da resposta: 
Alternativa correta: E. 
Comentário: o método Substring pode ser executado diretamente de 
uma constante string, como feito neste exemplo. O primeiro parâmetro 
do método indica o índice do primeiro caractere obtido, enquanto que o 
segundo parâmetro indica o comprimento do substring obtido. 
 
 
• Pergunta 7 
0,25 em 0,25 pontos 
 
Qual das alternativas abaixo apresenta uma declaração de variável correta? 
Resposta Selecionada: c. 
int a; 
Respostas: a. 
double d = “10.5”; 
 b. 
string = “10.5”; 
 c. 
int a; 
 d. 
string s = 10.5; 
 e. 
a = int 10.5; 
Comentário 
da resposta: 
Alternativa correta: C. 
Comentário: a declaração de variáveis deve sempre definir o tipo, um 
espaço e um nome para a variável. Na mesma linha da declaração pode-
se fazer uma atribuição de valor à variável declarada, tomando o cuidado 
de atribuir um valor no mesmo tipo da variável: números inteiros para 
int, com ponto flutuante para double e entre aspas para strings. 
 
 
• Pergunta 8 
0,25 em 0,25 pontos 
 
Qual das alternativas abaixo está correta com relação ao Framework.NET? 
Resposta 
Selecionada: 
b. 
É um conjunto de ferramentas necessárias para se executar qualquer 
sistema .NET 
Respostas: a. 
É o ambiente de desenvolvimento das linguagens C# e Visual Basic. 
 
b. 
É um conjunto de ferramentas necessárias parase executar qualquer 
sistema .NET 
 
c. 
Pode-se executar um sistema .NET sem ter o Framework .NET 
instalado, desde que haja alguma versão do Visual Studio instalada no 
computador. 
 
d. 
A Microsoft desenvolve o Framework.NET para Windows e também 
para diversas outras plataformas, como o Linux e o MacOS. 
 
e. 
Podemos compilar um programa .NET sem utilizar o Visual Studio. 
Para tanto, utilizamos o compilador de linha de comando disponível no 
Framework.NET. 
Comentário da 
resposta: 
Alternativa correta: B. 
Comentário: o Framework .NET é um software capaz de interpretar 
código compilado na plataforma .NET. Ele também oferece 
um runtime compartilhado para todos os programas .NET com 
bibliotecas compartilhadas. 
 
 
• Pergunta 9 
0,25 em 0,25 pontos 
 
Qual das linhas abaixo apresenta erros e não pode ser compilada? 
Resposta Selecionada: c. 
int i = Console.ReadLine(); 
Respostas: a. 
string s = Console.ReadLine(); 
 b. 
long l = Convert.ToInt64(Console.ReadLine()); 
 c. 
int i = Console.ReadLine(); 
 d. 
float f = Single.Parse(Console.ReadLine()); 
 e. 
double d = Convert.ToDouble(Console.ReadLine()); 
Comentário 
da resposta: 
Alternativa correta: C. 
 
Comentário: o método Console.ReadLine() lê a entrada do usuário e a 
retorna sempre como um string. Para que a leitura do usuário seja 
armazenada em uma variável numérica, é necessário convertê-la. Pode-
se fazer isto com os métodos de conversão da classe Convert ou com o 
método Parse das diversas classes invólucro que representam os tipos de 
dados (Int32, Single, Double, etc.). 
 
• Pergunta 10 
0,25 em 0,25 pontos 
 
Quando compilamos um código fonte em alguma das linguagens do Framework.NET, nós 
obtemos: 
Resposta 
Selecionada: 
c. 
Um código compilado em Linguagem Intermediária que pode ser 
executado em qualquer plataforma que possua um Framework.NET 
instalado; 
Respostas: a. 
Um programa compilado em linguagem de máquina que pode ser 
executado diretamente por um computador na plataforma 
PC/Windows; 
 
b. 
Um programa compilado em linguagem de máquina que pode ser 
executado diretamente por um computador em diversas plataformas; 
 
c. 
Um código compilado em Linguagem Intermediária que pode ser 
executado em qualquer plataforma que possua um Framework.NET 
instalado; 
 
d. 
Um código interpretado diretamente a partir do código fonte pelo 
Framework.NET em plataforma PC/Windows; 
 
e. 
Um código interpretado diretamente a partir do código fonte pelo 
Framework.NET em qualquer plataforma dotada de um 
Framework.NET disponível. 
Comentário 
da resposta: 
Alternativa correta: C. 
Comentário: o código fonte de qualquer linguagem da plataforma .NET é 
compilado para uma Linguagem Intermediária (IL em inglês). Este 
código intermediário pode ser interpretado pelo Framework .NET da 
Microsoft na plataforma PC/Windows ou pelo Framework .NET do 
projeto Mono em diversas outras plataformas, entre elas o Linux e o 
MacOS. 
 
 
 
• Pergunta 1 
0,25 em 0,25 pontos 
 
Considere o seguinte trecho de código e assinale a alternativa que traz a saída que é 
apresentada quando o programa é executado: 
 
 
class Vegetal 
{ 
 public string Nome; 
} 
 
class Program 
{ 
 static void Main(string[] args) 
 { 
 Vegetal tomate = new Vegetal(); 
 Vegetal banana = new Vegetal(); 
 
 tomate.Nome = "Carmen"; 
 banana.Nome = "Prata"; 
 console.WiriteLine("{0}, {1}", tomate.Nome, banana.Nome); 
 } 
} 
Resposta Selecionada: a. 
Carmen, Prata. 
Respostas: a. 
Carmen, Prata. 
 b. 
Prata, Carmen. 
 c. 
Carmen, Carmen. 
 d. 
Prata, Prata. 
 e. 
O programa apresenta erros. 
Comentário 
da resposta: 
Resposta: A 
Comentário: no método Main() são instanciados dois objetos da classe 
Vegetal – tomate e banana. O atributo Nome de tomate recebe o valor 
“Carmen” e o valor do atributo Nome de banana recebe “Prata”. A saída é 
gerada com os valores dos nomes de tomate e banana, nessa ordem. 
 
 
• Pergunta 2 
0,25 em 0,25 pontos 
 
Considere o seguinte trecho de código e assinale a alternativa que traz a saída que é 
apresentada quando o programa é executado: 
 
 
 
class Vegetal 
{ 
 
 public string Nome; 
} 
 
class Program 
{ 
 static void Main(string[] args) 
 { 
 Vegetal tomate = new Vegetal(); 
 Vegetal banana = tomate(); 
 
 tomate.Nome = "Carmen"; 
 banana.Nome = "Prata"; 
 console.WiriteLine("{0}, {1}", tomate.Nome, banana.Nome); 
 } 
} 
Resposta Selecionada: d. 
Prata, Prata. 
Respostas: a. 
Carmen, Prata. 
 b. 
Prata, Carmen. 
 c. 
Carmen, Carmen. 
 d. 
Prata, Prata. 
 e. 
O programa apresenta erros. 
Comentário 
da resposta: 
Resposta: D 
Comentário: no método Main() é criada a referência tomate para uma 
nova instância da classe Vegetal. A seguir, na linha 18, é criada uma nova 
referência, banana, para a mesma instância referenciada por tomate. 
Ambas as referências apontam para o mesmo objeto na memória. Assim, 
quando a linha 20 atribui o valor “Carmen” ao atributo Nome de um dos 
objetos, ambos são atribuídos, porque na verdade só há um objeto na 
memória. Na linha 21 o mesmo ocorre: quando o programa atribui o 
valor “Prata” ao nome de banana, o Nome de tomate também é atribuído, 
porque ambos são o mesmo objeto. 
 
 
• Pergunta 3 
0,25 em 0,25 pontos 
 
Observe o código abaixo e assinale a alternativa correta: 
 
class Exemplo 
{ 
 public void Metodo() 
 { 
 
 
 } 
 public Exemplo() 
 { 
 
 } 
} 
 
Resposta Selecionada: c. 
A classe Exemplo apresenta um método construtor. 
Respostas: a. 
A classe Exemplo apresenta um método e um atributo. 
 b. 
A classe Exemplo apresenta dois atributos. 
 c. 
A classe Exemplo apresenta um método construtor. 
 d. 
A classe Exemplo apresenta dois métodos construtores. 
 e. 
A classe Exemplo apresenta erros. 
Comentário da 
resposta: 
Resposta: C 
Comentário: a classe Exemplo apresenta dois métodos, sendo um deles 
um método construtor. O método construtor pode ser identificado por 
não apresentar tipo de retorno (nem mesmo void) e ter o mesmo nome 
da classe. 
 
 
• Pergunta 4 
0,25 em 0,25 pontos 
 
Assinale a alternativa que explica corretamente qual é o erro do código abaixo: 
class Data 
{ 
 public int Dia; 
 public int Mes; 
 public int Ano; 
 
 public Data(int Dia, int Mes, int Ano) 
 
 { 
 this.Dia = Dia; 
 this.Mes = Mes; 
 this.Ano = Ano; 
 } 
} 
 
class Program 
 
{ 
 stattic void Main(string[]args) 
 { 
 Data d = new Data(); 
 } 
} 
Resposta 
Selecionada: 
b. 
A classe Data não possui um construtor, que não recebe nenhum 
parâmetro. 
Respostas: a. 
A classe Data não possui um construtor. 
 
b. 
A classe Data não possui um construtor, que não recebe nenhum 
parâmetro. 
 
c. 
Os parâmetros do método construtor da classe Data entram em 
conflito com os atributos da classe Data, pois são idênticos. 
 
d. 
Os parâmetros do método construtor da classe Data são ambíguos 
com relação aos atributos da classe Data, pois são idênticos. 
 e. 
O código não apresenta erros. 
Comentário 
da resposta: 
Resposta: B 
Comentário: a classe Data apresenta apenas um método construtor, que 
recebe como parâmetros três parâmetros int. Assim, quando um objeto 
dessa classe é instanciado, como ocorre no método Main(), o construtor 
deve ser invocado, passando-se três parâmetros do tipo int. 
 
 
• Pergunta 5 
0,25 em 0,25 pontos 
 
Observe o código abaixo e assinale a alternativa correta: 
 
class Vegetal 
{ 
 public string Especie; 
} 
 
class Legume : Vegetal 
{ 
 public string Nome; 
 { 
 class Program 
 { 
 static void Main(string[]args) 
 Legume l = new Legume(); 
 l.Especie = "Lactuca Sativa"; 
 
 l.Nome ="Alface"; 
 } 
 } 
} 
 
Resposta 
Selecionada: 
e. 
O código compila sem erros. 
Respostas: a. 
O código não compila, pois o objeto l da classe Legume não possui 
um atributo chamado Especie. 
 
b. 
O código não compila, pois o objeto l da classe Legume não possui 
um atributo chamado Nome. 
 
c. 
O código não compila, pois a declaração da classe Vegetal está 
errada. 
 
d. 
O código não compila, pois a declaração da classe Legume está 
errada. 
 e. 
O código compila sem erros. 
Comentário 
da resposta: 
Resposta: E 
Comentário: a classe Legume é uma especialização da classe Vegetal, o 
que é evidenciado pela sua declaração (class Legume : Vegetal). Por isso, 
o atributo Especie é herdado pela classe Legume e não precisa (nem 
deve) ser declarado novamente. Dessa forma, a classe Legume, de fato, 
possui dois atributos: Especie e Nome. 
 
 
• Pergunta 6 
0,25 em 0,25 pontos 
 
Considere o seguinte trecho de código e assinale a alternativa correta: 
 
class Vegetal 
{ 
 public string Especie; 
} 
 
class Legume : Vegetal 
{ 
 public string Nome; 
} 
 
class Program 
{ 
 static void Main(string[]args) 
 { 
 
 Vegetal v = new Legume(); 
 } 
 
} 
 
Resposta Selecionada: a. 
O código é um exemplo de polimorfismo. 
Respostas: a. 
O código é um exemplo de polimorfismo. 
 b. 
O código é um exemplo de sobrecarga. 
 c. 
O código é um exemplo de sobrescrita. 
 d. 
O código é um exemplo de delegação. 
 e. 
O código apresenta erros. 
Comentário 
da resposta: 
Resposta: A 
Comentário: no método Main() é declarada uma variável “v” do tipo 
Vegetal, mas essa variável recebe uma instância da classe Legume. Como 
Legume é uma especialização, um tipo de Vegetal, então ele pode ser 
utilizado em qualquer lugar onde um Vegetal pode ser utilizado. Em 
outras palavras, se um Vegetal “entra”, um Legume, que é um tipo de 
Vegetal, também “entra”. Se a variável “v” espera um Vegetal, ela pode 
armazenar um Legume, que é um tipo de Vegetal. 
 
 
• Pergunta 7 
0,25 em 0,25 pontos 
 
A abstração de conceitos do mundo real em classes e objetos é a principal motivação para 
a formalização do paradigma orientado a objetos. Com isso em mente, assinale a 
alternativa correta: 
 
Resposta 
Selecionada: 
d. 
Uma classe representa um conjunto de objetos que compartilham as 
mesmas características e comportamentos. 
Respostas: a. 
As classes modelam os comportamentos do conceito enquanto os 
objetos modelam as características do conceito. 
 b. 
Os atributos e métodos de um objeto são herdados de sua classe. 
 
c. 
Classes representam uma abstração estática enquanto objetos 
representam uma abstração dinâmica. 
 
d. 
Uma classe representa um conjunto de objetos que compartilham as 
mesmas características e comportamentos. 
 
 e. 
Uma classe é uma instância de um objeto. 
Comentário da 
resposta: 
Resposta D 
Comentário: uma classe define as características dos objetos 
instanciados por ela, seus atributos e métodos. Dessa forma, todos os 
objetos dessa classe terão as mesmas características (atributos) e 
comportamentos (métodos). 
 
• Pergunta 8 
0,25 em 0,25 pontos 
 
O que significa o modificador static? 
Resposta 
Selecionada: 
d. 
Quando aplicado a um atributo, indica que ele terá o mesmo valor 
para todas as instâncias da classe. 
Respostas: a. 
É um modificador aplicado a atributos, indicando que ele é uma 
constante e seu valor não pode ser alterado após ter sido inicializado. 
 
b. 
Quando aplicado a um construtor, indica que ele não pode ser 
sobrescrito. 
 
c. 
Quando aplicado a um método, indica que ele não pode ser 
sobrecarregado. 
 
d. 
Quando aplicado a um atributo, indica que ele terá o mesmo valor 
para todas as instâncias da classe. 
 
e. 
Quando aplicado a um método, indica que este é uma sobrescrita de 
um método de uma superclasse. 
Comentário 
da resposta: 
Resposta: D 
Comentário: o modificador static pode ser aplicado a métodos (exceto 
construtores) e a atributos. Quando isso é feito em um método, podemos 
usar tal método diretamente da classe, sem a necessidade de instanciar 
um objeto da classe. Quando static é aplicado a um atributo, este passa a 
ter o mesmo valor para todas as instâncias dessa classe. 
 
 
• Pergunta 9 
0,25 em 0,25 pontos 
 
O que significa “encapsular atributos”? 
Resposta 
Selecionada: 
e. 
Significa que os atributos são declarados como privados e seu acesso é 
feito por métodos que garantem a integridade dos dados. 
Respostas: a. 
 
Significa que os atributos são declarados como públicos para permitir 
que sejam acessados diretamente por outras partes do sistema, 
tornando o código mais eficiente. 
 
b. 
Significa que os atributos de uma classe são inicializados pelo método 
construtor de modo que o objeto esteja pronto para ser utilizado logo 
após ser instanciado. 
 c. 
Significa que os atributos seguem o padrão de estilo “camel case”. 
 
d. 
Significa que os atributos pertencem à classe, não aos objetos 
instanciados por essa classe. 
 
e. 
Significa que os atributos são declarados como privados e seu acesso é 
feito por métodos que garantem a integridade dos dados. 
Comentário 
da resposta: 
Resposta: E 
Comentário: atributos públicos, por terem acesso livre por qualquer 
parte do código, podem receber valores incorretos. Por exemplo, mês 
com o valor 42, dia da semana com o valor “tomate”, e assim por diante. 
Para resolver esse problema, tornamos os atributos privados e seu 
acesso é fornecido exclusivamente por métodos acessores (métodos que 
dão acesso) – um método “get” que retorna o valor do atributo e um 
método “set” que define o valor do atributo, caso o valor atribuído seja 
correto. 
 
• Pergunta 10 
0,25 em 0,25 pontos 
 
Qual das linhas abaixo apresenta uma declaração correta de um método? 
Resposta Selecionada: a. 
void Metodo() 
Respostas: a. 
void Metodo() 
 b. 
int Metodo (int, string) 
 c. 
int retorno Metodo (int parametro) 
 d. 
Metodo (double parametro) 
 e. 
float Metodo (string parametro1 int parametro2) 
Comentário 
da resposta: 
Resposta: A 
Comentário: A declaração correta de um método é: [tipo de retorno] 
[nome do método] ([declaração de parâmetros]) O tipo de retorno deve 
ser um tipo com o qual se possa declarar qualquer variável. Caso o 
método não tenha nenhum retorno, deve-se utilizar a palavra void. O 
nome do método pode ser criado ao gosto do desenvolvedor, desde que 
 
respeite as regras de sobrecarga e sobrescrita. Os parênteses são 
obrigatórios, mas a declaração de parâmetros é opcional. Caso o método 
receba um parâmetro, ele deve ser declarado segundo as regras de 
declaração de variáveis, ou seja, [tipo] [nome do parâmetro]. Caso o 
método receba mais de um parâmetro, eles devem ser separados por 
vírgulas. 
 
 
• Pergunta 1 
0,25 em 0,25 pontos 
 
Observe o código a seguir. O que pode ser dito a respeito das classes Program e Console? 
 
class Program 
{ 
 static void Main(string[]args) 
 { 
 Console.WriteLine("Olá mundo!"); 
 } 
} 
 
Resposta 
Selecionada: 
a. 
A classe Program depende da classe Console. 
Respostas: a. 
A classe Program depende da classe Console. 
 b. 
A classe Program se associa à classe Console. 
 
c. 
Existe um relacionamento de generalização entre as classes Program 
e Console. 
 
d. 
A classe Program representa o todo e a classe Console representa a 
parte em um relacionamento de agregação. 
 
e. 
Não é possível saber qual a relação entre as duas classes sem ter 
acesso ao código fonte da classe Console. 
Comentário da 
resposta: 
Alternativa: A 
Comentário: quando uma classe utiliza outra, a primeira depende 
da segunda. 
 
 
• Pergunta 2 
0,25 em 0,25 pontos 
 
Considere o código a seguir e assinale qual será a saída no console resultante de sua 
execução: 
 
Resposta Selecionada: d. 
Ocorreu uma divisão porzero. 
Respostas: a. 
Erro de cast inválido. 
 b. 
Erro de conversão de tipos. 
 c. 
Erro de referência nula. 
 d. 
Ocorreu uma divisão por zero. 
 e. 
O programa não roda, pois apresenta erros. 
Comentário 
da resposta: 
Alternativa: D 
Comentário: o código consegue converter o string “0” mesmo estando 
armazenado em uma variável do tipo Object em um inteiro 0. A seguir 
divide 10 por 0, o que causa uma exceção de divisão por zero dentro do 
bloco try. Assim, a exceção é tratada pelo bloco catch que imprime a 
mensagem da alternativa no console. 
 
 
• Pergunta 3 
0,25 em 0,25 pontos 
 
Considere o código a seguir e assinale qual será a saída no console resultante de sua 
execução: 
static void Main(string[]args){ 
 try 
 { 
 Object texto = "0"; 
 int n = Convert.ToInt23(texto); 
 Console.WriteLine(10 / n); 
 } 
 catch (InvalidCastException) 
 { 
 Console.WriteLine("Erro de cast inválido."); 
 } 
 catch (FormatException) 
 { 
 Console.WriteLine("Erro de conversão de 
tipos."); 
 } 
 catch (NullReferenceException) 
 { 
 Console.WriteLine("Erro de referência 
nula."); 
 } 
 catch (DivideByZeroException) 
 { 
 Console.WriteLine("Ocorreu uma divisão por 
zero"); 
 } 
} 
 
 
Resposta Selecionada: a. 
Erro de cast inválido. 
Respostas: a. 
Erro de cast inválido. 
 b. 
Erro de conversão de tipos. 
 c. 
Erro de referência nula. 
 d. 
Ocorreu uma divisão por zero. 
 e. 
O programa não roda, pois apresenta erros. 
Comentário 
da resposta: 
Alternativa: A 
Comentário: o string “0” é armazenado na variável texto do tipo Object. 
Na linha seguinte, o código tenta fazer um cast da variável texto para int. 
Como a variável texto é do tipo Object e pode armazenar qualquer tipo 
de variável (inclusive int), o programa não apresenta erros de sintaxe e 
pode ser compilado. Entretanto, em execução, o cast não pode ser feito 
de um string para int, por isso ocorre uma exceção de cast inválido. 
 
 
• Pergunta 4 
0,25 em 0,25 pontos 
A classe Object não é: 
static void Main(string[]args){ 
 try 
 { 
 Object texto = "0"; 
 int n = Convert.ToInt23(texto); 
 Console.WriteLine(10 / n); 
 } 
 catch (InvalidCastException) 
 { 
 Console.WriteLine("Erro de cast inválido."); 
 } 
 catch (FormatException) 
 { 
 Console.WriteLine("Erro de conversão de 
tipos."); 
 } 
 catch (NullReferenceException) 
 { 
 Console.WriteLine("Erro de referência 
nula."); 
 } 
 catch (DivideByZeroException) 
 { 
 Console.WriteLine("Ocorreu uma divisão por 
zero"); 
 } 
} 
 
 
Resposta 
Selecionada: 
c. 
Uma classe onde é declarado o método Main(). 
Respostas: a. 
Uma classe da qual todas as classes herdam. 
 b. 
Uma classe que declara métodos úteis para todas as outras classes. 
 c. 
Uma classe onde é declarado o método Main(). 
 
d. 
Uma classe da qual podem ser criadas variáveis que podem 
armazenar objetos de qualquer classe. 
 e. 
Onde os métodos ToString() e Equals() são declarados. 
Comentário da 
resposta: 
Alternativa: C 
Comentário: o método Main() deve ser declarado em alguma classe 
criada pelo programador. A classe Object é parte do Framework .NET e 
não pode ser declarada novamente ou modificada. 
 
 
• Pergunta 5 
0,25 em 0,25 pontos 
 
O que é uma interface? 
Resposta 
Selecionada: 
c. 
Ela pode ser entendida como uma classe abstrata sem atributos e que 
defina apenas métodos abstratos. 
Respostas: a. 
É o mecanismo de comunicação do programa com o usuário. A 
interface pode ser por linha de texto (console) ou ser uma interface 
gráfica. 
 
b. 
É uma classe concreta que sobrescreve todos os métodos abstratos de 
sua superclasse. 
 
c. 
Ela pode ser entendida como uma classe abstrata sem atributos e que 
defina apenas métodos abstratos. 
 
d. 
Ela pode ser entendida como uma classe abstrata sem atributos e que 
defina apenas métodos concretos. 
 e. 
Ela define assinaturas de métodos com ou sem implementação. 
Comentário 
da resposta: 
Alternativa: C 
Comentário: uma interface é um conjunto de declarações de métodos, 
nenhum com implementação, que define um padrão para a declaração 
de classes. Ela se assemelha a uma classe abstrata que define apenas 
métodos abstratos. Em C#, interfaces não podem declarar atributos. 
 
 
• Pergunta 6 
0,25 em 0,25 pontos 
 
Se uma classe especializa (herda de) uma classe abstrata: 
Resposta 
Selecionada: 
d. 
Ela será concreta se sobrescrever todos os métodos abstratos da 
superclasse. 
Respostas: a. 
Ela será sempre abstrata. 
 b. 
Ela sempre será concreta. 
 
c. 
Ela será abstrata se sobrescrever todos os métodos abstratos da 
superclasse. 
 
d. 
Ela será concreta se sobrescrever todos os métodos abstratos da 
superclasse. 
 
e. 
Ela será concreta se sobrescrever ao menos um método abstrato 
da superclasse. 
Comentário da 
resposta: 
Alternativa: D 
Comentário: uma classe que especialize uma superclasse abstrata só 
será concreta se sobrescrever todos os métodos abstratos herdados 
da superclasse. 
 
 
• Pergunta 7 
0,25 em 0,25 pontos 
 
Sobre classes abstratas, assinale a alternativa correta. 
Resposta 
Selecionada: 
c. 
Uma classe abstrata pode declarar métodos concretos e abstratos. 
Respostas: a. 
Uma classe abstrata só pode herdar de outra classe abstrata. 
 
b. 
Uma classe abstrata pode ser instanciada em um objeto como uma 
classe concreta. 
 c. 
Uma classe abstrata pode declarar métodos concretos e abstratos. 
 d. 
Uma classe abstrata não pode declarar atributos. 
 
e. 
Uma classe abstrata não pode ser uma especialização de uma classe 
concreta. 
Comentário da 
resposta: 
Alternativa: C 
 
Comentário: uma classe abstrata deve declarar ao menos um método 
abstrato e pode declarar qualquer quantidade de métodos concretos. 
 
• Pergunta 8 
0,25 em 0,25 pontos 
 
Sobre o mecanismo de tratamento de exceções, podemos dizer: 
Resposta 
Selecionada: 
e. 
Pode tornar o programa mais tolerante a falhas. 
Respostas: a. 
É um mecanismo que ajuda a reduzir a quantidade de erros de 
sintaxe de um programa. 
 b. 
É um mecanismo que melhora a usabilidade de um programa. 
 c. 
Não consegue evitar a ocorrência de erros de tempo de execução. 
 d. 
Melhora o desempenho de um programa. 
 e. 
Pode tornar o programa mais tolerante a falhas. 
Comentário da 
resposta: 
Alternativa: E 
Comentário: o uso correto do tratamento de exceções pode fazer com 
que um programa consiga se recuperar de situações anômalas que, 
normalmente, fariam o programa ser interrompido com uma 
mensagem de erro. 
 
 
• Pergunta 9 
0,25 em 0,25 pontos 
 
Sobre o tratamento de exceções, podemos dizer: 
Resposta 
Selecionada: 
a. 
Com um bloco try, podemos tratar várias exceções, cada uma 
tratada em um bloco catch. 
Respostas: a. 
Com um bloco try, podemos tratar várias exceções, cada uma 
tratada em um bloco catch. 
 b. 
Para cada bloco catch, devemos ter um bloco try. 
 c. 
Para cada bloco try, só podemos ter um bloco catch. 
 d. 
Podemos usar o bloco try sem usar nenhum bloco catch. 
 e. 
Podemos usar o bloco catch sem usar nenhum bloco try. 
 
Comentário da 
resposta: 
Alternativa: A 
Comentário: no bloco try, escrevemos o código que pode gerar uma 
exceção. Caso possam ocorrer mais de um tipo de exceção, elas podem 
ser tratadas separadamente, cada uma em seu bloco catch. Para cada 
bloco try deve haver ao menos um bloco catch. 
 
• Pergunta 10 
0,25 em 0,25 pontos 
 
Uma classe não pode: 
Resposta Selecionada: a. 
Herdar de uma classe abstrata e uma classe concreta. 
Respostas: a. 
Herdar de uma classe abstrata e uma classe concreta. 
 b. 
Herdar de uma classe abstrata. 
 c. 
Realizar uma interface. 
 d. 
Herdar de uma classe e realizar duas interfaces.e. 
Herdar de uma classe concreta e realizar uma interface. 
Comentário da 
resposta: 
Alternativa: A 
Comentário: uma classe só pode herdar de uma classe, mas pode 
realizar quantas interfaces forem desejadas. 
 
 
 
 
• Pergunta 1 
0 em 0 pontos 
 
Qual a mudança proposta pelo paradigma orientado a objetos que o torna diferente do 
paradigma estruturado? 
Resposta 
Selecionada: 
c. 
O tratamento simultâneo de dados e comportamentos que modificam 
estes dados. 
Respostas: a. 
A prática do reúso (reaproveitamento) de código, diminuindo o 
retrabalho. 
 
b. 
Uso de desvios incondicionais, que permitem a elaboração de código 
mais fácil de ser entendido, tornando sua manutenção mais simples. 
 c. 
 
O tratamento simultâneo de dados e comportamentos que modificam 
estes dados. 
 d. 
Uso de herança entre classes. 
 e. 
Uso de polimorfismo. 
Comentário da resposta: Resposta: C. 
 
• Pergunta 2 
0 em 0 pontos 
 
Qual das alternativas abaixo não se aplica ao conceito de herança em orientação a 
objetos? 
Resposta 
Selecionada: 
a. 
O uso de herança torna o programa mais eficiente no uso de 
memória e processamento. 
Respostas: a. 
O uso de herança torna o programa mais eficiente no uso de 
memória e processamento. 
 b. 
O uso de herança incentiva a prática do reúso. 
 c. 
O uso de herança torna o código mais fácil de ser entendido. 
 d. 
O uso de herança reduz o custo de manutenção do código. 
 e. 
O uso de herança só é possível em linguagens orientadas a objetos. 
Comentário da resposta: Resposta: A. 
 
 
• Pergunta 3 
0 em 0 pontos 
 
Qual das seguintes afirmações é falsa? 
Resposta 
Selecionada: 
c. 
Classes não podem se relacionar com outras classes, afinal, cada 
classe abstrai um único conceito. 
Respostas: a. 
Objeto é uma instância de uma classe. 
 
b. 
Objetos reúnem dados e comportamentos relacionados com um 
único conceito. 
 
c. 
Classes não podem se relacionar com outras classes, afinal, cada 
classe abstrai um único conceito. 
 d. 
 
O uso de polimorfismo costuma tornar o código mais fácil de ser 
entendido. 
 
e. 
O uso de polimorfismo pode reduzir a quantidade de linhas do 
código. 
Comentário da resposta: Resposta: C. 
 
• Pergunta 4 
0 em 0 pontos 
 
Se estivermos modelando uma classe para representar um automóvel de passeio, qual dos 
seguintes atributos não seria apropriado? 
Resposta Selecionada: e. 
CNH Do Proprietário. 
Respostas: a. 
Placa. 
 b. 
Número De Chassis. 
 c. 
Nome Do Proprietário. 
 d. 
Quilometragem. 
 e. 
CNH Do Proprietário. 
Comentário da resposta: Resposta: E. 
 
 
 
• Pergunta 1 
0 em 0 pontos 
 
 
 
Resposta Selecionada: a. 
Nada. 
 
Respostas: a. 
Nada. 
 b. 
true. 
 c. 
false. 
 d. 
“O número é par e é menor que cinco”. 
 e. 
O programa apresenta erros. 
Comentário da resposta: Resposta: A. 
 
• Pergunta 2 
0 em 0 pontos 
 
Qual das alternativas abaixo pode ser atribuída como uma característica do Framework 
.NET? 
Resposta 
Selecionada: 
a. 
É um ambiente capaz de executar código semicompilado para a 
Linguagem Intermediária .NET. 
Respostas: a. 
É um ambiente capaz de executar código semicompilado para a 
Linguagem Intermediária .NET. 
 
b. 
Pode ser utilizado para criar sistemas usando as linguagens de 
programação .NET sem a necessidade de utilizar o Visual Studio. 
 
c. 
Podemos criar sistemas .NET sem o Framework se estivermos usando 
o Visual Studio como ambiente de desenvolvimento. 
 
d. 
Podemos executar sistemas .NET sem o Framework se o Visual Studio 
estiver disponível na máquina. 
 
e. 
O Framework .NET só está disponível em sistemas que utilizem o 
Windows como sistema operacional. 
Comentário da resposta: Resposta: A. 
 
 
• Pergunta 3 
0 em 0 pontos 
 
Qual das linhas abaixo faz uma declaração de variável de maneira correta? 
Resposta Selecionada: e. 
string a = “5”; 
Respostas: a. 
a = int 5; 
 
 b. 
float a = “5”; 
 c. 
double = 5; 
 d. 
short 5a; 
 e. 
string a = “5”; 
Comentário da resposta: Resposta: E. 
 
• Pergunta 4 
0 em 0 pontos 
 
Qual das seguintes declarações do laço for está incorreta? 
Resposta Selecionada: e. 
for (int i = 0; i +5; i += 5) 
Respostas: a. 
for (int i = 5; i > 0; i--) 
 b. 
for ( ; i > 5; i++) 
 c. 
for (int i = 0; ; i += 5) 
 d. 
for (int i = 0; i > 5; ) 
 e. 
for (int i = 0; i +5; i += 5) 
Comentário da resposta: Resposta: E.

Mais conteúdos dessa disciplina