Documente Academic
Documente Profesional
Documente Cultură
Número:
Pág.
1
de
8
Número:
1 Escolha
a
resposta
mais
correcta
para
cada
uma
das
questões
seguintes
e
registe-‐a
na
tabela
da
1ª
Parte
na
Página
1.
1.1
A
.NET
Framework
é
constituida
pelos
seguintes
grandes
componentes:
a) Framework
Class
Library
e
Base
Classe
Library.
b) Framework
Class
Library
e
um
compilador
para
código
intermédio.
c) Base
Class
Library
e
o
ambiente
de
desenvolvimento.
d) Um
compilador
para
código
máquina
e
a
Framework
Class
Library.
e) Common
Language
Runtime.
1.2 O
componente
da
.NET
que
permite
que
programas
escritos
em
linguagens
da
.NET
diferentes
possam
interagir
é
o/a:
a) Common
Language
Runtime
b) Common
Language
Specification.
c) Common
Type
System.
d) Core
Integration
Services
e) Intermediate
Language
Layer.
1.3 Em
C#
a) Uma
string
verbatim
interpreta
os
caracteres
de
escape.
b) Uma
classe
é
um
tipo
pré-‐definido.
c) Uma
variável
pode
ser
utilizada
sem
ter
sido
previamente
declarada.
d) Não
é
possível
declarar
uma
variável
sem
explicitar
o
seu
tipo.
e) Todos
os
programas
têm
um
método
Main
pelo
qual
começam
a
executar.
Pág.
2
de
8
Número:
1.6 Em
C#
uma
propriedade:
a) Têm
de
ter
ambos
os
get
e
set
accessors
sempre
definidos.
b) Têm
de
ter
o
get
accessor
sempre
definido.
c) Pode
retornar
mais
de
um
valor.
d) Permite
expor
o
estado
interno
e
externo
de
um
objecto
ou
classe.
e) Apenas
permite
expor
o
estado
interno
de
um
objecto
ou
classe.
1.7 Em
C#,
a
derivação
de
uma
classe
a
partir
de
outra
classe
designa-‐se
por:
a) Unboxing
b) Referência
(Reference)
c) Herança
(Inheritance)
d) Sobrecarregar
(Overloading)
e) Encapsulamento
(Encapsulation)
1.8 Em
C#:
a) Quando
um
construtor
com
parâmetros
é
especificado
o
construtor
por
omissão
não
é
disponibilizado
b) O
construtor
por
omissão
da
classe
base
executa
depois
do
construtor
da
classe
derivada
quando
criamos
um
novo
objecto
a
partir
da
classe
derivada.
c) Não
é
possível
chamar
o
construtor
da
classe
base
a
partir
da
classe
derivada.
d) Um
construtor
pode
ter
mais
de
um
parâmetro
de
retorno.
e) Todas
as
anteriores.
1.9 Em
C#:
a) A
palavra
ref
antes
do
parâmetro
de
um
método
especifica
que
esse
é
um
parâmetro
de
saída
de
valores.
b) A
palavra
out
antes
do
parâmetro
de
um
método
especifica
que
esse
é
um
parâmetro
de
entrada
de
valores.
c) A
palavra
ref
antes
do
parâmetro
de
um
método
especifica
que
esse
é
um
parâmetro
de
entrada
de
valores.
d) A
palavra
out
antes
do
parâmetro
de
um
método
especifica
que
esse
é
um
parâmetro
de
saída
de
valores.
e) A
palavra
out
antes
do
parâmetro
de
um
método
especifica
que
esse
é
um
parâmetro
de
entrada/saída
de
valores.
Pág.
3
de
8
Número:
1.10 Em
C#:
a) Um
membro
estático
(static)
pode
ser
utilizada
sem
ser
através
de
um
objecto.
b) A
única
situação
em
que
um
construtor
estático
é
executado
é
antes
da
primeira
instância
da
classe
ser
criada.
c) A
forma
de
chamar
um
construtor
na
mesma
classe
através
de
outro
construtor
é
utilizando
a
palavra
chave
base.
d) Não
é
possível
efectuar
overload
de
um
construtor.
e) Uma
variável
membro
(da
classe)
com
o
modificador
Readonly
pode
ser
alterada
em
qualquer
método
dessa
classe.
2
valores
2 O
código
seguinte
apresenta
um
pequeno
programa
que
utiliza
a
estrutura
switch
para
mostrar
disciplinas
de
um
determinado
ano
que
o
utilizador
escolhe.
Re-‐
implemente
o
código
mantendo
a
sua
funcionalidade
,
mas
utilizando
a
instrução
if
em
vez
da
instrução
switch
apresentada.
class Program {
static void Main(string[] args) {
Console.WriteLine("Introduza o ano da licenciatura (1, 2 ou 3):");
byte ano = Convert.ToByte(Console.ReadLine());
switch (ano) {
case 1:
Console.WriteLine("Linguagens de Programação");
Console.WriteLine("Matemática I");
break;
case 2:
Console.WriteLine("Bases de Dados I");
Console.WriteLine("Tecnologias de Internet");
break;
case 3:
Console.WriteLine("Bases de Dados II");
Console.WriteLine("Projecto");
break;
default:
Console.WriteLine("Não existe esse ano nesta licenciatura");
break;
}
}
}
Pág.
4
de
8
Número:
[2
+
1]
val.
3 Tenha
em
atenção
o
seguinte
programa
escrito
em
C#
para
calcular
o
número
de
anos
que
são
necessários
para
atingir
um
determinado
valor,
tendo
em
conta
um
determinado
saldo
inicial
e
uma
dada
taxa
de
juro
anual.
class Program {
static void Main(string[] args) {
double taxaJuro = 1.04,
saldo = 10000.00,
valorPretendido;
int numeroAnos;
3.1 Re-‐escreva
o
código
mantendo
a
sua
funcionalidade,
mas
utilizando
um
ciclo
while
ao
invés
do
ciclo
for
que
foi
utilizado
no
código
dado.
Pág.
5
de
8
Número:
[1,5
+
1
+
2
+
3]
4 Analise
o
código
em
C#
de
uma
aplicação
em
modo
consola,
apresentado
abaixo,
e
Val.
responda
às
perguntas
das
alíneas
seguintes.
class HomologarTaxi {
public Taxi() {
Matricula matricula = new Matricula();
numeroDoTaxi = numero = matricula.Atribuir(numero);
}
Pág.
6
de
8
Número:
4.1 Utilize
o
método
Main
para
instanciar
dois
objectos
do
tipo
Taxi.
Atribua
ao
primeiro
táxi
o
condutor
Zé
Manel
e
ao
segundo
o
condutor
Vítor
Milhas.
Escreva
no
output
da
consola
uma
mensagem
com
o
número
do
táxi
e
o
respectivo
condutor.
4.2 Indique
os
três
primeiros
números
da
sequência
de
números
atribuídos
aos
dois
táxis
criados
na
alínea
anterior
e
ainda
a
um
terceiro.
4.3 Substitua
os
métodos
Get...
e
Set...
por
propriedades
chamadas
NomeDoCondutor
e
NumeroDoCondutor.
Altere
o
código
que
escreveu
na
alínea
4.1,
em
conformidade.
Pág.
7
de
8
Número:
4.4 Re-‐escreva
o
código
da
classe
Táxi
de
forma
a
que
se
possam
criar
objectos
inicializando-‐os
na
altura
da
sua
criação
com
o
nome
do
condutor.
Prescinda
(apague),
da
propriedade
de
escrita
(apenas
esta),
NomeDoCondutor.
Não
duplique
código.
Altere
o
código
que
escreveu
para
o
método
Main
de
forma
a
reflectir
a
nova
implementação
da
classe
Táxi.
Pág. 8 de 8