ProgII - Lista 5

Fazer os seguintes programas:

  1. Levando-se em conta que:

    O que será exibido na saída padrão quando o programa abaixo for executado?

    int main() {
            int     varInt = 444;
            double  varDouble = 4.4;
            int     varInt2 = 555;
            int*    p1;
            double* p2;
            void*   p3;
            double* p4;
    
            printf("sizeof: p1 = %d p2 = %d p3 = %d\n",sizeof(p1),sizeof(p2),sizeof(p3));
            p1 = &varInt;
            p2 = &varDouble;
            p3 = &varInt2;
            printf("p1 = &varInt\n");
            printf("p2 = &varDouble\n");
            printf("p3 = &varInt2\n");
            printf("identificador\tEndereco\tConteudo\n");
            printf("varInt\t\t%d\t\t%d\n",  &varInt, varInt);
            printf("varDouble\t%d\t\t%f\n", &varDouble, varDouble);
            printf("varInt2\t\t%d\t\t%d\n", &varInt2, varInt2);
            printf("p1\t\t%d\t\t%d\n",              &p1, p1);
            printf("p2\t\t%d\t\t%d\n",              &p2, p2);
            printf("p3\t\t%d\t\t%d\n",              &p3, p3);
            p3 = &varDouble;
            printf("p3 = &varDouble\n");
            printf("identificador\tEndereco\tConteudo\n");
            printf("p3\t\t%d\t\t%d\n",              &p3, p3);
            printf("*p1 = %d\n", *p1);
            printf("*p2 = %f\n", *p2);
            p4 = (double *) p3;
            printf("*p4 = %f\n", *p4);
    
            return 0;
    }
  2. O que será exibido na saída padrão quando o programa abaixo for executado:
    int main() {
            float   var1 = 2.22;
            float   var2 = 6.66;
            int     var3 = 4;
            float*  p1 = &var1;
            float*  p2 = &var2;
            int*    p3 = &var3;
    
            //O conteúdo da variável apontada por p1 recebe
            //o conteúdo da variável apontada por p2
            *p1 = *p2;
            printf("var1 = %f\n", var1);
            printf("var2 = %f\n", var2);
            //O conteúdo da variável apontada por p1 recebe 1.11
            *p1 = 1.11;
            printf("var1 = %f\n", var1);
            printf("var2 = %f\n", var2);
            //p1 aponta para onde p2 aponta
            p1 = p2;
            *p1 = 9.99;
            printf("var1 = %f\n", var1);
            printf("var2 = %f\n", var2);
    
            return 0;
    }
  3. O que será exibido na saída padrão quando o programa abaixo for executado:
    int main() {
            int     var1 = 444;
            int     var2 = 555;
            double  var3 = 4.4;
            int     var4[] = {15, 20, 30};
            int*    p1 = &var1;
            int*    p2 = &var2;
            double* p3 = &var3;
            int*    p4 = var4; //ou p4 = &var4[0]
    
            printf("*p1 = %d\n", *p1);
            printf("*p2 = %d\n", *p2);
            printf("*p3 = %f\n", *p3);
            printf("*p4 = %d\n", *p4);
            printf("*p4+1 = %d\n", *p4+1);
            printf("*(p4 + 1) = %d\n", *(p4 + 1));
            printf("var4[1] = %d\n", var4[1]);
    
            //O conteudo da variavel apontada por p1 recebe
            //o conteudo da var. apontada por p2
            *p1 = *p2;
            printf("var1 = %d\n", var1);
            printf("var2 = %d\n", var2);
            //O conteudo da variavel apontada por p1 recebe 111
            *p1 = 111;
            printf("var1 = %d\n", var1);
            printf("var2 = %d\n", var2);
            //p1 aponta para onde p2 aponta
            p1 = p2;
            *p1 = 66;
            printf("var1 = %d\n", var1);
            printf("var2 = %d\n", var2);
            //p1 aponta para o elemento de indice 0 de var4
            p1 = &var4[0];
            printf("*p1 = %d\n", *p1);
            p1 = var4;
            printf("*p1 = %d\n", *p1);
            var1 = *p1 * 100;
            printf("var1 = %d\n", var1);
    
            return 0;
    }
  4. Faca os seguintes exercícios do livro do Deitel:
    1. Página 247, Exercícios de Revisão.
    2. Página 249, do número 7.7 ao 7.11
    3. Página 257, 7.24 (Desafio!)
    4. Página 258, 7.25 (Desafio!)
    5. Página 258, 7.26 (Desafio!)

Por © Sidney Batista Filho - 18/05/2004