Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

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

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

Aula 06
Desenvolvimento de Sistemas p/ Polícia
Federal (Perito - Área 3 - Tecnologia da
Informação) - 2020
Autores:
Diego Carvalho, Pedro Henrique
Chagas Freitas
Aula 06
21 de Abril de 2020
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 1 
156 
Sumário 
1 AJAX (ASYNCHRONOUS JAVASCRIPT AND XML) ............................................................................. 2 
1.1 CAIU NA PROVA – AJAX (DIVERSAS BANCAS) ......................................................................... 6 
2 PHP ................................................................................................................................................ 18 
2.1 INTRODUÇÃO ........................................................................................................................ 18 
2.2 EXERCÍCIOS COMENTADOS ................................................................................................... 36 
3 FRAMEWORK .NET ........................................................................................................................ 80 
3.1 INTRODUÇÃO ........................................................................................................................ 80 
3.2 VISUAL STUDIO...................................................................................................................... 80 
3.3 EXERCÍCIOS COMENTADOS: FRAMEWORK .NET .................................................................. 84 
4 ASP ................................................................................................................................................ 91 
4.1 ASP: TIPOS DE ARQUIVOS APLICAÇÃO ASP .NET MVC .......................................................... 91 
4.2 ASP: VIEW .............................................................................................................................. 92 
4.3 ASP: CONTROLLER ................................................................................................................. 93 
4.4 ASP: SESSÃO .......................................................................................................................... 94 
4.5 ASP: IDENTITY FRAMEWORK................................................................................................. 95 
4.6 ASP: ASP CLÁSSICO - O OBJETO REQUEST ............................................................................. 95 
4.7 CAIU NA PROVA .................................................................................................................... 96 
5 LISTAS DE EXERCÍCIOS ................................................................................................................. 108 
5.1 LISTA DE EXERCÍCIOS – AJAX (DIVERSAS BANCAS) .............................................................. 108 
5.2 LISTA DE QUESTÕES: JQUERY .............................................................................................. 115 
5.3 LISTA DE EXERCÍCIOS: PHP .................................................................................................. 122 
5.4 LISTA DE EXERCÍCIOS: FRAMEWORK .NET .......................................................................... 142 
5.5 LISTA DE EXERCÍCIOS – ASP ................................................................................................. 146 
6 GABARITOS .................................................................................................................................. 155 
6.1 GABARITO – AJAX (DIVERSAS BANCAS) .............................................................................. 155 
6.2 GABARITO: PHP ................................................................................................................... 155 
6.3 GABARITO: FRAMEWORK .NET ........................................................................................... 155 
6.4 ASP ...................................................................................................................................... 155 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 2 
156 
1 AJAX (ASYNCHRONOUS JAVASCRIPT AND XML) 
 
O desenvolvimento de aplicações desktop apresenta uma riqueza que, por muito 
tempo, pareceu fora do alcance das aplicações web, gerando um gap no nível de 
experiência do usuário com a aplicação. A riqueza de interação e o grau de 
responsividade das aplicações desktop davam um banho nas aplicações web, mas 
esse gap diminuiu com a criação do AJAX! 
 
Professor, AJAX é uma tecnologia? Não, é um conjunto de tecnologias, cada uma 
com seu propósito, que se juntam harmonicamente para melhorar a experiência do 
usuário, tornando páginas web mais ricas e interativas. Professor, que tecnologias 
são essas? Jessé Garret, criador do AJAX, afirmou em um artigo que ela incorpora 
as seguintes tecnologias: 
 
▪ Apresentação: utiliza XHTML e CSS; 
▪ Interação e Exibição dinâmicas: utiliza DOM; 
▪ Manipulação e Intercâmbio de Dados: utiliza XML e XSLT; 
▪ Recuperação Assíncrona de Dados: utiliza XMLHttpRequest; 
▪ e JavaScript para reunir todas essas tecnologias. 
 
Vamos ver rapidamente cada uma dessas tecnologias: 
 
 
TECNOLOGIAS 
 
DESCRIÇÃO 
 
XHTML Trata-se de uma linguagem de marcação que estende o HTML para criação de páginas 
web de forma mais acessível e interoperável; 
CSS Trata-se de uma linguagem de folhas de estilo utilizada para definir a apresentação de 
documentos escritos em uma linguagem de marcação; 
DOM Trata-se de um modelo de objetos de documentos para criação de interfaces dinâmicas 
e editáveis independentes de linguagem e plataforma; 
XML Trata-se de uma linguagem de marcação para propósitos especiais de intercâmbio e 
compartilhamento de dados; 
XSLT Trata-se de uma linguagem de marcação usada para transformar documentos XML em 
outros documentos ou objetos. 
XMLHttpRequest Trata-se de um objeto utilizado para enviar e receber requisições HTTP 
assincronamente. 
JavaScript 
 
Trata-se de uma linguagem de programação de scripts interpretada e client-side. 
 
Galera, um modelo de aplicação web clássica funciona mais ou menos assim: o 
usuário envia uma Requisição HTTP ao Servidor Web. Esse realiza algum tipo de 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 3 
156 
processamento (recupera dados, manipula números, etc) e retorna uma Página 
HTML ao cliente. Essa abordagem faz muito sentido, mas não oferece uma boa 
experiência ao usuário. 
 
 
O que faz o usuário enquanto o servidor está realizando seus processamentos? Nada, 
só espera! E, a cada nova tarefa, espera novamente. Quem aí gosta de esperar? 
Quem curte um belo chá-de-cadeira? Ninguém! Por que toda vez que o usuário 
requisitar algo é obrigatório que haja uma interrupção na interface? Ora, uma vez 
que a interface foi carregada, o usuário está pouco se importando com o resto. 
 
As Aplicações AJAX eliminam esse inicia-interrompe-inicia-interrompe ao introduzir 
uma camada chamada Engine AJAX entre o usuário e o servidor! Em vez de carregar 
uma página web, ao iniciar a sessão, o navegador carrega a Engine AJAX (escrita em 
JavaScript). Ela permite que a interação do usuário com a aplicação ocorra de forma 
assíncrona – independente de comunicação com o servidor. 
 
Portanto, o usuário jamais fica olhando para uma tela branca do navegador, sem 
fazer nada e esperando que o servidor faça seu trabalho. Toda ação do usuário que 
normalmente gera uma Requisição HTTP se transforma em uma chamada JavaScript 
à Engine AJAX. Qualquer respostaque não requeira uma viagem de volta ao servidor 
(Ex: validação de dados, etc) é manipulada pela própria Engine AJAX. 
 
Se ela necessitar de alguma coisa do servidor, a Engine AJAX realiza as requisições 
assincronamente, geralmente utilizando XML – sem enrolar a interação do usuário 
com a aplicação. A imagem abaixo apresenta a diferença entre uma aplicação web 
clássica que utiliza uma comunicação síncrona com o servidor e uma aplicação web 
AJAX que utiliza uma comunicação assíncrona com o servidor. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 4 
156 
 
 
O Objeto XMLHttpRequest é utilizado para trocar dados com o servidor de forma 
assíncrona. Alguns dizem que ele é o sonho de um desenvolvedor, porque pode-
se atualizar uma parte de uma página web sem precisar recarregar a página inteira; 
é possível requerer e receber dados do servidor após a página ser carregada; e é 
possível enviar dados ao servidor em background. 
 
Todos os navegadores modernos (IE7+, Firefox, Chrome, Safari e Opera) possuem 
uma Objeto XMLHttpRequest embutido. A sintaxe para criá-lo é bem simples: 
 
xmlhttp = new XMLHttpRequest(); 
 
Todos navegadores modernos possuem um Parser XML! Ele converte um 
documento XML em um DOM, que pode ser manipulado com JavaScript. Ele define 
uma forma padrão de acessar e manipular documentos XML de maneira 
hierárquica. Dessa forma, todos os elementos podem ser acessados por meio da 
Árvore DOM! 
 
Para capturar a resposta do servidor, existem duas possibilidades: utilizar as 
propriedades responseXML ou responseText. O segundo recupera dados como uma 
string, em forma de texto; e o primeiro recupera dados como um Objeto DOM, em 
formato XML! É possível, ainda, capturar dados em outros formatos, tais como: 
HTML e JSON! 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 5 
156 
No AJAX, o objeto XMLHttpRequest possui diversas propriedades importantes para 
realizar a comunicação com o servidor. Quando uma solicitação para um servidor é 
enviada, normalmente deseja-se executar algumas ações com base na resposta. 
Existe um evento chamado onreadystatechange, responsável por especificar o que 
vai acontecer quando o servidor processar a resposta. Há três propriedades: 
 
▪ Onreadystatechange: armazena uma função a ser chamada de forma 
automática cada vez que a propriedade readyState mudar; 
 
▪ readyState: armazena o status do XMLHttpRequest. 
 
o 0: Requisição não iniciada; 
o 1: Conexão com servidor estabelecida; 
o 2: Requisição recebida; 
o 3: Requisição processada; 
o 4: Requisição finalizada e resposta pronta. 
 
▪ Status: 
 
o 200: “Ok”. 
o 404: Página não-encontrada. 
 
AJAX apresenta uma grande desvantagem: se o usuário desativar o JavaScript de 
seu navegador, a aplicação pode parar de funcionar. No entanto, há diversas 
vantagens: executa processos em paralelo às requisições/respostas; manipula XML 
nas aplicações para desktop de forma simples; troca mensagens de forma 
assíncrona; entre outras. 
 
Por fim, alguns desenvolvedores utilizam iFrames para embutir aplicações interativas 
em páginas web, incluindo aquelas que empregam AJAX (Ex: Google Maps). O 
iFrame é utilizado para embutir um Documento HTML em outro Documento HTML. 
Ele é frequentemente utilizado também para inserir conteúdo de outra fonte (como 
uma propaganda) em uma página web. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 6 
156 
1.1 CAIU NA PROVA – AJAX (DIVERSAS BANCAS) 
 
1. (FCC – 2007 – TRE/MS – Analista de Sistemas) Asynchronous Javascript and XML 
(Ajax) é uma técnica de desenvolvimento de aplicações web cujo objetivo é a 
troca de pequenas porções de dados entre um browser e um servidor web de 
modo a evitar a recarga de toda a página cada vez que um cliente solicita uma 
mudança. Sobre Ajax considere as afirmativas abaixo. 
 
I. É uma técnica indicada para melhorar a experiência do usuário, reduzir a 
utilização de banda e claramente separar dados, formatação, estilo e 
funcionalidade. 
 
II. O modelo de objetos html/xml (DOM) é acessado e transformado por 
linguagens de script como JavaScript. 
 
III. O objeto XMLHttpRequest e/ou o objeto iFrame são utilizados para troca de 
dados assíncrona com o servidor. 
 
É correto o que se afirma em: 
 
a) I, apenas. 
b) II, apenas. 
c) III, apenas. 
d) I e III, apenas. 
e) I, II e III. 
 
Comentários: 
 
(I) Perfeito, perfeito, perfeito, nada a acrescentar; (II) Sim, item perfeito também; (III) 
Também está correto! Pode-se utilizar o iFrame (Inline Frame) para embarcar 
aplicações interativas em páginas web. 
 
Gabarito: E 
 
2. (FCC - 2008 – MPE/RS – Analista de Sistemas) Para capturar as respostas de uma 
aplicação Web dinâmica em AJAX básico utiliza-se somente: 
 
a) responseText e responseXML. 
b) responseText e responseHTML. 
c) responseText. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 7 
156 
d) responseXML. 
e) responseHTML. 
 
Comentários: 
 
Trata-se da primeira opção: responseText e responseXML. 
 
Gabarito: A 
 
3. (FCC - 2008 – MPE/RS – Analista de Sistemas) Dentre as tecnologias que 
compõem o AJAX, aquelas que têm como principal função fazer o intercâmbio 
e a manipulação de dados são: 
 
a) JavaScript e XMLHttpRequest. 
b) XML e XSLT. 
c) HTML e XHTML. 
d) JavaScript e CSS. 
e) DOM e CSS. 
 
Comentários: 
 
- Apresentação: HTML/XHTML e CSS; 
- Exposição e Interação Dinâmica: DOM; 
- Intercâmbio de Dados: XML ou JSON; 
- Manipulação de Dados: XSLT; 
- Recuperação Assíncrona de Dados: XMLHttpRequest; 
* JavaScript é o responsável por reunir todas essas tecnologias. 
 
Gabarito: B 
 
4. (FCC - 2008 – MPE/RS – Tecnólogo) Para fazer o intercâmbio e a manipulação 
de dados em uma aplicação Web, o modelo AJAX normalmente utiliza: 
 
a) XML e XSLT. 
b) HTML, XHTML e CSS. 
c) XMLHttpRequest. 
d) JavaScript. 
e) DOM. 
 
Comentários: 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 8 
156 
 
- Apresentação: HTML/XHTML e CSS; 
- Exposição e Interação Dinâmica: DOM; 
- Intercâmbio de Dados: XML ou JSON; 
- Manipulação de Dados: XSLT; 
- Recuperação Assíncrona de Dados: XMLHttpRequest; 
* JavaScript é o responsável por reunir todas essas tecnologias. 
 
Gabarito: A 
 
5. (FCC - 2012 – TJ/PE – Analista de Sistemas) Esse objeto é o ponto chave do AJAX. 
Pode ser considerado um objeto Javascript que torna possível a comunicação 
assíncrona com o servidor. O objeto citado é do tipo: 
 
a) XMLRequest. 
b) XMLAjaxActiveXObject. 
c) HttpServletResponse. 
d) HttpServletRequest. 
e) XMLHttpRequest. 
 
Comentários: 
 
O objeto responsável pela comunicação assíncrona com o servidor é chamado: 
XMLHttpRequest. 
 
Gabarito: E 
 
6. (FCC - 2011 – TCE/PR – Analista de Sistemas) No AJAX, o objeto XMLHttpRequest 
possui diversas propriedades importantes para realizar a comunicaçãocom o 
servidor. Quando uma solicitação para um servidor é enviada, normalmente 
deseja-se executar algumas ações com base na resposta. O evento utilizado para 
especificar o que vai acontecer quando a resposta do servidor está pronta para 
ser processada é o: 
 
a) oncompletedrequest. 
b) onserverreturn. 
c) onendstatus. 
d) onreadystatechange. 
e) onreadystate. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 9 
156 
Comentários: 
 
Trata-se do onreadystatechange. 
 
Gabarito: D 
 
7. (FCC - 2011 – INFRAERO – Analista de Sistemas) Representa uma desvantagem 
do uso de AJAX: 
 
a) Troca mensagens entre o cliente e o servidor de forma assíncrona, ou seja, 
envia requisições e continua o processamento sem precisar aguardar a resposta. 
 
b) Trata-se principalmente de JavaScript que executa no navegador do usuário. 
Se for desativado o processamento do JavaScript no navegador, a aplicação 
pode falhar. 
 
c) Recebe respostas às requisições na mesma página sem a necessidade de 
refresh. 
 
d) Executa os processos em paralelo às requisições/respostas. 
 
e) Manipula o conteúdo XML nas aplicações para desktop de forma simples. 
 
Comentários: 
 
Todas apresentam vantagens, exceto a segunda opção! De fato, se o usuário 
desativar o JavaScript em seu navegador, a aplicação pode falhar e essa é uma 
grande desvantagem do AJAX. 
 
Gabarito: B 
 
8. (FCC - 2011 – TRE/RN – Analista de Sistemas) Agrega um conjunto de tecnologias 
conhecidas trabalhando juntas para tornar páginas Web mais interativas com o 
usuário, utilizando-se de solicitações assíncronas de informações: 
 
a) XML. 
b) JavaScript. 
c) XHTML. 
d) AJAX. 
e) CSS. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 10 
156 
 
Comentários: 
 
Trata-se obviamente do AJAX! 
Gabarito: D 
 
9. (FGV - 2010 – FIOCRUZ – Analista de Sistemas) Asynchronous JavaScript and 
XML (AJAX) é um termo criado recentemente para duas características 
poderosas dos browsers que existem há anos mas tem sido ignoradas por muitos 
criadores de páginas web até recentemente, quando aplicações como Gmail, 
Google suggest e Google Maps foram lançadas. AJAX não é uma tecnologia, na 
verdade, envolve várias, cada uma atuando da sua própria maneira, tornando-
se juntas uma poderosa ferramenta. Nesse contexto, além de suporte à 
Javascript, analise as afirmativas abaixo, associadas às tecnologias incorporadas 
pelo AJAX. 
 
I. Troca e manipulação de dados usando XML e XSLT. 
II. Retorno de dados assincronamente usando XMLHttpRequest. 
III. Apresentação baseada nas Web Standards usando XHTML e CSS. 
 
Assinale: 
 
a) se somente a afirmativa I estiver correta. 
b) se somente a afirmativa II estiver correta. 
c) se somente a afirmativa III estiver correta. 
d) se somente as afirmativas II e III estiverem corretas. 
e) se todas as afirmativas estiverem corretas. 
 
Comentários: 
Todos os itens estão corretos! 
Gabarito: E 
 
10. (CESGRANRIO - 2006 – DNPM – Analista de Sistemas) AJAX é um termo que se 
refere a um conjunto de tecnologias para desenvolvimento de aplicações WEB. 
Assinale a opção que contempla uma dessas tecnologias. 
 
a) Ant 
b) XML 
c) WiMAX 
d) VoIP 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 11 
156 
e) Jakarta 
 
Comentários: 
 
AJAX contempla JavaScript e XML! 
 
Gabarito: B 
 
11. (CESGRANRIO - 2007 – EPE – Analista de Sistemas) Que conjunto de tecnologias 
é utilizado em aplicações WEB na Internet para propiciar forte interatividade e 
dinamismo? 
 
a) CSS 
b) SMTP 
c) AJAX 
d) FTP 
e) UTF-8 
 
Comentários: 
 
Trata-se do AJAX! Ele é um conjunto de tecnologias que propiciam forte 
interatividade e dinamismo. 
 
Gabarito: C 
 
12. (CESGRANRIO - 2009 – CMB – Analista de Sistemas) AJAX (do inglês 
Asynchronous Javascript And XML) tem sido largamente utilizado no 
desenvolvimento de aplicações WEB. Um dos conceitos centrais do AJAX é a 
possibilidade de serem feitas requisições ao servidor através de código 
Javascript, rodando no navegador do usuário. Esse recurso é empregado 
principalmente para permitir que: 
 
a) o processamento das regras de negócio da aplicação seja distribuído aos 
clientes, minimizando a carga do servidor. 
 
b) o usuário envie uma requisição assíncrona e verifique o resultado da mesma 
mais tarde, sem precisar aguardar pela resposta imediata do servidor. 
 
c) as páginas carreguem mais rapidamente, pois as requisições são paralelizadas 
e compactadas durante o trânsito. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 12 
156 
 
d) as páginas compostas diretamente em XML, ao invés de XHTML ou HTML, 
sejam apresentadas no navegador do usuário. 
 
e) partes de uma página web sejam atualizadas, sem que o browser recarregue 
a página inteira do servidor, proporcionando uma interface com melhor 
usabilidade. 
 
Comentários: 
 
(a) Não, o processamento das regras de negócio continua sendo no Servidor; (b) 
Não há nada de errado com esse item, no entanto o recurso não é empregado 
principalmente para isso! Eu posso verificar o resultado mais tarde? Sim, mas o Ajax 
é utilizado principalmente para que eu possa verificar o resultado imediatamente 
sem a necessidade de recarregar a página inteira; (c) Não, é para que partes das 
páginas recarreguem de forma dinâmica e interativa; (d) Não, são apresentadas 
como XHTML ou HTML; (e) Perfeito, é exatamente isso! 
 
Gabarito: E 
 
13. (CESGRANRIO - 2010 – IBGE – Analista de Sistemas) O código HTML, em 
construção, abaixo demonstra a utilização de AJAX. 
 
<html> 
<head> 
<script language=”JavaScript”> 
function submitForm() 
{ 
var xhr=null; 
try 
{ xhr = new object(); } 
catch(e) {} 
xhr.onreadystatechange = function() 
{ 
document.ajax.dyn.value=”Wait server...”; 
if(xhr.readyState == 4) 
{ 
if(xhr.status == 200) 
{ document.ajax.dyn.value=”Recebido:” + xhr.responseText; } 
else 
{ document.ajax.dyn.value=”Erro: “ + xhr.status + “ “ + xhr.statusText; 
} 
} 
}; 
xhr.open(“GET”, “data.xml”, true); 
xhr.send(null); 
} 
</script> 
</head> 
<body> 
<FORM method=”POST” name=”ajax” action=””> 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 13 
156 
<INPUT type=”submit” value=”Submit” ONCLICK=”submitForm()”> 
<INPUT type=”text” name=”dyn” value=””> 
</FORM> 
</body> 
</html> 
 
Para que esse código possa utilizar a tecnologia AJAX, na linha “xhr = new 
object();”, “xhr” deve receber um objeto Javascript que torna possível a 
comunicação assíncrona com o servidor, sem a necessidade de recarregar a 
página por completo. Para tanto, no código acima, “object” deve ser substituído 
por: 
 
a) responseXML. 
b) MIME. 
c) XMLHttpRequest. 
d) DOMParser. 
e) setRequestReader. 
 
Comentários: 
 
Trata-se do Objeto XMLHttpRequest. 
 
Gabarito: C 
 
14. (CESGRANRIO - 2010 – PETROBRÁS – Analista de Sistemas) Ajax não é 
meramente umatecnologia. É uma abordagem moderna para desenvolvimento 
de sites iterativos. A abordagem de desenvolvimento tradicional tem 
semelhanças e diferenças em relação ao Ajax. Uma característica exclusiva de 
Ajax em relação à abordagem tradicional é que: 
 
a) executa as requisições através do protocolo HTTP. 
b) usa javascript como linguagem para desenvolver código no lado do cliente. 
c) usa (x)html / css para definir o aspecto visual da página. 
d) permite recuperação assíncrona de dados usando XMLHttpRequest. 
e) representa os objetos no lado cliente com DOM. 
 
Comentários: 
 
A única opção que apresenta uma característica de fato exclusiva em relação à 
abordagem tradicional é quarta opção: permite recuperação assíncrona de dados 
usando XMLHttpRequest. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 14 
156 
Gabarito: D 
 
15. (CESGRANRIO - 2011 – LIQUIGÁS – Analista de Sistemas) Duas das tecnologias 
que compõem o Ajax são: 
 
a) DOM e CSS 
b) ASP e XML 
c) Java e XML 
d) Java e CSS 
e) JavaScript e ASP 
 
Comentários: 
 
DOM? Sim! CSS? Sim! ASP? Não! XML? Sim! Java? Não! JavaScript? Sim! Portanto, é 
a primeira opção: DOM e CSS! 
 
Gabarito: A 
 
16. (CESGRANRIO - 2013 – LIQUIGÁS – Analista de Sistemas) Considere as 
afirmativas a seguir sobre a tecnologia AJAX. 
 
I – Uma das aplicações mais frequentes da tecnologia AJAX é na atualização 
assíncrona do conteúdo de páginas HTML. 
 
II – Boa parte da funcionalidade da tecnologia AJAX é viabilizada pelo objeto 
XMLHttpRequest, que é capaz de transmitir requisições HTTP de modo 
assíncrono. 
 
III – A tecnologia AJAX utiliza código Java para a manipulação do conteúdo de 
páginas HTML. 
 
Está correto o que se afirma em: 
 
a) I, apenas 
b) II, apenas 
c) I e II, apenas 
d) II e III, apenas 
e) I, II e III 
 
Comentários: 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 15 
156 
 
(I) Sim, perfeito! (II) Sim, perfeito! (III) Não, utiliza DOM! 
 
Gabarito: C 
 
17. (CESGRANRIO - 2014 – IBGE – Analista de Sistemas) Com o objetivo de criar 
páginas dinâmicas para o desenvolvimento de aplicações web, AJAX é um termo 
que descreve um(a): 
 
a) protocolo 
b) banco de dados 
c) coleção de tecnologias 
d) linguagem de programação 
e) linguagem de marcação 
 
Comentários: 
 
AJAX é um conjunto de tecnologias, tais como: XML, JSON, XSTL, HTML, XHTML, 
DOM, JavaScript, CSS e XMLHttpRequest. 
 
Gabarito: C 
 
18. (FGV – 2015 – TCM-SP – Agente de Fiscalização – Tecnologia da Informação) 
Considere a requisição AJAX construída, no cliente, através da chamada à 
seguinte função em Javascript: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 16 
156 
 
O método HTTP utilizado na requisição ao servidor será, neste caso: 
 
a) PUT; 
b) POST; 
c) GET; 
d) HEAD; 
e) SEND. 
 
Comentários: 
 
Neste caso, a requisição ao servidor está representada na variável ajax = new 
XMLHttpRequest() e sua chamada em ajax.open("POST", “PUT.PHP”, 
true); 
 
O protótipo do método open, neste caso, é XMLHttpRequest.open(method, 
url, async), logo o método HTTP a ser utilizado é o POST. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 17 
156 
Vale notar que as strings GET e PUT foram usadas apenas para confundir o aluno, 
sendo elas, apenas, parte da mensagem e url de envio, respectivamente. 
 
Gabarito: B 
 
ACERTEI ERREI 
 
 
 
 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 18 
156 
2 PHP 
2.1 INTRODUÇÃO 
O ano era 1994! Um programador dinamarquês chamado Rasmus Lerdorf criou uma 
série de scripts em Perl para utilizar em coisas simples de sua página pessoal. 
Empolgado com o resultado, ele reescreveu esses scripts em C – por questões de 
desempenho –, adicionando a capacidade de trabalhar com formulários web e 
bancos de dados. 
 
Assim era possível criar páginas web dinâmicas, possibilitando que um navegador 
passasse parâmetros para outros programas alocados em um servidor web. Lerdorf 
condensou tudo isso em um pacote de scripts e chamou de Personal Home Page 
tools (PHP), que, inicialmente, não tinha a menor intenção de ser uma linguagem 
de programação. 
 
Enfim, essa ideia evoluiu rapidamente e, no ano seguinte, foi lançado o PHP/FI (FI = 
Forms Interpreter), que incluía um interpretador de comandos SQL. Ele, então, 
resolveu publicar em um grupo de discussões (cujo link é apresentado a seguir), de 
modo a encontrar bugs e melhorar o código por meio das contribuições da 
comunidade. 
 
 
 
 
 
 
Um pouco mais tarde, dois programadores israelenses chamados Zeev Suraski e 
Andi Gutmans se juntaram para reescrever o parser, formando a base do PHP3, e 
modificando o nome da linguagem para PHP Hypertext Preprocessor (PHP). Em 
seguida, ambos começaram a reescrever o núcleo da linguagem, produzindo o 
Zend Engine! 
 
E o que era Zend Engine, professor? Bem, o nome vinha da junção de Zeev e Andi. 
Ele era o interpretador do PHP! Mais adiante, foi lançado o PHP4 com mais recursos 
de orientação a objetos, porém com problemas sérios em relação aos ponteiros. Em 
2004, foi lançado o PHP5 com inúmeras melhorias de performance e 
funcionalidades – atualmente está na versão 7.1.0. 
 
Bem... dado esse breve histórico, vamos dar continuidade! Professor, afinal de contas 
o que é PHP? Ora, é uma linguagem de programação de scripts, interpretada, de 
Grupo de Discussões 
 
https://groups.google.com/forum/#!msg/comp.infosystems.www.authoring.cgi/PyJ25gZ6z7A/M9FkTUVDfcwJ 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 19 
156 
alto nível, open-source, gratuita, server-side, dinamicamente/fracamente tipada, 
estruturada e orientada a objetos, portável, robusta e eficiente utilizada para 
desenvolvimento web. 
 
Caraca, foi tanta coisa de uma vez que nem eu entendi! Vamos explicar por partes! 
Primeiro de tudo, é uma linguagem de programação de scripts, portanto – 
obviamente – ela serve para programar scripts! E o que é isso, professor? É um 
conjunto de instruções que geralmente são executadas dentro de outras linguagens 
e/ou programas. 
 
Voltando, então! O PHP é uma linguagem de programação de scripts, i.e., escreve 
scripts que estendem as funcionalidades de outra linguagem de programação e/ou 
programas. Ok! Mas a definição diz que ela é interpretada! Bem, isso só 
complementa o que acabamos de ver, visto que todas as linguagens de script são 
interpretadas. 
 
Percebam que aqui não ocorre compilação, criação de código-objeto, nada disso! 
A Máquina Virtual recebe o código-fonte, interpreta e roda instrução a instrução em 
tempo de execução. Bacana?! E PHP é uma linguagem de altonível? Sim, essa é fácil! 
É uma linguagem que se aproxima mais da linguagem humana do que da 
linguagem de máquina! 
 
O nível de abstração é alto, i.e., o programador não acessa ponteiros, não manipula 
a memória, não escova bits, nada disso! Logo, é uma linguagem de alto nível. E ela 
é open-source? Sim! Na verdade, o PHP é atualmente o software open-source mais 
utilizado em empresas no planeta1, i.e., código aberto, distribuição livre e aquele 
blábláblá todo! 
 
Ele também é gratuito! Ué, professor... você já disse que ele é livre! Sim, mas ser livre 
não significa ser gratuito. No entanto, nesse caso ele é livre e gratuito! Ok, e ela é 
server-side! Isso significa que, no contexto de uma arquitetura cliente-servidor, todo 
processamento do código PHP ocorre no servidor e, não, no cliente. 
 
Ahhh professor! Então toda linguagem de programação de scripts são server-side? 
Claro que não! JavaScript, por exemplo, roda do lado do cliente, i.e., é uma 
linguagem client-side! Simples, né?! Ela também é dinamicamente e fracamente 
tipada! O primeiro significa que os tipos das variáveis podem ser modificados em 
tempo de execução. 
 
1 Está instalado em mais de 244 milhões de websites e 2.1 milhões de web servers. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 20 
156 
 
Portanto, é possível que uma variável inteira se transforme em booleana durante a 
execução do programa. Já o segundo significa que não é obrigatório declarar o tipo 
da variável. Portanto, é possível usar uma variável sem declarar seu tipo, que será 
decidido, também, durante a execução do programa. O PHP suporta tanto 
programação estruturada quanto programação orientada a objetos. 
 
Simples assim! Calma, galera... estamos acabando! PHP é portável, i.e., ela é 
independente de plataforma. Costuma-se dizer que é uma Linguagem WORA 
(Write Once, Run Anywhere). Ela é capaz de rodar sobre Windows, Linux, Unix, etc. 
PHP é uma linguagem robusta! Ora, não é muito difícil adivinhar isso. É uma 
linguagem bastante antiga, intensamente testada e continuamente melhorada. 
 
É comum que códigos escritos há muitos anos continuem funcionando 
perfeitamente hoje em dia! E PHP é eficiente? Sim! Consome poucos recursos do 
servidor e é, em geral, veloz. Por fim, PHP é utilizada para desenvolvimento de 
conteúdo dinâmico na web, mas não só isso! Pode ser usado como uma linguagem 
de propósito geral, sendo útil em interfaces gráficas ou em linha de comando. 
 
Agora veremos seu funcionamento! Primeiramente, para que ele funcione, é preciso 
que esteja instalado em um Servidor Web. Professor, eu não sei o que é um servidor 
web! Grosso modo, é um software que recebe Requisições HTTP e devolve 
Respostas HTTP. Grosso modo, trata-se de clientes representados por navegadores 
web requisitando páginas web, documentos, dados, etc. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 21 
156 
 
 
Os Servidores Web mais populares são Apache (Software Livre) e IIS (Software 
Proprietário). Uma vez instalado, configura-se o PHP, reinicia-se o servidor e está 
pronto para usar! Galera, o PHP fica embutido dentro do código HTML! Portanto, 
dentro da tag <body> do HTML, encontra-se a tag <?php> do PHP! Vamos ver um 
exemplo abaixo: 
 
 
 
Suponhamos que esse código foi salvo com o nome de olamundo.php e inserido 
no diretório raiz do servidor web www.exemplo.com. Bem, quando o cliente digitar 
o endereço www.exemplo.com/olamundo.php em seu navegador web, o servidor 
web irá procurar em seus diretórios, processando a página olamundo.php. 
Processando como, professor? 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 22 
156 
Ele irá interpretar o código PHP, executando tudo que for requisitado, substituir 
tudo que estiver dentro das tags PHP por código HTML puro e enviará o resultado 
para o usuário. Esse resultado é o código escrito acima? Não, é o código processado, 
como é apresentado abaixo: 
 
Percebam que esse não é o código que foi escrito originalmente, i.e., esse é o código 
processado em que as tags PHP foram substituídas por tags HTML! Se tentarmos 
visualizar o código fonte da página recebida, não seremos capazes de ver código 
PHP, veremos apenas código puro HTML. Simples, não?! Ademais, todo código PHP 
deve estar delimitado, como mostra o código abaixo: 
 
 
Os comentários seguem o mesmo padrão da linguagem C em uma ou mais linhas, 
como mostra o código abaixo: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 23 
156 
 
 
 
Falemos agora sobre variáveis! Bem, toda variável começa com o símbolo “$”. A 
seguir, a nomenclatura segue a seguinte regra de formação (Case Sensitive): 
 
Letra|Underscore + Letra|Número|Underscore 
 
 
 
 
Galera, agora vamos ver outra coisa básica! As variáveis podem ser do tipo Texto, 
Numérico ou Booleanas, como vemos no exemplo a seguir! Observem que as 
variáveis do Tipo Texto podem ser declaradas com aspas simples ou duplas. 
Ademais, os valores das variáveis do Tipo Booleano não são Case Sensitive, logo 
TRUE = true e FALSE = false. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 24 
156 
 
 
Agora uma coisa muito maneira em PHP: variáveis podem ter seu nome designado 
em tempo de execução. Como assim, professor? Isso não é impossível? Não! Vejam: 
 
 
 
Cara, isso é muito legal! Observem o que acontece: a variável do tipo texto $var1 
contém a string “Hello”. Já a variável do tipo texto $Hello contém a string “World”. 
Em seguida, pede-se para imprimir $var1, i.e., “Hello”. Depois, pede-se para imprimir 
$$var1, mas $var1 = “Hello”, logo pede-se para imprimir $Hello, i.e., “World”. 
Resultando em “Hello World”. 
 
Bacana, não?! Parêntesis ajudam a visualizar melhor: $($var1) = $(Hello) = “World”. 
Essa flexibilidade do PHP é bastante interessante! Vejamos agora como são os 
principais tipos de operadores utilizados na linguagem: aritméticos, associação, 
comparação, incremento e decremento, e lógicos. Observem no exemplo abaixo o 
primeiro tipo: 
 
❖ Operadores Aritméticos: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 25 
156 
 
 
❖ Operadores Associativos: 
 
 
 
❖ Operadores Comparativos: 
 
 
 
❖ Operadores Incrementais/Decrementais: 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 26 
156 
 
 
 
❖ Operadores Lógicos: 
 
 
 
Bem, pessoal. É impossível esgotar todo assunto de PHP em uma aula online, 
ademais o intuito aqui não é ensinarninguém a programar. Portanto, não vou 
explicar para cada linguagem como funciona conceitos básicos (Ex: laço condicional, 
laço de repetição), porque eles funcionam quase sempre da mesma forma. Vou me 
ater apenas às diferenças! 
 
Expressões Condicionais são de três tipos: if-elseif-else, operador ternário “?” e 
switch. Observação: a condição deve vir sempre entre parêntesis no if-elseif-else. 
 
❖ If, elseif e else 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 27 
156 
 
 
❖ Operador Ternário ? 
 
 
 
❖ Switch 
 
 
 
Já as Expressões Iterativas são de quatro tipos: while, do-while, for e foreach. A única 
observação é que o foreach é um laço usado para arranjos. 
 
❖ Operador For 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 28 
156 
 
 
❖ Operador While 
 
 
 
❖ Operador Do-While 
 
 
 
❖ Operador Foreach 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 29 
156 
 
Por fim, cabe salientar que PHP permite saltos de linha por meio do comando goto. 
Logo, pode-se saltar para qualquer linha de código por meio desse comando. 
 
❖ Operador Goto 
 
 
E os arrays? Eles sempre vêm junto do símbolo “$” e pode ser de dois tipos: 
numérico, em que os índices/chaves são números inteiros e associativo, em que os 
índices/chaves são do tipo texto. Apresentam enorme versatilidade de declaração e 
construção! Em que sentido, professor? O exemplo abaixo mostra três maneiras 
distintas de se declarar um mesmo vetor. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 30 
156 
 
No último exemplo, o operador “=>” associa um índice a um valor. Agora observem 
esse exemplo! Um mesmo vetor pode ter índices numéricos e textuais. Além disso, 
seus valores podem ser de qualquer tipo (Ex: String, Integer, Boolean, etc). 
 
 
Por fim, temos os arrays multidimensionais, que podem ter índices/chaves 
numéricos ou textuais e valores de qualquer tipo. Ademais, também se pode utilizar 
o operador “=>”. 
 
 
Agora algumas curiosidades: arrays podem ser comparados assim como variáveis, 
por meio dos operadores (==, !=, ===, !==). Um array será igual a outro se ambos 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 31 
156 
tiverem os mesmos valores para os mesmos índices. Um array será triplamente igual 
a outro, se ambos tiverem os mesmos valores para os mesmos índices em uma 
mesma ordem. 
 
Arrays multidimensionais podem ser incompletos, i.e., um Array 2x2 pode ter apenas 
três elementos (teoricamente, ele teria quatro). Além disso, caso o programador 
adicione um valor em um array sem mencionar em qual índice/chave, ele será 
adicionado após o último índice. Mudando novamente de assunto! Vamos falar 
agora sobre Funções. 
 
Galera, esse assunto é uma pedra no sapato. Por que, professor? Cara, existem mais 
de 5000 funções! E nada impede que a banca escolha qualquer uma delas e cobre 
sua funcionalidade. Portanto, veremos as mais comuns e vocês vão rezar para que 
somente elas caiam em prova! Antes de tudo, o próprio programador por criar 
facilmente uma função de maneira bastante simples: 
 
 
Bem, uma função pode funcionar como um procedimento caso não retorne 
nenhum valor. Além disso, ela pode passar parâmetros por valor (sem “&”) ou por 
referência (com “&”). Enfim, vamos ver agora as 20 funções mais cobradas em 
questões de prova de concurso sobre PHP: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 32 
156 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 33 
156 
 
Bacana, mas vamos começar a falar um pouco sobre web? Tem um bocado de 
função importante nesse contexto também! Por exemplo, uma das principais 
características do PHP é que ele sabe lidar muito bem com formulários. É legal, 
porque qualquer elemento desses formulários fica disponível automaticamente para 
serem usados nos Scripts PHP. 
 
Imaginem um formulário HTML (sem tags PHP) que utilize o método POST e envie 
dados (Nome e Idade) para uma página action.php, como mostra o exemplo abaixo: 
 
 
Quando o usuário enviar os dados, automaticamente criar-se-á duas variáveis: 
$_POST[“nome”] e $_POST[“idade”]. Essas variáveis conterão os dados recebidos no 
método POST. O mesmo ocorre caso se utilize o método GET, porém com as 
variáveis: $_GET[“nome”] e $_GET[“idade”]. Agora imaginem uma página PHP que 
recebe esses dados e os armazena nessas variáveis, executando alguma ação: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 34 
156 
 
Agora vejam que interessante: essas variáveis são arrays associativos, i.e., com 
índice/chave textual. E que texto é esse? O nome das variáveis! Portanto, $_POST e 
$_GET são vetores com dois índices que armazenam valores inseridos e enviados 
pelo usuário em um formulário HTTP. E cookies, professor? PHP suporta cookies? 
Claro que sim! 
 
Eles são criados por meio da função setcookie(nome, valor, validade, caminho, 
domínio). Ela define um cookie para ser enviado juntamente com o resto dos 
cabeçalhos HTTP. Os cookies devem ser enviados antes de qualquer saída de script, 
aliás antes de todo e qualquer texto! Todos os argumentos, exceto o nome, são 
opcionais. 
 
Bem, eu falei sobre Formulários e Cookies. Por que isso? Porque há uma variável 
global $_REQUEST que consiste em uma array associativo que, por padrão, contém 
informações de $_GET, $_POST e $_COOKIE. Trata-se de uma variável automática, 
i.e., ela está disponível em todos os escopos e armazena os valores do Get, Post e 
Cookie. Beleza? 
 
E os frameworks, professor? Galera, os mais comuns são: CodeIgniter, Zend e 
Symfony. O CodeIgniter é um framework de desenvolvimento de aplicações PHP 
gratuito, leve, rápido, que utiliza MVC, gera URLs limpas e requer uma engine 
específica para templates. Trata-se de um conjunto de ferramentas para desenvolver 
aplicações muito mais rápido do que poderíamos fazer sem utilizar o framework. 
 
Já o Zend Framework é orientado a objetos, de código aberto, implementado em 
PHP 5 e foi desenvolvido para simplificar o desenvolvimento web enquanto 
promove as melhores práticas na comunidade de desenvolvedores PHP. E o 
Symphony também é um framework web livre, escrito em PHP e que segue o 
Padrão Movel-View-Controller. 
 
Ele é projetadopara permitir que os desenvolvedores apliquem princípios ágeis do 
desenvolvimento (tais como DRY, KISS ou XP) e foquem nas regras de negócio sem 
necessitar escrever muitos arquivos de configuração XML, comuns nos frameworks 
atuais. Além disso, permite construir aplicações robustas em contexto empresarial, 
e dar aos desenvolvedores controle total sobre a configuração. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 35 
156 
Por fim, vamos falar rapidamente sobre um assunto que nunca caiu em prova, mas 
que - se um dia cair - vocês já saberão do que se trata: Framework Laravel. O que 
é isso, professor? Cara, é um Framework PHP, livre, open-source, que utiliza o Padrão 
MVC para criar aplicações seguras e performáticas de forma rápido, com código 
limpo e simples. Capiche? 
 
Ele utiliza uma engine de template chamada Blade para criação da interface gráfica 
e possui uma pancada de ferramentas que auxiliam a criar aquelas interfaces 
bonitonas (e também funcionais) que nós vemos por aí na web, porém de forma 
bastante rápida. Outra característica bacana é que o código é bonito, organizado e 
limpo. Sério, o código-fonte é uma obra de arte! 
 
Ele possui uma sintaxe bastante expressiva, bonita, elegante, simples e fácil de ler. 
Bem, pessoal! Como eu disse, essa parada nunca caiu em prova até hoje, mas já 
veio em alguns editais. Logo, em breve, pode estar caindo com alguma frequência 
nas provas de desenvolvimento de sistemas. Guardem essas características básicas 
do framework e parte para o abraço na hora da prova. Exercícios... 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 36 
156 
 
2.2 EXERCÍCIOS COMENTADOS 
1. (FCC - 2012 - TST - Técnico Judiciário - Programação) Considere a linguagem de 
programação PHP e seus operadores. A execução da sentença: 
 
a) (A != B) retorna falso (false), considerando as variáveis A e B inicializadas com 
os valores 3 e 6, respectivamente. 
 
b) (A %= B) atribui o valor 3 (três) para a variável A, considerando as variáveis A 
e B inicializadas com os valores 10 e 3, respectivamente. 
 
c) (A . = B) concatena o conteúdo das variáveis A e B e armazena o conteúdo 
em A. 
 
d)!(A == B) retorna falso (false), considerando as variáveis A e B inicializadas com 
os valores 3 e 6, respectivamente. 
 
e) (A = = = B) compara somente os tipos das variáveis A e B. 
 
Comentários: 
 
(a) Não, essa operação verifica se o valor de A é diferente do valor de B. O valor 3 
é diferente de 6, portanto retorna True e, não, False; (b) Não, essa operação verifica 
qual o resto da divisão de A por B. 10/3 tem quociente 3 e resto 1, portanto retorna 
1 e, não, uma atribuição; (c) Sim!De fato, essa operação concatena o conteúdo de 
A e B e armazena o resultado em A. (d) Não, essa operação verifica se o valor de A 
é diferente do valor de B e nega o resultado. O valor 3 é diferente de 6 resultando 
em falso, que, negado, será verdadeiro. (e) Não, essa operação compara o tipo e o 
valor das variáveis A e B. Portanto, ela retornaria True, caso fossem do mesmo tipo 
e com o mesmo valor. 
 
Gabarito: C 
 
2. (FCC - 2012 - TST - Técnico Judiciário - Programação) Considere o programa 
abaixo escrito na linguagem PHP: 
 
$v = array(10, 50, 2, 15, 35); 
 
for($i=0;$i<count($v)-1;$i++){ 
if($v[$i] > $v[$i+1]){ 
 $temp = $v[$i+1]; 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 37 
156 
 $v[$i+1] = $v[$i]; 
 $v[$i] = $temp; 
 $i=-1; 
 } 
 } 
 
for($i=0;$i<=count($v);$i++){ 
 echo " ".$v[$i]; 
} 
 
O resultado a ser informado ao usuário após a execução do programa acima é: 
 
a) 100 70 30 20 4 
b) 50 35 15 10 2 
c) 4 20 30 70 100 
d) 2 10 15 35 50 
e) 10 50 2 15 35 
 
Comentários: 
 
Pessoal, esse é um simples algoritmo de ordenação. Observem que há a declaração 
de uma array $v com cinco valores desordenados. Dentro de um loop de repetição 
que vai de 0 (índice do primeiro elemento do vetor) até 4 (índice do último elemento 
do vetor), é verificado se o elemento anterior é maior que o posterior e, caso seja, 
armazena-se o valor da variável posterior em uma variável temporária $temp, 
copia-se o valor da variável anterior na variável posterior, depois copia-se o valor 
da variável temporária na variável anterior e rearranja o array. É um simples Bubble 
Sort, cujo resultado é 2 10 15 35 50. Por fim, há um loop que escreve o resultado na 
tela. 
 
Gabarito: D 
 
3. (FCC - 2012 - MPE-AP - Técnico Ministerial - Informática) Analise os exemplos 
de criação de array em PHP. 
 
I. 
$idade = array("Paulo"=>32, "Pedro"=>30, "Ana"=>34); 
 
II. 
$familia = array("Jorge"=>array("Angela","Iracema", 
"Bia"),"Pedro"=>array("Ana")); 
 
III. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 38 
156 
$nome[0] ="Paulo"; 
$nome[1] ="Pedro"; 
$nome[2] ="Ana"; 
 
IV. 
$idade['Paulo'] = "32"; 
$idade['Pedro'] = "30"; 
$idade['Ana'] = "34"; 
 
Representam exemplos corretos de criação de array os itens 
 
a) I, II, III e IV. 
b) III e IV, apenas. 
c) I e II, apenas. 
d) I, III e IV, apenas. 
e) II, III e IV, apenas. 
 
Comentários: 
 
Primeiro, lembremos que – em PHP – o índice do array pode ser tanto um valor 
numérico quando um texto. Portanto, pode haver um array $vetor[0] = “João” ou 
$vetor[“João”] = 0. 
 
Vetor I: Correto, trata-se de um array associativo em que $idade[“Paulo”] = 32, 
$idade[“Pedro”] = 30 e $idade[“Ana”] = 34. Percebam que os índices/chaves desse 
vetor são “Paulo”, “Pedro” e “Ana” que estão associados por meio do operador => 
aos valores numéricos 32, 30 e 34. 
 
Vetor II: Correto, trata-se de um array multidimensional em que o primeiro elemento 
“Jorge” é um vetor com os valores “Angela”, “Iracema” e “Bia” e o segundo elemento 
“Pedro” também é um vetor com o valor “Ana”. 
 
Vetor III: Correto, trata-se de um array numérico em que o primeiro elemento é 
“Paulo”, o segundo é “Pedro” e o terceiro é “Ana”. 
 
Vetor IV: Correto, trata-se de um vetor associativo em que o primeiro elemento é 
“32”, o segundo é “30” e o terceiro é “34”. 
 
Gabarito: A 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 39 
156 
4. (FCC - 2012 - MPE-PE - Analista Ministerial – Informática) Marcos está 
desenvolvendo uma aplicação web PHP utilizando o WAMPServer. Como está 
utilizando um banco de dados MySQL, escolheu uma função para enviar uma 
consulta ou comando SQL (por exemplo, os comandos select, insert ou delete) 
para o banco de dados ativo. A função correta escolhida foi: 
 
a) mysql_fetch_array. 
b) mysql_query. 
c) mysql_update. 
d) mysql_execute_stmt. 
e) mysql_stmt_start. 
 
Comentários: 
 
Pessoal, é impossível saber todas as funções do PHP, ainda mais com as extensões 
(cerca de 5000)! Então essa era uma questão em que se necessitava de um 
conhecimento mais aprofundado, mas nada extremamente complicado.Bastava ver 
que a única opção mais condizente com um banco de dados era aquela que tinha 
o nome “query”. Essa função envia uma consulta/comando MySQL. 
 
Gabarito: B 
 
5. (FCC - 2012 - TRE-SP - Técnico Judiciário - Programação de Sistemas) Na 
linguagem PHP é possível utilizar o protocolo SOAP por meio de classes 
desenvolvidas especificamente para esse protocolo. A classe que fornece acesso 
cliente aos servidores SOAP é chamada de: 
 
a) PHPAccess. 
b) WSDLClient. 
c) SoapConnect. 
d) SoapClient. 
e) SoapAccess. 
 
Comentários: 
 
Mais uma questão que exige saber funções específicas. Caso vocês não saibam, eu 
recomendo que tentem ir sempre no mais lógico. A questão pede a classe que 
fornece acesso cliente aos servidores SOAP, portanto – na minha opinião – o item 
mais condizente é o SoapClient. Essa função fornece acesso cliente a servidores 
SOAP 1.1 e 1.2, podendo ser usada em Modo WSDL e Não-WSDL. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 40 
156 
 
Gabarito: D 
 
6. (FCC - 2012 - TRE-SP - Técnico Judiciário - Programação de Sistemas) A 
linguagem PHP permite a instalação de extensões que podem aumentar sua 
gama de funcionalidades. Uma das funcionalidades extras que podem ser 
adicionadas se refere a manipulação de arquivos XML. A extensão que possui 
várias classes que podem ser instanciadas para a leitura e gravação de arquivos 
XML é chamada: 
 
a) DOM. 
b) XML-RPC. 
c) Ctype. 
d) SCA. 
e) YAZ. 
 
Comentários: 
 
Mais uma questão que exige saber funções específicas, porém essa era mais 
complicada. O bom senso diria para ir na Letra B, no entanto a extensão que possui 
diversas classes para leitura e gravação de arquivos XML. Ela permite manipular 
documentos XML por meio da API DOM. 
 
Gabarito: A 
 
7. (FCC - 2011 - TRE-AP - Técnico Judiciário - Programação de Sistemas) Em relação 
a PHP e JSP é correto afirmar: 
 
a) Em JSP o conceito de classes e objetos não leva em conta os princípios de 
proteção de dados tanto nas propriedades quanto nos métodos. 
 
b) A flexibilidade do PHP permite-lhe que a avaliação de uma variável seja o 
nome de outra variável ou mesmo de uma função. 
 
c) Em PHP os objetos possuem métodos e propriedades privados e devem ser 
instanciados para serem usados. 
 
d) Em JSP pode-se chamar o construtor do objeto pai em qualquer parte do 
código e não há tratamento de exceções nos métodos nativos. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 41 
156 
e) Em JSP os objetos são destruídos ao final da execução do script. 
 
Comentários: 
 
Vamos nos ater aos itens sobre PHP! (b) Sim, PHP é bastante flexível nesse sentido, 
i.e., uma variável pode receber o nome de outra variável ou o nome de uma função 
– são as chamadas variáveis variáveis; (c) Sim! No entanto, o gabarito diz que é 
errado! Eu não encontrei nenhum erro nessa questão. Observem que não foi dito 
que os objetos sempre possuem métodos e propriedades privados. De fato, o mais 
comum é ter métodos públicos e propriedades privadas – mas isso não é 
obrigatório. 
 
Gabarito: B 
 
8. (FCC - 2011 - TRT - 14ª Região (RO e AC) - Analista Judiciário - Tecnologia da 
Informação) Na PHP 5, é uma função usada para a busca por um padrão em um 
nome de arquivo: 
 
a) fscanf. 
b) fpassthru. 
c) fseek. 
d) fputs. 
e) fnmatch. 
 
Comentários: 
 
Mais uma questão que exige saber funções específicas. O bom senso diria para ir 
na Letra E, na medida em que ela traz a palavra “match”. Apenas por curiosidade: 
fscanf() lê dados de um arquivo; fpassthru() lê dados de um arquivo até o fim do 
arquivo e escreve o resultado no buffer de saída; fseek() posiciona o ponteiro em 
um arquivo; fputs() escreve em um arquivo; e fnmatch() compara o nome em um 
arquivo com um padrão. 
 
Gabarito: E 
 
9. (FCC - 2010 - MPE-RN - Analista de Tecnologia da Informação - Engenharia de 
Software) Na linguagem PHP 5, a função fputs: 
 
a) busca por um padrão em um nome de arquivo. 
b) é um nome alternativo para a função fwrite. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 42 
156 
c) interpreta o conteúdo de um arquivo de acordo com um determinado 
formato. 
d) cria um link físico. 
e) posiciona o ponteiro em um arquivo. 
 
Comentários: 
 
Mais uma questão que exige saber funções específicas. 
 
a – Errado. Quem faz isso é a função fnmatch(); 
b – Correto. É um nome alternativo para a função fwrite(); 
c – Errado. Quem faz isso é a função fscanf(); 
d – Errado. Quem faz isso é a função link(); 
e – Errado. Quem faz isso é a função fseek(). 
 
Gabarito: B 
 
10. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) NÃO se trata de uma característica do PHP: 
 
a) portábil. 
b) baseado no servidor. 
c) gratuito e com código aberto. 
d) embutido no HTML. 
e) baseado no cliente. 
 
Comentários: 
 
Bem, em primeiro lugar, uma observação: “Portábil”, FCC? Pelo amor de Deus! 
Segundo, vamos à avalição dos itens. 
 
(a) Sim, ele é independente de plataformas. Similar ao Java, é WORA (Write Once, 
Run Anywhere); (b) Sim, é uma linguagem Server-side, i.e., o cliente envia a 
requisição, que é processada no servidor e retorna a resposta; (c) Sim, é uma 
linguagem Free e Open-source; (d) Sim, o PHP vai inserido em tags HTML; (e) Não, 
é uma linguagem Server-side e, não, Client-side. 
 
Gabarito: E 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 43 
156 
11. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) Para o recebimento dos dados de um formulário HTML, enviados por 
meio do método GET, para uma página PHP, deve-se utilizar: 
 
a) $_GET[“nome_text”] 
b) $GET[“nome_text”] 
c) _GET$[“nome_text”] 
d) _$GET[“nome_text”] 
e) _$_GET[“nome_text”] 
 
Comentários: 
 
Para recebimento de dados em formulário HTML, utilizando GET, deve-se utilizar 
$_GET[“nome_text”]. 
 
Por exemplo: caso o usuário entre em: http://example.com/?name=Sou+TRE, o 
resultado da execução de echo $_GET[“name”], será “Sou TRE”. 
 
Gabarito: A 
 
12. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) A validação de uma data em PHP pode ser realizada pela função: 
 
a) getdate. 
b) checkdate. 
c) setdate. 
d) isdate. 
e) mktime. 
 
Comentários: 
 
getdate() recupera uma data; checkdate() verifica/valida uma data; setdate() 
modifica o valor de uma data; isdate() não faz parte das funções do PHP; mktime() 
obtém um timestamp Unix para uma data. A função checkdate valida uma data do 
calendário Gregoriano. Sua assinatura é a seguinte: checkdate(month,day,year); 
 
Gabarito: B 
 
13. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) Em uma função, escrita na linguagem de programação PHP, a 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br44 
156 
passagem de parâmetros por referência é feita por meio da utilização do 
caractere: 
 
a) ! 
b) % 
c) & 
d) @ 
e) ? 
 
Comentários: 
 
Lembram-se de que a sintaxe da Linguagem PHP é fortemente influenciada pela 
sintaxe de C/C++ e Perl. Em C, a passagem de parâmetros por referência é feita por 
meio da utilização do caractere “&”. Nas funções PHP, a passagem por valor é o 
padrão. Caso você necessite passar um parâmetro por referência, utilize o caractere 
&. Veja no exemplo abaixo. 
 
<?php 
function foo(&$var) 
{ 
$var++; 
} 
 
$a=5; 
foo($a); 
// $a vale 6 aqui. 
?> 
 
 
Gabarito: C 
 
14. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) Um servidor Web que interpreta páginas em PHP é denominado: 
 
a) IIS. 
b) JSTL. 
c) NetBeans. 
d) Apache. 
e) Netscape. 
 
Comentários: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 45 
156 
Bem, essa é uma questão extremamente mal formulada. Primeiro, JSTL é uma 
biblioteca de tags JSP, NetBeans é uma IDE de desenvolvimento de software e 
Netscape é um navegador web. Sobram, portanto, IIS e Apache. No entanto, ambos 
são Servidores Web capazes de interpretar páginas em PHP! No entanto, o gabarito 
oficial é Letra D. 
 
Gabarito: D 
 
15. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) O envio de e-mails, por meio de programas PHP, é responsabilidade 
da função: 
 
a) email. 
b) mail. 
c) &mail. 
d) ismail. 
e) &email. 
 
Comentários: 
 
Questão decoreba que não avalia conhecimento! A função responsável pelo envio 
de e-mails é a função mail(). Repare que o examinador tenta confundir colocando 
simbolos, em PHP os nomes de variáveis é que são precedidas por símbolos ($), os 
nomes funções não (os parâmetros podem ser precedidos por & para indicar 
passagem por referência). Agora colocar e-mail como alternativa foi maldade rs. 
Veja um exemplo abaixo retirado da documentação. 
 
mail('caffeinated@example.com', 'My Subject', $message); 
 
 
Gabarito: B 
 
16. (FCC - 2009 - TRT - 3ª Região (MG) - Técnico Judiciário - Tecnologia da 
Informação) Em PHP, 
 
a) os operadores aritméticos restringem-se a soma, subtração, multiplicação e 
divisão. 
 
b) as variáveis necessitam da sua definição de tipo no início do programa. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 46 
156 
c) operações aritméticas entre variáveis numéricas e variáveis alfanuméricas, por 
exemplo 6 divido por 3, resultam em mensagem de erro. 
 
d) o único conjunto de comandos condicionais utilizado é o if...endif. 
 
e) as variáveis são definidas com o símbolo "$" antes do nome da variável. 
 
Comentários: 
 
(a) Não, basta lembrar dos operadores Negação e Módulo; (b) Não, PHP é 
linguagem de tipagem dinâmica e fraca, i.e., permite declaração de variáveis em 
tempo de execução e permitem que as variáveis mudem de tipo; (c) Não, PHP 
realiza uma conversão implícita de tipos, portanto essa operação resultará no 
número 2 (6÷3); (d) Não, If... elseif... else e Switch; (e) Sim, para definir uma variável, 
utiliza-se o símbolo “$” antes de seu nome. Por exemplo: $variavel = 10. 
 
Gabarito: E 
 
17. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) Em PHP, 
uma variável NÃO pode receber o nome inválido: 
 
a) $cod_empregado 
b) $base1salario 
c) $data-nascimento 
d) $depto_1_nome 
e) $descricao 
 
Comentários: 
 
Em PHP, uma variável possui um nome válido caso se inicie com uma letra ou 
underscore, seguido de qualquer número de letras, algarismos ou underscores. 
Portanto, todas estão corretas, exceto $data-nascimento, na medida em que possui 
um traço (que é diferente de underscore). 
 
Gabarito: C 
 
18. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) NÃO é uma 
afirmativa correta sobre a função PHP: 
 
a) session_start( ) = Inicializa os dados da sessão. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 47 
156 
b) session_destroy( ) = Cancela o registro de uma variável global da sessão. 
c) session_unset( ) = Libera todas as variáveis da sessão. 
d) session_commit( ) = O mesmo que session_write_ close( ). 
e) session_write_close( ) = Escreve os dados da sessão e a encerra. 
 
Comentários: 
 
A função session_destroy() destrói todos os dados registrados em uma sessão! 
 
Gabarito: B 
 
19. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) Utilizando 
a data 01/07/2009 e o comando PHP: 
 
echo $data = date("d/m/y"); 
a data será exibida no formato 
 
a) 01/07/09. 
b) 01/07/2009. 
c) 01/Jul/09. 
d) 01/Jul/2009. 
e) Wed, 01/Jul/2009. 
 
Comentários: 
 
Sinceramente, galera. É um absurdo cobrarem uma questão como essa... isso não 
avalia conhecimento de ninguém! Enfim, “d” é o dia de 01 a 31; “m” é o mês de 01 a 
12; e “y” é o ano em dois dígitos. 
 
Gabarito: A 
 
20. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) A função 
fopen ( ), utilizada em um script PHP, que recebe o argumento de modo igual a 
"a+", abre um arquivo existente para: 
 
a) leitura e gravação e coloca o ponteiro no final do arquivo, depois de todos os 
dados. 
b) leitura e gravação, deleta todo o conteúdo e coloca o ponteiro no início do 
arquivo. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 48 
156 
c) leitura e gravação e coloca o ponteiro no início do arquivo, antes de qualquer 
dado. 
d) somente gravação e coloca o ponteiro no final do arquivo, depois de todos 
os dados. 
e) somente gravação, deleta todo o conteúdo e coloca o ponteiro no início do 
arquivo. 
 
Comentários: 
 
O argumento “a+” abre o arquivo para leitura e escrita; coloca o ponteiro no final 
do arquivo e, se o arquivo não existir, tenta criá-lo. 
 
Gabarito: A 
 
21. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) Um 
conteúdo será considerado como um código PHP pelo interpretador se estiver 
dentro do par de tags: 
 
a) <php> </php> 
b) <?php ?> 
c) <?php php?> 
d) <?> </?> 
e) <script language = PHP> ?> 
 
Comentários: 
 
Essa é fácil: começa com “<?php” e termina com “?>”. 
 
Gabarito: B 
 
22. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) A 
expressão PHP $x && $y representa um exemplo de utilização de operador: 
 
a) de atribuição. 
b) aritmético. 
c) lógico. 
d) de comparação. 
e) de incremento e decremento. 
 
Comentários: 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 49 
156 
 
Operador “&&” é um operador lógico. O resultado é verdadeiro se ambas as 
variáveis forem verdadeiras, caso contrário será falso. 
 
Gabarito: C 
 
23. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) Dado o 
loop PHP: 
 
for ($x = 0; $x <= "5"; $x++) 
 
A variável $x assumirá os valores: 
 
a) 1, 3 e 5. 
b) 0, 1, 2,3 e 4. 
c) 1, 2, 3, 4 e 5. 
d) 0, 2 e 4. 
e) 0, 1, 2, 3, 4 e 5. 
 
Comentários: 
 
Questão bastante simples: é um laço de repetição em que os valores variam de 0 a 
5. Portanto, a variável $x assume os valores 0, 1, 2, 3, 4 e 5. 
 
Gabarito: E 
 
24. (FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) HTML, DHTML, 
JavaScript e PHP são linguagens utilizadas no desenvolvimento de sites da World 
Wide Web. A seu respeito é correto afirmar que: 
 
a) o código de uma aplicação JavaScript deve ser interpretado pelo servidor HTTP 
ao passo que o código de uma aplicação PHP deve ser interpretado pelo cliente 
HTTP. 
 
b) o código de uma aplicação JavaScript deve ser interpretado pelo cliente HTTP 
ao passo que o código de uma aplicação PHP deve ser interpretado pelo servidor 
HTTP. 
 
c) tanto o código de uma aplicação JavaScript como o código de uma aplicação 
PHP devem ser executados pelo cliente HTTP. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 50 
156 
 
d) tanto o código de uma aplicação JavaScript como o código de uma aplicação 
PHP devem ser executados pelo servidor HTTP. 
 
e) o código de uma página HTML deve ser interpretado pelo cliente HTTP ao 
passo que o código de uma página DHTML deve ser interpretado pelo servidor 
HTTP. 
 
Comentários: 
 
Pessoal, como já foi dito, JavaScript é client-side e PHP é server-side. 
 
Gabarito: B 
 
25. (FCC - 2015 - TRE-RR - ANALISTA JUDICIÁRIO - ANÁLISE DE SISTEMAS) 
Considere o seguinte script encontrado em uma página PHP. 
 
<?php 
$idade = array("Paulo"=>"40", "Pedro"=>"62", "Ana"=>"43", "Marcos"=>"18"); 
arsort($idade); 
foreach($idade as $x => $x_valor) { 
 echo $x . " = " . $x_valor . " "; 
} 
?> 
 
Ao executar o script será exibido na página: 
 
a) Ana = 43 Marcos = 18 Paulo = 40 Pedro = 62 
b) Marcos = 18 Paulo = 40 Ana = 43 Pedro = 62 
c) 0 = 62 1 = 43 2 = 40 3 = 18 
d) Pedro = 62 Paulo = 40 Marcos = 18 Ana = 43 
e) Pedro = 62 Ana = 43 Paulo = 40 Marcos = 18 
 
Comentários: 
 
Questão sobre arrays e o método arsort. Como esse é um array com índices 
associativos, vimos na aula que o asort que ordena o array em ordem crescente dos 
valores, mantendo o índice. Já o arsort, o r é de reverse, ordena os valores na ordem 
inversa, ou seja, decrescente. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 51 
156 
Gabarito: E 
 
26. (FCC - 2013 - MPE-MA - TÉCNICO DO JUDICIÁRIO - TECNOLOGIA DA 
INFORMAÇÃO) Considere o código PHP a seguir: 
 
 
O comando que deve ser utilizado na lacuna I para colocar os nomes em ordem 
alfabética crescente é: 
 
a) order($nomes) ascending; 
b) rsort($nomes); 
c) index($nomes) order by asc; 
d) sort($nomes); 
e) krsort($nomes); 
 
Comentários: 
 
Esse é um array do tipo indexado, com índices numéricos. Portanto o método é o 
sort simples. 
 
Gabarito: D 
 
27. (FCC - 2013 - MPE-MA - TÉCNICO DO JUDICIÁRIO - TECNOLOGIA DA 
INFORMAÇÃO) Considere um formulário criado na página de site desenvolvido 
com PHP para permitir que os usuários façam upload de arquivos: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 52 
156 
 
No arquivo upload.php, as instruções utilizadas para se obter o nome e o tipo 
do arquivo, caso não ocorra erro são, respectivamente, 
 
a) $_DUMP["file"] e $_DUMP ["type"] 
b) $_FILES["file"]["name"] e $_FILES["file"]["type"] 
c) $_POST["file"] e $_ POST["type"] 
d) $_FILES["file"] e $_FILES ["type"] 
e) $_REQUEST["file"]["name"] e $_REQUEST["file"]["type"] 
 
Comentários: 
 
A variável superglobal que guarda os arquivos é o $_FILES. Perceba que o nome do 
input do arquivo é file. Ele que será o índice passado para o $_FILES. Agora o nome 
do arquivo e seu tipo estão dentro do objeto file. Por isso é preciso acessar com 
dois índices. $_FILES["file"]["name"] e $_FILES["file"]["type"]. 
 
Gabarito: B 
 
28. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE 
WEB) Para acessar bases de dados MySQL, por meio do PHP, é necessário antes 
estabelecer uma conexão. Para isso, deve ser utilizado o comando: 
 
a) mysql_&connect ou mysql_&pconnect 
b) mysql_&&connect ou mysql_&&pconnect 
c) mysql&_connect ou mysql&_pconnect 
d) mysql&&_connect ou mysql&&_pconnect 
e) mysql_connect ou mysql_pconnect 
 
Comentários: 
 
O comando de acesso a uma base de dados MySQL é mysql_connect ou 
mysql_pconnect. A diferença entre os dois é que no segundo, a conexão é 
persistente. Essas funções estão depreciadas nas versões mais recentes, o uso agora 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 53 
156 
é unificado na função mysqli_connect() e para que a conexão seja persistente utiliza-
se o parâmetro p: como prefixo do host. 
 
Gabarito: E 
 
29. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE 
WEB) Uma função PHP em execução terminará imediatamente, retornando seu 
argumento como valor, se for chamada, na função, a instrução: 
 
a) this 
b) null 
c) return 
d) this.value 
e) this.return 
 
Comentários: 
 
O comando return encerra a execução de uma função retornando o argumento 
como valor. 
 
Gabarito: C 
 
30. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE 
WEB) NÃO se trata de uma característica do PHP: 
 
a) portábil. 
b) baseado no servidor. 
c) gratuito e com código aberto. 
d) embutido no HTML. 
e) baseado no cliente. 
 
Comentários: 
 
Conforme visto na arquitetura do PHP, é necessário que os scripts sejam 
interpretados pelo servidor para que o código HTML que será apresentado ao 
cliente seja gerado. 
 
Gabarito: E 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 54 
156 
31. (FCC - 2009 - TRT-3ª REGIÃO (MG) - ANALISTA JUDICIÁRIO - TECNOLOGIA DA 
INFORMAÇÃO) Dados os operadores “e” lógico: “and”, “&&” e “&” e os 
operadores “ou” lógico: “or”, “||” e “|”, a ordem de precedência no momento do 
PHP avaliar as expressões será na sequência: 
 
a) and, &&, &, or, || e |. 
b) or, II, I, and, && e &. 
c) and, or, &&, ||, & e |. 
d) or, and, ||, &&, | e &. 
e) &, &&, and, |, || e or. 
 
Comentários: 
 
Essa questão foi anulada, mas podemos aproveitá-la para avaliar como se dá a 
ordem de precedência em PHP! 
 
PRECEDÊNCIA DOS OPERADORES 
clone new 
[ 
** 
++ -- ~ (int) (float) (string) (array) (object) (bool) @ 
instanceof 
! 
* / % 
+ - . 
<< >> 
< <= > >= 
== != === !== <> <=> 
& 
^ 
| 
&& 
|| 
?? 
? : 
= += -= *= **= /= .= %= &= |= ^= <<= >>= 
and 
xor 
or 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 55 
156 
Ou seja, a única opção onde alguma ordem é respeitada é a letra D, que está naordem CRESCENTE de precedência. A questão acabou ficando mal feita, mas ao 
menos revisamos como se dá a ordem de avaliação de operadores em PHP! 
 
Gabarito: D 
 
32. (FCC - 2016 - TRF 3ª REGIÃO (SP MS) - TÉCNICO JUDICIÁRIO - INFORMÁTICA) 
Cookie é um arquivo texto que pode ser armazenado no computador do 
usuário, normalmente com informações de sua navegação no site, para ser 
recuperado posteriormente pelo servidor. Em PHP, um cookie criado pela 
instrução setcookie("ck", "abcde", time() + 3600); poderá ser recuperado 
utilizando a instrução: 
 
a) $_ISSET["ck"] 
b) load_cookie ("ck") 
c) get_cookie("ck") 
d) $_GETCOOKIE["ck"] 
e) $_COOKIE["ck"] 
 
Comentários: 
 
Como vimos na aula, a variável superglobal $_COOKIE[“ck”] recupera cookies 
armazenados no cliente. 
 
Gabarito: E 
 
33. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Analise o código 
PHP mostrado a seguir. 
 
<?php 
function f($arg) 
{ 
$arg01 = 343 + 20/2 + 911; 
$arg02 = 38 - (5 * 11); 
$argRetorno = $arg01 - $arg02; 
} 
 
$arg01 = 343; 
$arg02 = 38; 
f($arg01); 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 56 
156 
echo $arg01; 
?> 
 
A saída produzida pela execução desse código é: 
 
a) -17 
b) 38 
c) 343 
d) 1264 
e) 1281 
 
Comentários: 
 
Vimos na aula que a passagem padrão de argumentos no PHP é por valor, ou seja, 
o valor da variável passada não é alterado. Logo, o valor continua sendo 343. 
 
Gabarito: C 
 
34. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Uma String 
recebida do campo nome de um formulário HTML enviado por meio do método 
POST para um site deve ser codificada para UTF-8. A forma correta de realizar 
essa operação, utilizando a linguagem PHP, é: 
 
a) $nome = utf8_encode( $_POST['nome'] ) 
b) $nome: utf8 
c) decode($nome) 
d) $nome = string( $_POST['nome'] ) 
e) parseHTML($nome, utf8( $_POST['nome'] ) 
 
Comentários: 
 
Para resolver essa questão, precisamos saber qual é a forma de ler um campo do 
método POST. Já sabemos que a variável superglobal $_POST guarda os valores 
passados, para recuperar basta colocar o nome do campo, logo, recuperamos o 
campo nome dessa forma: $_POST['nome']. Isso jé eliminam as letras b e c. 
Infelizmente era necessário saber que a função é a utf8_encode. 
 
Gabarito: A 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 57 
156 
35. (IESES - 2015 - IFC-SC - INFORMÁTICA - WEB DESIGN) Em um código PHP 5.6.2, 
qual das alternativas a seguir atribuiria o valor 10 à variável $var? 
 
a) $var = (100 > 10 : 100 ? 10); 
b) $var = (100 > 10 ? 10 : 100); 
c) $var = (100 > 10 : 10 ? 100); 
d) $var = (100 > 10 ? 100 : 10); 
 
Comentários: 
 
O ‘?’ é o operador ternário do PHP. Sua sintaxe é (exp1 ? exp2 : exp3). Caso a exp1 
seja verdadeira o retorno é exp2, caso seja falsa, o retorno é exp3. 
 
Os itens A e C estão com sintaxe errada. Vamos analisar os restantes: 
B) 100 > 10 ? verdade; Logo retorna 10. Correto. 
D) 100 > 10 ? verdade; Logo retorna 100. Incorreto. 
 
Gabarito: B 
 
36. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Analise o código 
PHP mostrado a seguir. 
 
 
Ao final da execução desse código, os valores na variável $lista estarão: 
 
a) ordenados de forma crescente, segundo o método de ordenação Quicksort; 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 58 
156 
b) ordenados de forma crescente, segundo o método de ordenação em bolha; 
c) embaralhados, não sendo possível prever a ordem dos valores; 
d) removidos da variável, devido a um erro no código; 
e) duplicados, devido a um erro no código. 
 
Comentários: 
 
Primeiramente, a variável $lista recebe um array cujos valores são os números de 0 
à 20 (retorno da função range). Em seguida, executamos uma for com a variável $i 
também recebendo valores de 0 a 20. 
 
Ao entrar no for, a variável $pos sempre receberá um valor aleatório entre 0 e 20 
(função rand). A $aux receberá o valor da $lista[0], ou seja, 0. E $lista[0] = 
$lista[$pos], quer dizer que receberá um valor aleatório entre 0 e 20. E ao final 
$lista[$pos] = $aux, $aux == 0 nesse momento, ou seja, a posição aleatória receberá 
o valor na ordem do loop. 
 
Ufa, para mim isso virou uma bagunça total entre 0 e 20 rs, não podemos saber 
quais valores estão em cada posição. 
 
Gabarito: C 
 
37. (CESPE – 2017 – TRE/BA - Analista de Sistemas) A respeito da declaração de 
variáveis na linguagem de programação PHP, assinale a opção correta. 
 
a) Uma variável é composta pelo nome dessa variável seguido do sinal $ no final. 
 
b) Um nome de variável pode começar com um número. 
 
c) Os tipos de variáveis existentes são somente local e global. 
 
d) Diferentemente das linguagens em que o programador deve declarar o nome 
e o tipo da variável antes de usá-la, o PHP converte automaticamente a variável 
para o tipo de dado correto. 
 
e) Os nomes das variáveis no PHP não diferenciam maiúsculas de minúsculas, ou 
seja, eles são case insentivive. 
 
Comentários: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 59 
156 
(a) Errado, uma variável é composta pelo sinal $ no início e o nome da variável; (b) 
Errado, um nome de variável sempre começa com uma letra ou sublinhado, seguido 
por letras, números ou sublinhados – a expressão regular é [a-zA-Z_\x7f-\xff][a-zA-
Z0-9_\x7f-\xff]*; (c) Errado, seria melhor dizer que existem os escopos: Global, Local 
ou Estático; (d) Correto, PHP é fracamente tipada, ou seja, durante a execução do 
programa pode-se alterar o tipo de dados de uma variável; (e) Errado, PHP é case-
sensitive. 
 
Gabarito: D 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 60 
156 
 
 
Com o objetivo de iniciar o desenvolvimento de uma série de aplicações web em 
PHP para uma organização que possui ambientes de desenvolvimento e 
produção que trabalham com informações de elevado grau de sensibilidade, um 
programador realizou a instalação, em sua máquina, de um IDE (interactive 
development environment) PHP. 
 
38. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) A habilitação da característica de thread safety no 
painel de informações do ambiente de runtime PHP depende fundamentalmente 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 61 
156 
do suporte que o sistema operacional oferta, e não, das características do zend 
engine. 
 
Comentários: 
 
Errada. Um servidor web deve lidar com diversas requisições de usuários, e para tal, 
pode criar um novo processo para cada nova requisição ou apenas um processocom diversas threads, uma para cada requisição. 
Historicamente, sistemas baseados em Unix utilizam processos para lidar com 
concorrência. Já quando se trata de Windows, a maioria dos Webservers irão tratar 
diferentes cliente sem diferentes threads. 
No PHP, para que não haja conflitos entre as threads, ou seja, para que ele seja 
thread safe, se faz necessário um sistema de proteção para que cada thread 
mantenha acesso apenas às suas variáveis. Esse sistema é chamado de Zend Thread 
Safety ou ZTS, que depende do Zend Engine. 
 
Gabarito: E 
 
39. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Considere que determinada aplicação web a ser 
desenvolvida em PHP deva ser integrada aos sistemas de controle de acesso já 
presentes nos ambientes de desenvolvimento e produção da organização. Nesse 
caso, se esses ambientes forem embasados em Kerberos ou em RADIUS (remote 
authentication dial in user service), o programador poderá obter êxito na 
integração por meio do uso de extensões providas pela biblioteca PECL (PHP 
extension community library), tais como os packages KADM5 e RADIUS. 
 
Comentários: 
 
Correta. RADIUS (Remote Authentication Dial In User Service) é um protocolo de 
rede que fornece gerenciamento centralizado de Autenticação, Autorização e 
Contabilização para usuários que conectam-se a e utilizam um serviço de rede. 
Kerberos é um protocolo de autenticação, que foi concebido para fornecer um 
robusta autenticação para aplicações cliente-servidor através de criptografia de 
chave secreta. 
Uma das formas de acessar servidores que utilizam o Kerberos é utilizando 
o KADM5 (Kerberos Administration 5). Tanto o KADM5 quanto o RADIUS podem 
ser instalados pelo repositório de extensões PECL. 
 
Gabarito: C 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 62 
156 
 
40. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O arquivo de configuração do PHP, de nome php.ini, 
será lido apenas no momento da inicialização (startup) do servidor HTTP 
associado ao referido IDE, que, no caso específico, é o Apache 2.2.11. 
 
Comentários: 
 
Correta. O arquivo de configuração, php.ini, é lido quando o PHP inicia. Para as 
versões de módulo de servidor, isso acontece apenas quando o servidor web for 
iniciado. Vale notar que para as versões CGI e CLI, isso acontece a cada invocação. 
 
O servidor HTTP é, realmente, o Apache 2.1.11, como podemos ver na imagem 
fornecida na questão no item Loaded Configuration File. 
 
Gabarito: C 
 
41. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Para que possa depurar os scripts PHP que 
construirá, o programador não necessita instalar depuradores externos, uma vez 
que a distribuição padrão de PHP vem acompanhada de depurador. 
 
Comentários: 
 
Errada. Como a questão é de 2010, na época o PHP não vinha com depurador, 
necessitando desta forma de alguma depurador externo (XDebug, por exemplo) em 
conjunto com alguma IDE (Netbeans, Eclipse, PHPStorm, etc). Porém, a partir da 
versão 5.6 do PHP, ele vem com um depurador próprio, o phpdbg que é um 
depurador interativo. Então se a questão cair novamente a resposta muda, beleza?! 
Fiquem atentos! 
 
Gabarito: E 
 
 
42. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O acesso otimizado ao sistema gerenciador de 
banco de dados (SGBD) em uso nos ambientes de desenvolvimento e produção 
da organização pode ser obtido por meio da extensão PDO (PHP data objects), 
desde que seja habilitado o driver PDO específico do SGBD em uso, uma vez 
que a PDO não provê abstração completa do banco de dados, mas apenas uma 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 63 
156 
camada de abstração para acesso aos dados, que não reescreve SQL nem emula 
funcionalidades de um SGBD. 
 
Comentários: 
 
Correta. O PDO (PHP Data Object) realiza uma abstração do banco de dados 
fornecendo uma biblioteca limpa e consistente, que unifica as características das 
extensões que acessam os bancos de dados. Porém, o PDO possui também algumas 
desvantagens, por exemplo, não efetua a leitura e tradução das instruções SQL, é 
apenas realizada uma fusão dos métodos mandados para as extensões respectivas. 
Principais características do PDO: 
 
▪ Flexibilidade – Como o PDO carrega o driver específico do banco de dados em 
tempo de execução, não é preciso reconfigurar o PHP sempre que um banco de 
dados diferente for usado. 
▪ Desempenho – O PDO está escrito em C e compilado no PHP, o que lhe garante 
um aumento considerável no desempenho em relação a soluções escritas em 
PHP. 
▪ Consistência de código – No PDO não existe a inconsistência de código, pois é 
oferecida apenas uma interface unificada que é está disponível para qualquer 
banco de dados. 
▪ Características de orientação de objetos – Possui recursos de orientação de 
objetos, o que resulta em uma comunicação mais poderosa e eficiente com 
banco de dados. 
 
Gabarito: C 
 
43. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Caso o programador deseje criar, gerenciar e 
distribuir internamente à organização um ou mais packages que contenham 
módulos ou extensões por ele desenvolvidos, é correto o uso da técnica de 
channels, que é embasada em arquitetura orientada a serviços (SOA), por meio 
da utilização de XML e REST (representational state transfer). 
 
Comentários: 
 
Correta. A questão mistura muitos conceitos causando uma confusão e, 
aparentemente, parece estar errada por falar de um técnica do SOA (channels) e 
terminar falando de REST. Bem, um dos princípios do SOA é o reuso logo, se um 
programador desenvolveu um pacote de funcionalidade é interessante que este 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 64 
156 
fique disponível para toda a organização, assim, caso alguém sinta a necessidade 
de alguma funcionalidade já coberta por este pacote, basta consumi-lo. Uma das 
formas de consumo é através de channels implementados em REST que é um forma 
de consumo para webservices mais simples que o SOA. 
 
Gabarito: C 
 
44. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Para instalar extensões do repositório PEAR (PHP 
extension and application repository), é correto o uso do Pyrus, uma versão 
refatorada do instalador PEAR, capaz de prover maior segurança aos processos, 
permitindo o gerenciamento e a distribuição de packages. 
 
Comentários: 
 
Correta. O PEAR (PHP Extension and Application Repository) é um repositório de 
diversas extensões do PHP, escritas em PHP. Um dos gerenciadores de pacotes PHP 
que suportava pacotes PEAR era o pyrus descontinuado em 2011 devido a 
popularidade de um outro gerenciador de pacotes, o Composer. 
Vale lembrar que utilizam-se gerenciadores de pacotes devido a facilidade com que 
eles integram as diversas dependências entre os pacotes, facilitando a vida do 
programador que não tem que ficar instalando as dependências dos pacotes uma 
a uma. 
 
Gabarito: C 
 
Suponha que uma equipe de programadoresPHP tenha como atribuição o 
desenvolvimento de um módulo de software a partir da composição, da extensão 
ou da adaptação de um framework. Com base nessa situação e considerando as 
boas práticas do desenvolvimento e manutenção de sistemas, incluindo-se as 
recomendadas pelos desenvolvedores de extensões padronizadas para PHP, julgue 
os itens seguintes. 
 
45. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Ao se escreverem scripts PHP, deve-se empregar 
indentação com espaços em branco, sem uso de tabs; atribuições em arrays 
devem ser alinhadas; comentários podem adotar o estilo C ou estilo C++, mas 
comentários em estilo PERL devem ser evitados. 
 
Comentários: 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 65 
156 
 
Correta. Segundo a PSR (PHP Standard Recommendations), mais especificamente a 
PSR 2, ou Guia de estilo de codificação (Coding Style Guide), que aborda como deve 
ser feita a formatação do código para facilitar a leitura por outros desenvolvedores, 
algumas das indicações são: 
 
• Devemos usar 4 espaços para indentação, não tabs. 
 
• Não devemos fixar um número de caracteres por linha, mas é bom que uma 
linha tenha menos de 80 caracteres. 
 
• A abertura de colchetes de classes e métodos devem vir na próxima linha. 
class Foo 
{ 
 public $aMemberVar = 'aMemberVar Member Variable'; 
 public $aFuncName = 'aMemberFunc'; 
 
 function aMemberFunc() { 
 print 'Inside `aMemberFunc()`'; 
 } 
} 
 
• A abertura de colchetes de estruturas de controle devem vir na mesma linha 
com um espaço em branco. 
 for ($i = 1; $i <= 10; $i++) { 
 echo $i; 
} 
 
• Comentários podem ser feitos com // (Tal como C e C++) , # ou /* … */ (Para 
blocos de comentário) 
 // comentario 
 # comentario 
 /* Comentario 
 Multi linhas 
 ... 
*/ 
 
• Arrays em PHP são atribuídos da seguinte forma: 
 <?php 
$cars = array("Volvo", "BMW", "Toyota"); 
?> 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 66 
156 
Sobre os comentários no estile PEARL, na documentação oficial do PHP não há 
menção alguma sobre evitar comentários com # (cerquilha, estilo PEARL), assim a 
questão está errada porém o CESPE considerou correta. 
 
Gabarito: C 
 
46. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Scripts de teste funcional devem conter a extensão 
.phpt, conforme prescreve o padrão de distribuição de módulos PHP; os diversos 
artefatos de teste relacionados a um módulo desenvolvido devem ser 
armazenados em subdiretório de nome tests, dentro do diretório do módulo ou 
package; dados de configuração específicos do ambiente de teste do 
desenvolvedor devem ser armazenados no arquivo de nome config.php.dist. 
 
Comentários: 
 
Errada. Na página oficial do PHP Assurance Quality Team, não há quaisquer das 
restrições impostas para realização de testes descritas no enunciado da questão. 
Um teste phpt é um pequeno script usado pelo php-src e equipes de Garantia de 
Qualidade (QA) para testar as funcionalidades do PHP, e ele pode ser usado com 
novos lançamentos para certificar-se de que eles continuem funcionando como nas 
versões anteriores, ou para ajudar a encontrar erros em versões atuais. 
 
Gabarito: E 
 
47. (CESPE – 2010 – ABIN – Oficial Técnico de Inteligência - Área de 
Desenvolvimento e Manutenção de Sistemas) Se o pedido 
http://localhost:8080/teste.php?nome=joao for aplicado de forma bem sucedida 
ao script apresentado a seguir, então, após o processamento do pedido, a saída 
de dados para o usuário deverá conter a string joao e um arquivo de nome 
joao.txt, contendo a palavra joao, existirá no computador onde se encontra o 
serviço HTTP associado ao referido pedido. 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 67 
156 
Comentários: 
 
Anulada. Pessoal a questão está ERRADA, mas o CESPE anulou. Vamos analisar. 
Trata-se de uma requisição do tipo GET. Vejamos a constituição da requisição: 
 
http://localhost:8080/ teste.php? ?nome=joao 
URL para onde é mandada a 
requisição 
Script que será 
executado 
Variável nome com 
valor joao 
 
Vamos analisar linha a linha: 
 
$ponteiro = fopen ( $_REQUEST[‘nome’].’.txt’] ); 
 
Cria um arquivo com o nome passado na URL através da variável nome 
(http://localhost:8080/teste.php?nome=joao) e extensão “.txt”, porém, faltou 
especificar o modo é de escrita (poderíamos usar ‘r+’, ‘w’, ‘w+’, ‘a’, ‘a+’). 
 
modo Descrição 
'r' Abre somente para leitura; coloca o ponteiro do arquivo no começo 
do arquivo. 
'r+' Abre para leitura e escrita; coloca o ponteiro do arquivo no começo 
do arquivo. 
'w' Abre somente para escrita; coloca o ponteiro do arquivo no começo 
do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo 
não existir, tenta criá-lo. 
'w+' Abre para leitura e escrita; coloca o ponteiro do arquivo no começo 
do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo 
não existir, tenta criá-lo. 
'a' Abre somente para escrita; coloca o ponteiro do arquivo no final do 
arquivo. Se o arquivo não existir, tenta criá-lo. 
'a+' Abre para leitura e escrita; coloca o ponteiro do arquivo no final do 
arquivo. Se o arquivo não existir, tenta criá-lo. 
'x' Cria e abre o arquivo somente para escrita; coloca o ponteiro no 
começo do arquivo. Se o arquivo já existir, a chamada afopen() falhará, 
retornando FALSE e gerando um erro de nível E_WARNING. Se o 
arquivo não existir, tenta criá-lo. Isto é equivalente a especificar as flags 
O_EXCL|O_CREAT para a chamada de sistema open(2). 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 68 
156 
'x+' Cria e abre o arquivo para leitura e escrita; coloca o ponteiro no 
começo do arquivo. Se o arquivo já existir, a chamada afopen() falhará, 
retornando FALSE e gerando um erro de nível E_WARNING. Se o 
arquivo não existir, tenta criá-lo. Isto é equivalente a especificar as flags 
O_EXCL|O_CREAT para a chamada de sistema open(2). 
 
fwrite($ponteiro,$nome); 
Escreve no arquivo criado o valor da variável $nome (no caso joao). 
 
fclose($ponteiro); 
Fecha o arquivo recem criado. 
 
echo $_GET[‘nome’]; 
Imprime para usuário o valor da variável nome passado na requisição do tipo GET. 
 
Vale notar que as variáveis $_GET, $_POST e $_REQUEST são ditas 'superglobais', 
ou globais automáticas. Isto significa que elas estão disponíveis em todos escopos 
pelo script. Não há necessidade de fazer global $variable; para acessá-las dentro de 
uma função ou método. Pessoal, embora o $_REQUEST trate tanto requisições POST 
quanto GET é aconselhável utilizar utilizar $_GET para requisições GET e $_POST 
para requisições POST não só por questões de performance, estilo e boa 
práticas. As variáveis $_REQUEST são providas para o script PHP via mecanismos 
de entradas GET, POST, e COOKIE e portanto poderiam ser modificadas por um 
usuário remoto e não podem ser confiadas. 
 
Gabarito: A 
 
48. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Áreade Desenvolvimento 
e Manutenção de Sistemas) Sabendo-se que a função array_multisort é capaz 
de ordenar múltiplos arrays na plataforma PHP, então a saída de dados gerada 
pela execução bem sucedida do script abaixo produzirá o resultado indicado em 
seguida. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 69 
156 
 
Comentários: 
 
Correta. Pessoal, esta questão trata de como a função array_multisort funciona. Ela 
é usada para ordenar vários arrays de uma vez ou apenas um array multi-
dimensional de acordo com uma das dimensões. Os arrays dados são tratados 
como colunas de uma tabela a ser classificada pelas linhas - isso lembra a 
funcionalidade da cláusula ORDER BY da SQL. 
 
O primeiro array é o principal na ordenação. As linhas (valores) no primeiro array 
servem de base para a ordenação do próximo, e assim por diante. A estrutura de 
argumentos dessa função não é muito normal, mas bastante flexível. O primeiro 
argumento de todos deve ser um array. Subsequentemente, cada argumento pode 
ser um array ou um dos sinais de classificação da lista a seguir. 
 
Sinais de ordem de classificação: 
• SORT_ASC - classifica na ordem crescente 
• SORT_DESC - classifica na ordem decrescente 
 
Sinais de tipos de ordenação: 
• SORT_REGULAR - compara os elementos normalmente 
• SORT_NUMERIC - compara os elementos como itens numéricos 
• SORT_STRING - compara os elementos como strings 
 
Não podem existir dois sinais de ordenação do mesmo tipo especificados para um 
mesmo array. Os sinais de ordenação especificados depois de um array se aplicam 
apenas para esse array - a eles são atribuídos por padrão os valores SORT_ASC e 
SORT_REGULAR antes de cada novo argumento do tipo array. 
 
Realizando o algoritimo na primera array, a segunda “acompanha” com os índices 
correspondentes, como linhas de uma tabela (lembrando que o PHP utiliza o 
algoritmo Quicksort para ordenação de arrays). 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 70 
156 
 
 
Logo, a afirmação está correta! Para fins de ilustração, vejamos outros exemplos da 
função array_multisort 
 
Exemplo 1: 
 
<?php 
$ar1 = array("10", 100, 100, "a"); 
$ar2 = array(1, 3, "2", 1); 
array_multisort($ar1, $ar2); 
?> 
 
Saída: ”10”, ”a”, 100, 100 e 1, 1,”2”, ”3” 
 
Exemplo 2: 
 
<?php 
$ar = array(array ("10", 100, 100, "a"), array (1, 3, "2", 1)); 
array_multisort($ar[0], SORT_ASC, SORT_STRING, 
 $ar[1], SORT_NUMERIC, SORT_DESC); 
?> 
 
Saída: ”10”, 100, 100, ”a” e 1, ”3”, ”2”, 1 
 
Gabarito: C 
 
49. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) A execução bem sucedida do script apresentado 
abaixo produz como saída o valor 900. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 71 
156 
 
Comentários: 
 
Errada. Pessoal, vamos resolver linha a linha: 
 
Linha 1: $num = 14 ; $deslocado = $num >> 2; 
O operador >> desloca $num de 2 bits para esquerda isso na prática corresponde 
a dividir por 4, vejamos: $num em binário é 1110, logo 1110 >> 2 fica 11, então 
$deslocado assume o valor 11 em binário, ou seja, 3. Assim terminamos a primeira 
linha com: 
 
$num = 14 e $deslocado = 3 
 
Linha 2: $soma=$deslocado;$valor1=10;$valor2=20;$valor3=30; 
Aqui não temos nada demais a não ser atribuição de valores a variáveis. Terminamos 
a linha com: 
 
$soma=3, $valor1=10, $valor2=20 e $valor3=30 
 
Linha 3: $soma+=$valor1+$valor2;$soma*=$valor3; 
Nada demais, vejamos: $soma+=$valor1+$valor2 equivale a $soma = $soma + 
$valor1 + $valor2 = 3 + 10 + 20 = 33; $soma*=$valor3 equivale a $soma = $soma 
* $valor3 = 33 * 30 = 990; Assim terminamos a linha 3 com: 
 
$soma = 990 
 
Linha 4: $soma%=100; 
Aqui estamos utilizando o operador resto da divisão inteira, logo: $soma%=100 
equivale a $soma = $soma % 100 = 990 % 100 = 90. Assim terminamos a linha 4 
com: 
$soma = 90 
 
Linha 5: echo $soma; 
Termina imprimindo o valor da variável $soma que é igual a 90 e não 900. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 72 
156 
 
Gabarito: E 
 
50. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Se o pedido http://localhost/teste.php?nome=joao 
for aplicado de forma bem sucedida ao script apresentado abaixo, então a saída 
de dados deverá conter a string Você deve preencher os campos. É correto 
afirmar, ainda, que uma conexão de socket foi estabelecida entre dois processos 
que se executam no mesmo computador onde se encontra o serviço HTTP 
associado ao referido pedido, sendo uma extremidade da conexão associada à 
porta 80 e a outra, a uma porta cujo número não se pode determinar pelas 
informações apresentadas. 
 
 
Comentários: 
 
Correta. Pessoal vamos analisar as duas afirmativas da questão. Primeiro vamos 
entender o que a cláusula if testa. A entrada na cláusula if está condicionada a 
verificação das variáveis $nome e $email, se ao menos uma estiver vazia então será 
impresso “Você deve preencher os campos”. Se ambas não forem vazias então será 
escrito “Olá $nome”, onde $nome será substituído pelo valor da variável. 
 
Observando a URL da requisição http://localhost/teste.php?nome=joao, 
percebemos que se trata de um requisição do tipo GET com apenas a variável 
$nome=joao, não há a passagem da variável email, logo, será impresso a string 
“Você deve preencher os campos”. 
 
Agora vamos a segunda afirmação que fala da porta do socket. Como podemos 
perceber pela própria URL, estamos realizando requisições para o endereço de 
localhost (ou 127.0.0.1 - loopback), ou seja, a conexão socket foi estabelecida entre 
dois processos do mesmo computador. Por se tratar de um requisição HTTP então 
a porta é de fato a 80. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 73 
156 
Gabarito: C 
 
51. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Sabendo-se que a função natsort() opera com o 
conceito de ordenação natural, na qual as strings alfanuméricas são ordenadas 
da forma que um ser humano ordenaria, enquanto a função asort() opera com 
o conceito de ordenação classicamente usado em algoritmos de ordenação de 
strings, na ciência da computação, então a execução bem sucedida do script PHP 
apresentado abaixo produzirá, na saída, a primeira ocorrência da string 
img12.png antes da primeira ocorrência da string img2.png e a segunda 
ocorrência da string img12.png depois da segunda ocorrência da string 
img2.png. 
 
 
Comentários: 
 
Correta. Bom primeiro precisamos entender como natsort() e asort() ordenam. O 
algoritmo de ordenação utilizado em natsort() ordena conforme um ser humano 
ordena, então, o resultado de natsort() sobre o array $A1, tem como resultado: 
 
$A1 = [“img1.png”, ”img2.png”, ”img10.png”,”img12.png”]Agora o algoritmo de ordenação utilizado em asort(), compara as strings caractere 
por caractere, de forma a preservar a ordem de cada um dos caracteres que 
compõem as strings. Assim, asort() sobre o array $array2, tem como resultado: 
 
$array2 = [“img1.png”, ”img10.png”, ”img12.png”, ”img2.png”] 
 
Agora vamos a saída do script PHP. Como a ordem de execução é do asort($A1), 
seguida da impressão do array $A1 e depois do natsort($array2) e a impressão do 
array $array2, temos: 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 74 
156 
 
[“img1.png”, ”img10.png”, ”img12.png”, ”img2.png”] 
[“img1.png”, ”img2.png”, ”img10.png”, ”img12.png”] 
 
Logo, a primeira ocorrência de img12.png ocorre antes da primeira ocorrência de 
img2.png e a segunda ocorrência de img12.png ocorre depois da segunda 
ocorrência de img2.png. 
 
Gabarito: C 
 
 
 
52. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Uma sessão PHP é criada ou recuperada 
automaticamente durante a execução do script. 
 
Comentários: 
 
Errada. Uma sessão web é bem parecida com a sessão de um PC, que ao iniciar, 
temos que colocar usuário e senha, assim seu computador pode saber quem está 
usando a máquina e guardar os registros com segurança. Em um site ou sistema 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
==134dde==
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 75 
156 
web, a sessão é importante quando se quer mais segurança na página ou quando 
se quer ter um controle de usuário. 
 
Também alguns programadores utilizam-se deste recurso para guardar 
informações e ou montar um carrinho de compras de um site de vendas, pois assim 
vão armazenando-se os itens ou produtos e só no final é que os dados são jogados 
no banco de dados. 
 
Nota: A variável de sessão PHP é usada para armazenar informações sobre, ou 
alterar as configurações do sistema ou site para uma sessão de usuário. As variáveis 
de sessão armazenam informações sobre um único usuário e estão disponíveis para 
todas as páginas em um único aplicativo. 
 
No código apresentado não há em momento algum a utilização da variável 
$_SESSION, logo, não será possível recuperar a sessão. 
 
Gabarito: E 
 
53. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
Manutenção de Sistemas) A senha do usuário que está no banco de dados não 
foi criptografada com um hash, fato que torna a aplicação vulnerável a ataques 
de dicionário. 
 
Comentários: 
 
Errada. Pessoal essa questão ao meu ver é polêmica. De fato não há elementos que 
nos permitam afirmar que a senha está ou não criptografada no banco de dados. 
Para isso precisaríamos ter ciência se os valores salvos na coluna “senha” foram 
submetidos a alguma função de hash (MD5, SHA256, etc). Contudo é muito 
provável que não esteja criptografada pois não é aplicada nenhuma função de hash 
sobre a senha no código PHP fornecido. 
 
Quanto a ataques de dicionário não tem mistério, é usar SENHAS FORTES. Como 
sabemos que muitas vezes os usuários, mesmo conscientes, negligenciam isso 
podemos implementar mecanismos extras como autenticação de dois fatores (2FA), 
bloqueio de conta após um certo número de tentativas falhas, entre outros. 
 
Gabarito: E 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 76 
156 
54. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O banco de dados MySQL é usado pelo script, mas 
a conexão com o banco deveria ter sido encerrada ou devolvida ao pool ao final 
do script, fato que não se concretiza. 
 
Comentários: 
 
Correta. É fácil verificar que o banco é o MySQL, pois o conector usado é o 
conecta_mysql.inc. E sim, a conexão com o banco deveria ter sido encerrada com 
um mysql_free_result($r), isso evita que memória fique alocada para consultas que 
já passaram. 
 
Gabarito: C 
 
55. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O pedido HTTP que pode ser atendido por esse 
script não poderá conter cookies de nomes nu e su, além de estar sujeito a 
ataques de SQL injection. 
 
Comentários: 
 
Errada. Pessoal esta questão está bem confusa. Primeiro os cookies foram criados 
sem estabelecer um tempo de validade, assim, eles vão expirar ao fim da sessão, ou 
seja, não adianta nada setar os cookies, pois em um novo acesso o usuário terá que 
colocar as credenciais de acesso novamente e conforme a lógica de login os cookies 
nu e su serão sobrescritos. 
 
Quanto a sujeição à ataques de SQL injection, é uma boa práctica validar os dados 
dos campos usuário e senha, que são utilizados para montar uma consulta SQL. 
Poderíamos usar um caractere de escapamento e fazer outras buscas além do nome 
do usuário e de sua senha. Existem formas de fazer isso utilizando a função 
htmlspecialchars() e a mysql_real_escape_string(); 
 
Gabarito: E 
 
56. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Os softwares de servidores web, ao aderirem à 
arquitetura de sistemas operacionais, empregam modelo de memória virtual, 
que atua como um cache de memória e contém parte das instruções e dados 
executados por um script em determinado instante de tempo. Assim, o script 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 77 
156 
não precisa estar armazenado simultaneamente na memória principal e no disco; 
com isso, a memória total disponível para um script ou programa pode exceder 
o tamanho da memória principal do sistema. 
 
Comentários: 
 
Errada. Quem emprega o modelo de memória virtual é o sistema operacional, a 
memória utilizada é transparente para o software. Além disso cache e memória 
virtual são coisas distintas. Memória cache ou simplesmente cache é usado para 
armazenar dados acessados com frequência, a fim de acessar rapidamente os dados 
sempre que for necessário. 
 
Ambos são conceitualmente a mesma coisa, porém diferem principalmente em 
matéria de execução, que resulta em diferentes aspectos, como velocidade e 
controle de mecanismo. Memória virtual é usada para ocultar a informação da 
memória física real do sistema. Estende-se a memória disponível do computador, 
armazenando as partes inativas do conteúdo RAM em um disco. 
 
Memória virtual cria uma ilusão de que um usuário tem um ou mais espaços de 
endereços contíguos que começam com endereço zero. 
 
Gabarito: E 
 
57. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O formato JSON (javascript object notation) permite 
representar objetos e classes como estruturas de dados e arrays associativos, 
sendo possível seu uso em combinação com Ajax e PHP, por meio de bibliotecas 
diversas, como DOJO. 
 
Comentários: 
 
Correta. JSON (JavaScript Object Notation - Notação de Objetos JavaScript) é uma 
formatação leve de troca de dados. Para seres humanos, é fácil de ler e escrever. 
Para máquinas, é fácil de interpretar e gerar. Está baseado em um subconjunto da 
linguagemde programação JavaScript, Standard ECMA-262 3a Edição - Dezembro 
- 1999. 
 
JSON é em formato texto e completamente independente de linguagem, pois usa 
convenções que são familiares às linguagens C, C++, C#, Java, JavaScript, Perl, 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 78 
156 
Python e muitas outras. Estas propriedades fazem com que JSON seja um formato 
ideal de troca de dados. 
 
Já o DOJO é uma biblioteca de JavaScript modular de código aberto (ou mais 
especificamente o kit de ferramentas do JavaScript), projetado para facilitar o rápido 
desenvolvimento de aplicativos e sites da plataforma baseados em JavaScript / Ajax. 
Entre os módulos disponibilizados há o dojo/json que trata de json (parsing, 
serialization, etc). 
 
Gabarito: C 
 
58. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Arrays associativos, usados em PHP e em outras 
linguagens de script, podem ser implementados de forma eficiente, do ponto de 
vista de consumo de memória, por meio do uso de tabelas de dispersão. Para 
garantir eficiência, essas tabelas precisam ser totalmente livres de colisão, tal que, 
na implementação de métodos de busca, as pesquisas sejam executadas em 
tempo constante, independentemente do valor pesquisado. 
 
Comentários: 
 
Errada. Pessoal, tabelas de dispersão nada mais são que os famosos hash (plural 
hashes). Ela é uma estrutura de dados especial, que associa chaves de pesquisa a 
valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e 
obter o valor desejado. Estas tabelas utilizam funções de espalhamento, que nada 
mais são que funções que geram a partir de uma chave um determinado índice que 
facilita a busca subsequente. 
 
O ideal para a função de espalhamento é que sejam sempre fornecidos índices 
únicos para as chaves de entrada. A função perfeita seria a que, para quaisquer 
entradas A e B, sendo A diferente de B, fornecesse saídas diferentes. Quando as 
entradas A e B são diferentes e, passando pela função de espalhamento, geram a 
mesma saída, acontece o que chamamos de colisão. 
 
Na prática, funções de espalhamento perfeitas ou quase perfeitas são encontradas 
apenas onde a colisão é intolerável (por exemplo, nas funções de dispersão da 
criptografia), ou quando conhecemos previamente o conteúdo da tabela 
armazenada. Nas tabelas de dispersão comuns a colisão é apenas indesejável, 
diminuindo o desempenho do sistema. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 79 
156 
Muitos programas funcionam sem que seu responsável suspeite que a função de 
espalhamento seja ruim e esteja atrapalhando o desempenho. Por causa das 
colisões, muitas tabelas de dispersão são aliadas com alguma outra estrutura de 
dados, tal como uma lista encadeada ou até mesmo com árvores balanceadas. Em 
outras oportunidades a colisão é solucionada dentro da própria tabela. 
 
Gabarito: E 
 
59. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Estruturas de dados padronizadas, como listas 
ligadas duplamente encadeadas, pilhas, filas, filas de prioridade e arrays 
numéricos de tamanho fixo, são disponíveis em PHP por meio da extensão SPL 
(standard PHP library). 
 
Comentários: 
 
Correta. Essa é fácil. A maioria das linguagens de alto nível orientadas a objeto já 
tem em suas bibliotecas padrão, implementações para diversos problemas 
conhecidos na computação. A SPL é a Standard PHP Library e fornece uma coleção 
de interfaces e classes que servem para resolver problemas padrões. 
 
Gabarito: C 
 
60. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Algoritmos recursivos normalmente têm menor 
tempo de resposta que seus equivalentes iterativos, mas as linguagens PHP e 
Javascript, por serem linguagens de script, não permitem nem necessitam de 
recursividade. 
 
Comentários: 
 
Errada. Primeiramente algoritmos recursivos são classicamente mais custosos que 
os iterativos e estão suscetíveis a diversos problemas como o famoso stackoverflow 
(estouro da pilha de memória). Além disso PHP e javascript permitem sim o uso da 
recursividade. 
 
Gabarito: E 
ACERTEI ERREI 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 80 
156 
3 FRAMEWORK .NET 
3.1 INTRODUÇÃO 
 
 
 
Em uma aplicação normalmente temos algumas funcionalidades que são comuns, temos os botões 
(maximizar, minimizar), checkboxes, listas, formulários que devem ser salvos em banco de dados, 
temos que desenhar gráficos, ler e escrever arquivos. Todas essas ferramentas estão disponíveis no 
.Net. 
 
O programador pode utilizar suas bibliotecas e dessa forma ganha mais tempo para focar nas 
especificidades de sua aplicação. Essas ferramentas são divididas em diversos namespaces. Por 
exemplo, para trabalhar com formulários adicionamos em nossa aplicação o namespace 
System.Windows.Forms. Quando compilamos o programa, ele é traduzido para a Common 
Intermediate Language (CIL). 
 
Ao final, é gerado o arquivo executável (.exe). Quando você dá dois cliques sobre o arquivo executável, 
o programa “roda” no Windows, mas existe uma camada extra entre o programa e o Windows, que é 
o Common Language Runtime (CLR). Esta camada é uma máquina virtual que trata as questões de 
sistema operacional e de hardware, tirando essa preocupação do desenvolvedor. 
 
3.2 VISUAL STUDIO 
O Visual Studio é um conjunto de ferramentas que auxiliam na criação de software, desde o 
planejamento até o design da interface gráfica, codificação, teste, debugging, análise da qualidade 
de código e de performance, implantação. Todas essas ferramentas são integradas e estão 
disponíveis na IDE (Integrated Development Environment) Visual Studio. 
 
Existem três versões o Visual Studio Community (gratuito), o Visual Studio Enterprise (pago) e o Visual 
Studio Code (gratuito, código fonte para MAC e Linux). 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 81 
156 
 
O Visual Studio permite a criação de: 
 
1. apps e jogos para Windows, Android e iOS. 
2. websites e web services baseados em ASP.NET, JQuery, AngularJS, e outros frameworks. 
3. aplicações para plataformas e dispositivos diversos como Azure, Office, Sharepoint, entre 
outros. 
4. jogos e aplicações com uso intensivo de gráficos para diversos dispositivos Windows, incluindo 
o Xbox, com a utilização do DirectX. 
 
 
 
 
 
 
 Este é o famoso Visual Studio IDE (versão 2015). Nela podemos ver um projeto aberto, a solução 
“BGs Restaurant Guide”. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 82 
156 
Agora que você já foi apresentado a tela do Visual Studio, vamos falar um pouco mais de alguns itens 
destacados: 
 
• Visual Studio Team Services - a Team Explorer Window permite a navegação pelo controle de 
versãode código e dos itens de trabalho da equipe do projeto. 
• Open Solution - o Solution Explorer permite a navegação pelas pastas e arquivos do projeto. 
• Code Editor - Toda IDE possui essa área, que é onde você efetivamente escreve o código. 
 
Uma ferramenta que merece destaque é a ToolBox. A imagem abaixo mostra os Controles que você 
pode incluir no seu formulário apenas clicando e arrastando. 
 
 
 
Digamos que você queira criar um formulário como o da figura a seguir, nesse caso o Visual Studio 
adicionará Controles na sua classe, eles são objetos como qualquer outro, porém já tem um padrão 
de desenho. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 83 
156 
 
 
Para projetos que utilizam uma interface baseada em XAML, o designer padrão é o Blend. Ele é 
integrado ao Visual Studio. 
 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 84 
156 
3.3 EXERCÍCIOS COMENTADOS: FRAMEWORK .NET 
 
1. (FGV - 2014 - DPE-RJ - Técnico Superior Especializado - Analista De Desenvolvimento De 
Sistemas) Uma empresa que desenvolve projetos no Visual Studio decidiu utilizar o Team 
Foundation Service. Uma característica relacionada ao desenvolvimento em equipe e outra, 
relacionada ao controle de código do Team Foundation, são respectivamente 
 
a) quadro de tarefas e gerenciamento de conflitos. 
b) funcionar com Eclipse e permitir chamadas de função. 
c) integrar com Microsoft Visual Studio e usar a plataforma .NET. 
d) testes de unidade e função de auto completar código. 
e) definição de testes e definição de complexidade. 
 
Comentários: 
 
O Team Foundation Service é um complemento do Visual Studio que permite que uma equipe trabalhe 
junto em um mesmo projeto. Compartilhando o código, acompanhado o trabalho e as entregas. A 
figura abaixo mostra um exemplo de quadro de tarefas (característica de desenvolvimento em equipe) 
 
 
No Team Foundation, também temos a ferramenta de controle de versão de código que permite o 
gerenciamento de conflitos. 
 
Gabarito: A 
 
2. (FGV - 2014 - DPE-RJ - Técnico Superior Especializado - Analista De Desenvolvimento De 
Sistemas) Uma empresa possui um conjunto de sistemas desenvolvidos com 
plataformas/tecnologias diferentes. Como parte da estratégia dessa empresa, decidiu-se que os 
sistemas precisam estar interoperáveis ou integrados. Foi proposto o uso de serviços Web 
baseados em SOAP. Considerando-se a plataforma .NET, essa proposta 
 
a) não deve ser aceita, pois a plataforma .NET não possui suporte para criação de serviços Web 
baseados em SOAP. 
 
b) não deve ser aceita, pois a integração de sistemas utilizando SOAP é pouco empregado na 
indústria, não existindo padrões para a operação de sistemas heterogêneos. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 85 
156 
c) deve ser aceita, pois serviços web baseados em SOAP têm como característica principal serem 
restritos à plataforma .NET. 
 
d) deve ser aceita, entretanto, com a ressalva que serviços Web baseados em SOAP não possuem 
descritores para os serviços desenvolvidos. 
 
e) deve ser aceita, pois serviços web baseados em SOAP têm suporte na plataforma .NET além de 
serem amplamente adotados por empresas para integração de sistemas heterogêneos. 
 
Comentários: 
 
Nenhum segredo aqui, SOAP é um padrão para a descrição de Web Services amplamente utilizado, e 
a plataforma .NET tem suporte através da SOAP Interface. 
 
Gabarito: E 
 
3. (VUNESP - 2014 - TCE-SP - Agente Da Fiscalização Financeira) Na plataforma .NET, o componente 
responsável pela execução do código é chamado de: 
 
a) Common Execution Architecture – CEA. 
b) Common Intermediate Language – CIL. 
c) Common Language Runtime – CLR. 
d) Common Type System – CTS. 
e) Common Virtual Machine – CVM. 
 
Comentários: 
 
Conforme vimos na aula a máquina virtual do .NET é o CLR - Common Language Runtime. As outras 
alternativas que também existem são a CIL - Common Intermediate Language, que é a linguagem de 
instruções para a qual o código é compilado e a CTS - Common Type System que define como os tipos 
são declarados, utilizados e gerenciados no CLR. 
 
Gabarito: C 
 
4. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) A plataforma .NET possui as classes 
System.String e System.Text.StringBuilder para a representação de cadeias de caracteres. Apesar 
de ambas terem funcionalidades semelhantes, a utilização do System.Text.StringBuilder é 
indicada quando houver necessidade de: 
 
a) armazenar grandes quantidades de caracteres. 
b) transferir os dados armazenados para uma base de dados. 
c) armazenar caracteres alfanuméricos. 
d) manipular a cadeia de caracteres. 
e) proteger os dados armazenados contra acesso indevido. 
 
Comentários: 
 
O StringBuilder é uma classe que cria e concatena strings de forma eficiente. O método Append() 
adiciona uma string ao final do objeto, o AppendFormat() utiliza parâmetros, e o AppendLine() insere 
uma linha ao final. Para imprimir o texto do 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 86 
156 
StringBuilder deve-se utilizar o ToString(). Vejamos um exemplo: 
 StringBuilder stringBuilder = new StringBuilder("Olá "); 
 stringBuilder.Append("amigos, "); 
stringBuilder.AppendFormat("Tenho {0} anos e me chamo {1}.", rapaz.Idade, rapaz.Nome); 
 stringBuilder.AppendLine("O tempo está bom."); 
 Console.WriteLine(stringBuilder.ToString()); 
 
Gabarito: D 
 
5. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) O Global Assembly Cache (GAC) é 
um componente da plataforma .NET cuja função é: 
 
a) armazenar os dados transmitidos pela rede com o intuito de agilizar futuras requisições. 
b) permitir que seja utilizada linguagem Assembly no código .NET. 
c) manter os objetos eliminados pelo Garbage Collector. 
d) garantir acesso às variáveis globais por todos os módulos de uma aplicação. 
e) centralizar o armazenamento de código .NET compartilhado entre aplicações. 
 
Comentários: 
 
Conforme vimos na aula o GAC - Global Assembly Cache centraliza o código compartilhado entre as 
aplicações.No Team Foundation também temos a ferramenta de controle de versão de código 
 
Gabarito: E 
 
6. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) Todo código .NET possui um 
conjunto de metadados chamados “Manifest”. Esses metadados descrevem 
 
a) como os elementos do código se relacionam uns com os outros e suas dependências. 
 
b) as bases de dados utilizadas pela aplicação. 
 
c) as conexões utilizadas pela aplicação para controle do firewall. 
 
d) as permissões de acesso dos usuários à aplicação. 
 
e) se a aplicação necessita realizar chamadas de baixo nível para controlar algum dispositivo de 
hardware. 
 
Comentários: 
 
O arquivo Manifest é um XML que descreve quais assemblies são necessários para que uma aplição 
execute. Veja um exemplo do arquivo Manifest: 
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
 
 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
 <application> 
 <!--This Id value indicates the application supportsWindows Vista 
functionality --> 
 <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
 <!--This Id value indicates the application supports Windows 7 
functionality--> 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 87 
156 
 <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> 
 <!--This Id value indicates the application supports Windows 8 
functionality--> 
 <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> 
 <!--This Id value indicates the application supports Windows 8.1 
functionality--> 
 <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> 
 </application> 
 </compatibility> 
 
 <assemblyIdentity type="win32" 
 name="myOrganization.myDivision.mySampleApp" 
 version="6.0.0.0" 
 processorArchitecture="x86" 
 publicKeyToken="0000000000000000" 
 /> 
 <dependency> 
 <dependentAssembly> 
 <assemblyIdentity type="win32" 
 name="Proseware.Research.SampleAssembly" 
 version="6.0.0.0" 
 processorArchitecture="X86" 
 publicKeyToken="0000000000000000" 
 language="*" 
 /> 
 </dependentAssembly> 
 </dependency> 
</assembly> 
 
Gabarito: A 
 
7. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) Na plataforma .NET, a classe base 
de todas as outras classes é a 
 
a) Base.System.Class 
b) Base.Object 
c) Net.System.Object 
d) System.Base 
e) System.Object 
 
Comentários: 
 
A classe base é a System.Object o namespace com as classes base do .Net é o System. Não existem os 
namespaces Base e Net. 
 
Gabarito: E 
 
8. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) Quando um código é compilado para 
a plataforma .NET, ele é traduzido para um código em Linguagem. Intermediária Comum (CIL). 
Esse código gerado é 
 
a) independente de CPU e plataforma, podendo ser executado por qualquer ambiente que 
suporte a CLI. 
 
b) independente de plataforma, no entanto, pode ser executado apenas por um servidor web. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 88 
156 
 
c) independente de plataforma, porém apenas pode ser executado por processadores de 64 bits. 
 
d) dependente de plataforma, podendo ser executado apenas por ambientes Linux. 
 
e) dependente de plataforma, podendo ser executado apenas nos ambientes Windows. 
 
Comentários: 
 
A CIL - Common Intermediate Language gera um código independente de plataforma e também de 
CPU pois são instruções baseadas na Common Language Infrastructure (CLI). 
 
Gabarito: A 
 
9. (FCC - 2013 - MPE-SE - Analista Do Ministério Público - Gestão E Análise De Projeto De Sistema) 
A Microsoft disponibiliza canais para que desenvolvedores que utilizam o Visual Studio consigam 
obter suporte ou relatar problemas. É correto afirmar que dentre estes canais se encontrem 
 
a) MSDN Forums, Microsoft Connect, Microsoft Support. 
b) MS Development Support, Contact Center, Visual Studio Research. 
c) MS DevNews, NET Developer Tools, Source Instant Search. 
d) Contact Center, MSDN News, Visual Studio Development Center. 
e) Visual Studio Research, Contact Center, MSDN Development Center. 
 
Comentários: 
 
Tipo de questão decoreba. A Microsoft gosta de colocar a marca em seus canais. Então, os canais são 
os MSDN Forums, Microsoft Connect e Microsoft Support. 
 
Gabarito: A 
 
10. (FCC - 2012 - TRE-SP - Técnico Do Judiciário - Programador De Sistemas) O Microsoft Visual Studio 
é um conjunto completo de ferramentas para construir aplicativos, incluindo aplicações para Web. 
Nesta ferramenta várias linguagens compartilham o mesmo ambiente de desenvolvimento 
integrado (IDE). Este ambiente possuí um analisador de código que pode oferecer, enquanto o 
código é digitado, sugestões ao programador, como por exemplo tipos de dados e membros de 
classes e estruturas. Esse analisador é chamado 
 
a) TextMate. 
b) Lexical Analyzer. 
c) IntelliSense. 
d) Active Directory. 
e) ActiveSync. 
 
Comentários: 
 
Este é o famosos recurso de AutoComplete que nós desenvolvedores adoramos não é? O VisualStudio 
chamou essa ferramenta de IntelliSense. Veja um exemplo na figura abaixo. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 89 
156 
 
 
Gabarito: C 
 
11. (CESGRANRIO - 2012 - EPE - Analista De Gestão Corporativa - Tecnologia Da Informação) O 
Microsoft Visual Studio Team Foundation Server 2010 é a nova plataforma colaborativa da 
Microsoft. Essa plataforma pode ser utilizada em substituição ao sistema de controle de versão 
conhecido como 
 
a) Team Explorer Everywhere 
b) Work Item Tracking 
c) Application Lifecycle Management 
d) Visual SourceSafe 
e) Development Platform Support 
 
Comentários: 
 
 
A antiga plataforma de colaboração era o Visual SourceSafe. Já o Team Explorer Everywhere é a 
ferramenta que permite a utilização do Team Foundation Server no Eclipse. Work Item Tracking faz 
parte do Visual Studio Team Services e permite que a equipe gerencie informações, bugs e tarefas 
para determinado item de trabalho. 
 
O Application Lifecycle Management (ALM), o Gerenciamento do Ciclo de Vida do Software 
compreende desde a governança, passando pelo desenvolvimento até a manutenção do produto; o 
Visual Studio é uma ferramenta de apoio não só ao desenvolvimento, mas também de todo o ALM. 
 
O Visual Studio também oferece o Development Platform Support, que auxilia o desenvolvedor com 
um ambiente preparado para a construção integrada da aplicação para todas as plataformas Microsoft 
(Desktop, Windows Store, Windows Phone, Cloud Services, etc). 
 
Gabarito: D 
 
12. (FGV - 2016 – IBGE - Análise De Sistemas - Desenvolvimento De Sistemas) Com relação aos 
arquivos XAML do framework .NET produzidos pela IDE do Visual Studio durante o processo de 
desenvolvimento de uma aplicação móvel para o Windows Phone 8.1, analise as afirmativas a 
seguir: 
 
I. Um arquivo XAML deve ter mais de um elemento raiz. 
II. Window, Page, ResourceDictionary e Application são elementos do tipo raiz. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 90 
156 
III. O namespace padrão do WPF é o 
http://schemas.microsoft.com/winfx/2006/xaml/presentation. 
 
Está correto somente o que se afirma em: 
 
 A) I 
 B) II 
 C) I e II 
 D) I e III 
 E) II e III 
 
Comentários: 
 
Questão um pouco maldosa por pedir o namespace padrão,, mas como vimos em aula, o XAML é 
baseado em XML, então deve ter apenas um elemento raiz. Os exemplos de elemeto raiz estão certo 
também. 
 
Gabarito: E 
 
ACERTEI ERREI 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 91 
156 
4 ASP 
 
 
O DHTML (Dynamic HTML) ASP foi um dos primeiros frameworks web, foi lançado junto com a 
primeira versão do .NET. A sigla ASP significa Active Server Pages.Em 2008, a Microsoft lançou o 
ASP.NET MVC (Model View Controller), o padrão de desenvolvimento que separa o código de 
apresentação do código de processamento e do negócio). 
 
O antigo framework ASP.NET ficou conhecido como Web Forms (nesse caso o desenvolvimento era 
baseado em páginas, a separação era apenas de código de marcação e código de processamento, cada 
página é responsável por sua renderização e lógica de negócio). 
 
4.1 ASP: TIPOS DE ARQUIVOS APLICAÇÃO ASP .NET MVC 
 
Uma aplicação web não é simplesmente um website, portanto, os arquivos relacionados ao “trabalho” 
que será feito do lado do servidor são compilados em um arquivo .dll. E os arquivos que serão enviados 
para o cliente, como imagens, JavaScript e CSS, são apenas copiados para a pasta de output (saída) do 
servidor. 
 
Essa é uma boa estratégia porque caso você precise fazer alterações de design, não é necessário 
recompilar arquivos de negócio e nem fazer o redeploy (reimplantar) da aplicação inteira. Como a 
aplicação seguirá o padrão MVC, teremos três tipos diferentes de arquivos no projeto, um para 
suportar a view, um para o controller, e um para o model. 
 
Além disso, também existem alguns arquivos de suporte para configuração e apoio ao client-side. 
Vejamos na tabela a seguir os tipos de arquivos mais comuns. 
 
Tipo de Arquivo Extensão Descrição 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 92 
156 
View 
.vbhtml 
.cshtml 
Cria a saída HTML que será a parte da view na 
aplicação MVC 
Javascript .js 
Arquivos JavaScript são utilizados pelo 
navegador para executar código do lado do 
cliente 
Código .vb.cs 
Parte que é compilada, iniciada e executada; 
tanto os models e os controllers são 
guardados nesses arquivos 
Folha de Estilo .css 
Contém instruções para o navegador sobre 
como estilizar a página 
Configuração .config 
Contém configurações como a string de 
configuração de banco de dados 
Evento de Aplicação .asax 
Utilizado pelo servidor web Microsoft IIS para 
tratar eventos da aplicação e de sessão como 
a criação de rotas 
Web .html 
Um arquivo estático que não executa 
processamento, apenas apresenta o HTML 
para ser renderizado pelo navegador 
 
4.2 ASP: VIEW 
 
Uma importante característica do ASP.NET é a possibilidade de se utilizar templates e layout files para 
a criação de uma view, ou seja, a parte de apresentação das páginas. A página de layout é um 
esqueleto que será sempre apresentado, e o seu conteúdo pode ser preenchido por outras páginas. 
 
 
 
Uma estrutura básica do arquivo de layout é a seguinte: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 93 
156 
<!DOCTYPE html> 
<html> 
<head> 
 <title>@ViewBag.Title</title> 
</head> 
<body> 
 <div> 
 @RenderBody() 
 </div> 
</body> 
</html> 
 
Agora quando você criar uma nova página, poderá utilizar um layout. No Visual Studio, uma nova 
página é criada através da caixa de diálogo “Add View” (figura abaixo). Repare que a opção Use a 
layout page já vem marcada por padrão, você pode então selecionar um layout específico, ou deixar 
em branco caso já tenha definido um padrão no arquivo _viewstart. 
 
 
 
 
O arquivo _viewstart será lido por qualquer view completa. Por que completa? 
Porque também existem views parciais (Partial Views). A diferença é que a view completa é uma 
página. As parciais são apenas “pedaços” que contém componentes que podem ser compartilhados 
em diversas páginas. Então não faz sentido o uso de um layout file para componentes. 
 
Voltando ao arquivo _viewstart… Ao criar um projeto um arquivo padrão _ViewStart.cshtml já é 
criado e todas as views que forem criadas nesse diretório, e seu subdiretórios passarão por esse 
arquivo, que é bem simples. Eles só contém o caminho para o arquivo padrão de layout: 
 
@{ 
 Layout = "~/Views/Shared/_SomeLayoutFile.cshtml"; 
} 
 
 
4.3 ASP: CONTROLLER 
As classes controller no .NET provém métodos que responderão aos HTTP Requests feitos pelo cliente 
(esses métodos são os chamados Actions, eles devem ser públicos e não podem ser estáticos). Uma 
classe controladora deve terminar com a palavra (adivinhe…) “Controller". 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 94 
156 
 
Toda aplicação tem um fluxo navegacional, e as Actions são responsáveis por esse controle, através 
de métodos redirecionadores como o Redirect e o RedirectToAction. O método Redirect(String) 
redireciona para uma URL específica e o RedirectToAction possui várias assinaturas mas como o nome 
diz ele redireciona o fluxo para uma outra action. Vamos ver um pequeno trecho de código para um 
controller de um carrinho de compras. 
 
[Authorize] 
[HttpPost] 
public ActionResult Checkout(Pedido pedido){ 
 [...] 
 Pedido = context.Pedidos.Add(pedido); 
 context.SaveChanges(); 
 return RedirectToAction("Detalhes", "Pedido", new { id = pedido.Id }); 
 } 
 
A Action acima adiciona um novo pedido ao contexto e após salvar as mudanças, redireciona para a 
action Detalhes do controller Pedido e com o id do pedido como parâmetro da rota. 
 
4.4 ASP: SESSÃO 
 
O ASP.NET é uma ambiente stateless (sem estado), ou seja, a cada nova solicitação de página pelo 
usuário, o ASP.NET renderiza o conteúdo sem nenhum conhecimento do estado anterior. Porém, 
existem alguns mecanismos que permitem que você guarde o estado das aplicações. Um deles é o 
objeto ViewState, este objeto permite que uma página guarde seu estado, mas não propaga o estado 
quando o usuário sair dessa página e ir para outra. 
 
Para salvar valores de uma página para outra devemos utilizar o objeto Session. No ASP.Net esse 
objeto é uma instância do objeto HTTPSessionState que possui diversas propriedades para facilitar a 
propagação do estado da aplicação. Suponha que você deseje guardar uma variável na sessão, basta 
fazer o seguinte: 
 
 
Session("NomeVariavel") = Valor 
 
 
Algumas das principais propriedades do HTTPSessionState são: 
 
IsCookieless Retora True se o SessionID está na URL e False, caso contrário 
IsNewSession Retorna True se a sessão foi criada no Request atual 
IsReadOnly Indica se a sessão atual é ReadOnly 
SessionID 
Recupera o ID da sessão atual. Através dele pode-se buscar os 
valores das variáveis vinculadas a sessão. 
TimeOut 
Seta ou recupera o timeout da sessão em minutos. O valor 
default é 20. 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 95 
156 
4.5 ASP: IDENTITY FRAMEWORK 
 
O Identity Framework trata do login de usuários na sua aplicação. No princípio, sempre tínhamos 
guardados em nossos bancos de dados o login e senha de nossos usuários. Hoje em dia, autenticar os 
usuários por meio de contas de redes sociais é essencial. Essa é uma das diversas funções do Identity 
Framework. Vejamos algumas: 
 
• Sistema único de autenticação ASP.NET: ASP.NET Identity pode ser usado com todos os 
ASP.NET frameworks, como o ASP.NET MVC, Web Forms, Web Pages, Web API, and SignalR. 
E também para todos os dispositivos 
• Criação de perfis do usuário: Você pode aumentar a quantidade de informações guardadas 
do usuário, como data de aniversário. 
• Controlede persistência: Por padrão as informações são guardadas em um banco de dados, 
o qual você tem total acesso, e caso deseje pode utilizar diversos mecanismos como 
SharePoint, bancos NoSQ entre outros. 
• Papéis (roles): É possível criar e gerenciar papéis na aplicação. Como por exemplo, 
Administrador. Essas roles são propagadas, permitindo um único login para diversas 
aplicações. 
 
 
4.6 ASP: ASP CLÁSSICO - O OBJETO REQUEST 
 
Como muitos editais cobram simplesmente ASP, temos que conhecer a versão clássica também! Vamos 
conhecer o objeto Request que é objeto de algumas questões. 
 
Quando o navegador solicita uma página do servidor, chamamos de Request. É através do objeto 
Request que recuperamos informações do visitante, ou melhor, do cliente. Abaixo segue uma rápida 
descrição das Coleções, Propriedades e Métodos que compõem esse objeto. 
 
Coleções 
Client Certificate Guarda os valores do certificado do cliente 
Cookies Guarda os valores dos cookies enviados no HTTP Request 
Form Guarda os valores de um formulário que utiliza o método POST 
Query String Guarda os valores da Query String 
Server Variables Guarda os valores das variáveis do servidor 
 
Propriedades 
TotalBytes Retorna a quantidade de bytes enviados pelo cliente no Request 
 
Método 
BinaryRead 
Recupera os dados enviados ao servidor pelo cliente em um 
método post, e os guarda em um array seguro. 
 
 
 OBSERVAÇÕES 
 
Uma query string é a parte da URL requisitada que não faz parte do endereço padrão. Por 
exemplo: http://algumendereco/DemoObject?campo1=valor1&campo2=valor2. Nesse caso, 
tudo que vem após o ‘?’ define a query string. Já o ‘&’ indica o separador de cada par 
chave/valor. Ao chegar ao servidor estes dados são interpretados, da mesma forma como 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 96 
156 
 
 
 
 
 
 
 
4.7 CAIU NA PROVA 
 
1. (FCC - 2012 – TRF/2 - Técnico Do Judiciário – Informática) No ASP .NET um formulário Web não 
deve usar variáveis de instância para guardar informações de estado do cliente, pois os clientes 
que acessam esse formulário Web em paralelo poderão sobrescrever as variáveis de instância 
compartilhadas. Para resolver esse problema, os formulários Web devem guardar as informações 
de estado do cliente em objetos: 
 
a) HttpResponse. 
b) HttpSessionState. 
c) HttpRequestState. 
d) HttpCookie. 
e) HttpSessionStore. 
 
Comentários: 
 
Vimos na aula que as páginas ASP.NET são stateless, porém é possível guardar informações de sessão 
através do objeto HttpSessionState. 
 
Gabarito: B 
 
2. (FCC - 2010 – TCE/SP - Agente Da Fiscalização Financeira - Suporte De Web) Um modelo de 
objetos presente no ambiente ASP facilita a tarefa de construção de páginas dinâmicas nesse 
ambiente de programação. O objeto Request: 
 
a) armazena as informações essenciais à sessão do usuário. 
b) fornece acesso aos recursos do servidor que são úteis à aplicação. 
c) permite obter referências sobre outros objetos. 
d) garante o acesso às informações enviadas pelo cliente. 
e) armazena e compartilha informações entre clientes que utilizam uma mesma aplicação. O JDBC 
é usado, entre outras coisas, para acesso a bancos de dados sem SQL, por meio de Java. 
 
Comentários: 
 
Conforme visto na aula o objeto Request possui Coleções, Métodos e Propriedades que guardam as 
informações enviadas pelo cliente, seja através de um formulário (método POST) ou através de uma 
query string (método GET). 
 
Gabarito: D 
 
3. (FCC - 2010 – TCE/SP - Agente Da Fiscalização Financeira - Suporte De Web) No ASP, um 
procedimento que executa determinada rotina sem retornar um valor, sendo possível passar 
parâmetros para este, é do tipo: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 97 
156 
a) Function. 
b) Continue. 
c) Return. 
d) Loop. 
e) Sub. 
 
Comentários: 
 
A página ASP pode chamar código VB, e o enunciado descreve uma subrotina, declarada com a 
palavra-chave Sub. 
 
Gabarito: E 
 
4. (FCC - 2010 - TCE-SP - Agente Da Fiscalização Financeira - Suporte De Web) No ASP, o comando 
CStr(expressão) realiza a conversão de uma expressão numérica ou string em um valor: 
 
a) string. 
b) single. 
c) byte. 
d) booleano. 
e) inteiro. 
 
Comentários: 
 
O ‘Str’ dá a dica. Este método realiza a conversão para o tipo string. O ‘CStr’ permite que as conversões 
de valores decimais aceitem ‘,’ ou ‘.’ dependendo do Locale definido no sistema. 
 
Gabarito: A 
 
5. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Augusto, funcionário 
do Tribunal de Contas do Município de São Paulo, recebeu a incumbência de desenvolver o 
Sistema de Gestão Integrada de Usuários, chamado SIGUser. O SIGUser deve realizar a tarefa de 
autenticar e autorizar os servidores nos sistemas do tribunal. O tribunal possui uma base de dados 
SQLServer, in loco, com informações de login e senha de usuários. Muitas vezes, faz-se necessário 
acessar sistemas do tribunal durante a realização de inspeções externas nas jurisdicionadas. 
Augusto, então, decide pelo uso do ASP.NET Identity para realização da tarefa de autenticação e 
autorização do SIGUser. Sobre a tecnologia ASP.NET Identity e as razões que levaram Augusto a 
escolhê-la, é correto afirmar que: 
 
a) a tecnologia ASP.NET Identity permite que os servidores do tribunal se autentiquem nos 
sistemas internos utilizando providers externos, como: Twitter, Facebook ou Google; 
 
b) os sistemas internos do tribunal somente serão acessados se utilizadas informações da base de 
dados SQLServer, in loco, com informações de login e senha de usuários do tribunal; 
 
c) apenas os sistemas ASP.NET MVC do tribunal poderão ser acessados utilizando o ASP.NET 
Identity; 
 
 
d) a escolha do ASP.NET Identity por Augusto foi acertada e para cada sistema o usuário deverá 
ter sua própria senha na base SQLServer do tribunal; 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 98 
156 
 
e) os sistemas do tribunal poderão ser acessados utilizando ASP.NET Identity e o acesso dos perfis 
de administração, auditoria e TI deverá ser configurado no SQLServer. 
 
Comentários: 
 
Vimos na aula as principais características do ASP.NET Identity Framework, entre elas está a 
autenticação por redes sociais. Vamos ver o erro das demais alternativas: (b) é possível utilizar 
diversos banco de dados para autenticação; (c) todas as aplicações da família ASP.NET podem ser 
autenticadas; (d) a autenticação é centralizada, e propagada para diferentes aplicações; (e) perfis são 
configurados no próprio Framework. 
 
Gabarito: A 
 
6. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Ao criar um projeto 
ASP.NET MVC, por padrão, um arquivo chamado _ViewStart.cshtml é gerado na pasta Views. 
Sobre o uso de ViewStart no ASP.NET MVC, é correto afirmar que: 
 
a) o código do arquivo _Viewstart.cshtml sempre é executado, independentemente da ação do 
programador; 
 
b) o código do arquivo _ViewStart.cshtml é aplicado a todas as views da pasta corrente, mas não 
das subpastas; 
 
c) o código do arquivo _ViewStart.cshtml não será executado se, em um método do controlador 
de uma página ASP.NET MVC, o programador retornar uma PartialView() ao invés de View(); 
 
d) o código do arquivo _ViewStart.cshtml não será executado se em um método controlador for 
chamada a diretiva RedirectToRoute semfazer referência a nenhuma ViewStart; 
 
e) não é possível evitar a execução de uma ViewStart em um projeto ASP.NET MVC. 
 
Comentários: 
 
(a) Não é executado nas Partial Views; (b) É aplicado nos subdiretórios; (c) Correto; (d) Quando não 
há referência, o arquivo é o padrão; (e) Já vimos que podemos evitar, como por exemplo, indicando 
um layout específico. 
 
Gabarito: C 
 
7. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Analise o trecho de 
código ASP.NET MVC a seguir. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 99 
156 
 
 
Sobre o retorno da instrução: 
 
return RedirectToAction("Index","Servidores"); 
 
é correto afirmar que: 
 
a) transfere o fluxo navegacional do usuário para a página definida na aplicação MVC como Default 
Web Site, ou seja, Index; 
 
b) transfere o fluxo navegacional do usuário para a Action Index do Controller Servidores; 
 
c) transfere o fluxo navegacional do usuário para a página Servidores abaixo do diretório Index; 
 
d) a substituição da instrução RedirectToAction("Index","Servidores"); por 
Redirect("Index","Servidores"); não traria alteração de resultado para a aplicação; 
 
e) a instrução RedirectToAction("Index",”Servidores”) retorna um ActionResult, que é subtipo de 
ViewResult. 
 
Comentários: 
 
Você já sabe o funcionamento do método RedirectToAction, lembre-se o primeiro parâmetro é a 
action, o segundo (opcional), é a classe controller. Então ficou fácil: (a) index não é página, é action; 
(b) Correto; (c) Servidores também não é página, é controller, e index não é diretório; (d) Daria erro 
de compilação o método Redirect recebe uma string apenas de parâmetro, que deve ser uma URI; 
(e) Dois erros, o retorno é RedirectToRouteResult (resultado do redirecionamento) e o ActionResult 
não é subtipo de ViewResult é o contrário. 
 
Gabarito: B 
 
8. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Analise o trecho de 
código ASP.NET MVC a seguir. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 100 
156 
 
 
Sobre o uso da instrução [ValidateAntiForgeryToken], é correto afirmar que: 
 
a) evita ataques do tipo cross-site scripting (XSS); 
b) evita ataques de falsificação de dados e ataques baseados em tampering; 
c) representa um atributo que é usado para detectar se um pedido SMTP do servidor foi violado; 
d) funciona com base em cookies; 
e) está implementado em uma View cshtml. 
 
Comentários: 
 
O atributo ValidateAntiForgeryToken é utilizado para prevenir que requests sejam forjados. A 
validação do Request é necessária para a segurança da aplicação MVC. Este atributo funciona 
adicionando um novo campo oculto ‘Ant Forgery Token’ no formulário e no cookie; e depois os dois 
são validados/comparados no request POST. 
 
Gabarito: D 
 
9. (VUNESP - 2014 – TCE/SP - Agente Da Fiscalização Financeira) Quando a propriedade 
AutoEventWireup do ASP.NET está ativa, os eventos da página passam a ser, automaticamente, 
associados aos métodos que: 
 
a) tenham sido declarados na classe associada à página. 
b) foram herdados da classe System.EventHandler. 
c) recebam parâmetros do tipo System.EventArgs. 
d) retornam um dado do tipo System.Event. 
e) respeitam um padrão de nomenclatura predefinido. 
 
Comentários: 
 
O valor da propriedade AutoEventWireup indica se os eventos das páginas ASP.NET será conectado 
automaticamente as funções padrão do framework para tratamento de eventos. Quando seu valor é 
true, os eventos são associados dependendo de seu nome e assinatura. Para cada evento, o ASP.NET 
procura por um método que é nomeado com o seguinto padrão: Page_eventname. Como por 
exemplo, Page_Load ou Page_Init. 
 
Gabarito: E 
 
10. (VUNESP - 2013 – MPE/ES - Agente Técnico - Desenvolvedor) Como os servidores web tratam 
cada requisição de forma independente, o ASP.NET oferece diversas opções de gerenciamento de 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 101 
156 
estado para persistir os dados entre as requisições dos usuários. Sobre a persistência de dados, a 
diferença entre o estado de sessão (Session state) e o estado de visualização (View state) é que: 
 
a) o estado de sessão fornece persistência dos dados entre múltiplas páginas de uma aplicação 
web, enquanto o estado de visualização fornece persistência dos dados para uma única página da 
aplicação. 
 
b) apesar de ambos terem a mesma função, o estado de sessão fica armazenado na máquina do 
cliente, enuanto o estado de visualização fica armazenado no servidor. 
 
c) o estado de sessão fornece persistência dos dados entre usuários de uma mesma aplicação, 
enquanto o estado de visualização fornece persistência para um único usuário. 
 
d) o estado de visualização fornece persistência dos dados entre múltiplas páginas de uma 
aplicação web, enquanto o estado de sessão fornece persistência dos dados para uma única 
página da aplicação. 
 
e) ambos são armazenados na máquina do cliente, no entanto, o estado de sessão utiliza uma 
criptografia de chave simétrica para proteger os dados. 
 
Comentários: 
 
Como vimos na aula a sessão pode ser salva a nível de página (view state) ou a nível de aplicação 
(session state). Ambos são armazenados no cliente através de cookies e podem ser criptografados ou 
não. 
 
Gabarito: A 
 
11. (CESPE - 2013 – TCE/ES - Analista Administrativo - Informática) Com base em aplicações web, 
assinale a opção correta. 
 
a) Para validar usuários, o Form Authentication utiliza credenciais que devem ser armazenadas no 
arquivo de configuração da aplicação. 
 
b) Utilizando-se ASP, é impossível, nos casos em que o browser não suporta o uso de cookies, 
passar informações de uma página para outra em uma aplicação. 
 
c) No LINQ, os métodos que implementam operadores de consulta padrão devem ser chamados 
com o uso da sintaxe de métodos estáticos. 
 
d) Usando-se ADO.NET, a conexão com um data source fornece as informações de autenticação 
necessárias e deve ser feita com a utilização de um objeto Connection, que depende do tipo de 
data source adotado. 
 
e) No Padrão MVC, as regras do negócio que definem a forma de acesso e modificação dos dados 
são geridas pelo controlador. 
 
Comentários: 
 
Esta questão aborda vários assuntos, vamos analisar item a item: (a) as credenciais de autenticação 
podem ser armazenadas em banco de dados; (b) é possível utilizando-se paraâmetros passados pelos 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 102 
156 
requests GET e POST; (c) essa é cruel, o correto seria os métodos que extendem operadores de 
consulta padrão; (d) Correto; (e) As regras de negócio vêm do modelo. 
 
Gabarito: D 
 
12. (AOCP - 2012 - TCE-PA - ASSESSOR TÉCNICO - ANALISTA DE SISTEMAS) Segundo a Microsoft, a 
plataforma de aplicativos da web, unificada, que oferece os serviços necessários para a criação e 
a implantação de aplicativos corporativos da web, é conhecida como: 
 
a) XML. 
b) C#.NET. 
c) ASP.NET. 
d) Web Server. 
e) ADO.NET. 
 
Comentários: 
 
Uma questãozinha de graça para relaxar rs. A plataforma é o ASP.NET. 
 
Gabarito: C 
 
13. (FUNCAB - 2012 – MPE/RO - AnalistaJudiciário - Programador De Computadores) O texto abaixo 
foi extraído da biblioteca MSDN, disponível no site Microsoft. Sobre o mesmo, é INCORRETO 
afirmar que: 
 
 
 
a) o tema abordado refere-se à critpografia de informações disponíveis em arquivos de 
configuração. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 103 
156 
b) as seções appSettings, connectionStrings, identify e sessionState são sessões que normalmente 
contêm informações que merecem mecanismos de segurança. 
 
c) Web.config é um exemplo de arquivo de configuração. 
 
d) os mecanismos de criptografia e descriptografia não comprometem a performance; portanto, 
a recomendação é, por segurança, criptografar todas as seções dos arquivos de configuração. 
 
e) a seção identify pode conter credenciais de apresentação. 
 
Comentários: 
 
Essa questão é pura interpretação de inglês. Mas é interessante perseber algumas seções de um 
arquivo de configuração ASP.NET. Como o texto diz é recomendado que apenas algumas seções sejam 
criptografadas, aquelas com dados sensíveis. 
 
Gabarito: D 
 
14. (FUNCAB - 2012 – MPE/RO - Analista Judiciário - Programador De Computadores) Suponha que 
você queira desenvolver uma página web, conforme imagem abaixo, onde: 
 
- a lista CIDADE será carregada com as cidades da UF selecionada na lista UF. 
- a lista BAIRRO será carregada com os bairros da cidade selecionada na lista CIDADE. 
- sempre que um novo item for selecionado na lista UF ou na lista CIDADE, as demais listas deverão 
ser recarregadas de acordo com os novos itens selecionados. 
 
 
 
O ASP.NET AJAX extender que deve ser utilizado para reproduzir este tipo de comportamento é: 
 
a) ListSearch. 
b) AutoComplete. 
c) DropDown. 
d) ComboBox. 
e) CascadingDropDown. 
 
Comentários: 
 
O ASP.NET suporta AJAX, o componente que permite que os DropDowns sejam atualizados de forma 
encadeada é o CascadingDropDown. Vejamos os outros: (a) ListSearch permite que conteúdos de um 
dropdown sejam pesquisados conforme a entrada do usuário, o foco vai para o item pesquisado, mas 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 104 
156 
a lista não é filtrada; (b) AutoComplete permite que os itens sejam filtrados conforme a entrada do 
usuário; (c) O Dropdown é mais completo que um select normal pois permite marcação e links, é muito 
usádo para submenus; (d) O ComboBox é parecido com o AutoComplete, porém é mais recomendado 
quando se tem poucas opções. 
 
Gabarito: E 
 
15. (CESGRANRIO - 2014 - Banco Da Amazônia - Técnico Científico - Suporte E Infraestrutura) Quais 
são os três modelos de desenvolvimento diferentes suportados por ASP.Net? 
 
a) Web Apps, Web Forms e Web Grid 
b) Web Forms, MVC e Web Grid 
c) Web Pages, MVC e Web Apps 
d) Web Pages, MVC e Web Forms 
e) Web Pages, Web Grid e Web Forms 
 
Comentários: 
 
Vimos na aula que os principais modelos de desenvolvimento de aplicações do ASP.Net são MVC e 
Web Forms. Além disso também existe o modelo mais simple de Web Pages. 
 
Gabarito: D 
 
16. (CESGRANRIO - 2012 - EPE - Analista De Gestão Corporativa - Tecnologia Da Informação) 
Considere que uma aplicação WEB em ASP.NET na linguagem C# contém classes X e Y, cujos 
trechos relevantes estão apresentados a seguir. 
 
public class X { 
 public int Foo() { return 2; } 
 public virtual int Bar() { return 1; } 
} 
 
public class Y: X { 
 public new int Foo() { return 0; } 
 public override int Bar() { return 5; } 
} 
 
Seja o conteúdo do corpo do método manipulador do evento Load da página principal dessa 
aplicação o trecho de código a seguir. 
 
X x = new X(); 
Y y = new Y(); 
 
int v1 = x.Foo(); 
int v2 = x.Bar(); 
int v3 = y.Foo(); 
int v4 = y.Bar(); 
int v5 = ((X)y).Foo(); 
int v6 = ((X)y).Bar(); 
 
Response.Write(v1+” “+v2+” “+v3+” “+v4+” “+ v5+” “+v6); 
 
Quando a aplicação exibir com sucesso, em um navegador, a página WEB resultante de sua 
execução, qual será a sequência de números apresentada nessa página principal? 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 105 
156 
 
a) 0 5 0 5 0 5 
b) 2 1 0 5 0 5 
c) 2 1 0 5 2 1 
d) 2 1 0 5 2 5 
e) 2 1 2 1 2 1 
 
Comentários: 
 
O método manipulador do evento load executa no carregamento da página. A classe Y está 
extendendo a classe X e sobreescrevendo o método Bar(). Vamos executar instrução por instrução: 
 
int v1 = x.Foo(); // v1 = 2 
int v2 = x.Bar(); // v2 = 1 
int v3 = y.Foo(); // v3 = 0 
int v4 = y.Bar(); // v4 = 5 
int v5 = ((X)y).Foo(); // v5 = 2, foi feito o cast, então é buscado o método foo da 
classe X. 
int v6 = ((X)y).Bar(); // v6 = 5, apesar do cast, y continua sendo uma subclasse 
de x e como o método Bar() foi sobrescrito, o valor do método de y (5) é retornado. 
 
Gabarito: D 
 
17. (CESGRANRIO - 2010 - EPE - Analista De Gestão Corporativa - Tecnologia Da Informação) Um 
órgão federal disponibiliza serviços na Internet utilizando a plataforma ASP.NET, versão 3.5. Um 
dos objetivos da tecnologia LINQ dessa plataforma é: 
 
a) substituir, gradativamente, o AJAX. 
b) simplificar o acesso a dados. 
c) permitir tipagem dinâmica de variáveis. 
d) realizar testes automatizados. 
e) consumir web service genéricos. 
 
Comentários: 
 
Já sabemos que o LINQ (Language Integrated Query (Linguagem de Consultas Integrada) é uma 
biblioteca que facilita o acesso a dados, simplificando a criação de consultas. 
 
Gabarito: B 
 
18. (CESGRANRIO - 2010 - ELETROBRAS - Analista De Sistemas - Suporte Basis Sap R/3) Analise o 
fragmento de código a seguir. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 106 
156 
 
 
Qual o objetivo desse código? 
 
a) Alterar dados da tabela “Customers” de um banco de dados. 
b) Apresentar o resultado de uma consulta em um banco de dados em um navegador. 
c) Enviar um e-mail para todos os clientes de uma empresa. 
d) Criar um arquivo .mdb com o dump com alguns dados da tabela “Customers”. 
e) Escrever, em um banco relacional, as entradas de dados do usuário. 
 
Comentários: 
 
Este trecho é do ASP clássico. Veja, primeiro uma conexão com o banco é criada, depois o sql com 
apenas um select é executado. Na segunda parte, uma tabela é renderizada com os valores 
retornados. Os dados não são alterados, não aparece nenhum e-mail, não é criado arquivo .mdb, e 
não há inserts no banco. Dessa forma, só sobra a letra B. 
 
Gabarito: B 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 107 
156 
19. (CESGRANRIO - 2010 - ELETROBRAS - Analista De Sistemas - Engenharia De Software) Os usuários 
internos de um órgão público reclamam que, ao utilizar o sistema de atendimento Web, recebem, 
com frequência, a mensagem que a sessão expirou, exigindo novo login no sistema. O gestor desse 
sistema, ao consultar os desenvolvedores, percebeu que o tempo de sessão está configurado para 
10 minutos, e, para resolver o incômodo de seus usuários, solicitou que a sessão fosse configurada 
para 30 minutos. O administrador do servidorde aplicação confirmou que a configuração default 
é de 10 minutos, mas não está seguro para alterá-la porque o impacto em outras aplicações não 
foi mensurado. Considerando-se que o sistema foi desenvolvido em ASP, que fragmento de código 
deve ser incluído no sistema para atender ao gestor? 
 
a) SessionExpireOn=30 
b) Session.Timeout=30 
c) SessionExpireOn=1800 
d) Session.Timeout=1800 
e) TimeoutConnectionsInSession=1800000 
 
Comentários: 
 
A propriedade Timeout do objeto Session é definida em minutos, conforme vimos na aula. 
 
Gabarito: B 
 
20. (FCC - 2016 – TRF/3 - Técnico Judiciário - Informática) Uma das classes do ASP.NET MVC 5 
responsáveis por converter os dados provenientes de requisições HTTP em objetos .Net 
requeridos como parâmetros de Actions Methods é a classe: 
 
a) HttpRequestAttribute 
b) HttpRequest 
c) ModelGetConverter 
d) DefaultModelBinder 
e) HttpRequestValue 
 
Comentários: 
 
As propriedades HttpRequestAttribute e HttpRequestValue não existem, a que existe é apenas 
HttpRequest que permite que os valores enviados no request sejam lidos. ModelGetConverter 
também é inventado. O certo é DefaultModelBinder que faz o mapeamento do request em um objeto. 
 
Gabarito: D 
 
ACERTEI ERREI 
 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 108 
156 
 
5 LISTAS DE EXERCÍCIOS 
5.1 LISTA DE EXERCÍCIOS – AJAX (DIVERSAS BANCAS) 
 
1. (FCC – 2007 – TRE/MS – Analista de Sistemas) Asynchronous Javascript and XML 
(Ajax) é uma técnica de desenvolvimento de aplicações web cujo objetivo é a 
troca de pequenas porções de dados entre um browser e um servidor web de 
modo a evitar a recarga de toda a página cada vez que um cliente solicita uma 
mudança. Sobre Ajax considere as afirmativas abaixo. 
 
I. É uma técnica indicada para melhorar a experiência do usuário, reduzir a 
utilização de banda e claramente separar dados, formatação, estilo e 
funcionalidade. 
 
II. O modelo de objetos html/xml (DOM) é acessado e transformado por 
linguagens de script como JavaScript. 
 
III. O objeto XMLHttpRequest e/ou o objeto iFrame são utilizados para troca de 
dados assíncrona com o servidor. 
 
É correto o que se afirma em: 
 
a) I, apenas. 
b) II, apenas. 
c) III, apenas. 
d) I e III, apenas. 
e) I, II e III. 
 
2. (FCC - 2008 – MPE/RS – Analista de Sistemas) Para capturar as respostas de uma 
aplicação Web dinâmica em AJAX básico utiliza-se somente: 
 
a) responseText e responseXML. 
b) responseText e responseHTML. 
c) responseText. 
d) responseXML. 
e) responseHTML. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 109 
156 
3. (FCC - 2008 – MPE/RS – Analista de Sistemas) Dentre as tecnologias que 
compõem o AJAX, aquelas que têm como principal função fazer o intercâmbio 
e a manipulação de dados são: 
 
a) JavaScript e XMLHttpRequest. 
b) XML e XSLT. 
c) HTML e XHTML. 
d) JavaScript e CSS. 
e) DOM e CSS. 
 
4. (FCC - 2008 – MPE/RS – Tecnólogo) Para fazer o intercâmbio e a manipulação 
de dados em uma aplicação Web, o modelo AJAX normalmente utiliza: 
 
a) XML e XSLT. 
b) HTML, XHTML e CSS. 
c) XMLHttpRequest. 
d) JavaScript. 
e) DOM. 
 
5. (FCC - 2012 – TJ/PE – Analista de Sistemas) Esse objeto é o ponto chave do AJAX. 
Pode ser considerado um objeto Javascript que torna possível a comunicação 
assíncrona com o servidor. O objeto citado é do tipo: 
 
a) XMLRequest. 
b) XMLAjaxActiveXObject. 
c) HttpServletResponse. 
d) HttpServletRequest. 
e) XMLHttpRequest. 
 
6. (FCC - 2011 – TCE/PR – Analista de Sistemas) No AJAX, o objeto XMLHttpRequest 
possui diversas propriedades importantes para realizar a comunicação com o 
servidor. Quando uma solicitação para um servidor é enviada, normalmente 
deseja-se executar algumas ações com base na resposta. O evento utilizado para 
especificar o que vai acontecer quando a resposta do servidor está pronta para 
ser processada é o: 
 
a) oncompletedrequest. 
b) onserverreturn. 
c) onendstatus. 
d) onreadystatechange. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 110 
156 
e) onreadystate. 
 
7. (FCC - 2011 – INFRAERO – Analista de Sistemas) Representa uma desvantagem 
do uso de AJAX: 
 
a) Troca mensagens entre o cliente e o servidor de forma assíncrona, ou seja, 
envia requisições e continua o processamento sem precisar aguardar a resposta. 
 
b) Trata-se principalmente de JavaScript que executa no navegador do usuário. 
Se for desativado o processamento do JavaScript no navegador, a aplicação 
pode falhar. 
 
c) Recebe respostas às requisições na mesma página sem a necessidade de 
refresh. 
 
d) Executa os processos em paralelo às requisições/respostas. 
 
e) Manipula o conteúdo XML nas aplicações para desktop de forma simples. 
 
8. (FCC - 2011 – TRE/RN – Analista de Sistemas) Agrega um conjunto de tecnologias 
conhecidas trabalhando juntas para tornar páginas Web mais interativas com o 
usuário, utilizando-se de solicitações assíncronas de informações: 
 
a) XML. 
b) JavaScript. 
c) XHTML. 
d) AJAX. 
e) CSS. 
 
9. (FGV - 2010 – FIOCRUZ – Analista de Sistemas) Asynchronous JavaScript and 
XML (AJAX) é um termo criado recentemente para duas características 
poderosas dos browsers que existem há anos mas tem sido ignoradas por muitos 
criadores de páginas web até recentemente, quando aplicações como Gmail, 
Google suggest e Google Maps foram lançadas. AJAX não é uma tecnologia, na 
verdade, envolve várias, cada uma atuando da sua própria maneira, tornando-
se juntas uma poderosa ferramenta. Nesse contexto, além de suporte à 
Javascript, analise as afirmativas abaixo, associadas às tecnologias incorporadas 
pelo AJAX. 
 
I. Troca e manipulação de dados usando XML e XSLT. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 111 
156 
II. Retorno de dados assincronamente usando XMLHttpRequest. 
III. Apresentação baseada nas Web Standards usando XHTML e CSS. 
 
Assinale: 
 
a) se somente a afirmativa I estiver correta. 
b) se somente a afirmativa II estiver correta. 
c) se somente a afirmativa III estiver correta. 
d) se somente as afirmativas II e III estiverem corretas. 
e) se todas as afirmativas estiverem corretas. 
 
10. (CESGRANRIO - 2006 – DNPM – Analista de Sistemas) AJAX é um termo que se 
refere a um conjunto de tecnologias para desenvolvimento de aplicações WEB. 
Assinale a opção que contempla uma dessas tecnologias. 
 
a) Ant 
b) XML 
c) WiMAX 
d) VoIP 
e) Jakarta 
 
11. (CESGRANRIO - 2007 – EPE – Analista de Sistemas) Que conjunto de tecnologias 
é utilizado em aplicações WEB na Internet para propiciar forte interatividade e 
dinamismo? 
 
a) CSS 
b) SMTP 
c) AJAX 
d) FTP 
e) UTF-8 
 
12. (CESGRANRIO - 2009 – CMB – Analista de Sistemas) AJAX (do inglês 
Asynchronous Javascript And XML) tem sido largamente utilizado no 
desenvolvimento de aplicações WEB. Um dos conceitos centrais do AJAX é a 
possibilidade de serem feitas requisições ao servidor através de código 
Javascript, rodando no navegador do usuário. Esse recurso é empregado 
principalmente para permitir que: 
 
a) o processamento das regrasde negócio da aplicação seja distribuído aos 
clientes, minimizando a carga do servidor. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 112 
156 
 
b) o usuário envie uma requisição assíncrona e verifique o resultado da mesma 
mais tarde, sem precisar aguardar pela resposta imediata do servidor. 
 
c) as páginas carreguem mais rapidamente, pois as requisições são paralelizadas 
e compactadas durante o trânsito. 
 
d) as páginas compostas diretamente em XML, ao invés de XHTML ou HTML, 
sejam apresentadas no navegador do usuário. 
 
e) partes de uma página web sejam atualizadas, sem que o browser recarregue 
a página inteira do servidor, proporcionando uma interface com melhor 
usabilidade. 
 
13. (CESGRANRIO - 2010 – IBGE – Analista de Sistemas) O código HTML, em 
construção, abaixo demonstra a utilização de AJAX. 
 
<html> 
<head> 
<script language=”JavaScript”> 
function submitForm() 
{ 
var xhr=null; 
try 
{ xhr = new object(); } 
catch(e) {} 
xhr.onreadystatechange = function() 
{ 
document.ajax.dyn.value=”Wait server...”; 
if(xhr.readyState == 4) 
{ 
if(xhr.status == 200) 
{ document.ajax.dyn.value=”Recebido:” + xhr.responseText; } 
else 
{ document.ajax.dyn.value=”Erro: “ + xhr.status + “ “ + xhr.statusText; } 
} 
}; 
xhr.open(“GET”, “data.xml”, true); 
xhr.send(null); 
} 
</script> 
</head> 
<body> 
<FORM method=”POST” name=”ajax” action=””> 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 113 
156 
<INPUT type=”submit” value=”Submit” ONCLICK=”submitForm()”> 
<INPUT type=”text” name=”dyn” value=””> 
</FORM> 
</body> 
</html> 
 
Para que esse código possa utilizar a tecnologia AJAX, na linha “xhr = new 
object();”, “xhr” deve receber um objeto Javascript que torna possível a 
comunicação assíncrona com o servidor, sem a necessidade de recarregar a 
página por completo. Para tanto, no código acima, “object” deve ser substituído 
por: 
 
a) responseXML. 
b) MIME. 
c) XMLHttpRequest. 
d) DOMParser. 
e) setRequestReader. 
 
14. (CESGRANRIO - 2010 – PETROBRÁS – Analista de Sistemas) Ajax não é 
meramente uma tecnologia. É uma abordagem moderna para desenvolvimento 
de sites iterativos. A abordagem de desenvolvimento tradicional tem 
semelhanças e diferenças em relação ao Ajax. Uma característica exclusiva de 
Ajax em relação à abordagem tradicional é que: 
 
a) executa as requisições através do protocolo HTTP. 
b) usa javascript como linguagem para desenvolver código no lado do cliente. 
c) usa (x)html / css para definir o aspecto visual da página. 
d) permite recuperação assíncrona de dados usando XMLHttpRequest. 
e) representa os objetos no lado cliente com DOM. 
 
15. (CESGRANRIO - 2011 – LIQUIGÁS – Analista de Sistemas) Duas das tecnologias 
que compõem o Ajax são: 
 
a) DOM e CSS 
b) ASP e XML 
c) Java e XML 
d) Java e CSS 
e) JavaScript e ASP 
 
16. (CESGRANRIO - 2013 – LIQUIGÁS – Analista de Sistemas) Considere as 
afirmativas a seguir sobre a tecnologia AJAX. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 114 
156 
 
I – Uma das aplicações mais frequentes da tecnologia AJAX é na atualização 
assíncrona do conteúdo de páginas HTML. 
 
II – Boa parte da funcionalidade da tecnologia AJAX é viabilizada pelo objeto 
XMLHttpRequest, que é capaz de transmitir requisições HTTP de modo 
assíncrono. 
 
III – A tecnologia AJAX utiliza código Java para a manipulação do conteúdo de 
páginas HTML. 
 
Está correto o que se afirma em: 
 
a) I, apenas 
b) II, apenas 
c) I e II, apenas 
d) II e III, apenas 
e) I, II e III 
 
17. (CESGRANRIO - 2014 – IBGE – Analista de Sistemas) Com o objetivo de criar 
páginas dinâmicas para o desenvolvimento de aplicações web, AJAX é um termo 
que descreve um(a): 
 
a) protocolo 
b) banco de dados 
c) coleção de tecnologias 
d) linguagem de programação 
e) linguagem de marcação 
 
18. (FGV – 2015 – TCM-SP – Agente de Fiscalização – Tecnologia da Informação) 
Considere a requisição AJAX construída, no cliente, através da chamada à 
seguinte função em Javascript: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 115 
156 
 
O método HTTP utilizado na requisição ao servidor será, neste caso: 
 
a) PUT; 
b) POST; 
c) GET; 
d) HEAD; 
e) SEND. 
 
 
 
5.2 LISTA DE QUESTÕES: JQUERY 
1. (FCC - 2012 – MPE/AP - Analista de Sistemas) O seletor jQuery: 
 
a) $("[href!='#']") seleciona todos os elementos cujo atributo href não contenha '#'. 
 
b) $("[href$='.jpg']") seleciona todos os elementos cuja propriedade href contenha '.jpg'. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 116 
156 
 
c) $("div#intro .head") seleciona todos os elementos com id="head" dentro de um elemento <div> 
com class="intro". 
 
d) $("p#intro:first") seleciona o primeiro elemento <p> com class="intro". 
 
e) $("ul li:first-child") seleciona todos os elementos <li> do primeiro elemento <ul>. 
 
2. (VUNESP – 2015 – TCE/SP - Analista de Sistemas) O método do jQuery que permite ocultar um 
elemento selecionado é: 
 
a) .show(false) 
b) .hide() 
c) .mask() 
d) .visible(false) 
e) .display(false) 
 
3. (FCC – 2014 – TRT/13 - Analista de Sistemas) Considere a página abaixo, construída utilizando 
jQuery: 
 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <title>Home</title> 
 <script type="text/javascript" 
src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script> 
 <script type="text/javascript"> 
 $(document).ready(function() { 
 ..I... 
 }); 
 </script> 
 </head> 
 <body> 
 <button type="button">Esconder</button> 
 <p class="par">Texto do parágrafo.</p> 
 </body> 
</html> 
 
Para que, ao se clicar no botão Esconder, o texto do parágrafo se torne oculto, deve-se preencher a 
lacuna I com: 
 
a) $('button').click(function(){$('p#par').hide();}); 
b) $('button:eq(0)').click(function().defineProperty('p.par').hide()); 
c) $('button').click(function(){$('p.par').hidden();}); 
d) $('button:eq(1)').click(function(){$('p#par').hide();}); 
e) $('button').click(function(){$('p.par').hide();}); 
 
4. (CESPE – 2012 – ANAC - Analista de Sistemas) Em jQuery, o método hide( ) permite ocultar 
elementos HTML. Assim, a sintaxe correta para ocultar o elemento corrente é $(this).hide() e, para 
ocultar todos os elementos <p> da página, é $(“<p>”).hide( ). 
 
5. (ESAF – 2012 – CGU - Analista de Sistemas) São plug-ins da biblioteca jQuery destinados a criar 
funcionalidade para a interface do usuário: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 117 
156 
a) Plug-ins nativospara interação. Widgets. Effects. 
 
b) Plug-ins interativos tipo slider. Wide-rangers. Effects. 
 
c) Plug-ins nativos da família datepicker. MainWidgets. Efforts. 
 
d) Widgets nativos para marcação. Widgets de monitoramento. Plug-ins de localização. 
 
e) Plug-ins nativos para interação. Upload widgets. Effective plug-ins. 
 
6. (FUNDEP – 2017 – UFVJM-MG - Analista de Sistemas) O JavaScript é uma linguagem leve, 
interpretada e baseada em objetos, mais conhecida como a linguagem de script para páginas Web. 
Assinale a alternativa que apresenta corretamente uma biblioteca de JavaScript. 
 
a) JQuery 
b) HTML 
c) AJAX 
d) CSS 
 
7. (AOCP – 2012 – TCE/PA - Analista de Sistemas) O nome dado à biblioteca JavaScript cross-browser 
desenvolvida para simplificar os scripts executados no lado do cliente e que interagem com o 
HTML é: 
 
a) JSP. 
b) J2ME. 
c) JSON. 
d) J2EE. 
e) JQuery. 
 
8. (FCC – 2015 – MPE-PB - Analista de Sistemas) Considere o bloco de código a seguir: 
 
<script> 
 $(document).ready(function(){ 
 $("div").click(function(){ 
 $(this).hide(); 
 }); 
 }); 
</script> 
 
Este bloco de código utiliza uma biblioteca JavaScript criada para simplificar a programação. Trata-
se da biblioteca conhecida como: 
 
a) jUnit. 
b) AngularJS. 
c) jSON. 
d) AJAX. 
e) jQuery. 
 
9. (ESAF – 2012 – CGU - Analista de Sistemas) Assinale a opção correta relativa a jQuery: 
 
a) Não admite programação encadeada. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 118 
156 
b) Utiliza indicadores SSP para localizar elementos componentes da estrutura de marcação jHTM 
da página. 
 
c) Possui arquitetura compatível com instalação de plug-ins e extensões em geral. 
 
d) Possui estrutura para armazenamento de inputs de especificação multicore. 
 
e) Utiliza pop-ups C2S para retirar elementos inconsistentes da estrutura de marcação XHTML da 
referência. 
 
10. (IF/PE – 2016 – IF/PE - Analista de Sistemas) O comando abaixo escrito em jQuery faz com que, 
 
$(‘:text’).blur(function() { 
 $(“p”).css(“border”, “3px dashed red”); 
}); 
 
a) quando o elemento text for selecionado na página, seja adicionada uma borda de 3 pixels 
vermelha e tracejada em todas as tags <P> da página. 
 
b) quando o elemento de ID text perder o foco sobre ele, seja adicionada uma borda de 3 pixels 
vermelha e tracejada em todas as tags <P> da página. 
 
c) quando um input text ganhar o foco sobre ele, seja adicionada uma borda de 3 pixels vermelha 
e tracejada em todas as tags <P> da página. 
 
d) quando um input text perder o foco sobre ele, seja adicionada uma borda de 3 pixels vermelha 
e tracejada em todas as tags da página. 
 
e) quando qualquer input text for modificado na página, seja adicionada uma borda de 3 pixels 
vermelha e tracejada em todas as tags <P> da página. 
 
11. (AOCP – 2013 – INES - Analista de Sistemas) Sobre as características da Biblioteca jQuery, assinale 
a alternativa INCORRETA. 
 
a) A principal limitação desta biblioteca é a necessidade de instalação de um plug-ins, em cada 
navegador que fará acesso a páginas com suas funcionalidades. 
 
b) Utiliza seletores CSS para localizar elementos componentes da estrutura de marcação HTML da 
página. 
 
c) Possui arquitetura compatível com instalação de plugins e extensões em geral. 
 
d) É indiferente às inconsistências de renderização entre navegadores. 
 
e) Admite programação encadeada, ou seja, cada método retorna um objeto. 
 
12. (CESPE – 2016 – TCE/PA - Analista de Sistemas) Após a incorporação do jQuery ao HTML5, o 
desenvolvimento de funcionalidades por meio dessa biblioteca JavaScript ficou limitado a 
aplicações para dispositivos móveis. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 119 
156 
13. (FGV – 2017 – IBGE - Analista de Sistemas) Para definir a cor de fundo de todos os elementos <p> 
para azul em uma página HTML, o código jQuery correto é: 
 
a) $(this).css("background-color","blue"); 
b) $("?p").css("background-color"," blue"); 
c) $("p").css ("background-color"," blue"); 
d) $("#p").css("background-color"," blue"); 
e) $(".p").css("background-color"," blue"); 
 
14. (QUADRIX – 2016 – CRO/PR - Analista de Sistemas) Um código em Javascript puro, para atribuir 
o valor "3" a um elemento qualquer, ficaria assim: 
 
document.getElementById( 'Concurso' ).value = 3; 
 
Como ficaria esse mesmo código em jQuery? 
 
a) #Concurso:=3; 
b) $( “Concurso” ).val( 3 ); 
c) $(Concurso).val( 3 ); 
d) $( '#Concurso' ).val( 3 ); 
e) $( '#Concurso' )=3 
 
15. (FCC – 2017 – TRE/SP - Analista de Sistemas) Considere uma página HTML contendo a instrução 
<div id="d1" ></div>. Para mostrar no interior deste contêiner, utilizando jQuery, o tamanho do 
contêiner, utiliza-se a instrução: 
 
a) $("#d1").innerHTML($("#d1").width()); 
b) $("#d1").html($("#d1").size()); 
c) $("#d1").show($("#d1").width()); 
d) $("#d1").getElementById("d1").innerHTML= $("#d1").width(); 
e) $("#d1").html($("#d1").width()); 
 
16. (AOCP – 2013 – INES - Analista de Sistemas) Sobre a Biblioteca jQuery analise as assertivas e 
assinale a alternativa que aponta a(s) correta(s). 
 
I. jQuery é uma biblioteca JavaScript Criada por John Resig e disponibilizada como software livre 
e aberto, ou seja, de emprego e uso regido segundo licença conforme as regras estabelecidas pelo 
MIT e pelo GPL. 
 
II. jQuery destina-se a adicionar interatividade e dinamismo às páginas web, proporcionando ao 
desenvolvedor funcionalidades necessárias à criação de scripts que visem a incrementar, de forma 
progressiva e não obstrutiva, a usabilidade e a acessibilidade e o design, enriquecendo a 
experiência do usuário. 
 
III. Diferentemente do JavaScript sozinho, a biblioteca jQuery pode ser utilizada do lado do 
servidor para fazer acesso a base de dados através de um ODBC. 
 
IV. Com jQuery em uma página Web podemos adicionar efeitos visuais e animações, acessar e 
manipular o DOM, alterar conteúdos entre outras funcionalidades. 
 
a) Apenas I. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 120 
156 
b) Apenas I, II e III. 
c) Apenas II e IV. 
d) Apenas I, II e IV. 
e) I, II, III e IV. 
 
17. (FGV – 2016 – IBGE - Analista de Sistemas) O comando jQuery para selecionar e esconder todos 
os elementos com a classe "escondido", de uma página é: 
 
a) $(class=".escondido").hide(); 
b) $(".escondido").hide(); 
c) $(escondido).hide(); 
d) $("#escondido").hide(); 
e) $(hide).escondido(); 
 
18. (FCC – 2014 – TRT/13 - Analista de Sistemas) Considere a página abaixo, construída utilizando 
jQuery: 
 
<!DOCTYPE html> 
<html> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-
8"> 
 <title>Home</title> 
 <script type="text/javascript" 
src="http://ajax.microsoft.com/ajax/jQuery/jquery-
1.4.2.min.js"></script> 
 <script type="text/javascript"> 
 $(document).ready(function() { 
 ..I... 
 }); 
 </script> 
 </head> 
 <body> 
 <button type="button">Esconder</button> 
 <p class="par">Texto do parágrafo.</p> 
 </body> 
</html> 
 
Para que, ao se clicar no botão Esconder, o texto do parágrafo se torne oculto, deve-se preencher a 
lacuna I com 
 
a) $('button').click(function(){$('p#par').hide();}); 
b) $('button:eq(0)').click(function().defineProperty('p.par').hide());c) $('button').click(function(){$('p.par').hidden();}); 
d) $('button:eq(1)').click(function(){$('p#par').hide();}); 
e) $('button').click(function(){$('p.par').hide();}); 
 
19. (CESPE – 2017 – TRE/BA - Analista de Sistemas) Considere que, no desenvolvimento de um 
sistema para a Web, um analista pretenda criar páginas dinâmicas que serão executadas na 
máquina do cliente. Considere, ainda, que, nesse trabalho, o analista opte por uma biblioteca que 
ofereça capacidade de seleção e manipulação de HTML (Hyper Text Markup Language), 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 121 
156 
manipulação de CSS (Cascade Style Sheets) e requisições AJAX (Asynchronus JavaScript e XML). 
Nessa situação, o analista deverá utilizar a ferramenta: 
 
a) JQuery. 
b) JSP (Java Server Pages). 
c) JSF (Java Server Faces). 
d) APEX (Oracle Application Express). 
e) JPA (Java Persistence API). 
 
20. (IESES – 2015 – IFC-SC – Informática – Programação Web e Dispositivos Móveis) Sobre JavaScript 
e jQuery: 
 
a) var $(#id); (jQuery) e document.getElementById(‘id’); (JavaScript) são similares e ambos 
retornam objetos HTML DOM. 
 
b) $(‘#id’); (jQuery) e document.getElementById(‘id’); (JavaScript) são similares, sendo que a 
única diferença é que o primeiro retorna um objeto jQuery e o segundo retorna um objeto 
HTML DOM. 
 
c) var document.$(#id); (jQuery) e document.getElementById(‘id’); (JavaScript) são similares e 
ambos retornam objetos HTML DOM. 
 
d) var document.$(‘id’); (jQuery) e document.getElementById(‘id’); (JavaScript) são similares, 
sendo que a única diferença é que o primeiro retorna um objeto jQuery e o segundo retorna 
um objeto HTML DOM. 
 
21. (IESES – 2015 – IFC-SC – Informática – Web Design) Em JavaScript, 
 
document.getElementById(‘id’); 
 
retorna um objeto HTML DOM através de seu id. Utilizando jQuery, pode-se realizar uma tarefa 
semelhante, porém retornando um objeto jQuery ao invés de um objeto HTML DOM através de: 
 
a) $(‘#id’); 
b) var document.$(#id); 
c) var $(#id); 
d) var document.$(’id’); 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 122 
156 
5.3 LISTA DE EXERCÍCIOS: PHP 
1. (FCC - 2012 - TST - Técnico Judiciário - Programação) Considere a linguagem de 
programação PHP e seus operadores. A execução da sentença: 
 
a) (A != B) retorna falso (false), considerando as variáveis A e B inicializadas com 
os valores 3 e 6, respectivamente. 
 
b) (A %= B) atribui o valor 3 (três) para a variável A, considerando as variáveis A 
e B inicializadas com os valores 10 e 3, respectivamente. 
 
c) (A . = B) concatena o conteúdo das variáveis A e B e armazena o conteúdo 
em A. 
 
d)!(A == B) retorna falso (false), considerando as variáveis A e B inicializadas com 
os valores 3 e 6, respectivamente. 
 
e) (A = = = B) compara somente os tipos das variáveis A e B. 
 
2. (FCC - 2012 - TST - Técnico Judiciário - Programação) Considere o programa 
abaixo escrito na linguagem PHP: 
 
$v = array(10, 50, 2, 15, 35); 
 
for($i=0;$i<count($v)-1;$i++){ 
if($v[$i] > $v[$i+1]){ 
 $temp = $v[$i+1]; 
 $v[$i+1] = $v[$i]; 
 $v[$i] = $temp; 
 $i=-1; 
 } 
 } 
 
for($i=0;$i<=count($v);$i++){ 
 echo " ".$v[$i]; 
} 
 
O resultado a ser informado ao usuário após a execução do programa acima é: 
 
a) 100 70 30 20 4 
b) 50 35 15 10 2 
c) 4 20 30 70 100 
d) 2 10 15 35 50 
e) 10 50 2 15 35 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 123 
156 
3. (FCC - 2012 - MPE-AP - Técnico Ministerial - Informática) Analise os exemplos 
de criação de array em PHP. 
 
I. 
$idade = array("Paulo"=>32, "Pedro"=>30, "Ana"=>34); 
 
II. 
$familia = array("Jorge"=>array("Angela","Iracema", 
"Bia"),"Pedro"=>array("Ana")); 
 
III. 
$nome[0] ="Paulo"; 
$nome[1] ="Pedro"; 
$nome[2] ="Ana"; 
 
IV. 
$idade['Paulo'] = "32"; 
$idade['Pedro'] = "30"; 
$idade['Ana'] = "34"; 
 
Representam exemplos corretos de criação de array os itens 
 
a) I, II, III e IV. 
b) III e IV, apenas. 
c) I e II, apenas. 
d) I, III e IV, apenas. 
e) II, III e IV, apenas. 
 
4. (FCC - 2012 - MPE-PE - Analista Ministerial – Informática) Marcos está 
desenvolvendo uma aplicação web PHP utilizando o WAMPServer. Como está 
utilizando um banco de dados MySQL, escolheu uma função para enviar uma 
consulta ou comando SQL (por exemplo, os comandos select, insert ou delete) 
para o banco de dados ativo. A função correta escolhida foi: 
 
a) mysql_fetch_array. 
b) mysql_query. 
c) mysql_update. 
d) mysql_execute_stmt. 
e) mysql_stmt_start. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 124 
156 
5. (FCC - 2012 - TRE-SP - Técnico Judiciário - Programação de Sistemas) Na 
linguagem PHP é possível utilizar o protocolo SOAP por meio de classes 
desenvolvidas especificamente para esse protocolo. A classe que fornece acesso 
cliente aos servidores SOAP é chamada de: 
 
a) PHPAccess. 
b) WSDLClient. 
c) SoapConnect. 
d) SoapClient. 
e) SoapAccess. 
 
6. (FCC - 2012 - TRE-SP - Técnico Judiciário - Programação de Sistemas) A 
linguagem PHP permite a instalação de extensões que podem aumentar sua 
gama de funcionalidades. Uma das funcionalidades extras que podem ser 
adicionadas se refere a manipulação de arquivos XML. A extensão que possui 
várias classes que podem ser instanciadas para a leitura e gravação de arquivos 
XML é chamada: 
 
a) DOM. 
b) XML-RPC. 
c) Ctype. 
d) SCA. 
e) YAZ. 
 
7. (FCC - 2011 - TRE-AP - Técnico Judiciário - Programação de Sistemas) Em relação 
a PHP e JSP é correto afirmar: 
 
a) Em JSP o conceito de classes e objetos não leva em conta os princípios de 
proteção de dados tanto nas propriedades quanto nos métodos. 
 
b) A flexibilidade do PHP permite-lhe que a avaliação de uma variável seja o 
nome de outra variável ou mesmo de uma função. 
 
c) Em PHP os objetos possuem métodos e propriedades privados e devem ser 
instanciados para serem usados. 
 
d) Em JSP pode-se chamar o construtor do objeto pai em qualquer parte do 
código e não há tratamento de exceções nos métodos nativos. 
 
e) Em JSP os objetos são destruídos ao final da execução do script. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 125 
156 
 
8. (FCC - 2011 - TRT - 14ª Região (RO e AC) - Analista Judiciário - Tecnologia da 
Informação) Na PHP 5, é uma função usada para a busca por um padrão em um 
nome de arquivo: 
 
a) fscanf. 
b) fpassthru. 
c) fseek. 
d) fputs. 
e) fnmatch. 
 
9. (FCC - 2010 - MPE-RN - Analista de Tecnologia da Informação - Engenharia de 
Software) Na linguagem PHP 5, a função fputs: 
 
a) busca por um padrão em um nome de arquivo. 
b) é um nome alternativo para a função fwrite. 
c) interpreta o conteúdo de um arquivo de acordo com um determinado 
formato. 
d) cria um link físico. 
e) posiciona o ponteiro em um arquivo. 
 
10. (FCC - 2010 - TCE-SP - Agente da FiscalizaçãoFinanceira - Informática - Suporte 
de Web) NÃO se trata de uma característica do PHP: 
 
a) portábil. 
b) baseado no servidor. 
c) gratuito e com código aberto. 
d) embutido no HTML. 
e) baseado no cliente. 
 
11. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) Para o recebimento dos dados de um formulário HTML, enviados por 
meio do método GET, para uma página PHP, deve-se utilizar: 
 
a) $_GET[“nome_text”] 
b) $GET[“nome_text”] 
c) _GET$[“nome_text”] 
d) _$GET[“nome_text”] 
e) _$_GET[“nome_text”] 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 126 
156 
12. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) A validação de uma data em PHP pode ser realizada pela função: 
 
a) getdate. 
b) checkdate. 
c) setdate. 
d) isdate. 
e) mktime. 
 
13. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) Em uma função, escrita na linguagem de programação PHP, a 
passagem de parâmetros por referência é feita por meio da utilização do 
caractere: 
 
a) ! 
b) % 
c) & 
d) @ 
e) ? 
 
14. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) Um servidor Web que interpreta páginas em PHP é denominado: 
 
a) IIS. 
b) JSTL. 
c) NetBeans. 
d) Apache. 
e) Netscape. 
 
15. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) O envio de e-mails, por meio de programas PHP, é responsabilidade 
da função: 
 
a) email. 
b) mail. 
c) &mail. 
d) ismail. 
e) &email. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 127 
156 
16. (FCC - 2009 - TRT - 3ª Região (MG) - Técnico Judiciário - Tecnologia da 
Informação) Em PHP, 
 
a) os operadores aritméticos restringem-se a soma, subtração, multiplicação e 
divisão. 
 
b) as variáveis necessitam da sua definição de tipo no início do programa. 
 
c) operações aritméticas entre variáveis numéricas e variáveis alfanuméricas, por 
exemplo 6 divido por 3, resultam em mensagem de erro. 
 
d) o único conjunto de comandos condicionais utilizado é o if...endif. 
 
e) as variáveis são definidas com o símbolo "$" antes do nome da variável. 
 
17. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) Em PHP, 
uma variável NÃO pode receber o nome inválido: 
 
a) $cod_empregado 
b) $base1salario 
c) $data-nascimento 
d) $depto_1_nome 
e) $descricao 
 
18. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) NÃO é uma 
afirmativa correta sobre a função PHP: 
 
a) session_start( ) = Inicializa os dados da sessão. 
b) session_destroy( ) = Cancela o registro de uma variável global da sessão. 
c) session_unset( ) = Libera todas as variáveis da sessão. 
d) session_commit( ) = O mesmo que session_write_ close( ). 
e) session_write_close( ) = Escreve os dados da sessão e a encerra. 
 
19. (FCC - 2009 - TJ-SE - Técnico Judiciário - Programação de Sistemas) Utilizando 
a data 01/07/2009 e o comando PHP: 
 
echo $data = date("d/m/y"); 
a data será exibida no formato 
 
a) 01/07/09. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 128 
156 
b) 01/07/2009. 
c) 01/Jul/09. 
d) 01/Jul/2009. 
e) Wed, 01/Jul/2009. 
 
20. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) A função 
fopen ( ), utilizada em um script PHP, que recebe o argumento de modo igual a 
"a+", abre um arquivo existente para: 
 
a) leitura e gravação e coloca o ponteiro no final do arquivo, depois de todos os 
dados. 
b) leitura e gravação, deleta todo o conteúdo e coloca o ponteiro no início do 
arquivo. 
c) leitura e gravação e coloca o ponteiro no início do arquivo, antes de qualquer 
dado. 
d) somente gravação e coloca o ponteiro no final do arquivo, depois de todos 
os dados. 
e) somente gravação, deleta todo o conteúdo e coloca o ponteiro no início do 
arquivo. 
 
21. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) Um 
conteúdo será considerado como um código PHP pelo interpretador se estiver 
dentro do par de tags: 
 
a) <php> </php> 
b) <?php ?> 
c) <?php php?> 
d) <?> </?> 
e) <script language = PHP> ?> 
 
22. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) A 
expressão PHP $x && $y representa um exemplo de utilização de operador: 
 
a) de atribuição. 
b) aritmético. 
c) lógico. 
d) de comparação. 
e) de incremento e decremento. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 129 
156 
23. (FCC - 2005 - TRE-MG - Técnico Judiciário - Programação de Sistemas) Dado o 
loop PHP: 
 
for ($x = 0; $x <= "5"; $x++) 
 
A variável $x assumirá os valores: 
 
a) 1, 3 e 5. 
b) 0, 1, 2, 3 e 4. 
c) 1, 2, 3, 4 e 5. 
d) 0, 2 e 4. 
e) 0, 1, 2, 3, 4 e 5. 
 
24. (FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) HTML, DHTML, 
JavaScript e PHP são linguagens utilizadas no desenvolvimento de sites da World 
Wide Web. A seu respeito é correto afirmar que: 
 
a) o código de uma aplicação JavaScript deve ser interpretado pelo servidor HTTP 
ao passo que o código de uma aplicação PHP deve ser interpretado pelo cliente 
HTTP. 
 
b) o código de uma aplicação JavaScript deve ser interpretado pelo cliente HTTP 
ao passo que o código de uma aplicação PHP deve ser interpretado pelo servidor 
HTTP. 
 
c) tanto o código de uma aplicação JavaScript como o código de uma aplicação 
PHP devem ser executados pelo cliente HTTP. 
 
d) tanto o código de uma aplicação JavaScript como o código de uma aplicação 
PHP devem ser executados pelo servidor HTTP. 
 
e) o código de uma página HTML deve ser interpretado pelo cliente HTTP ao 
passo que o código de uma página DHTML deve ser interpretado pelo servidor 
HTTP. 
 
25. (FCC - 2015 - TRE-RR - ANALISTA JUDICIÁRIO - ANÁLISE DE SISTEMAS) 
Considere o seguinte script encontrado em uma página PHP. 
 
<?php 
$idade = array("Paulo"=>"40", "Pedro"=>"62", "Ana"=>"43", "Marcos"=>"18"); 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 130 
156 
arsort($idade); 
foreach($idade as $x => $x_valor) { 
 echo $x . " = " . $x_valor . " "; 
} 
?> 
 
Ao executar o script será exibido na página: 
 
a) Ana = 43 Marcos = 18 Paulo = 40 Pedro = 62 
b) Marcos = 18 Paulo = 40 Ana = 43 Pedro = 62 
c) 0 = 62 1 = 43 2 = 40 3 = 18 
d) Pedro = 62 Paulo = 40 Marcos = 18 Ana = 43 
e) Pedro = 62 Ana = 43 Paulo = 40 Marcos = 18 
 
26. (FCC - 2013 - MPE-MA - TÉCNICO DO JUDICIÁRIO - TECNOLOGIA DA 
INFORMAÇÃO) Considere o código PHP a seguir: 
 
 
O comando que deve ser utilizado na lacuna I para colocar os nomes em ordem 
alfabética crescente é: 
 
a) order($nomes) ascending; 
b) rsort($nomes); 
c) index($nomes) order by asc; 
d) sort($nomes); 
e) krsort($nomes); 
 
27. (FCC - 2013 - MPE-MA - TÉCNICO DO JUDICIÁRIO - TECNOLOGIA DA 
INFORMAÇÃO) Considereum formulário criado na página de site desenvolvido 
com PHP para permitir que os usuários façam upload de arquivos: 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 131 
156 
 
 
No arquivo upload.php, as instruções utilizadas para se obter o nome e o tipo 
do arquivo, caso não ocorra erro são, respectivamente, 
 
a) $_DUMP["file"] e $_DUMP ["type"] 
b) $_FILES["file"]["name"] e $_FILES["file"]["type"] 
c) $_POST["file"] e $_ POST["type"] 
d) $_FILES["file"] e $_FILES ["type"] 
e) $_REQUEST["file"]["name"] e $_REQUEST["file"]["type"] 
 
28. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE 
WEB) Para acessar bases de dados MySQL, por meio do PHP, é necessário antes 
estabelecer uma conexão. Para isso, deve ser utilizado o comando: 
 
a) mysql_&connect ou mysql_&pconnect 
b) mysql_&&connect ou mysql_&&pconnect 
c) mysql&_connect ou mysql&_pconnect 
d) mysql&&_connect ou mysql&&_pconnect 
e) mysql_connect ou mysql_pconnect 
 
29. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE 
WEB) Uma função PHP em execução terminará imediatamente, retornando seu 
argumento como valor, se for chamada, na função, a instrução: 
 
a) this 
b) null 
c) return 
d) this.value 
e) this.return 
 
30. (FCC - 2010 - TCE-SP - AGENTE DA FISCALIZAÇÃO FINANCEIRA - SUPORTE DE 
WEB) NÃO se trata de uma característica do PHP: 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 132 
156 
a) portábil. 
b) baseado no servidor. 
c) gratuito e com código aberto. 
d) embutido no HTML. 
e) baseado no cliente. 
 
31. (FCC - 2009 - TRT-3ª REGIÃO (MG) - ANALISTA JUDICIÁRIO - TECNOLOGIA DA 
INFORMAÇÃO) Dados os operadores “e” lógico: “and”, “&&” e “&” e os 
operadores “ou” lógico: “or”, “||” e “|”, a ordem de precedência no momento do 
PHP avaliar as expressões será na sequência: 
 
a) and, &&, &, or, || e |. 
b) or, II, I, and, && e &. 
c) and, or, &&, ||, & e |. 
d) or, and, ||, &&, | e &. 
e) &, &&, and, |, || e or. 
 
32. (FCC - 2016 - TRF 3ª REGIÃO (SP MS) - TÉCNICO JUDICIÁRIO - INFORMÁTICA) 
Cookie é um arquivo texto que pode ser armazenado no computador do 
usuário, normalmente com informações de sua navegação no site, para ser 
recuperado posteriormente pelo servidor. Em PHP, um cookie criado pela 
instrução setcookie("ck", "abcde", time() + 3600); poderá ser recuperado 
utilizando a instrução: 
 
a) $_ISSET["ck"] 
b) load_cookie ("ck") 
c) get_cookie("ck") 
d) $_GETCOOKIE["ck"] 
e) $_COOKIE["ck"] 
 
33. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Analise o código 
PHP mostrado a seguir. 
 
<?php 
function f($arg) 
{ 
$arg01 = 343 + 20/2 + 911; 
$arg02 = 38 - (5 * 11); 
$argRetorno = $arg01 - $arg02; 
} 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 133 
156 
 
$arg01 = 343; 
$arg02 = 38; 
f($arg01); 
echo $arg01; 
?> 
 
A saída produzida pela execução desse código é: 
 
a) -17 
b) 38 
c) 343 
d) 1264 
e) 1281 
 
34. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Uma String 
recebida do campo nome de um formulário HTML enviado por meio do método 
POST para um site deve ser codificada para UTF-8. A forma correta de realizar 
essa operação, utilizando a linguagem PHP, é: 
 
a) $nome = utf8_encode( $_POST['nome'] ) 
b) $nome: utf8 
c) decode($nome) 
d) $nome = string( $_POST['nome'] ) 
e) parseHTML($nome, utf8( $_POST['nome'] ) 
 
35. (IESES - 2015 - IFC-SC - INFORMÁTICA - WEB DESIGN) Em um código PHP 5.6.2, 
qual das alternativas a seguir atribuiria o valor 10 à variável $var? 
 
a) $var = (100 > 10 : 100 ? 10); 
b) $var = (100 > 10 ? 10 : 100); 
c) $var = (100 > 10 : 10 ? 100); 
d) $var = (100 > 10 ? 100 : 10); 
 
36. (FGV - 2015 – TJ/PI – Analista Judiciário - Analista de Sistemas) Analise o código 
PHP mostrado a seguir. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 134 
156 
 
Ao final da execução desse código, os valores na variável $lista estarão: 
 
a) ordenados de forma crescente, segundo o método de ordenação Quicksort; 
b) ordenados de forma crescente, segundo o método de ordenação em bolha; 
c) embaralhados, não sendo possível prever a ordem dos valores; 
d) removidos da variável, devido a um erro no código; 
e) duplicados, devido a um erro no código. 
 
37. (CESPE – 2017 – TRE/BA - Analista de Sistemas) A respeito da declaração de 
variáveis na linguagem de programação PHP, assinale a opção correta. 
 
a) Uma variável é composta pelo nome dessa variável seguido do sinal $ no final. 
 
b) Um nome de variável pode começar com um número. 
 
c) Os tipos de variáveis existentes são somente local e global. 
 
d) Diferentemente das linguagens em que o programador deve declarar o nome 
e o tipo da variável antes de usá-la, o PHP converte automaticamente a variável 
para o tipo de dado correto. 
 
e) Os nomes das variáveis no PHP não diferenciam maiúsculas de minúsculas, ou 
seja, eles são case insentivive. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 135 
156 
 
Com o objetivo de iniciar o desenvolvimento de uma série de aplicações web em 
PHP para uma organização que possui ambientes de desenvolvimento e 
produção que trabalham com informações de elevado grau de sensibilidade, um 
programador realizou a instalação, em sua máquina, de um IDE (interactive 
development environment) PHP. 
 
38. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) A habilitação da característica de thread safety no 
painel de informações do ambiente de runtime PHP depende fundamentalmente 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 136 
156 
do suporte que o sistema operacional oferta, e não, das características do zend 
engine. 
 
39. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Considere que determinada aplicação web a ser 
desenvolvida em PHP deva ser integrada aos sistemas de controle de acesso já 
presentes nos ambientes de desenvolvimento e produção da organização. Nesse 
caso, se esses ambientes forem embasados em Kerberos ou em RADIUS (remote 
authentication dial in user service), o programador poderá obter êxito na 
integração por meio do uso de extensões providas pela biblioteca PECL (PHP 
extension community library), tais como os packages KADM5 e RADIUS. 
 
40. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O arquivo de configuração do PHP, de nome php.ini, 
será lido apenas no momento da inicialização (startup) do servidor HTTPassociado ao referido IDE, que, no caso específico, é o Apache 2.2.11. 
 
41. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Para que possa depurar os scripts PHP que 
construirá, o programador não necessita instalar depuradores externos, uma vez 
que a distribuição padrão de PHP vem acompanhada de depurador. 
 
42. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O acesso otimizado ao sistema gerenciador de 
banco de dados (SGBD) em uso nos ambientes de desenvolvimento e produção 
da organização pode ser obtido por meio da extensão PDO (PHP data objects), 
desde que seja habilitado o driver PDO específico do SGBD em uso, uma vez 
que a PDO não provê abstração completa do banco de dados, mas apenas uma 
camada de abstração para acesso aos dados, que não reescreve SQL nem emula 
funcionalidades de um SGBD. 
 
43. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Caso o programador deseje criar, gerenciar e 
distribuir internamente à organização um ou mais packages que contenham 
módulos ou extensões por ele desenvolvidos, é correto o uso da técnica de 
channels, que é embasada em arquitetura orientada a serviços (SOA), por meio 
da utilização de XML e REST (representational state transfer). 
 
44. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Para instalar extensões do repositório PEAR (PHP 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 137 
156 
extension and application repository), é correto o uso do Pyrus, uma versão 
refatorada do instalador PEAR, capaz de prover maior segurança aos processos, 
permitindo o gerenciamento e a distribuição de packages. 
 
Suponha que uma equipe de programadores PHP tenha como atribuição o 
desenvolvimento de um módulo de software a partir da composição, da extensão 
ou da adaptação de um framework. Com base nessa situação e considerando as 
boas práticas do desenvolvimento e manutenção de sistemas, incluindo-se as 
recomendadas pelos desenvolvedores de extensões padronizadas para PHP, julgue 
os itens seguintes. 
 
45. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Ao se escreverem scripts PHP, deve-se empregar 
indentação com espaços em branco, sem uso de tabs; atribuições em arrays 
devem ser alinhadas; comentários podem adotar o estilo C ou estilo C++, mas 
comentários em estilo PERL devem ser evitados. 
 
46. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Scripts de teste funcional devem conter a extensão 
.phpt, conforme prescreve o padrão de distribuição de módulos PHP; os diversos 
artefatos de teste relacionados a um módulo desenvolvido devem ser 
armazenados em subdiretório de nome tests, dentro do diretório do módulo ou 
package; dados de configuração específicos do ambiente de teste do 
desenvolvedor devem ser armazenados no arquivo de nome config.php.dist. 
 
47. (CESPE – 2010 – ABIN – Oficial Técnico de Inteligência - Área de 
Desenvolvimento e Manutenção de Sistemas) Se o pedido 
http://localhost:8080/teste.php?nome=joao for aplicado de forma bem sucedida 
ao script apresentado a seguir, então, após o processamento do pedido, a saída 
de dados para o usuário deverá conter a string joao e um arquivo de nome 
joao.txt, contendo a palavra joao, existirá no computador onde se encontra o 
serviço HTTP associado ao referido pedido. 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 138 
156 
 
48. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Sabendo-se que a função array_multisort é capaz 
de ordenar múltiplos arrays na plataforma PHP, então a saída de dados gerada 
pela execução bem sucedida do script abaixo produzirá o resultado indicado em 
seguida. 
 
49. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) A execução bem sucedida do script apresentado 
abaixo produz como saída o valor 900. 
 
 
 
50. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Se o pedido http://localhost/teste.php?nome=joao 
for aplicado de forma bem sucedida ao script apresentado abaixo, então a saída 
de dados deverá conter a string Você deve preencher os campos. É correto 
afirmar, ainda, que uma conexão de socket foi estabelecida entre dois processos 
que se executam no mesmo computador onde se encontra o serviço HTTP 
associado ao referido pedido, sendo uma extremidade da conexão associada à 
porta 80 e a outra, a uma porta cujo número não se pode determinar pelas 
informações apresentadas. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 139 
156 
 
 
51. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Sabendo-se que a função natsort() opera com o 
conceito de ordenação natural, na qual as strings alfanuméricas são ordenadas 
da forma que um ser humano ordenaria, enquanto a função asort() opera com 
o conceito de ordenação classicamente usado em algoritmos de ordenação de 
strings, na ciência da computação, então a execução bem sucedida do script PHP 
apresentado abaixo produzirá, na saída, a primeira ocorrência da string 
img12.png antes da primeira ocorrência da string img2.png e a segunda 
ocorrência da string img12.png depois da segunda ocorrência da string 
img2.png. 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 140 
156 
 
 
52. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Uma sessão PHP é criada ou recuperada 
automaticamente durante a execução do script. 
 
53. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
Manutenção de Sistemas) A senha do usuário que está no banco de dados não 
foi criptografada com um hash, fato que torna a aplicação vulnerável a ataques 
de dicionário. 
 
54. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O banco de dados MySQL é usado pelo script, mas 
a conexão com o banco deveria ter sido encerrada ou devolvida ao pool ao final 
do script, fato que não se concretiza. 
 
55. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O pedido HTTP que pode ser atendido por esse 
script não poderá conter cookies de nomes nu e su, além de estar sujeito a 
ataques de SQL injection. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 141 
156 
 
56. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimentoe Manutenção de Sistemas) Os softwares de servidores web, ao aderirem à 
arquitetura de sistemas operacionais, empregam modelo de memória virtual, 
que atua como um cache de memória e contém parte das instruções e dados 
executados por um script em determinado instante de tempo. Assim, o script 
não precisa estar armazenado simultaneamente na memória principal e no disco; 
com isso, a memória total disponível para um script ou programa pode exceder 
o tamanho da memória principal do sistema. 
 
57. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) O formato JSON (javascript object notation) permite 
representar objetos e classes como estruturas de dados e arrays associativos, 
sendo possível seu uso em combinação com Ajax e PHP, por meio de bibliotecas 
diversas, como DOJO. 
 
58. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Arrays associativos, usados em PHP e em outras 
linguagens de script, podem ser implementados de forma eficiente, do ponto de 
vista de consumo de memória, por meio do uso de tabelas de dispersão. Para 
garantir eficiência, essas tabelas precisam ser totalmente livres de colisão, tal que, 
na implementação de métodos de busca, as pesquisas sejam executadas em 
tempo constante, independentemente do valor pesquisado. 
 
59. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Estruturas de dados padronizadas, como listas 
ligadas duplamente encadeadas, pilhas, filas, filas de prioridade e arrays 
numéricos de tamanho fixo, são disponíveis em PHP por meio da extensão SPL 
(standard PHP library). 
 
60. (CESPE – 2010 – ABIN - Oficial Técnico de Inteligência - Área de Desenvolvimento 
e Manutenção de Sistemas) Algoritmos recursivos normalmente têm menor 
tempo de resposta que seus equivalentes iterativos, mas as linguagens PHP e 
Javascript, por serem linguagens de script, não permitem nem necessitam de 
recursividade. 
 
 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 142 
156 
5.4 LISTA DE EXERCÍCIOS: FRAMEWORK .NET 
 
1. (FGV - 2014 - DPE-RJ - Técnico Superior Especializado - Analista De Desenvolvimento De 
Sistemas) Uma empresa que desenvolve projetos no Visual Studio decidiu utilizar o Team 
Foundation Service. Uma característica relacionada ao desenvolvimento em equipe e outra, 
relacionada ao controle de código do Team Foundation, são respectivamente 
 
a) quadro de tarefas e gerenciamento de conflitos. 
b) funcionar com Eclipse e permitir chamadas de função. 
c) integrar com Microsoft Visual Studio e usar a plataforma .NET. 
d) testes de unidade e função de auto completar código. 
e) definição de testes e definição de complexidade. 
 
2. (FGV - 2014 - DPE-RJ - Técnico Superior Especializado - Analista De Desenvolvimento De 
Sistemas) Uma empresa possui um conjunto de sistemas desenvolvidos com 
plataformas/tecnologias diferentes. Como parte da estratégia dessa empresa, decidiu-se que os 
sistemas precisam estar interoperáveis ou integrados. Foi proposto o uso de serviços Web 
baseados em SOAP. Considerando-se a plataforma .NET, essa proposta 
 
a) não deve ser aceita, pois a plataforma .NET não possui suporte para criação de serviços Web 
baseados em SOAP. 
 
b) não deve ser aceita, pois a integração de sistemas utilizando SOAP é pouco empregado na 
indústria, não existindo padrões para a operação de sistemas heterogêneos. 
 
c) deve ser aceita, pois serviços web baseados em SOAP têm como característica principal serem 
restritos à plataforma .NET. 
 
d) deve ser aceita, entretanto, com a ressalva que serviços Web baseados em SOAP não possuem 
descritores para os serviços desenvolvidos. 
 
e) deve ser aceita, pois serviços web baseados em SOAP têm suporte na plataforma .NET além de 
serem amplamente adotados por empresas para integração de sistemas heterogêneos. 
 
3. (VUNESP - 2014 - TCE-SP - Agente Da Fiscalização Financeira) Na plataforma .NET, o componente 
responsável pela execução do código é chamado de: 
 
a) Common Execution Architecture – CEA. 
b) Common Intermediate Language – CIL. 
c) Common Language Runtime – CLR. 
d) Common Type System – CTS. 
e) Common Virtual Machine – CVM. 
 
4. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) A plataforma .NET possui as classes 
System.String e System.Text.StringBuilder para a representação de cadeias de caracteres. Apesar 
de ambas terem funcionalidades semelhantes, a utilização do System.Text.StringBuilder é 
indicada quando houver necessidade de: 
 
a) armazenar grandes quantidades de caracteres. 
b) transferir os dados armazenados para uma base de dados. 
c) armazenar caracteres alfanuméricos. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 143 
156 
d) manipular a cadeia de caracteres. 
e) proteger os dados armazenados contra acesso indevido. 
 
5. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) O Global Assembly Cache (GAC) é 
um componente da plataforma .NET cuja função é: 
 
a) armazenar os dados transmitidos pela rede com o intuito de agilizar futuras requisições. 
b) permitir que seja utilizada linguagem Assembly no código .NET. 
c) manter os objetos eliminados pelo Garbage Collector. 
d) garantir acesso às variáveis globais por todos os módulos de uma aplicação. 
e) centralizar o armazenamento de código .NET compartilhado entre aplicações. 
 
6. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) Todo código .NET possui um 
conjunto de metadados chamados “Manifest”. Esses metadados descrevem 
 
a) como os elementos do código se relacionam uns com os outros e suas dependências. 
 
b) as bases de dados utilizadas pela aplicação. 
 
c) as conexões utilizadas pela aplicação para controle do firewall. 
 
d) as permissões de acesso dos usuários à aplicação. 
 
e) se a aplicação necessita realizar chamadas de baixo nível para controlar algum dispositivo de 
hardware. 
 
7. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) Na plataforma .NET, a classe base 
de todas as outras classes é a 
 
a) Base.System.Class 
b) Base.Object 
c) Net.System.Object 
d) System.Base 
e) System.Object 
 
8. (VUNESP - 2013 - MPE-ES - Agente Técnico - Desenvolvedor) Quando um código é compilado para 
a plataforma .NET, ele é traduzido para um código em Linguagem. Intermediária Comum (CIL). 
Esse código gerado é 
 
a) independente de CPU e plataforma, podendo ser executado por qualquer ambiente que 
suporte a CLI. 
 
b) independente de plataforma, no entanto, pode ser executado apenas por um servidor web. 
 
c) independente de plataforma, porém apenas pode ser executado por processadores de 64 bits. 
 
d) dependente de plataforma, podendo ser executado apenas por ambientes Linux. 
 
e) dependente de plataforma, podendo ser executado apenas nos ambientes Windows. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 144 
156 
9. (FCC - 2013 - MPE-SE - Analista Do Ministério Público - Gestão E Análise De Projeto De Sistema) 
A Microsoft disponibiliza canais para que desenvolvedores que utilizam o Visual Studio consigam 
obter suporte ou relatar problemas. É correto afirmar que dentre estes canais se encontrem 
 
a) MSDN Forums, Microsoft Connect, Microsoft Support. 
b) MS Development Support, ContactCenter, Visual Studio Research. 
c) MS DevNews, NET Developer Tools, Source Instant Search. 
d) Contact Center, MSDN News, Visual Studio Development Center. 
e) Visual Studio Research, Contact Center, MSDN Development Center. 
 
 
10. (FCC - 2012 - TRE-SP - Técnico Do Judiciário - Programador De Sistemas) O Microsoft Visual Studio 
é um conjunto completo de ferramentas para construir aplicativos, incluindo aplicações para Web. 
Nesta ferramenta várias linguagens compartilham o mesmo ambiente de desenvolvimento 
integrado (IDE). Este ambiente possuí um analisador de código que pode oferecer, enquanto o 
código é digitado, sugestões ao programador, como por exemplo tipos de dados e membros de 
classes e estruturas. Esse analisador é chamado 
 
a) TextMate. 
b) Lexical Analyzer. 
c) IntelliSense. 
d) Active Directory. 
e) ActiveSync. 
 
11. (CESGRANRIO - 2012 - EPE - Analista De Gestão Corporativa - Tecnologia Da Informação) O 
Microsoft Visual Studio Team Foundation Server 2010 é a nova plataforma colaborativa da 
Microsoft. Essa plataforma pode ser utilizada em substituição ao sistema de controle de versão 
conhecido como 
 
a) Team Explorer Everywhere 
b) Work Item Tracking 
c) Application Lifecycle Management 
d) Visual SourceSafe 
e) Development Platform Support 
 
12. (FGV - 2016 – IBGE - Análise De Sistemas - Desenvolvimento De Sistemas) Com relação aos 
arquivos XAML do framework .NET produzidos pela IDE do Visual Studio durante o processo de 
desenvolvimento de uma aplicação móvel para o Windows Phone 8.1, analise as afirmativas a 
seguir: 
 
I. Um arquivo XAML deve ter mais de um elemento raiz. 
II. Window, Page, ResourceDictionary e Application são elementos do tipo raiz. 
III. O namespace padrão do WPF é o 
http://schemas.microsoft.com/winfx/2006/xaml/presentation. 
 
Está correto somente o que se afirma em: 
 
 A) I 
 B) II 
 C) I e II 
 D) I e III 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 145 
156 
 E) II e III 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 146 
156 
5.5 LISTA DE EXERCÍCIOS – ASP 
 
1. (FCC - 2012 – TRF/2 - Técnico Do Judiciário – Informática) No ASP .NET um formulário Web não 
deve usar variáveis de instância para guardar informações de estado do cliente, pois os clientes 
que acessam esse formulário Web em paralelo poderão sobrescrever as variáveis de instância 
compartilhadas. Para resolver esse problema, os formulários Web devem guardar as informações 
de estado do cliente em objetos: 
 
a) HttpResponse. 
b) HttpSessionState. 
c) HttpRequestState. 
d) HttpCookie. 
e) HttpSessionStore. 
 
2. (FCC - 2010 – TCE/SP - Agente Da Fiscalização Financeira - Suporte De Web) Um modelo de 
objetos presente no ambiente ASP facilita a tarefa de construção de páginas dinâmicas nesse 
ambiente de programação. O objeto Request: 
 
a) armazena as informações essenciais à sessão do usuário. 
b) fornece acesso aos recursos do servidor que são úteis à aplicação. 
c) permite obter referências sobre outros objetos. 
d) garante o acesso às informações enviadas pelo cliente. 
e) armazena e compartilha informações entre clientes que utilizam uma mesma aplicação. O JDBC 
é usado, entre outras coisas, para acesso a bancos de dados sem SQL, por meio de Java. 
 
3. (FCC - 2010 – TCE/SP - Agente Da Fiscalização Financeira - Suporte De Web) No ASP, um 
procedimento que executa determinada rotina sem retornar um valor, sendo possível passar 
parâmetros para este, é do tipo: 
 
a) Function. 
b) Continue. 
c) Return. 
d) Loop. 
e) Sub. 
 
4. (FCC - 2010 - TCE-SP - Agente Da Fiscalização Financeira - Suporte De Web) No ASP, o comando 
CStr(expressão) realiza a conversão de uma expressão numérica ou string em um valor: 
 
a) string. 
b) single. 
c) byte. 
d) booleano. 
e) inteiro. 
 
5. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Augusto, funcionário 
do Tribunal de Contas do Município de São Paulo, recebeu a incumbência de desenvolver o 
Sistema de Gestão Integrada de Usuários, chamado SIGUser. O SIGUser deve realizar a tarefa de 
autenticar e autorizar os servidores nos sistemas do tribunal. O tribunal possui uma base de dados 
SQLServer, in loco, com informações de login e senha de usuários. Muitas vezes, faz-se necessário 
acessar sistemas do tribunal durante a realização de inspeções externas nas jurisdicionadas. 
Augusto, então, decide pelo uso do ASP.NET Identity para realização da tarefa de autenticação e 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 147 
156 
autorização do SIGUser. Sobre a tecnologia ASP.NET Identity e as razões que levaram Augusto a 
escolhê-la, é correto afirmar que: 
 
a) a tecnologia ASP.NET Identity permite que os servidores do tribunal se autentiquem nos 
sistemas internos utilizando providers externos, como: Twitter, Facebook ou Google; 
 
b) os sistemas internos do tribunal somente serão acessados se utilizadas informações da base de 
dados SQLServer, in loco, com informações de login e senha de usuários do tribunal; 
 
c) apenas os sistemas ASP.NET MVC do tribunal poderão ser acessados utilizando o ASP.NET 
Identity; 
 
d) a escolha do ASP.NET Identity por Augusto foi acertada e para cada sistema o usuário deverá 
ter sua própria senha na base SQLServer do tribunal; 
 
e) os sistemas do tribunal poderão ser acessados utilizando ASP.NET Identity e o acesso dos perfis 
de administração, auditoria e TI deverá ser configurado no SQLServer. 
 
6. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Ao criar um projeto 
ASP.NET MVC, por padrão, um arquivo chamado _ViewStart.cshtml é gerado na pasta Views. 
Sobre o uso de ViewStart no ASP.NET MVC, é correto afirmar que: 
 
a) o código do arquivo _Viewstart.cshtml sempre é executado, independentemente da ação do 
programador; 
 
b) o código do arquivo _ViewStart.cshtml é aplicado a todas as views da pasta corrente, mas não 
das subpastas; 
 
c) o código do arquivo _ViewStart.cshtml não será executado se, em um método do controlador 
de uma página ASP.NET MVC, o programador retornar uma PartialView() ao invés de View(); 
 
d) o código do arquivo _ViewStart.cshtml não será executado se em um método controlador for 
chamada a diretiva RedirectToRoute sem fazer referência a nenhuma ViewStart; 
 
e) não é possível evitar a execução de uma ViewStart em um projeto ASP.NET MVC. 
 
7. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Analise o trecho de 
código ASP.NET MVC a seguir. 
 
 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 148 
156 
Sobre o retorno da instrução: 
 
return RedirectToAction("Index","Servidores"); 
 
é correto afirmar que: 
 
a) transfere o fluxo navegacional do usuário para a página definida na aplicação MVC como Default 
Web Site, ou seja, Index; 
 
b) transfere o fluxo navegacional do usuário para a Action Index do Controller Servidores; 
 
c) transfere o fluxo navegacional do usuário para a página Servidores abaixo do diretório Index; 
 
d) a substituição da instrução RedirectToAction("Index","Servidores"); por 
Redirect("Index","Servidores"); não traria alteração deresultado para a aplicação; 
 
e) a instrução RedirectToAction("Index",”Servidores”) retorna um ActionResult, que é subtipo de 
ViewResult. 
 
8. (FGV - 2015 – TCM/SP - Agente De Fiscalização - Tecnologia Da Informação) Analise o trecho de 
código ASP.NET MVC a seguir. 
 
 
 
Sobre o uso da instrução [ValidateAntiForgeryToken], é correto afirmar que: 
 
a) evita ataques do tipo cross-site scripting (XSS); 
b) evita ataques de falsificação de dados e ataques baseados em tampering; 
c) representa um atributo que é usado para detectar se um pedido SMTP do servidor foi violado; 
d) funciona com base em cookies; 
e) está implementado em uma View cshtml. 
 
9. (VUNESP - 2014 – TCE/SP - Agente Da Fiscalização Financeira) Quando a propriedade 
AutoEventWireup do ASP.NET está ativa, os eventos da página passam a ser, automaticamente, 
associados aos métodos que: 
 
a) tenham sido declarados na classe associada à página. 
b) foram herdados da classe System.EventHandler. 
c) recebam parâmetros do tipo System.EventArgs. 
d) retornam um dado do tipo System.Event. 
e) respeitam um padrão de nomenclatura predefinido. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 149 
156 
 
10. (VUNESP - 2013 – MPE/ES - Agente Técnico - Desenvolvedor) Como os servidores web tratam 
cada requisição de forma independente, o ASP.NET oferece diversas opções de gerenciamento de 
estado para persistir os dados entre as requisições dos usuários. Sobre a persistência de dados, a 
diferença entre o estado de sessão (Session state) e o estado de visualização (View state) é que: 
 
a) o estado de sessão fornece persistência dos dados entre múltiplas páginas de uma aplicação 
web, enquanto o estado de visualização fornece persistência dos dados para uma única página da 
aplicação. 
 
b) apesar de ambos terem a mesma função, o estado de sessão fica armazenado na máquina do 
cliente, enuanto o estado de visualização fica armazenado no servidor. 
 
c) o estado de sessão fornece persistência dos dados entre usuários de uma mesma aplicação, 
enquanto o estado de visualização fornece persistência para um único usuário. 
 
d) o estado de visualização fornece persistência dos dados entre múltiplas páginas de uma 
aplicação web, enquanto o estado de sessão fornece persistência dos dados para uma única 
página da aplicação. 
 
e) ambos são armazenados na máquina do cliente, no entanto, o estado de sessão utiliza uma 
criptografia de chave simétrica para proteger os dados. 
 
11. (CESPE - 2013 – TCE/ES - Analista Administrativo - Informática) Com base em aplicações web, 
assinale a opção correta. 
 
a) Para validar usuários, o Form Authentication utiliza credenciais que devem ser armazenadas no 
arquivo de configuração da aplicação. 
 
b) Utilizando-se ASP, é impossível, nos casos em que o browser não suporta o uso de cookies, 
passar informações de uma página para outra em uma aplicação. 
 
c) No LINQ, os métodos que implementam operadores de consulta padrão devem ser chamados 
com o uso da sintaxe de métodos estáticos. 
 
d) Usando-se ADO.NET, a conexão com um data source fornece as informações de autenticação 
necessárias e deve ser feita com a utilização de um objeto Connection, que depende do tipo de 
data source adotado. 
 
e) No Padrão MVC, as regras do negócio que definem a forma de acesso e modificação dos dados 
são geridas pelo controlador. 
 
12. (AOCP - 2012 - TCE-PA - ASSESSOR TÉCNICO - ANALISTA DE SISTEMAS) Segundo a Microsoft, a 
plataforma de aplicativos da web, unificada, que oferece os serviços necessários para a criação e 
a implantação de aplicativos corporativos da web, é conhecida como: 
 
a) XML. 
b) C#.NET. 
c) ASP.NET. 
d) Web Server. 
e) ADO.NET. 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 150 
156 
 
13. (FUNCAB - 2012 – MPE/RO - Analista Judiciário - Programador De Computadores) O texto abaixo 
foi extraído da biblioteca MSDN, disponível no site Microsoft. Sobre o mesmo, é INCORRETO 
afirmar que: 
 
 
 
a) o tema abordado refere-se à critpografia de informações disponíveis em arquivos de 
configuração. 
 
b) as seções appSettings, connectionStrings, identify e sessionState são sessões que normalmente 
contêm informações que merecem mecanismos de segurança. 
 
c) Web.config é um exemplo de arquivo de configuração. 
 
d) os mecanismos de criptografia e descriptografia não comprometem a performance; portanto, 
a recomendação é, por segurança, criptografar todas as seções dos arquivos de configuração. 
 
e) a seção identify pode conter credenciais de apresentação. 
 
14. (FUNCAB - 2012 – MPE/RO - Analista Judiciário - Programador De Computadores) Suponha que 
você queira desenvolver uma página web, conforme imagem abaixo, onde: 
 
- a lista CIDADE será carregada com as cidades da UF selecionada na lista UF. 
- a lista BAIRRO será carregada com os bairros da cidade selecionada na lista CIDADE. 
- sempre que um novo item for selecionado na lista UF ou na lista CIDADE, as demais listas deverão 
ser recarregadas de acordo com os novos itens selecionados. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 151 
156 
 
 
O ASP.NET AJAX extender que deve ser utilizado para reproduzir este tipo de comportamento é: 
 
a) ListSearch. 
b) AutoComplete. 
c) DropDown. 
d) ComboBox. 
e) CascadingDropDown. 
 
15. (CESGRANRIO - 2014 - Banco Da Amazônia - Técnico Científico - Suporte E Infraestrutura) Quais 
são os três modelos de desenvolvimento diferentes suportados por ASP.Net? 
 
a) Web Apps, Web Forms e Web Grid 
b) Web Forms, MVC e Web Grid 
c) Web Pages, MVC e Web Apps 
d) Web Pages, MVC e Web Forms 
e) Web Pages, Web Grid e Web Forms 
 
16. (CESGRANRIO - 2012 - EPE - Analista De Gestão Corporativa - Tecnologia Da Informação) 
Considere que uma aplicação WEB em ASP.NET na linguagem C# contém classes X e Y, cujos 
trechos relevantes estão apresentados a seguir. 
 
public class X { 
 public int Foo() { return 2; } 
 public virtual int Bar() { return 1; } 
} 
 
public class Y: X { 
 public new int Foo() { return 0; } 
 public override int Bar() { return 5; } 
} 
 
Seja o conteúdo do corpo do método manipulador do evento Load da página principal dessa 
aplicação o trecho de código a seguir. 
 
X x = new X(); 
Y y = new Y(); 
 
int v1 = x.Foo(); 
int v2 = x.Bar(); 
int v3 = y.Foo(); 
int v4 = y.Bar(); 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 152 
156 
int v5 = ((X)y).Foo(); 
int v6 = ((X)y).Bar(); 
 
Response.Write(v1+” “+v2+” “+v3+” “+v4+” “+ v5+” “+v6); 
 
Quando a aplicação exibir com sucesso, em um navegador, a página WEB resultante de sua 
execução, qual será a sequência de números apresentada nessa página principal? 
 
a) 0 5 0 5 0 5 
b) 2 1 0 5 0 5 
c) 2 1 0 5 2 1 
d) 2 1 0 5 2 5 
e) 2 1 2 1 2 1 
 
17. (CESGRANRIO - 2010 - EPE - Analista De Gestão Corporativa - Tecnologia Da Informação) Um 
órgão federal disponibiliza serviços na Internet utilizando a plataforma ASP.NET, versão 3.5. Um 
dos objetivos da tecnologia LINQ dessa plataforma é: 
 
a) substituir, gradativamente, o AJAX. 
b) simplificar o acesso a dados. 
c) permitir tipagem dinâmica de variáveis. 
d) realizar testes automatizados.e) consumir web service genéricos. 
 
18. (CESGRANRIO - 2010 - ELETROBRAS - Analista De Sistemas - Suporte Basis Sap R/3) Analise o 
fragmento de código a seguir. 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 153 
156 
 
 
Qual o objetivo desse código? 
 
a) Alterar dados da tabela “Customers” de um banco de dados. 
b) Apresentar o resultado de uma consulta em um banco de dados em um navegador. 
c) Enviar um e-mail para todos os clientes de uma empresa. 
d) Criar um arquivo .mdb com o dump com alguns dados da tabela “Customers”. 
e) Escrever, em um banco relacional, as entradas de dados do usuário. 
 
19. (CESGRANRIO - 2010 - ELETROBRAS - Analista De Sistemas - Engenharia De Software) Os usuários 
internos de um órgão público reclamam que, ao utilizar o sistema de atendimento Web, recebem, 
com frequência, a mensagem que a sessão expirou, exigindo novo login no sistema. O gestor desse 
sistema, ao consultar os desenvolvedores, percebeu que o tempo de sessão está configurado para 
10 minutos, e, para resolver o incômodo de seus usuários, solicitou que a sessão fosse configurada 
para 30 minutos. O administrador do servidor de aplicação confirmou que a configuração default 
é de 10 minutos, mas não está seguro para alterá-la porque o impacto em outras aplicações não 
foi mensurado. Considerando-se que o sistema foi desenvolvido em ASP, que fragmento de código 
deve ser incluído no sistema para atender ao gestor? 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 154 
156 
a) SessionExpireOn=30 
b) Session.Timeout=30 
c) SessionExpireOn=1800 
d) Session.Timeout=1800 
e) TimeoutConnectionsInSession=1800000 
 
20. (FCC - 2016 – TRF/3 - Técnico Judiciário - Informática) Uma das classes do ASP.NET MVC 5 
responsáveis por converter os dados provenientes de requisições HTTP em objetos .Net 
requeridos como parâmetros de Actions Methods é a classe: 
 
a) HttpRequestAttribute 
b) HttpRequest 
c) ModelGetConverter 
d) DefaultModelBinder 
e) HttpRequestValue 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 155 
156 
6 GABARITOS 
 
6.1 GABARITO – AJAX (DIVERSAS BANCAS) 
 
1 2 3 4 5 6 7 8 9 10 
E A B A E D B D E B 
11 12 13 14 15 16 17 18 19 20 
C E C D A C C B 
 
 
 
6.2 GABARITO: PHP 
 
1 2 3 4 5 6 7 8 9 10 
C D A B D A B E B E 
11 12 13 14 15 16 17 18 19 20 
A B C D B E C B A A 
21 22 23 24 25 26 27 28 29 30 
B C E B E D B E C E 
31 32 33 34 35 36 37 38 39 40 
D E C A B C D E C C 
41 42 43 44 45 46 47 48 49 50 
E C C C C E A C E C 
51 52 53 54 55 56 57 58 59 60 
C E E C E E C E C E 
 
 
6.3 GABARITO: FRAMEWORK .NET 
 
1 2 3 4 5 6 7 8 9 10 
A E C D E A E A A C 
11 12 
D E 
 
 
6.4 ASP 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
Inserir aqui o nome do Curso 
www.estrategiaconcursos.com.br 
 156 
156 
1 2 3 4 5 6 7 8 9 10 
B D E A A C B D E A 
11 12 13 14 15 16 17 18 19 20 
D C D E D D B B B D 
 
Diego Carvalho, Pedro Henrique Chagas Freitas
Aula 06
Desenvolvimento de Sistemas p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118

Mais conteúdos dessa disciplina