Buscar

Considere o código em C mostrado abaixo: #include typedef struct x{ int i; struct x* y; }* tx; tx f (int n, tx m) { ...

Considere o código em C mostrado abaixo:
#include
typedef struct x{
int i;
struct x* y;
}* tx;
tx f (int n, tx m) {
tx l = (tx) malloc (sizeof(struct x));
l->i = n;
l->y = m;
return l;
}
int g (void) {
tx p, q;
int s = 0;
q = f(1, f(1, f(2, f(3, f(5, f(8, 0))))));
q->y=q->y->y;
p = q;
while (p) {
s+=p->i;
p=p->y;
}
return s;
}
O valor retornado na chamada da função g, será:


A) 13
B) 17
C) 18
D) 19
E) 20

Essa pergunta também está no material:

UFES 2010 - sem específicas
16 pág.

Todas As Disciplinas OutrosOutros

💡 1 Resposta

User badge image

Ed Verified user icon

O valor retornado na chamada da função g será 19. Explicação: A função f cria uma lista encadeada, onde cada nó tem um valor inteiro e um ponteiro para o próximo nó. A função g cria uma lista encadeada com os valores 1, 1, 2, 3, 5, 8 e 0. Em seguida, o segundo nó da lista é removido, fazendo com que a lista se torne 1, 2, 3, 5, 8 e 0. Em seguida, a função g percorre a lista e soma os valores dos nós, resultando em 19.

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais