Questões de Informática · INEP (ENEM)

InformáticaEstruturas de dadosINEP (ENEM) 2014

ENADE

Questão de Informática

hŵĂƉŝůŚĂĠƵŵĂĞƐƚƌƵƚƵƌĂĚĞĚĂĚŽƐƋƵĞĂƌŵĂnjĞŶĂ ƵŵĂ ĐŽůĞĕĆŽ ĚĞ ŝƚĞŶƐ ĚĞ ĚĂĚŽƐ ƌĞůĂĐŝŽŶĂĚŽƐ Ğ ƋƵĞ ŐĂƌĂŶƚĞŽƐĞŐƵŝŶƚĞĨƵŶĐŝŽŶĂŵĞŶƚŽ͗ŽƷůƟŵŽĞůĞŵĞŶƚŽ ĂƐĞƌŝŶƐĞƌŝĚŽĠŽƉƌŝŵĞŝƌŽĂƐĞƌƌĞŵŽǀŝĚŽ͘ĐŽŵƵŵ ŶĂ ůŝƚĞƌĂƚƵƌĂ ƵƟůŝnjĂƌ ŽƐ ŶŽŵĞƐ push e pop ƉĂƌĂ ĂƐ ŽƉĞƌĂĕƁĞƐ ĚĞ ŝŶƐĞƌĕĆŽ Ğ ƌĞŵŽĕĆŽ ĚĞ Ƶŵ ĞůĞŵĞŶƚŽ Ğŵ ƵŵĂ ƉŝůŚĂ͕ ƌĞƐƉĞĐƟǀĂŵĞŶƚĞ͘ K ƐĞŐƵŝŶƚĞ ƚƌĞĐŚŽ ĚĞĐſĚŝŐŽĞŵůŝŶŐƵĂŐĞŵĚĞĮŶĞƵŵĂĞƐƚƌƵƚƵƌĂĚĞ ĚĂĚŽƐ ƉŝůŚĂ ƵƟůŝnjĂŶĚŽ Ƶŵ ǀĞƚŽƌ ĚĞ ŝŶƚĞŝƌŽƐ͕ ďĞŵ ĐŽŵŽĂůŐƵŵĂƐĨƵŶĕƁĞƐƉĂƌĂƐƵĂŵĂŶŝƉƵůĂĕĆŽ͘ #include <stdlib.h> #include <stdio.h> typedef struct { int elementos[100]; int topo; }pilha; pilha * cria_pilha() { pilha * p =malloc(sizeof(pilha)); p->topo = -1; return pilha; } void push(pilha *p, int elemento) { if (p->topo >= 99) return; p->elementos[++p->topo] = elemento; } int pop(pilha *p) { int a = p->elementos[p->topo]; p->topo--; return a; } KƉƌŽŐƌĂŵĂĂƐĞŐƵŝƌƵƟůŝnjĂƵŵĂƉŝůŚĂ͘ int main() { pilha * p = cria_pilha(); push(p, 2); push(p, 3); push(p, 4); pop(p); push(p, 2); int a = pop(p) + pop(p); push(p, a); a += pop(p); printf(“%d”, a); return 0; } ĞƐƐĞƌĞƐƉĞŝƚŽ͕ĂǀĂůŝĞĂƐĂĮƌŵĂĕƁĞƐĂƐĞŐƵŝƌ͘ /͘ ĐŽŵƉůĞdžŝĚĂĚĞ ĐŽŵƉƵƚĂĐŝŽŶĂů ĚĞ ĂŵďĂƐ ĨƵŶĕƁĞƐpush e popĠK;ϭͿ͘ //͘ KǀĂůŽƌĞdžŝďŝĚŽƉĞůŽƉƌŽŐƌĂŵĂƐĞƌŝĂŽŵĞƐŵŽ ĐĂƐŽ Ă ŝŶƐƚƌƵĕĆŽ a += pop(p)͖ ĨŽƐƐĞ ƚƌŽĐĂĚĂƉŽƌa += a͖ ///͘ ŵ ƌĞůĂĕĆŽ ĂŽ ǀĂnjĂŵĞŶƚŽ ĚĞ ŵĞŵſƌŝĂ ;memory leakͿ͕ Ġ ŽƉĐŝŽŶĂů ĐŚĂŵĂƌ Ă ĨƵŶĕĆŽ free(p)͕ ƉŽŝƐ Ž ǀĞƚŽƌ ƵƐĂĚŽ ƉĞůĂ ƉŝůŚĂ Ġ ĂůŽĐĂĚŽĞƐƚĂƟĐĂŵĞŶƚĞ͘ ĐŽƌƌĞƚŽŽƋƵĞƐĞĂĮƌŵĂĞŵ

Sua resposta

Mais questões de Estruturas de dados

Ver as 1.100 questões de Estruturas de dados

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.