dd_4167
Quiz by , created more than 1 year ago

A Quiz on Pointer Concept

165
0
0
dd_4167
Created by dd_4167 over 8 years ago
Close

Quiz on Pointers - Part I

Question 1 of 9

1

What is the output of following program?
# include <stdio.h>
void fun(int x)
{
x = 30;
}

int main()
{
int y = 20;
fun(y);
printf("%d", y);
return 0;
}

Select one of the following:

  • 30

  • 20

  • Error

Explanation

Question 2 of 9

1

Output of following program?
# include <stdio.h>
void fun(int *ptr)
{
*ptr = 30;
}

int main()
{
int y = 20;
fun(&y);
printf("%d", y);

return 0;
}

Select one of the following:

  • 20

  • 30

  • Error

Explanation

Question 3 of 9

1

Output of following program?
#include <stdio.h>

int main()
{
int *ptr;
int x;

ptr = &x;
*ptr = 0;

printf(" x = %d\n", x);
printf(" *ptr = %d\n", *ptr);

*ptr += 5;
printf(" x = %d\n", x);
printf(" *ptr = %d\n", *ptr);

(*ptr)++;
printf(" x = %d\n", x);
printf(" *ptr = %d\n", *ptr);

return 0;
}

Select one of the following:

  • x = 0
    *ptr = 0
    x = 5
    *ptr = 5
    x = 6
    *ptr = 6

  • x = garbage value
    *ptr = 0
    x = garbage value
    *ptr = 5
    x = garbage value
    *ptr = 6

  • x = 0
    *ptr = 0
    x = 5
    *ptr = 5
    x = garbage value
    *ptr = garbage value

Explanation

Question 4 of 9

1

Consider a compiler where int takes 4 bytes, char takes 1 byte and pointer takes 4 bytes.
#include <stdio.h>

int main()
{
int arri[] = {1, 2 ,3};
int *ptri = arri;

char arrc[] = {1, 2 ,3};
char *ptrc = arrc;

printf("sizeof arri[] = %d ", sizeof(arri));
printf("sizeof ptri = %d ", sizeof(ptri));

printf("sizeof arrc[] = %d ", sizeof(arrc));
printf("sizeof ptrc = %d ", sizeof(ptrc));

return 0;
}

Select one of the following:

  • sizeof arri[] = 3 sizeof ptri = 4 sizeof arrc[] = 3 sizeof ptrc = 4

  • sizeof arri[] = 12 sizeof ptri = 4 sizeof arrc[] = 3 sizeof ptrc = 1

  • sizeof arri[] = 12 sizeof ptri = 4 sizeof arrc[] = 3 sizeof ptrc = 4

Explanation

Question 5 of 9

1

Assume that float takes 4 bytes, predict the output of following program.
#include <stdio.h>

int main()
{
float arr[5] = {12.5, 10.0, 13.5, 90.5, 0.5};
float *ptr1 = &arr[0];
float *ptr2 = ptr1 + 3;

printf("%f ", *ptr2);
printf("%d", ptr2 - ptr1);

return 0;
}

Select one of the following:

  • 90.500000 3

  • 90.500000 12

  • 10.000000 12

Explanation

Question 6 of 9

1

#include<stdio.h>
int main()
{
int arr[] = {10, 20, 30, 40, 50, 60};
int *ptr1 = arr;
int *ptr2 = arr + 5;
printf("Number of elements between two pointer are: %d.",
(ptr2 - ptr1));
printf("Number of bytes between two pointers are: %d",
(char*)ptr2 - (char*) ptr1);
return 0;
}

Select one of the following:

  • Number of elements between two pointer are: 5. Number of bytes between two pointers are: 20

  • Number of elements between two pointer are: 20. Number of bytes between two pointers are: 20

  • Number of elements between two pointer are: 5. Number of bytes between two pointers are: 5

Explanation

Question 7 of 9

1

#include<stdio.h>
int main()
{
int a;
char *x;
x = (char *) &a;
a = 512;
x[0] = 1;
x[1] = 2;
printf("%d\n",a);
return 0;
}

Select one of the following:

  • Machine dependent

  • 513

  • 258

Explanation

Question 8 of 9

1

int main()
{
char *ptr = "GeeksQuiz";
printf("%c\n", *&*&*ptr);
return 0;
}

Select one of the following:

  • Garbage Value

  • Runtime Error

  • G

Explanation

Question 9 of 9

1

#include<stdio.h>
void f(int *p, int *q)
{
p = q;
*p = 2;
}
int i = 0, j = 1;
int main()
{
f(&i, &j);
printf("%d %d \n", i, j);
getchar();
return 0;
}

Select one of the following:

  • 2 2

  • 0 1

  • 0 2

Explanation