Linguagens de Programação - Atividade 11

Leia com atenção as instruções abaixo.

Formato da Entrega:

Valor: 2,0 pontos na 2ª Nota.

Data da Entrega Limite: 01/10/2020

Questão 01 - 1,0 Ponto

Assuma as seguintes regras de associatividade e de precedência para expressões:

Precedência Mais Alta *, /, not
+, -, &, mod
- (unário)
=, /=, <, <=, >=, >
and
Mais baixa or, xor
Associatividade Esquerda para a direita

Mostre a ordem de avaliação das seguintes expressões por meio do uso de parênteses em todas as subexpressões e colocando um expoente no parêntese direito para indicar a ordem. Por exemplo, para a expressão:

a + b * c + d
                            

a ordem de avaliação seria representada como:

((a + (b * c)1)2 + d)3
                            

Questão 02 - 0,5 Pontos

Considere que a função fun é definida como:

int fun(int *k) {
    *k += 4;
    return 3 * (*k) - 1 ;
}
                            

Suponha que fun seja usada em um programa, como:

void main() {
    int i = 10, j = 10, sum1, sum2;
    sum1 = (i / 2) + fun(&i);
    sum2 = fun(&j) + (j / 2);
}
                            

Quais são os valores de sum1 e sum2

Questão 03 - 0,5 Pontos

Considere que o seguinte programa em C:

int fun(int *i) {
    *i += 5;
    return 4;
}

void main() {
    int x = 3;
    x = x + fun(&x);
}
                            

Qual é o valor de x após a sentença de atribuição em main, assumindo que