Buscar

BDQ AV2 Linguagem de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 75 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 75 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 75 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1!!!!!111! AV2 !!!!!!!11!11!! 
1a Questão (Cód.: 191422) Pontos: 0,5 / 0,5 
O chefe do departamento do pessoal da Empresa YYY gostaria de declarar matrizes 
bidimensionais para armazenar nomes dos 20 funcionários e 14 salários de cada um deles. 
Assinale a linha onde a declaração atende ao que ele deseja. 
 
 
char nomes[19][31]; float salarios[19][13]; 
 
char nomes[20][31]; float salarios[20][20]; 
 
char nomes[20][31]; float salarios[20][14]; 
 
char nomes[20]; float salarios[19][13]; 
 
float nomes[20][31], salarios[20][14]; 
 
 2a Questão (Cód.: 92347) Pontos: 0,5 / 0,5 
Sabemos que para a utilização de funções da linguagem C precisamos declarar suas respectivas 
bibliotecas. 
De acordo com a Linguagem C marque a opção em que o descritivo da biblioteca está correto. 
 
 string.h - Funções para concatenação de strings com inteiros. 
 stdio.h - Funções para gráficos. 
 time.h - Funções para manipulação de tempo, apenas horas, minutos e segundos. 
 stdlib.h - Funções de entrada e saida. 
 math.h - Funções matemáticas 
 
 3a Questão (Cód.: 134172) Pontos: 0,5 / 0,5 
A linguagem C/C++ utiliza variáveis, que podem ser classificadas como globais ou locais. 
Dentre as opções, assinale a que expressa corretamente à definição de "variável global" da 
linguagem C/C++. 
 
 São declaradas dentro do main(). E suas variáveis são escritas dentro do escopo das 
funções. 
 Mantêm seu valor em todo o programa e suas variáveis são escritas fora do escopo das 
funções. 
 São declaradas no final de um bloco. Seus escopos não estão restritos aos blocos em que 
essas variáveis foram declaradas. 
 São declaradas no início de um bloco. Seus escopos estão restritos aos blocos em que 
essas variáveis foram declaradas. 
 Não mantêm seu valor em todo o programa e suas variáveis são escritas dentro do escopo 
das funções. 
 
 4a Questão (Cód.: 187390) Pontos: 0,0 / 1,5 
Um professor de Linguagem de Programação I pediu a um aluno que desenvolvesse um programa 
codificado na linguagem C para que ele pudesse calcular a nota da AV1 que seria composta de 
duas notas: prova e seminário. Entretanto, ele informou que, se a nota da prova fosse menor do 
que 4.0, então, não valeria a nota do seminário, ficando a nota da AV1 só com a nota da prova. 
Caso contrário, Seria feita a média aritmética para compor a nota da AV1. 
Ajude ao aluno, escrevendo esse código. 
 
 
Gabarito: 
 
int main() 
{ 
 float prova, seminario,media; 
 printf("\nNota da prova: \n") ; 
 scanf("%f", &prova); 
 printf("\nNota do seminario: \n") ; 
 scanf("%f", &seminario); 
 if ( prova < 4) 
 printf("\nNota da AV1: %.1f\n", prova) ; 
 else 
 { 
 media=(prova+seminario)/2; 
 printf("\nNota da AV1: %.1f\n", media) ; 
 } 
} 
 
 5a Questão (Cód.: 135599) Pontos: 1,0 / 1,0 
As matrizes, em geral, são caracterizadas por se tratarem de uma única variável de 
determinado tamanho que guarda várias informações do mesmo tipo. 
Desconsiderando a necessidade do programa principal e levando em conta a programação 
adequada, declaração e respectiva manipulação das matrizes, das opções apresentadas a 
respeito das matrizes bidimensionais marque a resposta correta. 
 
 char mat[2][2]; mat[0][2] = A; 
 int mat[3][3]; mat[0][3] = 5; 
 int mat[3][3]; mat[0][2] = 5.0; 
 int mat[3][3]; mat[0][2] = 5; 
 char mat[2][2]; mat[0][2] = "A"; 
 
 6a Questão (Cód.: 191420) Pontos: 0,5 / 0,5 
O professor de Matemática armazena as notas dos quatro bimestres e da média dos seus 47 
alunos em cinco vetores. 
Ele pretende agrupar esses vetores em uma matriz bidimensional de nome NOTAS na linguagem 
C. 
Assinale a opção que possibilitará fazer o que o professor deseja. 
 
 
float NOTAS[47,5]; 
 
float NOTAS[47][47]; 
 
float NOTAS[47][5]; 
 
float Notas[47][47]; 
 
float notas[5][47]; 
 
 7a Questão (Cód.: 188713) Pontos: 1,0 / 1,0 
As funções existem para decompor um problema em partes menores, simplificando e organizando 
o programa como um todo. Tendo em vista o que foi exposto, assinale a opção que apresenta uma 
afirmativa ERRADA em relação aos conceitos de funções. 
 
 O comando return encerra a execução de uma função e pode retornar vários valores 
para a função chamadora da função. 
 O protótipo de uma função informa ao compilador o tipo de retorno, o nome e a lista 
de parâmetros da função. 
 Além do valor de uma variável é possível passar para uma função o endereço da 
variável como por exemplo, das matrizes. 
 As variáveis declaradas no corpo de uma função são chamadas variáveis locais. 
 Todas as funções apresentam na declaração de seu cabeçalho um par de parênteses. 
 
 8a Questão (Cód.: 187983) Pontos: 0,5 / 0,5 
Um engenheiro precisava calcular o valor do imposto a ser pago no carnê leão. 
Sabe-se que o imposto é calculado sobre o salário bruto. 
Acompanhe o programa codificado na linguagem C, supondo que você digitou 4000 para primeira 
solicitação de entrada e 1000, para segunda solicitação. Escolha a opção onde está presente o 
valor do imposto. 
 
 
 Valor do imposto a ser pago: 650.00 
 Valor do imposto a ser pago: 800.00 
 Valor do imposto a ser pago: 1000.00 
 Valor do imposto a ser pago: 750.00 
 Valor do imposto a ser pago: 850.00 
 
 9a Questão (Cód.: 135605) Pontos: 0,5 / 0,5 
Para resolver um determinado problema um programador escreveu um código para trabalhar 
com um vetor conforme apresentado na questão: 
 int vetn[10]; 
 for (int i=1; i <= 10; i++){ 
 vetn[i -1] = i * 13; 
 i = i + 1; 
 } 
Desconsiderando a necessidade do programa completo e levando em conta apenas o código 
descrito, das opções apresentadas em relação ao vetor, qual afirmativa está correta. 
 
 Serão armazenados 10 valores inteiros. 
 O terceiro valor armazenado será o 60. 
 O segundo valor armazenado será o 26. 
 Serão armazenados 5 valores inteiros. 
 O décimo valor armazenado será o 117. 
 
 10a Questão (Cód.: 188843) Pontos: 0,0 / 1,5 
Um engenheiro civil gostaria de construir uma função que pudesse ajudar a quem precisa construir 
uma cerca para um terreno de forma retangular. 
Deverá ser informado a quantidade de fios da cerca, o preço do metro linear do arame farpado, a 
largura e o comprimento do terreno. 
Por medida de segurança, serão comprados 10% a mais do total de metros lineares. A função 
retornará o custo total da cerca. 
 
Gabarito: 
float valorFinal(int quantidadeFios, float preco, float largura, float comprimento) 
{ 
 return ((largura + comprimento) * 2)*1.1 * quantidadeFios * preco; 
} 
 
 2a Questão(Cód.: 135612) Pontos:0,0 / 1,0 
Um programador durante a construção de um código precisava converter o texto 
correspondente a um ano em um número inteiro, para poder executar alguns cálculos a partir 
deste ano. 
Das opções apresentadas, qual função apresenta a solução para o programador? 
 
 atoi( ). 
 strcont( ). 
 strlength( ). 
 strlen( ). 
 strcat( ). 
 
 
 
 
 
 5a Questão(Cód.: 135633) Pontos:0,5 / 0,5 
Durante a execução de um programa o operador delete pode desalocar memória, criada pelo 
operador new. 
Esse tipo de manipulação de variáveis com este operador é chamado de: 
 
 
 Alocação dinâmica 
 Alocação por endereço 
 Passagem por endereço 
 Alocação estática 
 Passagem por valor 
 
 
 
 6a Questão(Cód.: 135635) Pontos:0,0 / 0,5 
Na linguagem C++, no processo de manipulação de arquivos, existem algumas formas de indicar o 
que será feito com os mesmos no momento em que os abrimos. 
Das opções apresentadas, marque aquela que permite que osdados sejam adicionados no 
arquivo aberto após os dados existentes sem apagá-los. 
 
 
 ios::app 
 ios::pos 
 ios::beg 
 ios::in 
 ios::out 
 
 
 
 8a Questão(Cód.: 135608) Pontos:0,0 / 0,5 
Para resolver um determinado problema um programador escreveu um código para trabalhar 
com um vetor conforme apresentado na questão: 
intvetn[3][2]; 
 for (inti=0; i< 3; i++){ 
 for (int j=0; j < 2; j++){ 
vetn[i][j] = i + j; 
} 
} 
Desconsiderando a necessidade do programa completo e levando em conta apenas o código 
descrito, das opções apresentadas, qual afirmativa está correta. 
 
 Serão armazenados os valores 0,1,1,2,2,3. 
 O trecho apresentado possui erro e apenas um valor será armazenado. 
 Serão armazenados os valores 0,0,1,1,2,2. 
 O trecho apresentado possui erro e nenhum valor será armazenado. 
 Serão armazenados os valores 0,1,2,2,3,3. 
 
 
 
 9a Questão(Cód.: 135412) Pontos:0,0 / 0,5 
Um programador criou o seguinte código: 
 
int calcula(int x, char letra){ 
 cout<< letra<<") "<<"Número: "<<x;<span=""><x;<font=""></x;<></x;<> 
 x - -; 
 return x; 
} 
Baseado no trecho de código apresentado e na teoria vista sobre o funcionamento das 
funções marque a resposta na qual a afirmativa está errada. 
 
 
 
 O nome da função é calcula. 
 A função deve obrigatoriamente retornar um número inteiro. 
 A função deve ser chamada pelo seu nome enviando os parâmetros solicitados. 
 A função trabalha com dois parâmetros. 
 O x não pode ser retornado, pois foi recebido como parâmetro. 
 
 
 
 10a Questão(Cód.: 103357) Pontos:0,5 / 0,5 
Qual é a saída de tela, deste trecho de programa? 
int x=4, 
y=8; 
if (x < 2) 
 printf ("%d \n", x); 
else 
 printf ("%d \n", y); 
 
 9 
 8 
 12 
 \n8 
 \n4 
 
 2a Questão (Cód.: 135613) 
Pontos: 
0,0 / 1,0 
Um programador durante a construção de um código precisava retirar de um texto que 
continha uma data completa, com dia, mês e ano, apenas o ano. 
Das opções apresentadas, qual função apresenta a solução para o programador? 
 
 substr( ); 
 strcont( ). 
 strlength( ). 
 strcat( ). 
 strlen( ). 
 4a Questão (Cód.: 135610) 
Pontos: 
0,0 / 1,0 
Um programador durante a construção de um código precisava obter a quantidade de 
caracteres contido em um determinado texto. 
Na manipulação de textos na linguagem C++ é necessário a utilização de funções da biblioteca 
< string >. 
Das opções apresentadas, qual função apresenta a solução para o programador? 
 
 strcont( ). 
 strlen( ). 
 strlength( ). 
 atoi( ). 
 strcat( ). 
 
 
 4a Questão(Cód.: 135611) Pontos:0,0 / 1,0 
Um programador durante a construção de um código precisava unir o nome e a matricula de 
um servidor. 
Na manipulação de textos na linguagem C++ é necessário a utilização de funções da biblioteca 
<string>. 
Das opções apresentadas, qual função apresenta a solução para o programador? 
 
 strlength( ). 
 strlen( ). 
 strcont( ). 
 atoi( ). 
 strcat( ). 
 
 
 8a Questão (Cód.: 135623) 
Pontos: 
0,0 / 0,5 
Na linguagem C++, no processo de manipulação de memória temos a possibilidade de utilizar os 
ponteiros. Quando as seguintes linhas de código forem executadas: (desconsidere a necessidade 
do restante do programa) 
 float *x, pos; 
 pos = 5.5; 
 x = &pos 
 
Podemos afirmar que: 
 
 
 O conteúdo do endereço para o qual x aponta é 5.5 
 A variável pos aponta para x 
 Não é possível trabalhar com ponteiros do tipo real. 
 O conteúdo de x é 5.5 
 O conteúdo de &pos é 5.5 
 
 
 
Baseado nos conceitos de Matrizes, no que tange em relação a declaração, dentre as 
afirmações que se seguem, assinale a que não contem erros sobre as matrizes 
multidimensionais- 1 e matrizes não dimensionadas- 2 respectivamente. 
 
 1- Tipo nome [tamanho1][tamanho2][tamanho3]...[tamanho n] e 2 - O tamanho não é 
especificado. 
 1- Tipo nome [linha][coluna] e 2 - O tamanho não é especificado. 
 1- Tipo nome [linha][coluna] e 2 - O compilador cria uma matriz grande para conter todos os 
seus elementos. 
 1- Tipo nome [tamanho1][tamanho2][tamanho3]...[tamanho n] e 2 - Tipo nome [tamanho] 
 1- O compilador cria uma matriz grande para conter todos os seus elementos e 2-Tipo nome 
[tamanho1][tamanho2][tamanho3]...[tamanho n]. 
 
 5a Questão (Cód.: 135634) Pontos: 0,0 / 0,5 
Quando uma função e chamada e recebe como parâmetro o endereço de uma variável, 
damos o nome a esta forma de passagem de parâmetros de Passagem por: 
 
 valor 
 endereço 
 ponteiro 
 referência 
 memória 
 
 
 7a Questão (Cód.: 135597) Pontos: 0,0 / 0,5 
As matrizes, em geral, são caracterizadas por se tratarem de uma única variável de 
determinado tamanho que guarda várias informações do mesmo tipo. 
Desconsiderando a necessidade do programa principal e levando em conta apenas a linha de 
comando, das opções apresentadas em relação à manipulação de vetores marque a 
resposta correta. 
 char vetnome[5]= "Maria"; 
 float array[4]=[1.0,2.4,3.5,4.5]; 
 float vetreais[4]={1.0,2.4,3.5,4.5}; 
 char vet[5]={a,b,c,d,e}; 
 int vetinteiros[5]=[1,2,3,4,5]; 
 
 
 3a Questão (Cód.: 135601) Pontos: 0,5 / 0,5 
 Na definição de estruturas, funções, variáveis, etc. devemos seguir suas respectivas Sintaxes. 
Das opções apresentas, qual é SINTAXE correta da definição de um vetor bidimensional. 
 
 
 tipo nome_vetor[numero_colunas][numero_linhas]; 
 tipo nome_matriz[numero_colunas][numero_linhas]; 
 tipo nome_matriz[numero_linhas][numero_colunas]; 
 nome_matriz[numero_linhas][numero_colunas]; 
 tipo nome_matriz[][]; 
 
 
 
 4a Questão (Cód.: 188769) Pontos: 1,0 / 1,0 
Um Engenheiro de Produção que gostava de programar resolveu definir uma função para facilitar 
seu trabalho, uma vez desejava dar um premio de produtividade para sua equipe. 
O premio seria calculado de forma variada e iria se basear na avaliação de cada funcionário 
(valores de 1 a 5). 
Ele escreveu o protótipo abaixo. 
 
float premio(float salario, int avaliacao); 
 Tendo em vista esse protótipo é CORRETO afirmar que a função: 
 
 
 
 Recebe dois valores, salário e a avaliação, passados por referência. 
 Retornará dois valores para a função chamadora. 
 Não retorna nenhum valor para a função chamadora. 
 Recebe dois valores, salário e a classificação, passados por valor. 
 Retornará o salário somado ao percentual 
 
 
 8a Questão (Cód.: 187951) Pontos: 0,0 / 0,5 
Na lista de exercícios que foi liberada pela professora de Linguagem de Programação I, na 
questão 3, estava presente o programa abaixo. No enunciado, era solicitado que fosse feito o 
acompanhamento da execução do programa no Teste de Mesa, supondo que tivesse sido digitada 
a seguinte data: 11151918. 
Assinale a opção CORRETA para a saída desse programa. 
 
 
 
 
 1918 / 15 / 11 
 1918 / 11 / 15 
 15 / 11 / 1918 
 11 / 1918 / 15 
 11 / 15 / 1918 
 
 
 
 10a Questão (Cód.: 187941) Pontos: 0,0 / 1,5 
Um comerciante resolveu dar descontos em sua loja porque as vendas tinham diminuído muito 
nos últimos quinze dias. 
Teve uma idéia de confeccionar um cartaz informando que: 
 COMPRAS COM VALORES MENORES QUE R$ 40,00 - desconto de 5% 
DEMAIS VALORES - desconto de 10% 
Construa um programa que deixe entrar com o valor da compra e exiba o valor já com desconto. 
 
 
Gabarito: 
 
int main() 
{ 
 float valor; 
 printf("\nValor da compra:"); 
 scanf("%f", &valor); 
 if( valor < 50) 
 printf("\nValor com desconto: %.2f\n",valor*0.95);else 
 printf("\nValor com desconto: %.2f\n",valor*0.9); 
} 
 
 1a Questão (Ref.: 201202262780) Pontos: 0,0 / 0,5 
Um engenheiro elétrico desenvolveu um programa para que possa, entre outras funções, abrir um 
arquivo txt para alteração. 
Quando existe a possibilidade de alteração, ele precisa conferir os dados antes de alterar. Dessa 
forma, ele opta pelo trecho de alteração que possibilita a leitura antes de alterar e por ter incluído 
um trecho de proteção que possibilita, se for necessário, desistir de alterar. 
Os arquivos com dados são salvos todos os dias e segue um modelo para nomeá-los conforme 
mostrado abaixo: 
 
ddmmaaaa.txt (onde tem dd( digita o dia com dois algarismos), mm(digita o mês com dois 
algarismos) e aaaa(ano com 4 algarismos). 
 
Para que isso seja possível, deverá estar presente na função altera() uma das linhas 
abaixo.Selecione-a. 
 
 
 fp=fopen("ddmmaaaa.txt" "r"); 
 fp=fopen(ddmmaaaa.txt, "r"); 
 fp=fopen(nomeArq, "w"); 
 fp=fopen(nomeArq, "a+"); 
 fp=fopen("nomeArq", "a"); 
 
 
 
 2a Questão (Ref.: 201202166323) Pontos: 1,0 / 1,0 
Dado o trecho de lógica utilizando o conceito da linguagem de programação C. Diga o resultado 
das variáveis x, y e z depois da seguinte sequência de operações: 
int x,y,z; 
x=y=10; 
z=++x; 
x=-x; 
y++; 
x=x+y-(z--); 
 
 
 x = -20 
y = 20 
z = 10 
 x = 11 
y = 11 
z = 15 
 x = -01 
y = 01 
z = 10 
 x = -13 
y = 11 
z = 13 
 x = -11 
y = 11 
z = 10 
 
 
 
 3a Questão (Ref.: 201202259850) Pontos: 1,0 / 1,0 
Quanto aos códigos de formatação (especificadores de formato) usados com a função printf() e 
tendo em vista o trecho do programa, qual deveria ser a linha usada para exibir a saída abaixo: 
Observação: A sequência de números que aparece na saída representa as colunas da tela. 
 
Trecho 
int num= 12; float med=9.8; 
printf("\n12345678901234"); 
 
 
 
 
 printf("\n%4d\t%f\n", num, med); 
 printf("\n%d\t%6.2f\n", num, med); 
 printf("\n%d\t%06.2f\n", num, med); 
 printf("\n%04d\t%.2f\n", num, med); 
 printf("\n%d\t06.2f\n", num, med); 
 
 
 
 4a Questão (Ref.: 201202207909) Pontos: 0,0 / 0,5 
Na linguagem C/C++ existem três loops ou estruturas de repetição, sendo elas, for, while e do-
while. Considere as afirmações abaixo. 
I) O loop for é usado para repetir um comando ou bloco de comandos diversas vezes, podendo ser 
baseado em um contador interno da estrutura e uma condição que o encerra. 
II) A estrutura do-while executa inicialmente todos os comandos internos do laço, depois testa a 
condição, se esta for verdadeira, retorna e faz tudo novamente. 
III) A estrutura while testa uma condição, se esta for falsa, as instruções dentro do laço não serão 
executadas, e o teste será feito novamente até que a condição seja atingida. 
As assertivas corretas são: 
 
 
 Apenas a || 
 | e || 
 || e ||| 
 Apenas a ||| 
 | e ||| 
 
 
 
 5a Questão (Ref.: 201202208129) Pontos: 0,0 / 0,5 
Na criação de uma rotina de manipulação de equipamentos para perfuração de poços, o 
programador precisava apenas pegar alguns dados existentes em um arquivo do equipamento 
para efeitos de cálculos e fechá-lo. 
Das opções abaixo marque a que descreve a forma mais adequada, com a qual o programador 
deveria acessar o arquivo, segundo sua necessidade. 
 
 
 
 Somente para gravação 
 Para leitura e gravação 
 Não precisa abrir o arquivo 
 Para leitura e edição 
 Somente para leitura 
 
 
 
 6a Questão (Ref.: 201202140650) Pontos: 0,5 / 0,5 
Qual a estrutura de repetição usada para quantidade indeterminada de repetições? 
 
 
 struct 
 for 
 while 
 if-else 
 switch 
 
 9a Questão (Ref.: 201202164800) Pontos: 0,5 / 0,5 
Arquivos em C podem representar tanto arquivos do sistema quanto dispositivos periféricos, 
verifique se está correto os arquivos pré-definidos: 
 
 
 
stdaux = Dispositivo de saída principal (normalmente a porta usb) 
 
stdout = Dispositivo de saída de erro padrão (normalmente o monitor) 
 stdin = Dispositivo de entrada padrão (normalmente o teclado) 
 stderr = Dispositivo de saída padrão (normalmente o monitor) 
 stdprn = Dispositivo de abertura de txt padrão (normalmente a porta paralela) 
 
 
 
 1a Questão (Ref.: 201301220969) Pontos: 0,8 / 1,5 
Uma nova regra foi criada para as finais das Olimpíadas; duas provas para decidir o campeão 
olímpico. Na primeira prova, os três nadadores com melhores tempos iriam participar e somente os 
dois com melhores tempos iriam para segunda. 
Construa um programa, somente para a primeira prova, que deixe entrar com os tempos e os 
números de inscrição e exiba os números de inscrição dos dois melhores tempos, assumindo que 
os tempos serão diferentes. 
 
 
Gabarito: 
 
int main() 
{ 
 int matric1, matric2, matric3; 
 float tempo1, tempo2, tempo3; 
 printf("\nDigite tres numeros de inscricao: "); 
 scanf("%d %d %d",&matric1, &matric2, &matric3) ; 
 printf("\nDigite tres tempos: "); 
 scanf("%f %f %f", &tempo1, &tempo2, &tempo3) ; 
 if( tempo1 > tempo2 && tempo1 > tempo3 ) 
 printf("\n%d\t%d\n", matric2 ,matric3); 
 else if( tempo2 > tempo3 ) 
 printf("\n%d\t%d\n", matric1 ,matric3); 
 else 
 printf("\n%d\t%d\n",matric1,matric2); 
} 
 
 
 
 2a Questão (Ref.: 201301273643) Pontos: 0,0 / 1,0 
Matrizes é um dos conceitos mais largamente usado em programação nos dias de hoje. 
Identifique a opção que ocorrerá um erro: 
 
 int matriz[2][3]= {{2,4,6},{7,8,9}}; 
 int matriz[][3]= {{2,4,6},{7,8,9}}; 
 int matriz[2][3]= {{2,4,6};{7,8,9}}; 
 int matriz[][3]= {{2,4,6}}; 
 int matriz[2][3]; matriz[0][0]=2; matriz[0][1]=4; 
 
 
 4a Questão (Ref.: 201301224644) Pontos: 0,5 / 0,5 
A estrutura do if na linguagem C, como em toda linguagem, tem uma sintaxe. Observe as 
afirmações abaixo e escolha a opção ERRADA. 
 
I As chaves de abertura e fechamento, sempre, não são obrigatórias. 
II No teste unimos expressões relacionais com operadores lógicos quando necessário. 
III A palavra then está presente na estrutura. 
IV O uso do else poderá não ser necessário. 
 
 
 I está errada. 
 IV está correta e a I não está correta. 
 I e III estão corretas. 
 II está correta e a III não está correta. 
 II e IV estão corretas. 
 
 
 
 5a Questão (Ref.: 201301101344) Pontos: 0,5 / 0,5 
Qual o nome da função matemática que calcula a potenciação de um número? 
 
 elevado 
 pow 
 sqrt 
 double 
 pot 
 
 
 
 6a Questão (Ref.: 201301167349) Pontos: 0,5 / 0,5 
A linguagem C/C++ apresenta vantagens e desvantagens em sua utilização. Considere as 
seguintes afirmativas: 
|) Possibilidade em programação de alto e baixo nível; 
||) Grande período para o aprendizado. 
|||) Adequação a grandes projetos; 
 
Assinale a alternativa que contem apenas vantagens da linguagem C++. 
 
 Apenas | 
 Apenas ||| 
 | e || 
 | e ||| 
 || e ||| 
 
 8a Questão (Ref.: 201301125465) Pontos: 0,0 / 1,5 
Faça um programa em C que dado um número inteiro positivo n, imprimir os n primeiros naturais 
ímpares. Exemplo: Para n=4 a saída deverá ser 1,3,5,7. 
 
 
 
Gabarito: #include 
int main() { 
int n, i, impar; 
printf("\n\tGerador de numeros impares\n"); 
printf("\nDigite o valor de n: "); 
scanf("%d", &n); 
i = 0; 
impar = 1; 
printf("Os %d primeiros impares sao:\n", n); 
while (i < n) { 
printf ("%d\n", impar); 
impar = impar + 2; 
i = i + 1; 
} 
return 0; 
}9a Questão (Ref.: 201301273637) Pontos: 0,5 / 0,5 
Dentre as estruturas de Dados mais utilizadas em programação, se encontram os vetores. 
Baseado neste conceito, identifique a opção incorreta: 
 
 Na declaração int[50]; o índice da ultima posição é 49. 
 Permite agrupar vários elementos em uma mesma variável indexada. 
 Um vetor de caracteres terminado com um caracter nulo é uma string na linguagem C. 
 Deve ser declarado antes de acessado em seu programa. 
 Podem ser formado por elementos de tipos diferentes. 
 
 
 
 10a Questão (Ref.: 201301278296) Pontos: 1,0 / 1,0 
Na linguagem C, no processo de manipulação de memória temos a possibilidade de utilizar os 
ponteiros. Após as linhas de código apresentadas, que tratam a manipulação de variáveis e 
ponteiros, forem executadas e antes do programa ser finalizado: (desconsidere a necessidade 
do restante do programa) 
int *x, pos; 
pos = 5; 
x = &pos; 
Podemos afirmar que: 
 
 O conteúdo de x é 5. 
 O endereço de memória de x é 5. 
 O conteúdo do endereço para o qual x aponta é 5. 
 A variável pos aponta para x. 
 O conteúdo de &pos é 5. 
 
 1a Questão (Ref.: 201302029147) Pontos: 0,5 / 1,5 
Considere que você foi contratado para trabalhar em um avançado laboratório de engenharia. Este 
laboratório precisa desenvolver programas em liguagem C para conversões de medidas para 
automatizar os seus processos. Codifique um programa em linguagem C que obtenha uma medida 
em quilômetros como entrada de dados do usuário através da função scanf, converta a medida 
para milhas e exiba a medida convertida através da função printf. Defina o fator de conversão 
como uma constante chamada fator de valor igual a 1.61, que deve ser usado no cálculo da 
conversão. Defina as variáveis como numéricos reais em ponto flutuante de menor precisão para 
ocupar menos espaço de memória. 
 
 
 
Gabarito: 
#include 
#include 
int main(int argc, char** argv) { 
 const float fator = 1.61; 
 float medida; 
 scanf("%f", &medida); 
 medida = medida / fator; 
 printf("%f", medida); 
 return (0); 
} 
 
 3a Questão (Ref.: 201302170038) Pontos: 0,0 / 1,5 
Desenvolva um programa que leia uma matriz 3 x 3 de inteiros e exiba sua diagonal principal e 
secundária. 
 
 
Gabarito: 
#include 
#include 
void main(){ 
 int minhaMatriz[3][3]; 
 int linha,coluna; 
 for (linha=0; linha<3;linha++){ 
 for (coluna=0; coluna<3;coluna++){ 
 printf("Linha e Coluna: [%d][%d] ",linha,coluna); 
 scanf("%d",&minhaMatriz[linha][coluna]); 
 } 
 } 
 printf("\n\n"); 
 printf("-----------------------------\n"); 
 printf("DIAGONAL PRINCIPAL Digitada:\n"); 
 printf("-----------------------------\n"); 
 for (linha=0; linha<3;linha++){ 
 for (coluna=0; coluna<3;coluna++){ 
 if (coluna == linha){ 
 printf("%5d ", minhaMatriz[linha][coluna]); 
 } 
 } 
 } 
 printf("\n\n"); 
 printf("-----------------------------\n"); 
 printf("DIAGONAL SECUNDARIA Digitada:\n"); 
 printf("-----------------------------\n"); 
 for (linha=0; linha<3;linha++){ 
 for (coluna=0; coluna<3;coluna++){ 
 if (coluna == (3 - 1 - linha )){ 
 printf("%5d ", minhaMatriz[linha][coluna]); 
 } 
 } 
 } 
 printf("\n\n"); 
 system("PAUSE"); 
} 
 
 
 
 4a Questão (Ref.: 201302166221) Pontos: 0,5 / 0,5 
Observe o código abaixo: 
 
#include < stdio.h > 
#include < stdlib.h> 
int main(){ 
int x,y,z; 
x=6; 
y=2; 
z = (x%2)+8; 
puts(z); 
system("PAUSE"); 
return 0; 
} 
 
Dentre as opções abaixo é correto afirmar: 
 
 O programa exibirá 11 
 Ocorrerá um erro 
 O programa exibirá 0 
 O programa exibirá 8 
 O programa exibirá 16 
 
 
 
 5a Questão (Ref.: 201302163331) Pontos: 0,5 / 0,5 
Para que possamos criar nossos programas na linguagem C, iniciamos por criar 
o ______________, o qual pode ser feito através de um editor de texto não formatado e salvo com 
a ______________ ou mesmo utilizar um editor da linguagem, como o DEV C++. De acordo com o 
sistema operacional isto pode ser um pouco diferente. Após esta etapa, devemos ___________ e 
linkeditar o programa gerando o arquivo _____________, o qual após ser executado apresenta o 
resultado de nosso programa. 
Das opções apresentadas, marque aquela que completa respectivamente e corretamente os 
espaços em branco destacados do texto, segundo os conceitos da linguagem C apresentados no 
material didático da disciplina. 
 
 Código base - extensão .c - compilar - fonte 
 Código de texto - extensão .txt - editar - fonte 
 Fonte - extensão .txt - editar - executável 
 Executável - extensão .c - compilar - fonte 
 Código fonte - extensão .c - compilar - executável 
 
 
 
 6a Questão (Ref.: 201302163347) Pontos: 0,0 / 0,5 
O desenvolvimento de um programa precisa atender as necessidades do usuário final, para isto o 
desenvolvedor conta com algumas estruturas que facilitam a construção de seu código fonte. Uma 
delas é a estrutura condicional if. 
Das opções apresentadas marque a qual melhor define esta estrutura. 
 
 Compara os valores de algumas variáveis dependendo do resultado permite que o programa 
possa fazer um caminho diferente repetidamente. 
 Testa uma expressão e dependendo do resultado permite que o programa siga por 
caminhos diferentes. 
 Testa uma condição e dependendo do resultado permite que o programa siga por caminhos 
diferentes repetidamente. 
 Compara os valores de algumas variáveis e dependendo do resultado permite que o 
programa siga por caminhos diferentes. 
 Compara os valores possíveis para uma variável e dependendo do resultado permite que o 
programa siga por caminhos diferentes. 
 
 
 
 7a Questão (Ref.: 201302021828) Pontos: 0,5 / 0,5 
Arquivos em C podem representar tanto arquivos do sistema quanto dispositivos periféricos, 
verifique se está correto os arquivos pré-definidos: 
 
 stdin = Dispositivo de entrada padrão (normalmente o teclado) 
 
stdaux = Dispositivo de saída principal (normalmente a porta usb) 
 stderr = Dispositivo de saída padrão (normalmente o monitor) 
 
stdout = Dispositivo de saída de erro padrão (normalmente o monitor) 
 stdprn = Dispositivo de abertura de txt padrão (normalmente a porta paralela) 
 
 
 9a Questão (Ref.: 201302174604) Pontos: 0,0 / 0,5 
Na linguagem C os vetores são um assunto de grande relevância, por isso o programador deve 
saber bem como utilizar, declarar e utilizar. 
Sabendo que as notas dos alunos de uma escola variam entre 0.0 e 10.0 com uma casa 
decimal e que é necessário criar um vetor que armazene até 150 notas, qual 
alternativa declara de forma correta este vetor para atender a necessidade citada. 
 
 int notas[150]; 
 integer notas[150]; 
 float notas[150]; 
 float %.1f notas[150]; 
 real notas[150]; 
 
 
 
 10a Questão (Ref.: 201302160792) Pontos: 1,0 / 1,0 
Observe o programa abaixo e escolha a opção que apresenta o que retorna da função chamada. 
 
 
 Nada retorna porque o nome do vetor da função main é diferente do nome do vetor da 
função descobre 
 O maior número é retornado 
 O valor retornado corresponde ao índice da variável que contem o menor número 
 O menor número é retornado 
 O valorretornado corresponde ao deslocamento mais um em relação ao endereço base da 
variável que contem o menor número 
 
 
5a Questão (Cód.: 135601) 
Pontos:0,0 / 
0,5 
Na definição de estruturas, funções, variáveis, etc. devemos seguir suas respectivas Sintaxes. 
Das opções apresentas, qual é SINTAXE correta da definição de um vetor bidimensional. 
 
 tipo nome_vetor[numero_colunas][numero_linhas]; 
 nome_matriz[numero_linhas][numero_colunas]; 
 tipo nome_matriz[numero_colunas][numero_linhas]; 
 tipo nome_matriz[numero_linhas][numero_colunas]; 
 tipo nome_matriz[][]; 
 
 
7a Questão (Cód.: 135603) Pontos:0,0 / 
 
0,5 
Para resolver um determinado problema um programador escreveu um código para trabalhar 
com um vetor conforme apresentado na questão: 
float vetn[20]; 
for (int i=0; i < 20; i++){ 
vetn[i] = ( i+1) * 0.1; 
i = i + 2; 
} 
Desconsiderando a necessidade do programa completo e levando em conta apenas o código 
descrito, das opções apresentadas, qual afirmativa está correta. 
 
 Serão armazenados 20 valores reais. 
 Serão armazenados 7 valores reais. 
 O vigésimo valor armazenado será o 2.0. 
 O terceiro valor armazenado será o 0.6. 
 O segundo valor armazenado será o 0.2. 
 
 1a Questão (Ref.: 201202339035) 
 
Observe o programa abaixo e escolha a opção que descreve o que ele faz. 
 
 
 Lê dados do teclado e armazena na Memória Principal em uma matriz unidimensional. 
Depois abre um arquivo do tipo texto para escrita e, se for possível, grava os dados no 
arquivo. 
 Lê dados de um arquivo texto e armazena na Memória Principal em uma matriz 
unidimensional, exibindo depois na tela. 
 Lê dados do teclado e armazena na Memória Principal em uma matriz unidimensional. 
Depois abre um arquivo do tipo binário para escrita e, se for possível, grava os dados no 
arquivo. 
 Lê dados de um arquivo binário e armazena na Memória Principal em uma matriz 
unidimensional, exibindo depois na tela. 
 Lê dados do teclado e armazena na Memória Principal em uma matriz unidimensional. 
Depois abre um arquivo do tipo binário para escrita e leitura e, se for possível, grava os 
dados no arquivo. 
 
 
 
 2a Questão (Ref.: 201202296451) 
 
As funções existem para decompor um problema em partes menores, simplificando e organizando 
o programa como um todo. Tendo em vista o que foi exposto, assinale a opção que apresenta uma 
afirmativa ERRADA em relação aos conceitos de funções. 
 
 Além do valor de uma variável é possível passar para uma função o endereço da 
variável como por exemplo, das matrizes. 
 O protótipo de uma função informa ao compilador o tipo de retorno, o nome e a lista 
de parâmetros da função. 
 Todas as funções apresentam na declaração de seu cabeçalho um par de 
parênteses. 
 As variáveis declaradas no corpo de uma função são chamadas variáveis locais. 
 O comando return encerra a execução de uma função e pode retornar vários valores 
para a função chamadora da função. 
 
 
 
 1a Questão (Cód.: 191422) 
 
Pontos: 
0,5 / 0,5 
O chefe do departamento do pessoal da Empresa YYY gostaria de declarar matrizes 
bidimensionais para armazenar nomes dos 20 funcionários e 14 salários de cada um deles. 
Assinale a linha onde a declaração atende ao que ele deseja. 
 
 
char nomes[20][31]; float salarios[20][20]; 
 
char nomes[19][31]; float salarios[19][13]; 
 
char nomes[20]; float salarios[19][13]; 
 
char nomes[20][31]; float salarios[20][14]; 
 
float nomes[20][31], salarios[20][14]; 
 
 
 3a Questão (Cód.: 191479) 
 
Pontos: 
0,0 / 0,5 
 Uma das dificuldades da estrutura escolha/ caso é o fato das restrições variarem para cada 
linguagem, dificultando a fixação. Na linguagem C, essa estrutura recebe o nome de switch() e tem 
suas restrições. Observe os trechos abaixo e assinale o que é possível ser usado na linguagem C, 
supondo que se espera encontrar na variável de nome a, inteira, alguns valores e entres eles está 
o número 90. Analise as linhas abaixo e assinale que foi escrita corretamente para testar o número 
90 na estrutura switch(). 
 
 90: printf("Pode"); stop; 
 90: printf("Pode"); 
 case 90: printf("Pode") ; break; 
 case a > 90: printf("Pode") ;break; 
 case a=90: printf("Pode") ;break; 
 
 
 
 4a Questão (Cód.: 188744) 
 
Pontos: 
0,0 / 1,0 
Um programa pode ser formado por uma, ou mais funções. Quando existir mais de uma função, 
onde poderão se posicionar as demais funções em relação à função main()? 
Observe as afirmativas abaixo e assinale a resposta CORRETA 
 
I Antes ou depois, depende do programador, pois a posição não gera, nunca, problema. 
II Depois, desde que os protótipos sejam colocados antes da main(). 
III Antes para não ter que colocar os protótipos e nunca ocasionar erros. 
IV Antes ou depois, desde que sejam colocados os protótipos. 
 
 II e III estão corretas 
 I e III estão corretas 
 Só a II está correta 
 I e IV estão corretas 
 II e IV estão corretas 
 
 7a Questão (Cód.: 135608) 
 
Pontos: 
0,5 / 0,5 
Para resolver um determinado problema um programador escreveu um código para trabalhar 
com um vetor conforme apresentado na questão: 
 int vetn[3][2]; 
 for (int i=0; i < 3; i++){ 
 for (int j=0; j < 2; j++){ 
 vetn[i][j] = i + j; 
 } 
 } 
Desconsiderando a necessidade do programa completo e levando em conta apenas o código 
descrito, das opções apresentadas, qual afirmativa está correta. 
 
 O trecho apresentado possui erro e apenas um valor será armazenado. 
 Serão armazenados os valores 0,1,1,2,2,3. 
 O trecho apresentado possui erro e nenhum valor será armazenado. 
 Serão armazenados os valores 0,0,1,1,2,2. 
 Serão armazenados os valores 0,1,2,2,3,3. 
 
 
 4a Questão (Ref.: 201102291136) Pontos: 0,0 / 1,0 
Na linguagem C, uma variável pode ser classificada como LOCAL ou GLOBAL. De acordo com as 
características das variáveis LOCAIS, marque a alternativa ERRADA. 
 
 A função main() pode acessar qualquer variável local de qualquer função. 
 Duas, ou mais funções, podem declarar variáveis locais com os mesmos nomes. 
 As variáveis locais não podem ser acessadas de fora do escopo em que foram 
criadas. 
 Uma variável local só é visualizada pela função onde foi declarada. 
 Existem funções que não têm variáveis locais. 
 
 6a Questão (Ref.: 201102291319) Pontos: 1,0 / 1,0 
Muitas séries matemáticas podem ser geradas pela estrutura do for. Analise o código abaixo e 
escolha a opção que contém a série exibida pelo código. 
 
 
 0 1 1 2 3 4 5 6 
 1 1 2 3 5 8 13 21 
 0 1 1 3 2 4 5 7 
 0 1 1 2 3 5 8 13 21 
 1 3 4 7 9 11 13 
 
 
 10a Questão (Ref.: 201102279951) Pontos: 0,5 / 0,5 
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado 
final é verdadeiro ou falso. Marque a alternativa que contém o operador lógico que deve ser 
utilizado quando as duas proposições lógicas necessitam ser verdadeiras para que o resultado da 
combinação seja verdadeiro. 
 
 ((pontos>=10) || (pontos <=20)) 
 ((pontos>=10) % (pontos <=20)) 
 ((pontos>=10) ! (pontos <=20)) 
 ((pontos>=10) # (pontos <=20)) 
 ((pontos>=10) && (pontos <=20)) 
 
 
 2a Questão (Ref.: 201201971778) Pontos: 0,5 / 0,5 
Alguns iniciantes na linguagem C sentem dificuldades de usar a estrutura dos ifs encadeados. 
Sabemos que algumas afirmativas abaixo não produziriam um resultado errado, mas que tornaria 
o programa com menor qualidade, visto que testes seriam realizadossem necessidade. 
Então, leia com atenção e só escolha a afirmativa poderá ajudá-los a construir programas com 
qualidade, usando todos os recursos da estrutura if ... else if ..... 
 
 
 Posso substituir ifs encadeados por ifs simples sem prejuízo de qualidade. 
 Melhor seria substituir, sempre, os ifs encadeados pela estrutura do switch(). 
 O número de ifs encadeados é igual ao número de respostas possíveis, não 
considerando a resposta errada do usuário, pois essa seria criticada no else. 
 O número de ifs encadeados é igual ao número de respostas possíveis, considerando 
a resposta errada do usuário e não usaria else. 
 Posso substituir por vários ifs simples e um if composto, ao final, para criticar a 
resposta errada do usuário. 
 
 3a Questão (Ref.: 201201914489) Pontos: 1,0 / 1,0 
Uma parte bastante importante no estudo da linguagem C é ter o conhecimento das suas 
bibliotecas. As respectivas categorias das funções das bibliotecas #include ctype.h e #include 
math.h são: 
 
 Funções para teste de caracteres e conversão de letras maiúsculas em minúscula e vice-
versa; funções para entrada e saída de dados. 
 Funções para entrada e saída de dados; funções para conversão de números e alocação na 
memória. 
 Funções para entrada e saída de dados; funções matemáticas que possibilitam 
arredondamento de um numero. 
 Funções para conversão de números e alocação na memória; funções matemáticas que 
possibilitam arredondamento de um numero. 
 Funções para teste de caracteres e conversão de letras maiúsculas em minúscula e vice-
versa; funções matemáticas que possibilitam arredondamento de um numero. 
 
 
 
 4a Questão (Ref.: 201201957856) Pontos: 0,5 / 0,5 
Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a 
variável num seja diferente de 0? 
 
 while (num == 0) 
 for ( i = 0; i == num; i++) 
 enquanto (num > 0) 
 while (num != 0) 
 for (i = num; i > 0; i++) 
 
 
 8a Questão (Ref.: 201201968216) Pontos: 0,0 / 1,5 
Construa um programa que informe ao usuário que ele deverá entrar com um número inteiro de 
três algarismos. 
Se o número tiver três algarismos, deverão ser exibidos o algarismo da casa das centenas e 
o algarismo da casa das unidades. 
Caso contrário, aparecerá a mensagem: O numero não tem tres algarismos. 
Observação: Lembre-se de que existem números negativos com tres algarismos. 
 
 
 
 
 
 
Resposta: 
 
 
Gabarito: 
 
int main() 
{ 
 int num; 
 printf("\nDigite um numero com tres algarismos:"); 
 scanf("%d", &num); 
 if( abs(num)>=100 && abs(num)<=999) 
 printf("\nCentenas: %d\tUnidades: %d\n",abs(num)/100, abs(num)%10); 
 else 
 printf("\nO numero nao tres algarismos\n"); 
} 
 
 
 
 9a Questão (Ref.: 201201879974) Pontos: 0,0 / 1,5 
Considere que você foi contratado para trabalhar em uma empresa de trading (comércio) de 
commodities. Tendo em vista o crescimento do mercado chinês, a empresa em que você trabalha 
deseja aumentar o comércio de commoditties com o mercado chinês. Para que a empresa se torne 
competitiva, ela precisa desenvolver programas em liguagem C para conversões de medidas para 
agilizar os seus processos e evitar possíveis erros com o uso de calculadoras eletrônicas. 
Codifique um programa em linguagem C que obtenha uma medida em Ku ping, unidade chinesa 
de medida de massa, como entrada de dados do usuário através da função scanf, converta a 
medida para toneladas e exiba a medida convertida através da função printf. Defina o fator de 
conversão como uma constante chamada fator de valor igual a 26797,96. Este fator deve ser 
usado no cálculo da conversão, sabendo-se 1 tonelada equivale a 26797,96 Ku ping. Defina a 
constante chamada fator e a variável chamada medida como numéricos reais em ponto flutuante 
de menor precisão para ocupar menos espaço de memória. 
 
 
 
Gabarito: #include 
#include 
int main(int argc, char** argv) { 
 const float fator = 26797.96; 
 float medida; 
 scanf("%f", &medida); 
 medida = medida / fator; 
 printf("%f", medida); 
 return (0); 
} 
 
 
 
 
8a Questão (Ref.: 201201899321) Pontos: 0,0 / 1,5 
Faça um programa em C que dado um número inteiro positivo n, imprimir os n 
primeiros naturais ímpares. 
Exemplo: Para n=4 a saída deverá ser 1,3,5,7. 
 
Gabarito: #include 
int main() { 
int n, i, impar; 
printf("\n\tGerador de numeros impares\n"); 
printf("\nDigite o valor de n: "); 
scanf("%d", &n); 
i = 0; 
impar = 1; 
printf("Os %d primeiros impares sao:\n", n); 
while (i < n) { 
printf ("%d\n", impar); 
impar = impar + 2; 
i = i + 1; 
} 
return 0; 
 
 
} 
9a Questão (Ref.: 201202047493) Pontos: 0,0 / 0,5 
Dentre as estruturas de Dados mais utilizadas em programação, se encontram os 
vetores. 
Baseado neste conceito, identifique a opção incorreta: 
Na declaração int[50]; o índice da ultima posição é 49. 
**Podem ser formado por elementos de tipos diferentes.** 
Deve ser declarado antes de acessado em seu programa. 
Permite agrupar vários elementos em uma mesma variável indexada. 
Um vetor de caracteres terminado com um caracter nulo é uma string na linguagem C. 
 
 
 
 
7a Questão (Ref.: 201201966329) Pontos: 0,3 / 1,5 
Sabe-se que o dominó é um jogo milenar e que tem 28 peças. Os valores dessas 
peças, 
poderíamos dizer, usando uma linguagem Matemática, que seriam resultados da 
combinação 2 a 2 dos números de 0 a 6, incluindo peças onde o número esteja 
presente duas vezes. 
Construa uma função que exiba os valores das peças do dominó. 
 
Gabarito: 
void domino() 
{ 
int x, y; 
for( x=0 ; x <= 6 ; x++) 
{ 
for( y = x; y <= 6 ; y++) 
printf("%d - %d\t", x,y); 
printf("\n"); 
} 
} 
 
 
1a Questão (Ref.: 201202238477) Pontos: 
Um Engenheiro da prefeitura está fazendo um levantamento do número de árvores 
necessárias para serem plantadas em 20 bairros. Ele gostaria de declarar matrizes 
para armazenamento desses dados.Assinale a linha onde a declaração atende ao que 
ele deseja. 
char bairros[20,40]; int quantidade[20]; 
**char bairros[20][40]; int quantidade[20]**; 
char bairros[20]; int quantidade[20]; 
char bairros[1 9]; int quantidade[1 9]; 
char bairros[1 9][40]; int quantidade[1 9]; 
 
2a Questão (Ref.: 201202234790) Pontos: 
Quanto aos códigos de formatação (especificadores de formato) usados com a função 
printf() e/ 
outras e tendo em vista o trecho do programa, qual deveria ser a linha usada para 
exibir a saída 
abaixo: 
Observação: A sequência de números que aparece na saída representa as colunas da 
tela. 
Trecho 
int num1 = 7, num2=8; float num3=1 5.2; 
printf("\n1 2345678901 234"); 
printf("\n%.3f\t%.2f\n", ce il((num1+num2)) /2+num3, num3/2); 
printf("\n%.3f\t%.2f\n", (float)(num1+num2) /2+num3, num3/2); 
printf("\n%.0f\t%06.2f\n", (float)num2+num1, num3); 
printf("\n%.2f\t%06.2f\n",(float) num1+num2/2 +num3, num3); 
**printf("\n%.3f\t%.0f\n", ce il((num1+num2)/2+num3), num3);** 
 
 
1a Questão (Ref.: 201202462941) Pontos: 0,2 / 1,5 
Desenvolva um programa que leia números inteiros, até que seja digitado 0, e que 
exiba: 
 A média de todos os valores digitados 
 O maior valor digitado 
 
Gabarito: 
#include 
#include 
void main(){ 
int i=0; 
float valor, soma=0, media=0, maior; 
puts("Digite um valor: "); 
scanf("%f",&valor); 
while(valor!=0){ 
i++; 
if(i==1) 
maior=valor; 
else 
if(maior maior=valor; 
soma+=valor; 
puts("Digite outro valor: "); 
scanf("%f",&valor); 
} 
media= soma/i; 
printf("Elementos: %d\n",i); 
printf("Média: %.2f\n",media); 
printf("Maior: %.2f\n",maior); 
system("PAUSE"); 
} 
 
 
9a Questão (Ref.: 201202358035) Pontos: 1,0 / 1,0 
As matrizes, em geral, são caracterizadas por se tratarem de uma única variável de 
determinado tamanho queguarda várias informações do 
mesmo tipo. 
Desconsiderando a necessidade do programa principal e levando em conta apenas a 
linha de comando, das opções apresentadas em relação à 
manipulação de vetores marque a resposta correta. 
char vetnome[5]= "Maria"; 
**float vetreais[4]={1.0,2.4,3.5,4.5};** 
float array[4]=[1.0,2.4,3.5,4.5]; int 
vetinteiros[5]=[1,2,3,4,5]; 
char vet[5]={a,b,c,d,e}; 
 
10a Questão (Ref.: 201202453675) Pontos: 0,5 / 0,5 
Um lojista gostaria de desenvolver um programa que pudesse armazenar os 
códigos(valores inteiros), os valores de compra(valores reais), os valores de 
vendas(valores reais) e a quantidade(valores inteiros) de todos os mil produtos. 
Pensou em declarar algumas matrizes unidimensionais para tornar isso possível. 
Qual das opções abaixo declara as matrizes necessárias para que o programa possa 
ser 
desenvolvido a partir delas e seguindo, rigorosamente, as sugestões do texto acima? 
 
double codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000]; 
double codigos[1000], qtdade[1000], valorC[1000], valorV[1000]; 
**int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000]; int** 
codigos[999], qtdade[999]; float valorC[999], valorV[999]; double 
codigos[999], qtdade[999], valorC[999], valorV[999]; 
 
2a Questão (Ref.: 201102441169) Pontos: 0,0 / 1,0 
Na definição de uma função, precisamos escrever suas partes, sendo algumas 
obrigatórias e 
outras, facultativas. 
tipo nome ( tipo1 parâmetro1, tipo2 parâmetro2, ..., tipon parâmetroN) 
{ 
 corpo da função 
 } 
Das opções apresentadas abaixo, marque a que apresenta apenas partes obrigatórias 
de forma que a função execute alguma tarefa, sem levar em consideração os símbolos 
(chaves, parênteses, etc). 
Nome, Parâmetro e Corpo da função. 
Tipo, Parâmetro e corpo da função. 
**Tipo , Nome, e Corpo da função.** 
Tipo, Nome e Parâmetros. 
Tipo, Nome, Parâmetros e Corpo da Função 
 
4a Questão (Ref.: 201102344808) Pontos: 0,0 / 1,5 
Faça um programa em C que dado um número inteiro positivo n, calcular a soma dos 
n primeiros números naturais. 
 
Gabarito: 
#include 
int main() { 
int n, soma; 
printf("\n\tCalculo da soma dos n primeiros numeros naturais\n"); 
printf("\nDigite o valor de n: "); 
scanf("%d", &n); 
soma = (n * (n + 1)) / 2; 
printf("A soma dos %d primeiros numeros naturais e' %d\n", n, soma); 
return 0; 
} 
 
7a Questão (Ref.: 201102441304) Pontos: 0,0 / 1,5 
Sabe-se que a média ponderada é o quociente da divisão da soma dos produtos valor 
x peso pelasoma dos pesos. 
Construa um programa na linguagem C que receba duas notas e seus respectivos 
pesos e exiba 
média ponderada. 
 
Gabarito: 
#include 
#include 
int main() 
{ 
 float nota1, nota2, peso1, peso2, mediaP; 
 printf("\n1a Nota e peso: " ); 
 scanf("%f %f",¬a1, &peso1); 
 printf("\n2a Nota e peso: " ) ; 
 scanf("%f %f",¬a2, &peso2); 
 mediaP=(nota1 * peso1 + nota2 * peso2)/(peso1 + peso2); 
 printf("\nMedia Ponderada: %.2f\n" , mediaP ); 
} 
 
 
4a Questão (Ref.: 201301811378) Pontos: 0,5 / 0,5 
Assinale a alternativa que apresenta APENAS os exemplos de operadores relacionais. 
=, > e || 
+, - e * 
**<, > e >=** 
&&, >= e || 
&&, || e ~ 
 
5a Questão (Ref.: 201301874260) Pontos: 0,0 / 0,5 
A estrutura de decisão switch é extremamente poderosa na linguagem C. Dado o 
código: 
#include < stdio.h> 
#include < stdlib.h> 
void main(){ 
int a= 3; int b =2; 
switch(a){ 
 case 1: a++; break; 
 case 2: a-=b++; break; 
 case 3: if(b)a+=b; 
 default: a = 1; 
} 
printf("%d", a+b); 
system("PAUSE"); 
} 
Selecione a opção correta: 
O programa exibirá 5 
**O programa exibirá 3** 
O programa exibirá 7 
Ocorrerá um erro 
O programa exibirá 1 
 
6a Questão (Ref.: 201301821765) Pontos: 1,0 / 1,5 
Um comerciante resolveu dar descontos em sua loja porque as vendas tinham 
diminuído muito nos últimos quinze dias. 
Teve uma idéia de confeccionar um cartaz informando que: 
COMPRAS COM VALORES MENORES QUE R$ 40,00 - desconto de 5% 
DEMAIS VALORES - desconto de 10% 
Construa um programa que deixe entrar com o valor da compra e exiba o valor já com 
desconto. 
 
Gabarito: 
int main() 
{ 
float valor; 
printf("\nValor da compra:"); 
scanf("%f", &valor); 
if( valor < 50) 
printf("\nValor com desconto: %.2f\n",valor*0.95); 
else 
printf("\nValor com desconto: %.2f\n",valor*0.9); 
} 
 
9a Questão (Ref.: 201301865040) Pontos: 0,0 / 0,5 
Observe o trecho de código abaixo e suponha que foi digitado o número 1762. 
Qual das opções abaixo corresponde à saída? 
2671 1762 
12671 1762 
1762 0 
1762 12671 
**2671 0** 
 
 1a Questão (Ref.: 201403741018) 
 
 
A função remove() apaga um arquivo especificado. Tem como protótipo: 
 
 int remove (int *nome_do_arquivo); 
 int remove (char *nome_do_arquivo); 
 void remove (char *nome_do_arquivo); 
 char remove (char *nome_do_arquivo); 
 int remove (char nome_do_arquivo); 
 
 2a Questão (Ref.: 201403242751) 
 
 
As matrizes, em geral, são caracterizadas por se tratarem de uma única variável de 
determinado tamanho que guarda várias informações do mesmo tipo. 
Desconsiderando a necessidade do programa principal e levando em conta a programação 
adequada, declaração e respectiva manipulação das matrizes, das opções apresentadas a 
respeito das matrizes bidimensionais marque a resposta correta. 
 
 int mat[3][3]; mat[0][2] = 5; 
 int mat[3][3]; mat[0][2] = 5.0; 
 char mat[2][2]; mat[0][2] = A; 
 char mat[2][2]; mat[0][2] = "A"; 
 int mat[3][3]; mat[0][3] = 5; 
 
 3a Questão (Ref.: 201403242789) 
 
Na criação de uma rotina de manipulação de equipamentos para perfuração de poços, o 
programador precisava apenas pegar alguns dados existentes em um arquivo do equipamento 
para efeitos de cálculos e fechá-lo. 
Das opções abaixo marque a que descreve a forma mais adequada, com a qual o programador 
deveria acessar o arquivo, segundo sua necessidade. 
 
 
 Para leitura e gravação 
 Somente para leitura 
 Somente para gravação 
 Para leitura e edição 
 Não precisa abrir o arquivo 
 
 
 
 
 
 4a Questão (Ref.: 201403727983) 
 
 
Uma das ultimas funções estudadas foi a remove(). Suponha que o nome do arquivo é (pessoa) e 
é constante. 
Assinale a alternativa que apresenta a sintaxe correta para a função. 
 
 remove( "pessoa", "arq" ) ; 
 remove( "pessoa", arq ) ; 
 remove( "pessoa" ) ; 
 remove(pessoa, arq) ; 
 remove( pessoa ) ; 
 
 5a Questão (Ref.: 201403727918) 
 
 
Nas aulas conhecemos primeiro as funções fseek() e ftell() e posteriormente outras duas funções 
______ e ______ que são equivalentes a estas porém com sintaxe diferentes. 
Assinale a alternativa que completa corretamente as lacunas. 
 
 fgetpos() e fsetpos(). 
 rewind () e fgets (). 
 fgets() e fsetpos(). 
 fgetpos() e ftell(). 
 fwrite() e rewind(). 
 
 
 
 6a Questão (Ref.: 201403338449) 
Observe o programa abaixo e escolha a opção que descreve o que ele faz. 
 
 
 Lê dados do teclado e armazena na Memória Principal em uma matriz unidimensional. 
Depois abre um arquivo do tipo binário para escrita e, se for possível, grava os dados no 
arquivo. 
 Lê dados de um arquivo binário e armazena na Memória Principal em uma matriz 
unidimensional, exibindo depois na tela. 
 Lê dados do teclado e armazena na Memória Principal em uma matriz unidimensional. 
Depois abre um arquivo do tipo texto para escrita e, se for possível, grava os dados no 
arquivo. 
 Lê dados do teclado e armazena na Memória Principal em uma matriz unidimensional. 
Depois abre um arquivo do tipo binário para escrita e leitura e, se for possível, grava os 
dados no arquivo. 
 Lê dados de um arquivo texto e armazena na Memória Principal em uma matriz 
unidimensional, exibindo depoisna tela. 
 
 
 1a Questão (Ref.: 201403727837) 
 
 
Na manipulação de arquivos na linguagem C, podemos utilizar várias funções da linguagem. Cada 
uma delas tem um propósito específico. 
Das afirmativas apresentadas qual define melhor e corretamente qual a finalidade da 
função fprintf() . 
 
 Funções para gravar uma linha. 
 Função que detecta o fim do arquivo. 
 Função que fecha um arquivo. 
 Funções para gravação formatada. 
 Funções para gravar um caractere. 
 2a Questão (Ref.: 201403733388) 
 
Suponha que o arquivo dados.txt contém a cadeia de caracteres "ABCYDEF" e nada mais. O que 
o seguinte programa imprime? 
 
int main( void) { 
FILE *entrada; 
int c; 
entrada = fopen( "dados.txt", "r"); 
while ((c = getc( entrada)) != EOF) 
printf( "%c ", c); 
fclose( entrada); 
return EXIT_SUCCESS; 
} 
 
 ABCDEFY 
 ABCYDEF 
 ABCDEF 
 ABC 
 DEF 
 
 
 
 3a Questão (Ref.: 201403681900) 
 
 
Considere que as bibliotecas necessárias foram devidamente declaradas. 
 
int main() { 
FILE *arq ; 
int i; 
_____ c ; 
arq = _____ ( " jornal.txt " , " r " ) ; 
if ( arq == NULL ){ 
printf ( " Erro na abertura do arquivo " ) ; 
system ( " pause " ) ; 
exit ( 1 ) ; 
} else 
 
for ( i = 0; i<5; i++){ 
c = fgetc ( arq ) ; 
printf( "%c", c ) ; 
} 
_____( arq ) ; 
system ( " pause " ) ; 
return 0; 
} 
 
 
Complete as lacunas do código para que o programa funcione corretamente. 
A ordem em que as palavras são dispostas na resposta, devem preencher respectivamente as 
lacunas. 
 
 char - fopen - fechar 
 char - fopen - fclose 
 int - open - close 
 float - fopen - fclose 
 int - abrir - fopen 
 4a Questão (Ref.: 201403740977) 
 
 
O protótipo do comando fputs é: 
 
 int *fputs (char *str,FILE *fp); 
 char fputs (char *str,FILE *fp); 
 char *fputs (char *str,FILE fp); 
 char *fputs (char str,FILE *fp); 
 char *fputs (char *str,FILE *fp); 
 
 
 
 
 
 5a Questão (Ref.: 201403727805) 
 
 
Para a manipulação de arquivos na linguagem C, primeiro precisamos abrir o mesmo. Sabendo-se 
que o arquivo tem o nome de texto.txt, que foi associado com a variável de nome: arq, e que é do 
tipo texto, avalie cada uma das afirmativas e marque a que faz a abertura para ler e/ou gravar 
dados no fim do arquivocorretamente seguindo as regras da linguagem. 
 
 arq = fopen("texto.txt", "w"); 
 arquivo = fopen("material.dat", "w+"); 
 arquivo = fopen("material.dat", "r+"); 
 arq = fopen("texto.txt", "a+"); 
 arquivo = fopen("material.dat", "a+"); 
 
 
 
 
 
 6a Questão (Ref.: 201403727826) 
 
 
Na manipulação de arquivos na linguagem C, no processo de abertura do mesmo, podemos ter 
erros: devido a não existência do arquivo; ao arquivo estar corrompido; etc, não sendo possível 
abrir o mesmo. 
Das afirmativas apresentadas qual define corretamente o que pode ser feito em relação ao erro 
na abertura, segundo o que foi apresentado nas aulas. 
 
 Não é necessário tratar, pois não existindo o arquivo ele simplesmente cria um novo e nunca 
terá problema. 
 Não é possível tratar este tipo de erro, pois precisamos da estrutura Try ... Catch que 
consegue prevenir e evitar o fechamento do programa. 
 A palavra chave FILE, que permite fazer a associação do arquivo, mantem o valor NULL 
caso não seja possível abrir o arquivo, desta forma, utilizando o if, o usuário pode mandar 
uma mensagem adequada para o usuário. 
 A função fopen, retorna NULL quando não consegue abrir o arquivo e o usuário pode tratar o 
conteúdo da variável associada ao arquivo, comparando com o valor NULL. 
 O tratamento é feito com um if, e tendo havido problemas no arquivo de texto, o mesmo é 
eliminado e retornado uma mensagem padrão para o usuário. 
 
 1a Questão (Ref.: 201403242764) 
 
 
Um programador durante a construção de um código precisava converter o texto 
correspondente a um ano em um número inteiro, para poder executar alguns cálculos a partir 
deste ano. 
Das opções apresentadas, qual função apresenta a solução para o programador? 
 
 atoi( ). 
 strlen( ). 
 strcat( ). 
 strcont( ). 
 strlength( ). 
 
 
 
 
 
 2a Questão (Ref.: 201403347620) 
 
 
Observe o código apresentado na questão: 
#include < stdio.h> 
#include < stdlib.h> 
int x=4; 
void main(){ 
 int x=5; 
 exibir(x); 
 system("PAUSE"); 
} 
void exibir(int y){ 
 printf("%d",y); 
} 
Dentre as opções abaixo é correto afirmar: 
 
 O programa exibirá 9 
 O programa exibirá 5 
 O programa exibirá 0 
 Ocorrerá um erro 
 O programa exibirá 4 
 
 3a Questão (Ref.: 201403295881) 
 
 
Na definição de uma função, precisamos escrever suas partes, sendo algumas obrigatórias e 
outras, facultativas. 
 
tipo nome ( tipo1 parâmetro1, tipo2 parâmetro2, ..., tipon parâmetroN) 
{ 
 corpo da função 
 } 
 
Das opções apresentadas abaixo, marque a que apresenta apenas partes obrigatórias de forma 
que a função execute alguma tarefa, sem levar em consideração os símbolos (chaves, parênteses, 
etc). 
 
 Tipo, Nome e Parâmetros. 
 Tipo, Nome, Parâmetros e Corpo da Função. 
 Nome, Parâmetro e Corpo da função. 
 Tipo, Parâmetro e corpo da função. 
 Tipo , Nome, e Corpo da função. 
 
 4a Questão (Ref.: 201403338424) 
 
Observe o programa abaixo e escolha a opção que apresenta o que retorna da função chamada. 
 
 
 O valor retornado corresponde ao deslocamento mais um em relação ao endereço base da 
variável que contem o menor número 
 Nada retorna porque o nome do vetor da função main é diferente do nome do vetor da 
função descobre 
 O maior número é retornado 
 O valor retornado corresponde ao índice da variável que contem o menor número 
 O menor número é retornado 
 
 5a Questão (Ref.: 201403674145) 
 
A língua portuguesa realmente é surpreendente. Além de rica em fonemas e vocabulário, possui 
muitas curiosidades. Entre elas o conceito de palíndromo, que é uma palavra ou um número que 
se lê da mesma maneira nos dois sentidos como, por exemplo, OVO. 
Dado o código abaixo, qual das opções complementa o programa para identificar este curioso 
conceito? 
 
int ePalindromo(char vet[],int tam); 
 
void main(int argc, char *argv[]) { 
char texto[] = "arara"; 
int i; 
if(ePalindromo(texto, strlen(texto))) 
printf("Eh palindromo"); 
else 
printf("Nao eh palindromo"); 
system("PAUSE"); 
} 
 
 int ePalindromo(char vet[],int tam){ 
int i; int aux=1; 
for(i=0; i < tam/2; i++){ 
if(vet[i]!=vet[tam-1-i]){ 
aux = 0; 
break; 
} 
} 
return aux; 
} 
 int ePalindromo(char vet[],int tam){ 
int i; int aux=1; 
for(i=0; i < tam-1; i++){ 
if(vet[i]!=vet[tam-i]){ 
aux = 0; 
break; 
} 
} 
return aux; 
} 
 int ePalindromo(char vet[],int tam){ 
int i; int aux=1; 
for(i=0; i < tam/2; i++){ 
if(vet[i]!=vet[tam-i]){ 
aux = 0; 
break; 
} 
} 
return aux; 
} 
 int ePalindromo(char vet[],int tam){ 
int i; int aux=1; 
for(i=0; i < tam; i++){ 
if(vet[i]!=vet[tam+1-i]){ 
aux = 0; 
break; 
} 
} 
return aux; 
} 
 int ePalindromo(char vet,int tam){ 
int i; int aux=1; 
for(i=0; i < tam-1; i++){ 
if(vet[i]!=vet[tam-i]){ 
aux = 0; 
break; 
} 
} 
return aux; 
} 
 
 6a Questão (Ref.: 201403352254) 
 
 
Existem basicamente dois tipos de variáveis que podem ser declaradas em um código: variáveis 
locais e variáveis globais. Para que um programador possa escolher a melhor maneira de declarar 
as variáveis em seuprograma é necessário que ele tenha domínio sobre elas. 
Assinale a alternativa que contém apenas características das variáveis globais. 
 
 Declaradas dentro do escopo de todas as funções e não poderá ser manipulado por 
qualquer função. 
 Declaradas fora ou dentro do escopo de todas as funções e não poderá ser manipulado 
por qualquer função. 
 Declaradas dentro do escopo de todas as funções e poderá ser manipulado por qualquer 
função. 
 Declaradas fora do escopo de todas as funções e não poderá ser manipulado por 
qualquer função. 
 Declaradas fora do escopo de todas as funções e poderá ser manipulado por qualquer 
função. 
 
 
1a Questão (Ref.: 201403681731) 
 
 
Verifique o código a seguir e assinale a alternativa que contém um erro presente no código e a 
justificativa correta. Suponha que as bibliotecas necessárias foram declaradas. 
 
int main() 
{ 
int i, j, det, l, c; 
int mat[l][c]; 
puts("Codigo que calcula o determinante de uma matriz 3x3\n"); 
do{ 
puts("Digite os elementos da matriz\n"); 
for(i=0;i<3;i++) 
for(j=0;j<3;j++) 
scanf("%d", &mat[i][j]); 
fflush(stdin); 
det= (mat[0][0]*mat[1][1]*mat[2][2]) + (mat[0][1]*mat[1][2]*mat[2][0]) + (mat[0][2]*mat[1][0]*mat[2][1]) 
- ((mat[0][1]*mat[1][0]*mat[2][2]) + (mat[0][0]*mat[1][2]*mat[2][1]) + (mat[0][2]*mat[1][1]*mat[2][0])); 
printf("\ndet=%d\n", det); 
}while (det==0); 
system("pause"); 
return (0); 
} 
 
 Formato do while- deveria ter apenas um sinala de (=). 
 Declaração da matriz- Na declaração de uma matriz suas dimensões não podem ser 
indicadas por variáveis. 
 Declaração de variáveis- det é uma palavra reservada, portanto não pode ser nome 
de variável. 
 Utilização da função puts- Pois o puts exibe apena um caractere. 
 Falta no (;) após o comando for- Toda linha do código deve ser encerrada com (;). 
 
 2a Questão (Ref.: 201403352251) 
 
 
As matrizes, assim como os vetores, são muito importantes para facilitar o trabalho de um 
programador, por isso é extremamente importante saber como utiliza-la. 
Assinale a alternativa em que há uma matriz bidimensional, do tipo inteiro, com 10 linhas e 20 
colunas, declarada de forma correta. 
 
 float matrizExemplo[20][10]; 
 int matrizExemplo[10,20]; 
 int matrizExemplo[10][20]; 
 matrizExemplo float[20][10]; 
 matrizExemplo int[10][20]; 
 
 
 
 3a Questão (Ref.: 201403347607) 
 
 
Matrizes é um dos conceitos mais largamente usado em programação nos dias de hoje. 
Identifique a opção que ocorrerá um erro: 
 
 int matriz[2][3]= {{2,4,6},{7,8,9}}; 
 int matriz[][3]= {{2,4,6},{7,8,9}}; 
 int matriz[][3]= {{2,4,6}}; 
 int matriz[2][3]; matriz[0][0]=2; matriz[0][1]=4; 
 int matriz[2][3]= {{2,4,6};{7,8,9}}; 
 
 4a Questão (Ref.: 201403298572) 
 
 
O professor de Matemática armazena as notas dos quatro bimestres e da média dos seus 47 
alunos em cinco vetores. 
Ele pretende agrupar esses vetores em uma matriz bidimensional de nome NOTAS na linguagem 
C. 
Assinale a opção que possibilitará fazer o que o professor deseja. 
 
 
float NOTAS[47,5]; 
 
float notas[5][47]; 
 
float NOTAS[47][47]; 
 
float NOTAS[47][5]; 
 
float Notas[47][47]; 
 
 5a Questão (Ref.: 201403242755) 
 
 
Para resolver um determinado problema um programador escreveu um código para trabalhar 
com um vetor conforme apresentado na questão: 
 float vetn[20]; 
 for (int i=0; i < 20; i++){ 
 vetn[i] = ( i+1) * 0.1; 
 i = i + 2; 
 } 
Desconsiderando a necessidade do programa completo e levando em conta apenas o código 
descrito, das opções apresentadas, qual afirmativa está correta. 
 
 O terceiro valor armazenado será o 0.6. 
 Serão armazenados 20 valores reais. 
 O segundo valor armazenado será o 0.2. 
 Serão armazenados 7 valores reais. 
 O vigésimo valor armazenado será o 2.0. 
 
 6a Questão (Ref.: 201403681704) 
 
Considere que todas as bibliotecas necessárias foram declaradas. 
 
int main() 
{ 
int mat[3][3], i, j, det; 
puts("Codigo que calcula o determinante de uma matriz 3x3\n"); 
____{ 
puts("Digite os elementos da matriz\n"); 
____(i=0;i<3;i++) 
____(j=0;j<3;j++) 
scanf("%d", &mat[i][j]); 
fflush(stdin); 
det= (mat[0][0]*mat[1][1]*mat[2][2]) + (mat[0][1]*mat[1][2]*mat[2][0]) + (mat[0][2]*mat[1][0]*mat[2][1]) 
- ((mat[0][1]*mat[1][0]*mat[2][2]) + (mat[0][0]*mat[1][2]*mat[2][1]) + (mat[0][2]*mat[1][1]*mat[2][0])); 
printf("\ndet=%d\n", det); 
} ____ (det==0); 
system("pause"); 
return (0); 
} 
Complete as lacunas do código da maneira correta para que o programa funcione corretamente. 
 
 while-for-do-for 
 do-while-for-for 
 do-if-for-while 
 do-if-else-while 
 do-for-for-while 
 
 
 1a Questão (Ref.: 201403385390) 
 
 
Um dos problemas que assola a computação é o de segurança. Dentre várias soluções existentes, 
a criptografia é uma área que tem avançado muito nos dias de hoje. Uma empresa para 
criptografar seus textos, efetua a leitura de textos com até 80 caracteres e a partir de uma chave 
numérica os embaralha. 
 
Exemplo: 
 
texto: "ABCDEFGHIJ" 
 
chave: 42153 
 
saída: "EBCAFDGHIJ" 
 
Dado o trecho de programa abaixo, identifique qual das opções completa o mesmo para este fim. 
 
 
void main(){ 
char vetor[10]={'A','B','C','D','E','F','G','H','I','J'}; 
int i; 
char aux; 
int chave[5] = {4,2,1,5,3}; 
 
 for(i = 0; i <5 ; i++){ 
aux = vetor[0]; 
vetor [0] = vetor[chave[i]]; 
vetor[chave[i]]= aux; 
} 
for(i = 0; i <10 ; i++){ 
printf("%c",vetor[i]); 
} 
system("PAUSE"); 
} 
 for(i = 0; i <5 ; i++){ 
vetor [i] = vetor[chave[i]]; 
vetor[chave[i]]= aux; 
aux = vetor[i]; 
} 
for(i = 0; i <10 ; i++){ 
printf("%c",vetor[i]); 
} 
system("PAUSE"); 
} 
 for(i = 0; i <5 ; i++){ 
vetor[i] = aux; 
vetor[chave[i]] = vetor [i]; 
aux = vetor[chave[i]]; 
} 
for(i = 0; i <10 ; i++){ 
printf("%c",vetor[i]); 
} 
system("PAUSE"); 
} 
 for(i = 0; i <5 ; i++){ 
aux = vetor[i]; 
vetor [i] = vetor[chave[i]]; 
vetor[chave[i]]= aux; 
} 
for(i = 0; i <10 ; i++){ 
printf("%c",vetor[i]); 
} 
system("PAUSE"); 
} 
 for(i = 0; i <5 ; i++){ 
vetor[i] = vetor[chave[i]]; 
vetor[chave[i]] = vetor [i]; 
} 
for(i = 0; i <10 ; i++){ 
printf("%c",vetor[i]); 
} 
system("PAUSE"); 
} 
 
 2a Questão (Ref.: 201403375774) 
 
Observe as afirmativas abaixo sobre o terminador nulo e assinale a opção correta. 
 
I Devemos sempre acrescentar mais uma posição ao vetor de char quando ele for dimensionado; 
II Ele deve ser incluído ao final de todo vetor independente do tipo; 
III O terminador nulo é identificado pelo caracter \0; 
 
 Somente a afirmativa I é verdadeira 
 As afirmativas II e III são verdadeiras 
 As afirmativas I e III são verdadeiras. 
 Todas as afirmativas são verdadeiras 
 Somente a III é verdadeira 
 
 3a Questão (Ref.: 201403375776) 
 
 
Observe as declarações abaixo e assinale a opção correta. 
 
I int idades[]={5,16,27,19}; 
II float CR[3]={6.1, 8.9, 9.3}; 
III char letras[]={"A", "E", "I", "O", "U"}; 
IV char letras[]={"Linguagem de "}; 
 
 Somente as declarações I e II estão corretas 
 A declaração I está errada e a declaração II está correta 
 Somente as declarações I , II e IV estão corretas 
 As declarações III e IV estão erradas 
 Todas as declarações estão corretas 
 
 4a Questão (Ref.: 201403369692) 
 
Qual das opções abaixo está correta com relação a declaração de variáveis para um vetor de 15 
elementos de números reais em C?double x[15][15]; 
 char x[15]; 
 double x[15]; 
 int vetor[15][15]; 
 int vetor[15]; 
 
 5a Questão (Ref.: 201403369690) 
 
 
Analise as sentenças abaixo sobre a declaração de vetores e, em seguida, assinale a alternativa 
correta: 
I. Na linguagem C++, uma string é um vetor de caracteres terminado com um caracter nulo cujo 
valor inteiro é igual a zero (código ASCII igual a 0). 
II. O terminador nulo também pode ser escrito usando a convenção de barra invertida do C++ 
como sendo '\0'. 
III. Como precisamos reservar duas posições para o terminador (a barra e o zero), sempre iremos 
declarar o tamanho necessário menos um. 
 
 
 Todas as sentenças estão corretas 
 Somente a sentença II está correta 
 Somente as sentenças II e III estão corretas 
 Somente as sentenças I e III estão corretas 
 Somente as sentenças I e II estão corretas 
 
 
 6a Questão (Ref.: 201403375770) 
 
Um desenvolvedor precisava armazenar matrícula, nome e CR de um aluno. Sabe-se que a 
matrícula é um número inteiro e que o CR é um número real. Observe as alternativas abaixo e 
assinale qual foi a escolhida por atender a todas as exigências. 
 
 char nome[30]; int matricula; float CR; 
 char nome; int matricula[12]; double CR; 
 char[30] nome; int matricula; double CR; 
 char[30] nome; int matricula[12]; float CR; 
 char nome; int matricula; float CR; 
 
 1a Questão (Ref.: 201403175310) 
 
Qual a estrutura de repetição usada para quantidade indeterminada de repetições? 
 
 struct 
 for 
 while 
 switch 
 if-else 
 2a Questão (Ref.: 201403298631) 
 
 
 Uma das dificuldades da estrutura escolha/ caso é o fato das restrições variarem para cada 
linguagem, dificultando a fixação. Na linguagem C, essa estrutura recebe o nome de switch() e tem 
suas restrições. Observe os trechos abaixo e assinale o que é possível ser usado na linguagem C, 
supondo que se espera encontrar na variável de nome a, inteira, alguns valores e entres eles está 
o número 90. Analise as linhas abaixo e assinale que foi escrita corretamente para testar o número 
90 na estrutura switch(). 
 
 case a=90: printf("Pode") ;break; 
 case a > 90: printf("Pode") ;break; 
 case 90: printf("Pode") ; break; 
 90: printf("Pode"); stop; 
 90: printf("Pode"); 
 3a Questão (Ref.: 201403298608) 
 
 
A estrutura do if na linguagem C, como em toda linguagem, tem uma sintaxe. Observe as 
afirmações abaixo e escolha a opção ERRADA. 
 
I As chaves de abertura e fechamento, sempre, não são obrigatórias. 
II No teste unimos expressões relacionais com operadores lógicos quando necessário. 
III A palavra then está presente na estrutura. 
IV O uso do else poderá não ser necessário. 
 
 
 I e III estão corretas. 
 II e IV estão corretas. 
 I está errada. 
 II está correta e a III não está correta. 
 IV está correta e a I não está correta. 
 
 4a Questão (Ref.: 201403296071) 
 
 
 Muitas séries matemáticas podem ser geradas pela estrutura do for. Analise o código abaixo, 
supondo que você digitou 2 e 4 quando lhe foram solicitados dois números e escolha a opção que 
contém a série exibida pelo código. 
 
 
 2 4 6 8 19 12 14 16 
 2 4 6 10 16 26 42 68 
 2 4 4 8 12 20 32 52 
 2 4 6 10 16 26 42 
 2 4 4 8 12 20 32 
 
 5a Questão (Ref.: 201403296055) 
 
 
Muitas séries matemáticas podem ser geradas pela estrutura do for. Analise o código abaixo e 
escolha a opção que contém a série exibida pelo código. 
 
 
 1 1 2 3 5 8 13 21 
 1 3 4 7 9 11 13 
 0 1 1 3 2 4 5 7 
 0 1 1 2 3 4 5 6 
 0 1 1 2 3 5 8 13 21 
 
 6a Questão (Ref.: 201403734733) 
 
As estruturas de repetição são essenciais no desenvolvimentos de programas na linguagem C. 
Dado o programa abaixo, identifique a opção que demonstra o que será exibido na tela: 
 
 
int main(int argc, char *argv[]) { 
int i = 0; 
int j = 5; 
while(++i <= --j){ 
printf("%d ", i); 
} 
system("PAUSE"); 
return 0; 
} 
 
 1 2 3 
 1 2 
 1 2 3 4 5 
 0 1 2 
 0 1 2 3 4 5 
 
 
 1a Questão (Ref.: 201403698036) 
 
Preencha as lacunas abaixo para que a mensagem abaixo seja exibida, caso a variável Idade seja 
maior ou igual a 18 e a variável Peso seja maior que 50. 
 
if((Idade_ _ _18)_ _ _(peso_ _ _50)) 
{ 
printf("Você pode ser doador de Sangue"); 
} 
 
 >=; &; >; 
 >=; &&; >; 
 <>; and; >; 
 >=; e; >; 
 >>; and; >; 
 
 2a Questão (Ref.: 201403724549) 
 
 
Um desenvolvedor pediu ajuda ao Engenheiro porque o teste que ele tinha feito para selecionar 
funcionários não estava dando certo. 
Ele apresentou as cinco opções abaixo. 
Assinale a única opção que atende à exigência: o candidato ser do sexo feminino e ter idade 
no intervalo fechado em 18 e aberto em 30. 
 
 if( sexo == 'f' || sexo == 'F' && idade >= 18 && idade <= 30 ) 
 if(( sexo == 'f' || sexo == 'F' ) and idade >= 18 and idade < 30 ) 
 if(( sexo == 'f' || sexo == 'F' ) && idade >= 18 && idade < 30 ) 
 if( sexo == 'f' or sexo == 'F' and idade >= 18 and idade <= 30 ) 
 if(( sexo == 'f' or sexo == 'F') and idade>=18 and idade < 30 ) 
 
 3a Questão (Ref.: 201403724595) 
 
 
Um desenvolvedor construiu um código onde estava presente o trecho abaixo. 
char resp; 
scanf("%c", &resp); 
switch(toupper(resp)) ; 
{ 
case 'A': puts("Digitou a letra A" ); break; 
case 'E': puts("Digitou a letra E" ); break; 
case 'i': puts("Digitou a letra I" ); 
case 'O': puts("Digitou a letra O" ); 
case 'U': puts("Digitou a letra U" ); break; 
default: puts("Nao digitou vogal" ); 
} 
 
Analise as afirmativas abaixo e assinale a opção correta. 
I Se digitar I, aparece: Digitou a letra I / Digitou a letra O/ Digitou a letra U uma mensagem em 
cada linha. 
II Se digitar i, aparece: Nao digitou vogal. 
III Se digitar o, aparece:Digitou a letra O/ Digitou a letra U uma mensagem em cada linha. 
IV Se digitar a, aparece: Nao digitou vogal. 
V Se digitar A, aparece: Digitou a letra A. 
 
 II, III e V são verdadeiras 
 I, III e IV são verdadeiras 
 III e IV são verdadeiras 
 Só a a III é verdadeira 
 II e, IV são verdadeiras 
 
 
 
 4a Questão (Ref.: 201403724621) 
 
 
Um desenvolvedor estava construindo um código que tinha quatro possibilidades de resposta 
válidas além de uma mensagem de erro. 
O dado testado era do tipo inteiro. 
Assinale a opção que ele escolheu. 
 
 quatro ifs simples e um composto 
 switch() com cinco cases 
 switch() com quatro cases e um default 
 três ifs simples e um composto 
 quatro ifs simples 
 
 
 5a Questão (Ref.: 201403377259) 
 
 
Uma empresa que presta serviços de pintura predial, desenvolveu um aplicativo destinado a 
calcular o número de latas necessárias para pintar uma parede. O programa lê o tipo de 
pintura(interna ou externa), a largura e a altura em metros(inteiros) da parede. Para calcular a 
quantidade de tinta e o número de latas, sabe-se que são necessários 3 litros de tinta para pintar 
cada metro quadrado interno ou 4 litros para cada metro quadrado externo. Sabe-se também que 
cada lata tem 2 litros de tinta. 
Dado o trecho de programa abaixo, identifique a opção correta que complemente o programa para 
realizar o cálculo do número de latas de tinta: 
 
 
void main(){ 
float

Continue navegando