Prévia do material em texto
<p>(</p><p>U</p><p>NIVERSIDADE</p><p>F</p><p>EDERAL DO</p><p>A</p><p>MAZONAS</p><p>I</p><p>NSTITUTO</p><p>DE</p><p>C</p><p>I</p><p>E</p><p>ˆ</p><p>N</p><p>C</p><p>I</p><p>AS</p><p>E</p><p>XATAS</p><p>E</p><p>T</p><p>ECNOLOGIA</p><p>S</p><p>ISTEMAS DE</p><p>I</p><p>N</p><p>F</p><p>O</p><p>R</p><p>M</p><p>A</p><p>C</p><p>¸</p><p>A</p><p>˜</p><p>O</p><p>)</p><p>ITI255 - Algoritmos e Estrutura de Dados I, 2024/01</p><p>Prof. Rainer Xavier de Amorim</p><p>Gabriela rodrigues Conceição</p><p>Lista de Exerc´ıcios I</p><p>Ponteiros</p><p>1. O que imprime o programa a seguir? Tente entendˆe-lo e responder. A seguir, execute-o e comprove o resultado.</p><p>(</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>i</p><p>n</p><p>t</p><p>main</p><p>(</p><p>)</p><p>{</p><p>i</p><p>n</p><p>t</p><p>t</p><p>,</p><p>i</p><p>,</p><p>M[</p><p>3</p><p>]</p><p>[</p><p>4</p><p>]</p><p>;</p><p>f</p><p>o</p><p>r</p><p>(</p><p>t</p><p>=0;</p><p>t</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>i</p><p>n</p><p>t</p><p>main</p><p>(</p><p>)</p><p>{</p><p>i</p><p>n</p><p>t</p><p>y</p><p>,</p><p>*</p><p>p</p><p>,</p><p>x</p><p>; y</p><p>=</p><p>0</p><p>;</p><p>p</p><p>=</p><p>&y</p><p>;</p><p>)Qual o valor de y no final do programa? Tente primeiro descobrir e depois verifique no computa- dor o resultado. A seguir, escreva um /* coment´ario */ em cada comando de atribui¸c˜ao explicando o que ele faz e o valor da vari´avel `a esquerda do ’=’ ap´os sua execu¸c˜ao.</p><p>(</p><p>x</p><p>=</p><p>*</p><p>p</p><p>;</p><p>x</p><p>=</p><p>4</p><p>;</p><p>(</p><p>*</p><p>p)++;</p><p>(</p><p>*</p><p>p</p><p>)</p><p>+=</p><p>x</p><p>;</p><p>p</p><p>r</p><p>i</p><p>n</p><p>t</p><p>f</p><p>(</p><p>”y</p><p>=</p><p>%d</p><p>\</p><p>n</p><p>”,</p><p>y</p><p>)</p><p>;</p><p>system</p><p>(</p><p>”pause</p><p>”)</p><p>; r</p><p>e</p><p>t</p><p>u</p><p>r</p><p>n (</p><p>0</p><p>)</p><p>;</p><p>}</p><p>)</p><p>(</p><p>#include</p><p>#include</p><p>#include</p><p>int main() {</p><p>int y, *p, x; // Declara as variáveis inteiras y, p e x</p><p>y = 0; // Inicializa y com 0</p><p>p = &y; // p aponta para o endereço de y</p><p>x = *p; // x recebe o valor de y (0)</p><p>x = 4; // Atualiza x para 4</p><p>(*p)++; // Incrementa o valor apontado por p (y), resultando em 1</p><p>(*p) += x; // Adiciona x (4) ao valor apontado por p (y), resultando em 5</p><p>printf("y = %d\n", y); // Imprime o valor final de y (5)</p><p>system("pause"); // Pausa a execução do programa até que uma tecla seja pressionada</p><p>return 0; // Retorna o valor de sucesso (0)</p><p>}</p><p>)RESPOSTA: a resposta é 5,</p><p>(</p><p>1</p><p>)</p><p>3. Qual o conteu´do final:</p><p>a) Das vari´aveis a, b e c?</p><p>a: O valor final de a é desconhecido. Inicialmente, a é 5, mas depois pt1 (que apontava para a é alterado para apontar para v[3]. Como nenhuma modificação direta é feita em a após essa alteração, seu valor final depende se algo no código modifica o elemento v[3] do vetor v.</p><p> b: O valor final de b é 6. Nenhuma alteração é feita diretamente em b durante o programa.</p><p> c: O valor final de c é 7. Similar a b, nenhuma alteração direta é feita em c durante o programa.</p><p>b) Do vetor v?</p><p> v[0]: Valor desconhecido (inicialmente era 0).</p><p> v[1]: Valor desconhecido (inicialmente era 10).</p><p> v[2]: Valor desconhecido (inicialmente era 20).</p><p> v[3]: O valor final depende do valor inicial de a. Inicialmente era 30, mas pt1 é alterado para apontar para v[3] e depois tem seu valor modificado pela adição de *pt2 + *pt3.</p><p> v[4]: Valor desconhecido (inicialmente era 40).</p><p> v[5]: Valor desconhecido (inicialmente era 50).</p><p> v[6]: Valor desconhecido (inicialmente era 60).</p><p> v[7]: Valor desconhecido (inicialmente era 70).</p><p> v[8]: Valor desconhecido (inicialmente era 80).</p><p> v[9]: Valor desconhecido (inicialmente era 90).</p><p>(</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>i</p><p>n</p><p>t</p><p>main</p><p>(</p><p>)</p><p>{</p><p>i</p><p>n</p><p>t</p><p>a=5</p><p>,</p><p>b=6</p><p>,</p><p>c</p><p>=7;</p><p>i</p><p>n</p><p>t</p><p>v</p><p>[</p><p>1</p><p>0</p><p>]</p><p>=</p><p>{</p><p>0</p><p>,</p><p>1</p><p>0</p><p>,</p><p>2</p><p>0</p><p>,</p><p>3</p><p>0</p><p>,</p><p>4</p><p>0</p><p>,</p><p>5</p><p>0</p><p>,</p><p>6</p><p>0</p><p>,</p><p>7</p><p>0</p><p>,</p><p>8</p><p>0</p><p>,</p><p>9</p><p>0</p><p>}</p><p>;</p><p>i</p><p>n</p><p>t</p><p>*</p><p>pt1</p><p>,</p><p>*</p><p>pt2</p><p>,</p><p>*</p><p>pt</p><p>3</p><p>;</p><p>pt</p><p>1</p><p>= &a</p><p>;</p><p>pt</p><p>2</p><p>= &b</p><p>;</p><p>pt</p><p>3</p><p>=</p><p>&c</p><p>;</p><p>pt</p><p>1</p><p>=</p><p>pt</p><p>3</p><p>;</p><p>pt</p><p>2</p><p>=</p><p>pt</p><p>3</p><p>;</p><p>*</p><p>pt</p><p>1</p><p>=</p><p>*</p><p>pt</p><p>2</p><p>+</p><p>*</p><p>pt</p><p>3</p><p>;</p><p>pt</p><p>1</p><p>=</p><p>&v</p><p>[</p><p>3</p><p>]</p><p>;</p><p>f</p><p>o</p><p>r</p><p>(</p><p>i</p><p>n</p><p>t</p><p>k=0;</p><p>k</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>i</p><p>n</p><p>t</p><p>main</p><p>(</p><p>)</p><p>)</p><p>(</p><p>{</p><p>i</p><p>n</p><p>t</p><p>a=5</p><p>,</p><p>b=6</p><p>,</p><p>c</p><p>=7;</p><p>i</p><p>n</p><p>t</p><p>v</p><p>[</p><p>1</p><p>0</p><p>]</p><p>=</p><p>{</p><p>0</p><p>,</p><p>1</p><p>0</p><p>,</p><p>2</p><p>0</p><p>,</p><p>3</p><p>0</p><p>,</p><p>4</p><p>0</p><p>,</p><p>5</p><p>0</p><p>,</p><p>6</p><p>0</p><p>,</p><p>7</p><p>0</p><p>,</p><p>8</p><p>0</p><p>,</p><p>9</p><p>0</p><p>}</p><p>;</p><p>i</p><p>n</p><p>t</p><p>*</p><p>pt1</p><p>,</p><p>*</p><p>pt2</p><p>,</p><p>*</p><p>pt</p><p>3</p><p>;</p><p>pt</p><p>1</p><p>= &a ;</p><p>pt</p><p>2</p><p>= &b ;</p><p>pt</p><p>3</p><p>= &c ;</p><p>pt</p><p>2</p><p>=</p><p>pt</p><p>1</p><p>;</p><p>*</p><p>pt</p><p>3</p><p>=</p><p>*</p><p>pt</p><p>2</p><p>+</p><p>2000</p><p>;</p><p>pt</p><p>1</p><p>=</p><p>&v [</p><p>8</p><p>]</p><p>;</p><p>f</p><p>o</p><p>r</p><p>(</p><p>i</p><p>n</p><p>t</p><p>k=0;</p><p>k</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>#i</p><p>n</p><p>c</p><p>l</p><p>u</p><p>d</p><p>e</p><p>i</p><p>n</p><p>t</p><p>main</p><p>(</p><p>)</p><p>{</p><p>i</p><p>n</p><p>t</p><p>i</p><p>n</p><p>t</p><p>i</p><p>n</p><p>t</p><p>a=5</p><p>,</p><p>b=6</p><p>,</p><p>c</p><p>=7;</p><p>v</p><p>[</p><p>1</p><p>0</p><p>]</p><p>*</p><p>pt1</p><p>,</p><p>=</p><p>{</p><p>0</p><p>,</p><p>1</p><p>0</p><p>,</p><p>2</p><p>0</p><p>,</p><p>3</p><p>0</p><p>,</p><p>4</p><p>0</p><p>,</p><p>5</p><p>0</p><p>,</p><p>6</p><p>0</p><p>,</p><p>7</p><p>0</p><p>,</p><p>8</p><p>0</p><p>,</p><p>9</p><p>0</p><p>}</p><p>;</p><p>*</p><p>pt2</p><p>,</p><p>*</p><p>pt</p><p>3</p><p>;</p><p>pt</p><p>1</p><p>=</p><p>&a</p><p>;</p><p>pt</p><p>2</p><p>= &b</p><p>;</p><p>pt</p><p>3</p><p>= &c</p><p>;</p><p>pt</p><p>1</p><p>=</p><p>pt</p><p>2 ;</p><p>pt</p><p>3</p><p>=</p><p>pt</p><p>2</p><p>;</p><p>*</p><p>pt</p><p>2</p><p>=</p><p>*</p><p>pt</p><p>3</p><p>+</p><p>1000</p><p>;</p><p>pt</p><p>1</p><p>=</p><p>v ;</p><p>pt</p><p>1</p><p>=</p><p>pt</p><p>1</p><p>+</p><p>1</p><p>;</p><p>f</p><p>o</p><p>r</p><p>(</p><p>i</p><p>n</p><p>t</p><p>k=0;</p><p>k</p><p>o</p><p>n</p><p>ta</p><p>d</p><p>o</p><p>r</p><p>/</p><p>v</p><p>a</p><p>l</p><p>o</p><p>r</p><p>/</p><p>v</p><p>a</p><p>l</p><p>o</p><p>r</p><p>/</p><p>e</p><p>n</p><p>d</p><p>e</p><p>r</p><p>e</p><p>¸c</p><p>o</p><p>/</p><p>e</p><p>n</p><p>d</p><p>e</p><p>r</p><p>e</p><p>¸c</p><p>o</p><p>”)</p><p>; f</p><p>o</p><p>r ( i</p><p>=</p><p>0</p><p>;</p><p>i</p>