AED – Lista 1 Exercícios básicos: 1. O código a seguir é um programa válido em C. Reescreva este programa usando as regras de indentação e boa formatação e descubra o que ele faz: #include <stdio.h> void imprime2(int max){int i;for(i=0;i<=max;i++){if(i%2==0){printf("%d ",i);}} printf("\n");}int main(){int a;printf("Digite um inteiro maior que 0: ");scanf("%d",&a);imprime2(a);return 0;} 1. Escreva um programa que imprima todos os números inteiros entre 31 e 123, inclusive, usando for. Reescreva o programa usando while. 2. Escreva um programa que pergunta um número real, um número inteiro e uma string de no máximo 80 caracteres e depois os imprime entre parênteses. Por exemplo, se for digitado o número 2.37, o número 23 e a string Joao da Silva, o programa imprimirá (2.370000) (23) (Joao da Silva). 3. A respeito de funções, defina os conceitos de argumento, parâmetro e valor de retorno e dê um exemplo. 4. Faça o teste de mesa do fragmento de código abaixo e descubra o que é impresso no final. int i, x = 0; for(i = 1; i != 10; i = i + 1) { if((i % 2 ==0) && (i % 3 != 0)) {x = x +i; }} printf("%d\n", x); Exercícios obrigatórios: 6. Faça um programa que dê os comandos abaixo: int x = 10; printf("%d, %d, %p\n", x, sizeof(x), &x); x = 100; printf("%d, %d, %p\n", x, sizeof(x), &x); x = 1000; printf("%d, %d, %p\n", x, sizeof(x), &x); Explique os resultados. 7. Considere a declaração int a[20]. Suponha que sizeof(int) seja 4 e que o comando printf("%p\n", a); imprima 0x00000ef4. Qual o número de elementos do vetor a? Quanto espaço ele ocupa na memória? Qual o endereço do primeiro e do último elemento em notação decimal e hexadecimal? 8. Considere a declaração double m[5][5] e suponha que sizeof(double) seja 8. Quantos elementos tem a matriz m e quanto espaço ela ocupa na memória? Suponha que o comando printf("%p\n", m); AED – Lista 1 imprima 0x000001a4. Qual será o resultado do comando abaixo? printf("%p, %p, %p, %p\n", &m[0][0], &m[0][4], &m[2][3], &m[4][4]); 1. Faça um programa que lê 10 números inteiros digitados pelo usuário e os guarde em um vetor. Em seguida, o programa deve procurar e imprimir o maior número digitado. 2. Faça um programa que leia uma string de no máximo 80 caracteres digitada pelo usuário e em seguida substitua todos os espaços por + e imprima o resultado. Por exemplo, se o usuário digitou algoritmos e estruturas de dados o programa tem que imprimir algoritmos+e+estruturas+de+dados. 3. Faça um programa que declara e preenche uma matriz de inteiros de 10 linhas e 10 colunas de acordo com as seguintes regras: os elementos fora das diagonais principal e secundária devem conter a soma do número da sua linha com o número da sua coluna, e os elementos das diagonais devem ser zero. Em seguida, a matriz deve ser impressa. 4. Crie um programa que lê uma matriz de inteiros 5x5 digitada pelo usuário e em seguida imprima a diagonal principal, a diagonal secundária e as 4 bordas da matriz. 5. Considere o código abaixo: int i, m[4][4]; for(i = 0; i < 16;i++) { m[i / 4][i %4] = i / 4 + i % 4 + 4; } printf("%d\n", m[2][3]); Faça o teste de mesa e descubra o que o printf vai imprimir. Reescreva o programa com índices separados de linha e coluna e um duplo laço. 14. Explique a seguinte frase: vetores e matrizes em C são estruturas de dados homogêneas, indexadas por inteiros e fisicamente contíguas. Exercícios de aprofundamento: 11. Escreva um programa que lê 5 linhas de texto de no máximo 80 caracteres cada e armazena estas linhas em uma matriz de caracteres. Cada linha desta matriz deve conter uma linha de texto digitada. Em seguida, o programa deve contar o número de caracteres e o número de palavras digitados e imprimir o texto. 17. Crie um programa que leia 10 números reais e os armazene em um vetor. Em seguida, o programa deve calcular a média destes números e quantos destes números estão acima da média. 16. Crie um programa que declara uma matriz de doubles 5x4 e inicializa todos os elementos com 0. Em seguida, o programa deve entrar em um laço que aceita 3 comandos: imprimir a matriz, alterar qualquer elemento das 3 primeiras colunas ou sair. O valor dos elemento na 4 coluna deve ser sempre a média dos elementos das três primeiras colunas na mesma linha (deve ser atualizado sempre que a matriz for alterada).