Buscar

Prova N2 - 09 de 10

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 8 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 8 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

Prévia do material em texto

PERGUNTA 1 
1. Existem duas formas para a criação de vetores: a primeira consiste em uma 
definição que não utiliza efetivamente ponteiros (tal como: “ int vet[5]; ”) e a 
segundo através da utilização de ponteiros (como por exemplo, “ int *vet; ”). 
Para essa questão, assinale com “V” a(s) linha(s) de código que apresentar o 
acesso correto à uma posição de um vetor instanciado como ponteiro e, com 
“F” a(s) linha(s) que apresentar uma codificação errada. Suponha que se 
deseja acessar a posição 3: 
 
 
 
 
( ) y = (*vet)[3] 
( ) y = vet[3] 
( ) y = *(vet+3) 
( ) y = *(vet+sizeof(int)*3) 
 
 
Assinale a alternativa que apresente a sequência que você julgue ser a correta. 
 
 F, V, V, F. 
 
 V, V, V, F. 
 
 F, F, F, V. 
 
 F, F, V, F. 
 
 V, F, F, V. 
1 pontos 
PERGUNTA 2 
1. Suponha que existe, em um arquivo textual, uma matriz 4x4 que relaciona 
os custos de um certo produto A (linhas) combinado com um produto B 
(colunas) como ilustra o exemplo a seguir: 
00 03 06 02 
03 00 04 07 
06 04 00 01 
02 07 01 00 
O produto não poderá ser combinado com ele mesmo. Por exemplo, 
combinando-se o produto dois com o produto três, teremos o valor 01. 
Cada valor de custo é representado, sempre, por dois caracteres e 
separados por um espaço em branco. Analise o código a seguir que 
imprima, na tela, o custo da combinação solicitada pelo usuário e preencha 
as lacunas. 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
int main() 
{ 
char linha[30],custoStr[3]; 
int prodA,prodB,i=0; 
FILE *arq; 
arq=fopen("matrizcustos.txt","___"); 
if(arq==NULL) 
{ 
printf("Erro de abertura de arquivo origem."); 
return 0; 
} 
printf("Produto A (de 0 a 3):"); 
scanf("%d",&prodA); 
printf("Produto B:(de 0 a 3): "); 
scanf("%d",&prodB); 
for(;i<=prodA;i++) 
____(linha,30,arq); 
printf("linha selecionada: %s\n",linha); 
strncpy(custoStr,&linha[___],2); 
custoStr[3]='\x0'; 
fclose(arq); 
printf("Custo = %d",atoi(custoStr)); 
return 0; 
} 
Assinale a alternativa que você julgue ser a correta. 
 
 . r ; fputs ; prodB*3 . 
 
 . rb ; fgets ; prodB*3 . 
 
 . w ; fgets ; prodB*3 . 
 
 . r ; fgets ; prodB*3 . 
 
 . r ; fgets ; prodB . 
1 pontos 
PERGUNTA 3 
1. Define-se como palíndromo a palavra que tem a mesma grafia e leitura caso 
seja lida da esquerda para a direita ou da direita para a esquerda. Por exemplo, 
as palavras “anilina” e “reviver” são palíndromos. Para essa questão, suponha 
o código apresentado abaixo: 
#include <stdio.h> 
#include <string.h> 
int main() 
{ 
char str[20]="reviver",palind=1; 
int tam = strlen(str); 
int i=0; cont = ____; 
for(; i ___ cont; i++,cont--) 
{ 
if(____) 
{ 
palind=0; 
break; 
} 
cont--; 
} 
if(palind) 
printf("%s eh palindromo.\n",str); 
else 
printf("%s nao eh palindromo.\n",str); 
return 0; 
} 
Escolha a alternativa que tenha a sequência correta de preenchimento das 
lacunas: 
 
 . tam ; <= ; str[i]!=str[cont] . 
 
 . tam-1 ; <= ; str[i]!=str[cont] . 
 
 . tam-1 ; <= ; str[i]==str[cont] . 
 
 . tam-1 ; < ; str[i]==str[cont] . 
 
 . tam-1 ; < ; str[i]!=str[cont] . 
1 pontos 
PERGUNTA 4 
1. Um ponteiro para ponteiro denota uma variável que armazena um valor através 
de uma dupla indireção. Sendo assim, um ponteiro referência um outro ponteiro 
que, por sua vez, aponta para um valor específico. Para essa questão, analise 
o código a seguir: 
 
 
#include <stdio.h> 
 
 
int main() 
{ 
int a = 10, *pont, **pontpont; 
pont = &a; 
pontpont = &pont; 
a = 12; 
printf("pont = %d\t pontpont: %d\n", *pont,**pontpont); 
return 0; 
} 
 
 
Assinale a alternativa que apresenta os valores impressos pela função 
“ printf() ”. 
 
 12 12. 
 
 .10 10. 
 
 .12 10. 
 
 .10 12. 
 
 .11 11. 
1 pontos 
PERGUNTA 5 
1. Uma string pode ser representada uma estrutura homogênea (vetor) para o 
armazenamento de uma sequência de caracteres. Em C/C++, as strings são 
iniciadas na posição 0 do vetor e são finalizadas pelo caractere nulo ('\x0'). 
Para essa questão, suponha que existe uma string carregada em uma variável 
denominada “str”. Dadas as sequências de código a seguir, assinale, com “R” 
aquela (s) que proporciona (m) a remoção do conteúdo de uma certa posição 
e, com “N”, a (s) que apresentam algum erro de sintaxe ou de lógica. Suponha 
a posição a ser retirada = 4. 
( ) i=4; 
do 
{ 
str[i]=str[i+1]; 
i++; 
} while(str[i]!='\x0'); 
( ) i=4; 
while(i>=0) 
{ 
str[i]=str[i+1]; 
i--; 
} 
( ) for(i=4;i>=0;i--) 
str[i]=str[i+1]; 
( ) i=4; 
for(;str[i]!='\x0';i++) 
str[i]=str[i+1]; 
Assinale a alternativa que apresenta a sequência correta. 
 
 R; R; N; R. 
 
 R; N; R; N. 
 
 N; R; R; N. 
 
 N; R; N; R. 
 
 R; N; N; R. 
1 pontos 
PERGUNTA 6 
1. Para a manipulação de um arquivo, deve-se antes, realizar a sua abertura 
através do comando “ fopen()”. Tal comando permite associar o nome físico 
do arquivo assim como a sua forma de abertura. Para essa questão, analise 
as linhas de código a seguir: 
FILE *arq; 
arq = fopen(“arquivo.dat”,”wb+”); 
Assinale a alternativa que você julgue ser a correta. 
 
 
Será aberto um arquivo binário “arquivo.dat” permitindo-se operações 
de leitura e de escrita. Sempre será criado um arquivo novo, destruindo 
o conteúdo caso já exista um arquivo com o mesmo nome. 
 
 
Será aberto um arquivo binário “arquivo.dat” permitindo-se operações 
de leitura e de escrita. Caso o arquivo não exista, será criado um 
arquivo novo. Caso exista, o seu conteúdo será mantido. 
 
 
Será aberto um arquivo binário “arquivo.dat” permitindo-se operações 
de escrita. Sempre será criado um arquivo novo, destruindo o conteúdo 
caso já exista um arquivo com o mesmo nome. 
 
 
Será aberto um arquivo textual “arquivo.dat” permitindo-se operações 
de leitura e de escrita. Sempre será criado um arquivo novo, destruindo 
o conteúdo caso já exista um arquivo com o mesmo nome. 
 
 
Será aberto um arquivo textual “arquivo.dat” permitindo-se operações 
de escrita. Sempre será criado um arquivo novo, destruindo o conteúdo 
caso já exista um arquivo com o mesmo nome. 
1 pontos 
PERGUNTA 7 
1. Na programação em C, podemos encontrar duas formas distintas de se 
abrir um arquivo (textual ou binária) aliadas aos modos que esse arquivo 
será manipulado. Para essa questão, analise o código a seguir, que 
manipula um arquivo binário, e preencha a lacuna corretamente. 
. . . 
FILE *arq; 
int codigo; 
char buffer[35]="algo a ser escrito no arquivo\n"; 
arq=fopen("exercicio.dat","____"); 
if(arq==NULL) 
{ 
printf("Erro de abertura do arquivo.\n"); 
return 0; 
} 
... 
if(!fread(&codigo,sizeof(int),1,arq)) //caso o arquivo ainda esteja vazio 
codigo=0; 
else 
codigo++; 
... 
if(!fwrite(&codigo,sizeof(int),1,arq)) 
printf("erro na gravacao do codigo.\n"); 
else 
if(!fwrite(buffer,35,1,arq)) 
printf("Erro na gravacao do buffer.\n"); 
fclose(arq); 
. . . 
Considerando que, caso o arquivo não exista, será criado um novo e caso 
exista, os dados deverão ser mantidos, assinale a alternativa que 
corresponda ao preenchimento da lacuna. 
 
 a+. 
 
 ab+. 
 
 wb+. 
 
 rb+. 
 
 w+. 
1 pontos 
PERGUNTA 8 
1. Uma das vantagens de um arquivo binário consiste na possibilidade do uso 
direto de registros (estruturas de dados). Sendo assim, pode-se gravar ou 
recuperar, com apenas uma operação, todos os dados inseridos em tal 
estrutura de dados. Para essa questão, analise o trecho de código a seguir e 
preencha as lacunas. 
TSTRUCT ts; 
. . . 
arq=fopen("registros.dat","rb+"); 
if(arq==NULL) 
{ 
printf("Erro de abertura do arquivo.\n"); 
return 0; 
} 
________; //posicionar no início do arquivo 
printf("Item a ser localizado: "); 
scanf("%d",&item); 
while(1) 
{ 
________; //ler a estrutura 
if(________) //testar se foi encontrado o final de arquivo 
break; 
if(ts.item==item) 
{ 
//manipulação do registro encontrado... 
Assinale a alternativa que você julgue conter a sequência correta do 
preenchimento das lacunas. 
 
 rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) . 
 
 fseek(arq,0,SEEK_END); fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) . 
 
 rewind(arq) ; fwrite(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) . 
 
 rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; eof(arq) . 
 
 rewind(arq) ; fgets(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) . 
1 pontos 
PERGUNTA 9 
1. Quando se implementa uma fução, devemos seguir a sintaxe da linguagem de 
programação utilizada e, também, realzar a definição de sua interface de 
acordo com as nossas necessidades. Para essa questão, suponha o trecho de 
código a seguir: 
 
#include <stdio.h> //arquivo header para a funcao printf() 
#include <stdlib.h> //arquivo header para as funcoes srand() e rand() 
#include <time.h> //arquivo header para a funcao time() 
 
___ func1(int ___x, ___ a) 
{ 
 ___x=rand()%a; 
 return ___x*(rand()%5); 
} 
 
int main() 
{ 
 int aleat,ret; 
 int a=10; 
 srand(time(NULL)); //iniciacao do gerador de numeros aleatorios 
 for(int i=0; i<10;i++) 
 { 
 ret=func1(__aleat,a); 
 printf("valor aleatorio gerado %d: %d (limitado %d) - ret funcao: %d.\n", 
 i,aleat,a,ret); 
 } 
 return 0; 
} 
 
Escolha a afirmativa que contém o resultado da impressão pela função “ printf ” 
e os trechos a serem inseridos nas lacunas: 
 
 .int ; * ; deixar em branco ; * ; * ; & . 
 
 .int 
; * ; deixar em branco ; * ; deixar em branco ; & . 
 
 .int 
; * ; deixar em branco ; * ; * ; deixar em branco . 
 
 
.int 
; deixar em branco ; deixar em branco ; deixar em branco ; deixar em 
branco 
; deixar em branco. 
 
 .int 
; * ; * ; * ; * ; & . 
1 pontos 
PERGUNTA 10 
1. Um programa consiste em criar uma sequência lógica de instruções de modo 
que possam ser manipuladas informações representadas na forma de 
variáveis. Em linguagens tipadas, como é o caso de C/C++, toda variável deve 
ser declarada associando à um tipo de dados. 
Dadas as declarações abaixo em C/C++, assinale com “C” a(s) que você julgue 
estar corretamente declarada(s) e, com “E” a(s) errada(s): 
( ) int a; b; 
( ) unsigned char x, y[10]; 
( ) int a, char b; 
( ) int [10] x; 
( ) float a; int b; 
Assinale a alternativa que contenha a ordem correspondente à sua marcação. 
 
 E; C; C; E; C. 
 
 E; C; E; E; E. 
 
 C; C; E; E; C. 
 
 E; C; E; E; C. 
 
 E; C; E; C; C.

Continue navegando