wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Ponteiros em C

Total questions: 24

Worksheet time: 1hrs 9mins

Name
Class
Date
1.

O que é um ponteiro na Linguagem C?

a)

É o endereço de uma variável;

b)

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

c)

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

d)

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

2.

O endereço de uma variável é dado pelo operador?

a)

$

b)

&

c)

*

d)

#

3.

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;

4.

Uma variável input foi alocada no endereço de memória EFC200 e seu valor e 1250. Qual o valor de input?

a)

EFC200

b)

3250

c)

2250

d)

1250

5.

Considerando a seguinte parte de um código em C:


int c = 34;

int *pc;


pc = &c


Sabendo-se que c se encontra no endereço de memória 500. Qual o conteúdo de pc?

a)

34

b)

500

c)

534

d)

100

6.

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

7.

Considerando o seguinte fragmento de código:


int *ponteiro;

int pont[3] = {1,2,3};

ponteiro = pont;


Qual o valor de *ponteiro?

a)

1

b)

2

c)

Um endereço qualquer de memória

d)

{1,2,3}

8.

Considerando o seguinte frgmento de código:


int *pt;

int pon[3] = {100,200,300};

pt = pon;


Qual o valor de *pt+2?

a)

100

b)

200

c)

300

d)

{100,200,300}

9.

Em um programa em C se

int a = 5;

Int *ptr = &a;

então o comando printf com

&a, a, *ptr , ptr

corresponde a:

a)

endereço, valor, valor, endereço

b)

endereço, valor,valor,valor

c)

todos os endereços

d)

todos os valores

10.

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

11.

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

Se ptr é um ponteiro para um vetor, então

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

mostrará :

a)

Próximo endereço

b)

Próximo índice do vetor

c)

O valor da próxima localização do vetor

d)

Erro em tempo de compilação

12.

Qual será a saída do código abaixo

int i=10;

int *p;

p=&i;

i+=5;

printf("\n i=%d *p=%d", i,*p)

a)

i=10, *p=10

b)

i=10, *p=15

c)

i=15, *p=15

d)

i=15, *p=10

13.

Seja o seguinte trecho de programa:


int i=3,j=5;

int *p, *q;

p = &i;

q = &j;


Qual é o valor da seguinte expressão?


p == &i;

a)

true

b)

false

c)

3

d)

4

14.

Seja o seguinte trecho de programa:


int i=3,j=5;

int *p, *q;

p = &i;

q = &j;


Qual é o valor da seguinte expressão?


*p - *q

a)

0

b)

2

c)

8

d)

-2

15.

Seja o seguinte trecho de programa:


int i=3,j=5;

int *p, *q;

p = &i;

q = &j;


Qual é o valor da seguinte expressão?


**&p

a)

5

b)

3

c)

8

d)

2

16.

Seja o seguinte trecho de programa:


int i=3,j=5;

int *p, *q;

p = &i;

q = &j;


Qual é o valor da seguinte expressão?


3* - *p/(*q)+7

a)

21

b)

12

c)

6

d)

34

17.

Qual o valor de i após a execução trecho de código abaixo?


int i = 17;

int *p = &i;

*p = 98;

a)

98

b)

17

c)

81

d)

0

18.

O ____, conhecido como o endereço de um operador, retorna o endereço de um variável.

a)

asterisco(* )

b)

e comercial ( & )

c)

porcentagem ( % )

d)

exclamação ( ! )

19.

O que o comando abaixo faz?

double *num2;

a)

Declara um variável double com o nome num2

b)

Declara e inicializa um ponteiros com o nome num2

c)

Inicializa um ponteiro com o nome num2

d)

Declara um ponteiro com o nome num2

20.

Selecione e opção correta para declarar um ponteiro

a)

int* ptr;

b)

int * ptr;

c)

int*ptr;

d)

todas acima

21.

Qual será a saida do código abaixo?


#include <stdio.h>

void main()

{

int k = 5;

int *p = &k;

int **m = &p;

printf("%d%d%d\n", k, *p, **m);

}

a)

5 5 5

b)

5 5 lixo valor

c)

5 lixo lixo

d)

Erro em tempo de execução

22.

Qual será a saída do código abaixo?


#include <stdio.h>

void main()

{

int a[3] = {1, 2, 3};

int *p = a;

int **r = &p;

printf("%p %p", *r, a);

}

a)

Endereço diferente é impresso

b)

1 2

c)

O mesmo endereço é impresso

d)

1 1

23.

Qual será a saída do programa em C abaixo?


#include <stdio.h>

int main()

{

int a = 1, b = 2, c = 3;

int *ptr1 = &a, *ptr2 = &b, *ptr3 = &c;

int **sptr = &ptr1; //-Ref

*sptr = ptr2;

}

a)

ptr1 aponta para a

b)

ptr1 aponta para b

c)

sptr aponta para ptr2

d)

nenhum dos mencionados

24.

Qual a saída do código abaixo:


#include <stdio.h>

int main()

{

int *p;

int a=20;

p=&a;

int **q;

**q=100;

q=&p;

*p=50;

printf("%d,%d,%d",**q,a,*p);

return 0;

}

a)

50,50,50

b)

20,20,50

c)

100,50,20

d)

100,20,50