wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Ponteiros em C - Alocação Dinâmica e Passagem por Referência

Total questions: 24

Worksheet time: 1hrs 4mins

Name
Class
Date
1.

Quais as principais aplicações do tipo ponteiro na linguagem C?

a)

Guardar um endereço de memória de uma variável pré-existente no programa

b)

Para acessar as posições de um vetor ou matriz

c)

Para acessar uma área de memória alocada dinamicamente e implementar passagem de parâmetro por valor

d)

Para acessar uma área de memória alocada dinamicamente e implementar passagem de parâmetro por referência

2.

Um ponteiro pode ser utilizado de qual maneira?

a)

Trabalha com o endereço armazenado no ponteiro;

b)

Trabalha com a memória do ponteiro;

c)

Trabalha com a área de memória pontada pelo ponteiro;

d)

Trabalha com o endereço do ponteiro;

3.

O que fornece o operador de valor indireto - * - em C?

a)

Fornece o valor da memoria;

b)

Fornece o valor que está inserido naquela posição de memória;

c)

Fornece o endereço da memória;

d)

Fornece o endereço da posição de memória

4.

Em um programa em C,

int a = 20;

*ptr = &a;

**dptr = &ptr;

printf ("%d", **dptr);


apresenta

a)

Endereço de a

b)

Endereço de ptr

c)

Valor de a

d)

Endereço de dptr

5.

No seguinte código:


double X = 20;

double *Ptr = &X;

*Ptr = X * X;


Qual é o valor de X?

a)

0

b)

40

c)

400

d)

800

6.

Considere o seguinte código:


Ptr = malloc(10*sizeof(double*));


Como deve ser declarado a variável Ptr?

a)

double Ptr;

b)

double *Ptr;

c)

double **Ptr;

d)

Nenhuma das anteriores

7.

What is passed when we pass an array as a function argument?

a)

Base address of an array

b)

Address of the last element of array

c)

First value of elements in array

d)

All value of element in array

8.

Select the correct statement which is a combination of these two statements,

Statement 1: p= (char*) malloc(100);

Statement 2: char *p;

a)

char *p = (char*)malloc(100);

b)

char *p = (char) malloc(100);

c)

char p = *malloc(100);

d)

None of the above

9.

For the below mention C statement, what is your comment?

signed int *p=(int*)malloc(sizeof(unsigned int));

a)

Would throw Runtime error

b)

Improper typecasting

c)

Memory will be allocated but cannot hold an int value in the memory

d)

No problem with the statement

10.

Which library is needed for Dynamic memory allocation?

a)

malloc.h

b)

memory.h

c)

stdlib.h

d)

calloc.h

11.

If ptr is a pointer variable pointing to an array, then

"printf("%d",*(ptr++)) ;"

statement will print :

a)

Next location address

b)

Next location index value

c)

Next location value

d)

Compile time error

12.

malloc() stands for :

a)

malicious location

b)

memory allocation

c)

multiple allocation

d)

multi-alternate locations

13.

Dynamically allocated memory is released by :

a)

release()

b)

dealloc()

c)

free()

d)

Compiler automatically

14.

Passing address to a function as parameters is called

a)

Default function call

b)

Call by value

c)

Call by reference

d)

Call by pointers

15.

The code to swap the values of two variables using pointers is given : TRUE / FALSE ?


temp = &ptr1 ;

&ptr1 = &ptr2 ;

&ptr2 = temp ;

a)

TRUE

b)

FALSE

16.

From the given code, find the output :

char a[3] = {'a', '5' , '$'};

ptr=a;

for(i=1;i<=3;i++)

printf("%ld", a++);

a)

a 5 $

b)

124563 124564 124565

c)

124563 124567 124571

d)

Junk : 125845658 -25648569 -2564875

17.

Como se aloca memória em C ?

a)

int *x = (int)malloc(sizeof(int));

b)

int *x = (int*)malloc(sizeof(*int));

c)

int x = malloc(sizeof(int);

d)

int *x = (int*)malloc(sizeof(int));

18.

No código abaixo, a função imprimeMediaIdades(idade1,idade2) não é executada porquê?


#include <stdio.h>


int main(){

int idade1, idade2;

scanf("%d %d",&idade1,&idade2);

imprimeMediaIdades(idade1,idade2);

}


void imprimeMediaIdades(int idade1, int idade2){

printf("A média das idade é: %f", ((n1+n2)/2));

}

a)

A função imprimeMediaIdades não é a mesma função implementada fora da função Main.

b)

A função imprimeMediaIdades não foi definida antes da chamada da função Main (que executa o programa pela primeira vez)

c)

Há um erro de lógica na implementação da função imprimeMediaIdades

d)

A função scanf está com erro de sintaxe

19.

O que é um ponteiro em Linguagem C?

a)

É um endereço de uma outra variável;

b)

É o endereço de uma variável;

c)

É um variável que armazena o endereço de outra variável;

d)

É a variável que armazena outra variável;

20.

A função malloc em aloca memória da área de pilha do programa?

a)

Sim

b)

Não

21.

Em qual área de memória do programa é realizada a alocação de células livres quando se utiliza a função malloc?

a)

Área de Dados

b)

Área de Pilha

c)

Área de Heap

d)

Área de Código

22.

A função malloc do C solicita a alocação de memória em que tempo do programa?

a)

Tempo de compilação

b)

Tempo de Execução

c)

Tempo de Carregamento

d)

Tempo de Ligação

23.

A função malloc realizar a alocação de memória dinamicamente. Como é realizada a liberação (desalocação) desta área de memória em C?

a)

O coletor de lixo (garbage collector) do C realiza a liberação

b)

Ao desvincular um ponteiro da área de memória ela é liberada automaticamente

c)

A função malloc tem que ser chamada novamente com o argumento 0 (zero)

d)

O programador tem que liberá-la explicitamente usando a função free

24.

Em C parâmetros são sempre passados por?

a)

Valor

b)

Referência

c)

Ambos, valor e referência

d)

não-ponteiro por valor e ponteiro por referência