Logo Passei Direto
Buscar

GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120 ead-8888 08

User badge image
Bruno Souza

em

Ferramentas de estudo

Questões resolvidas

Em C standard , uma das funções usadas para a impressão de conteúdo na tela é o printf . Tal comando permite adequar a impressão ao tipo e ao formato da informação a ser exibida. Suponha que o usuário deseja realizar uma impressão no seguinte formato: “Valor da média = 3.21 - valor do caracter 'A' na tabela ASCII = 65 (hexa= 41)” Supondo que existam as seguintes variáveis instanciadas: float media=3.21043891; carac = 'A'; Preencha os espaços do comando com os formatos corretos:
printf(“Valor da média = __ - valor do caracter '__' na tabela ASCII = __ (hexa= __)”,media,carac,carac); Agora assinale a alternativa que contenha as marcações corretas.
%.2f ; %c ; %d; %x.
%.2f ; %c ; %d; %x.

Denomina-se como matriz esparsa aquela que a quantidade de elementos não nulos é mínima. Sendo assim, para economia de recursos de memória, aloca-se apenas os campos que possuem valores representativos. Para essa questão, analise as afirmativas abaixo e classifique com “S” aquelas que podem contribuir para a implementação de matriz esparsa e, com “N”, aquelas que não podem.
Assinale a alternativa que apresenta a sequência que você considera correta.
( ) Podemos implementar matriz esparsa como uma matriz de ponteiro para ponteiro. Cada linha de ponteiros aponta para um vetor de ponteiros, onde cada célula é uma estrutura composta pelos campos: valor e número da coluna.
( ) A matriz NxM é representada por um vetor com N*M células, onde cada célula é um registro composto pelos campos: linha, coluna e valor.
( ) A matriz é formada por uma estrutura estática, independentemente do número de elementos nulos.
( ) A matriz esparsa pode ser representada por uma matriz de ponteiro para ponteiro onde cada linha aponta para uma coluna alocada dinamicamente cujo tamanho é em função da quantidade dos elementos não nulos.
S, N, N, S.
S, N, N, S.

Estruturas ou registros servem para armazenar informações heterogêneas de modo a podermos agrupar informações de uma determinada entidade. Assim como outros tipos de dados, os registros também poderão ser manipulados como ponteiros. Suponha uma função para inserir um novo registro sempre na última posição de um vetor. Para tanto, suponha uma estrutura do seguinte formato: typedef struct { char nome_conta[30]; char cod_barras[48]; int dia_venc, mes_venc; float valor; } BOLETOS; O campo vazio é aquele que apresenta o campo “valor” igual a 0 (zero).
Observe o código a seguir e preencha as lacunas:
void CadastrarBoleto(BOLETOS b, BOLETOS ____ListaBoletos) { int pos=0; while(____.valor!=0) pos++; memcpy(____,&b,sizeof(BOLETOS)); }
* ; (ListaBoletos+pos) ; (*(ListaBoletos+pos)) ; &.
* ; (*(ListaBoletos+pos)) ; (ListaBoletos+pos) ; deixar em branco.

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.
Assinale a alternativa que você julgue conter a sequência correta do preenchimento das 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...
rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) .
rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) .

Em algumas ocasiões, surge a necessidade de se manipular informações organizadas em uma matriz (estrutura de dados homogênea bidimensional). Assim como toda variável, uma matriz também deve ser declarada. Dados os trechos de código abaixo, marque com “V” aquele (s) que você julgue estar correto (s) e, com “F”, o (s) incorreto (s):
Assinale a alternativa que contenha a sequência correta.
( ) int M[5][5];
( ) int M[5,5];
( ) int M[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
( ) int M[ ][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
( ) int [5]M[5];
V; F; V; F; F.
V; F; V; V; F.

Em certas situações, onde uma certa variável recebe, como valor de instanciação, um dentre dois valores, podemos substituir o comando “ if...else ” pelo comando condicional inline : o “ if ternário ”. Para essa questão, considere os seguintes trechos contendo as estruturas condicionais:
Associe os trechos com comandos condicionais aos condicionais ternários a seguir:
(A) if(a == b) { c=d; } else { c=e; }
(B) if(a==0) { x = x + 1; } else { x = x * b; }
(C) if(a!=0) { x=0; } else { x=1; }
(D) if((a == b)&&(c > d)) { e = f; } else { e = g; }
( ) x = (a) ? 0 : 1;
( ) x = (!a) ? x++ : x*=b;
( ) e=((a==b)&&(c>d)) ? e : f;
( ) c=(a==b)?d:e;

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

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

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

Já tem uma conta?

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

Questões resolvidas

Em C standard , uma das funções usadas para a impressão de conteúdo na tela é o printf . Tal comando permite adequar a impressão ao tipo e ao formato da informação a ser exibida. Suponha que o usuário deseja realizar uma impressão no seguinte formato: “Valor da média = 3.21 - valor do caracter 'A' na tabela ASCII = 65 (hexa= 41)” Supondo que existam as seguintes variáveis instanciadas: float media=3.21043891; carac = 'A'; Preencha os espaços do comando com os formatos corretos:
printf(“Valor da média = __ - valor do caracter '__' na tabela ASCII = __ (hexa= __)”,media,carac,carac); Agora assinale a alternativa que contenha as marcações corretas.
%.2f ; %c ; %d; %x.
%.2f ; %c ; %d; %x.

Denomina-se como matriz esparsa aquela que a quantidade de elementos não nulos é mínima. Sendo assim, para economia de recursos de memória, aloca-se apenas os campos que possuem valores representativos. Para essa questão, analise as afirmativas abaixo e classifique com “S” aquelas que podem contribuir para a implementação de matriz esparsa e, com “N”, aquelas que não podem.
Assinale a alternativa que apresenta a sequência que você considera correta.
( ) Podemos implementar matriz esparsa como uma matriz de ponteiro para ponteiro. Cada linha de ponteiros aponta para um vetor de ponteiros, onde cada célula é uma estrutura composta pelos campos: valor e número da coluna.
( ) A matriz NxM é representada por um vetor com N*M células, onde cada célula é um registro composto pelos campos: linha, coluna e valor.
( ) A matriz é formada por uma estrutura estática, independentemente do número de elementos nulos.
( ) A matriz esparsa pode ser representada por uma matriz de ponteiro para ponteiro onde cada linha aponta para uma coluna alocada dinamicamente cujo tamanho é em função da quantidade dos elementos não nulos.
S, N, N, S.
S, N, N, S.

Estruturas ou registros servem para armazenar informações heterogêneas de modo a podermos agrupar informações de uma determinada entidade. Assim como outros tipos de dados, os registros também poderão ser manipulados como ponteiros. Suponha uma função para inserir um novo registro sempre na última posição de um vetor. Para tanto, suponha uma estrutura do seguinte formato: typedef struct { char nome_conta[30]; char cod_barras[48]; int dia_venc, mes_venc; float valor; } BOLETOS; O campo vazio é aquele que apresenta o campo “valor” igual a 0 (zero).
Observe o código a seguir e preencha as lacunas:
void CadastrarBoleto(BOLETOS b, BOLETOS ____ListaBoletos) { int pos=0; while(____.valor!=0) pos++; memcpy(____,&b,sizeof(BOLETOS)); }
* ; (ListaBoletos+pos) ; (*(ListaBoletos+pos)) ; &.
* ; (*(ListaBoletos+pos)) ; (ListaBoletos+pos) ; deixar em branco.

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.
Assinale a alternativa que você julgue conter a sequência correta do preenchimento das 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...
rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) .
rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) .

Em algumas ocasiões, surge a necessidade de se manipular informações organizadas em uma matriz (estrutura de dados homogênea bidimensional). Assim como toda variável, uma matriz também deve ser declarada. Dados os trechos de código abaixo, marque com “V” aquele (s) que você julgue estar correto (s) e, com “F”, o (s) incorreto (s):
Assinale a alternativa que contenha a sequência correta.
( ) int M[5][5];
( ) int M[5,5];
( ) int M[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
( ) int M[ ][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
( ) int [5]M[5];
V; F; V; F; F.
V; F; V; V; F.

Em certas situações, onde uma certa variável recebe, como valor de instanciação, um dentre dois valores, podemos substituir o comando “ if...else ” pelo comando condicional inline : o “ if ternário ”. Para essa questão, considere os seguintes trechos contendo as estruturas condicionais:
Associe os trechos com comandos condicionais aos condicionais ternários a seguir:
(A) if(a == b) { c=d; } else { c=e; }
(B) if(a==0) { x = x + 1; } else { x = x * b; }
(C) if(a!=0) { x=0; } else { x=1; }
(D) if((a == b)&&(c > d)) { e = f; } else { e = g; }
( ) x = (a) ? 0 : 1;
( ) x = (!a) ? x++ : x*=b;
( ) e=((a==b)&&(c>d)) ? e : f;
( ) c=(a==b)?d:e;

Prévia do material em texto

10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 1/9
Usuário BRUNO DE SOUZA
Curso GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-
8888.08
Teste 20212 - PROVA N2 (A5)
Iniciado 04/10/21 13:45
Enviado 04/10/21 18:57
Status Completada
Resultado da
tentativa
6 em 10 pontos 
Tempo decorrido 5 horas, 12 minutos
Instruções
Resultados
exibidos
Respostas enviadas, Respostas corretas, Comentários
Caso necessite a utilização do "EXCEL" clique no link ao lado -----------
> excel.xlsx
Pergunta 1
Resposta Selecionada: 
Resposta Correta: 
Comentário
da resposta:
Em C standard , uma das funções usadas para a impressão de conteúdo na tela
é oprintf . Tal comando permite adequar a impressão ao tipo e ao formato da
informação a ser exibida. Suponha que o usuário deseja realizar uma impressão
no seguinte formato:
 
“Valor da média = 3.21 - valor do caracter 'A' na tabela ASCII = 65 (hexa= 41)” 
Supondo que existam as seguintes variáveis instanciadas:
float media=3.21043891; 
carac = 'A'; 
Preencha os espaços do comando com os formatos corretos:
printf(“Valor da média = __ - valor do caracter '__' na tabela ASCII = __ (hexa= __)”,media,ca
rac,carac,carac); 
Agora assinale a alternativa que contenha as marcações corretas.
. %.2f ; %c ; %d; %x.
.%.2f ; %c ; %d; %x.
Parabéns! Sua resposta foi a correta! Como você pode ter notado, uma variável
poderá ser impressa em diferentes formatos como foi o caso da variável
“carac”. O formato “ x” permite que uma uma variável da família das variáveis
inteiras possa ser exibida na forma hexadecimal.
Pergunta 2
Denomina-se como matriz esparsa aquela que a quantidade de elementos não
nulos é mínima. Sendo assim, para economia de recursos de memória, aloca-se
apenas os campos que possuem valores representativos. Para essa questão,
analise as afirmativas abaixo e classifique com “S” aquelas que podem contribuir
para a implementação de matriz esparsa e, com “N”, aquelas que não podem.
 
( ) Podemos implementar matriz esparsa como uma matriz de ponteiro para
1 em 1 pontos
1 em 1 pontos
https://ibmr.blackboard.com/bbcswebdav/pid-18765808-dt-content-rid-84766551_1/xid-84766551_1
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 2/9
Resposta Selecionada: 
Resposta Correta: 
Comentário
da resposta:
ponteiro. Cada linha de ponteiros aponta para um vetor de ponteiros, onde cada
célula é uma estrutura composta pelos campos: valor e número da coluna.
( ) A matriz NxM é representada por um vetor com N*M células, onde cada
célula é um registro composto pelos campos: linha, coluna e valor.
( ) A matriz é formada por uma estrutura estática, independentemente do
número de elementos nulos.
( ) A matriz esparsa pode ser representada por uma matriz de ponteiro para
ponteiro onde cada linha aponta para uma coluna alocada dinamicamente cujo
tamanho é em função da quantidade dos elementos não nulos.
 
Assinale a alternativa que apresenta a sequência que você considera correta.
S, N, N, S.
S, N, N, S.
Parabéns! Sua resposta foi a correta! Realmente, é possível implementar uma
matriz esparsa utilizando matrizes constituídas por ponteiro para ponteiro. Cada
ponteiro da linha aponta para um vetor de ponteiros cujo tamanho é determinado
pela quantidade de células não nulas. Cada célula armazenada um registro
composto pelos campos “número da coluna” e valor.
Pergunta 3
Estruturas ou registros servem para armazenar informações heterogêneas de
modo a podermos agrupar informações de uma determinada entidade. Assim
como outros tipos de dados, os registros também poderão ser manipulados
como ponteiros. Suponha uma função para inserir um novo registro sempre na
última posição de um vetor. Para tanto, suponha uma estrutura do seguinte
formato:
 
typedef struct 
{ 
char nome_conta[30]; 
char cod_barras[48]; 
int dia_venc, mes_venc; 
float valor; 
} BOLETOS; 
 
O campo vazio é aquele que apresenta o campo “valor” igual a 0 (zero). Sendo
assim, observe o código a seguir e preencha as lacunas:
 
void CadastrarBoleto(BOLETOS b, BOLETOS ____ListaBoletos) 
{ 
int pos=0; 
while(____.valor!=0) 
pos++; 
memcpy(____,&b,sizeof(BOLETOS)); 
} 
. . . 
int main() 
{ 
BOLETOS *listabol, boleto; 
int i=0; 
listabol = (BOLETOS *)calloc(20,sizeof(BOLETOS)); 
if(listabol==NULL) 
{ 
0 em 1 pontos
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 3/9
Resposta
Selecionada:
 
Resposta Correta:
Comentário
da resposta:
printf("Erro de alocação.\n"); 
return 0; 
} 
boleto.valor = 100.34; 
strcpy(boleto.nome_conta,"LUZ"); 
. . . 
CadastrarBoleto(boleto,____listabol); 
. . . 
 
Assinale a alternativa que contém a sequência correta para o preenchimento das
lacunas.
* ; (ListaBoletos+pos) ; (*(ListaBoletos+pos)) ; &.
* ; (*(ListaBoletos+pos)) ; (ListaBoletos+pos) ; deixar em
branco.
Infelizmente a sua resposta está incorreta. Para responder essa questão, analise
melhor o comportamento dos vetores referenciados por ponteiros sendo passados
como parâmetros. Analise quando devemos usar ou não o símbolo “&” na
chamada da função. Para ajudar na reflexão, deixamos uma pergunta: No
comando “while”, precisamos do conteúdo ou da posição de memória?
Pergunta 4
Resposta Selecionada: 
Resposta Correta: 
Comentário
da resposta:
Na interface das funções, podemos encontrar as variáveis passadas por valor e as variáveis
passadas por referência. Para essa questão, analise as afirmativas abaixo: 
 
I – Na passagem por valor, as modificações realizadas internamente à função não impactam sobre
o valor da variável na origem da chamada da função. 
II – Na passagem por referência, qualquer alteração dentro da função, automaticamente altera o
valor da variável na origem pois ambas possuem o mesmo endereço de memória. 
III – No código: “ func(int a , float *b)”, a variável “ a” é passada por referência
enquanto que a variável “ b” é passada por valor. 
IV – Para realizar modificações ou acessar o conteúdo de variáveis passadas por referência, deve-
se usar variável precedida pelo sinal “ &” para indicar o seu conteúdo. Por exemplo, na função
“func(int a , float *b)”, para se instanciar a variável “ b”, dentro do código,
usaremos, por exemplo: “ &b = 5;”. 
 
Escolha a alternativa abaixo que você julgue ser a correta:
.Apenas as afirmativas II e II estão corretas.
.Apenas as afirmativas II e II estão corretas.
Parabéns! Sua resposta foi a correta! Realmente, a passagem de parâmetros por
referência, a posição de memória é a mesma da variável origem, o que
proporciona que ambas as variáveis estarão sempre sincronizadas. O acesso às
variáveis passadas por referência, no caso do função da afirmativa IV, é feito
mediante o uso do símbolo “*” (por exemplo, “ &b = 5;”).
Pergunta 5
Em algumas situações, temos a necessidade de contabilizar a quantidade de
certos elementos dentro de uma estrutura do tipo vetor. Para essa questão,
suponha que exista a necessidade de contar a quantidade de vogais para que,
1 em 1 pontos
0 em 1 pontos
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 4/9
Resposta
Selecionada:
 
Resposta
Correta:
Comentário
da resposta:
em seguida, as quantidades classificadas por cada vogal sejam impressas na
tela. Para isso, observe o código a seguir:
#include <stdio.h> 
#include <string.h> 
int main() 
{ 
char str[50]="testando a quantidade de vogais na frase."; 
int qtdVogais[5]={0,0,0,0,0}; 
for(int i=0; i<50; i++) 
switch(str[i]) 
{ 
case 'a': qtdVogais[0]=qtdVogais[0]++; 
case 'e': qtdVogais[1]=++; 
case 'i': qtdVogais[2]++; 
case 'o': qtdVogais[3]++; 
case'u': qtdVogais[4]++; 
} 
printf("A=%d E=%d I=%d O=%d U=%d\n",qtdVogais[0],qtdVogais[1], 
qtdVogais[2],qtdVogais[3],qtdVogais[4]); 
return 0; 
} 
O programa acima apresenta alguns erros. Com base na análise do código,
selecione a opção correta:
O programa está correto.
No código faltam os comandos “break” associado a cada caso do
“switch”. O critério de parada do laço de repetição não atende às
expectativas; o correto seria usar o “strlen(str)”.
Infelizmente a sua resposta não está correta. Para responder essa questão, pense
na diferença entre instanciar um vetor e uma string, de como coletar o tamanho
usado efetivamente por uma string e qual a composição completa do comando
“ switch”.
Pergunta 6
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) 
{ 
1 em 1 pontos
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 5/9
Resposta
Selecionada:
Resposta Correta:
Comentário
da resposta:
//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) .
rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ;
feof(arq) .
Parabéns! Sua resposta foi a correta! Você associou corretamente as lacunas com
as respectivas funções. Para o posicionamento no início do arquivo, poderia ser
usada, também, a função “ fseek(arq,0,SEEK_SET)”. Devido ao fato de ser
um arquivo binário, a leitura deve ser “ fread()” e o teste de final de arquivo,
independentemente do modo textual ou binário, é feito pela função “feof()”.
Pergunta 7
Resposta Selecionada: 
Resposta Correta: 
Comentário
da resposta:
Em algumas ocasiões, surge a necessidade de se manipular informações
organizadas em uma matriz (estrutura de dados homogênea bidimensional).
Assim como toda variável, uma matriz também deve ser declarada. Dados os
trechos de código abaixo, marque com “V” aquele (s) que você julgue estar
correto (s) e, com “F”, o (s) incorreto (s):
( ) int M[5][5]; 
( ) int M[5,5]; 
( ) int M[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 
( ) int M[ ][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 
( ) int [5]M[5]; 
Assinale a alternativa que contenha a sequência correta.
V; F; V; F; F.
V; F; V; V; F.
Infelizmente a sua resposta está incorreta. Para responder essa questão, lembre-
se que uma matriz sempre deve obedecer possuir em sua declaração, as
dimensões. Tente lembrar, também, qual seria a diferença entre a forma de
instanciação de uma string e um vetor?
Pergunta 8
Em certas situações, onde uma certa variável recebe, como valor de
instanciação, um dentre dois valores, podemos substituir o comando “ if...else ”
pelo comando condicional inline : o “ if ternário ”. Para essa questão, considere
os seguintes trechos contendo as estruturas condicionais:
(A) if(a == b) 
{ 
c=d; 
} 
else 
{ 
c=e; 
} 
(B) if(a==0) 
{ 
x = x + 1; 
} 
else 
0 em 1 pontos
0 em 1 pontos
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 6/9
Resposta Selecionada: 
Resposta Correta: 
Comentário
da resposta:
{ 
x = x * b; 
} 
(C) if(a!=0) 
{ 
x=0; 
} 
else 
{ 
x=1; 
}
(D) if((a == b)&&(c > d)) 
{ 
e = f; 
} 
else 
{ 
e = g; 
} 
Associe os trechos com comandos condicionais aos condicionais ternários a
seguir:
( ) x = (a) ? 0 : 1; 
( ) x = (!a) ? x++ : x*=b; 
( ) e=((a==b)&&(c>d)) ? e : f; 
( ) c=(a==b)?d:e; 
Escolha a opção que contém a sequência que você julgue ser a correta.
A; C; D; A.
C; B; D; A.
Infelizmente a sua resposta não está correta. Para essa questão, lembre-se que a
sintaxe genérica de um comando condicional ternário é: “ var = (expressão)
? valor_if : valor_else;”.
Pergunta 9
Um valor binário pode ser representado no padrão conhecido como BCD 8421
(Binary-coded Decimal – Decimal Codificado em Binário). Nesta codificação, os
valores 8421 representam o resultado de 2 i , onde i denota a posição do dígito
dentro da palavra. Por exemplo, 1001 (2) = 1*8 + 0*4 + 0*2 +1*1 = 9 (10) . Para
essa questão, suponha o seguinte código recursivo:
 
#include <stdio.h> 
#include <string.h> 
 
int Bin2Dec(char bin[],int pos,int exp) 
{ 
 if(____) return 0; 
 return (bin[pos]-48)*exp + Bin2Dec(bin,____,____); 
} 
 
int main() 
{ 
 char binario[9]="10011101"; //valor em decimal = 157 
 printf("Valor convertido: %d", Bin2Dec(binario,strlen(binario)-1,1)); 
 return 0; 
} 
 
Assinale a opção abaixo que contenha os trechos de código para preencher as
lacunas:
1 em 1 pontos
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 7/9
Domingo, 10 de Outubro de 2021 13h32min34s BRT
Resposta Selecionada: 
Resposta Correta: 
Comentário
da resposta:
. pos<0 ; pos-1 ; exp*2 .
. pos<0 ; pos-1 ; exp*2 .
Parabéns! Sua resposta foi a correta! Realmente o código foi implementado para
que a última posição fosse evocada antes para facilitar o cálculo do expoente – à
medida que se aproxima da posição 0 (início do vetor – posição mais significativa
do número binário), o expoente vai sendo multiplicado por 2. Sendo assim, a
posição foi descrementada a cada evocação da função recursiva. A posição 0 do
vetor também deveria ser manipulada – essa a razão do ( pos<0).
Pergunta 10
Resposta
Selecionada:
Resposta
Correta:
Comentário
da resposta:
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. Sempre será criado um arquivo novo, destruindo o
conteúdo caso já exista um arquivo com o mesmo nome.
Parabéns! Sua resposta foi a correta! Você observou bem que foi incluído o
símbolo ”+”, que indica que operações de escrita poderão ser realizadas além das
operações de escrita do símbolo “w”. O “w” indica ainda, que sempre será criado
um arquivo novo, destruindo o conteúdo do arquivo caso já exista. Além destas
informações, encontramos o símbolo “b” denotando que o arquivo a ser aberto
será do tipo binário.
1 em 1 pontos
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 8/9
10/10/2021 13:34 GRA1033 TÉCNICAS DE PROGRAMAÇÃO GR3342-212-9 - 202120.ead-8888.08
https://ibmr.blackboard.com/webapps/late-course_engine_soap-BBLEARN/Controller?COURSE_ID=_743908_1 9/9

Mais conteúdos dessa disciplina