Quiz on Pointers - Part I

Description

A Quiz on Pointer Concept
dd_4167
Quiz by dd_4167, updated more than 1 year ago
dd_4167
Created by dd_4167 over 8 years ago
165
0

Resource summary

Question 1

Question
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; }
Answer
  • 30
  • 20
  • Error

Question 2

Question
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; }
Answer
  • 20
  • 30
  • Error

Question 3

Question
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; }
Answer
  • 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

Question 4

Question
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; }
Answer
  • 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

Question 5

Question
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; }
Answer
  • 90.500000 3
  • 90.500000 12
  • 10.000000 12

Question 6

Question
#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; }
Answer
  • 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

Question 7

Question
#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; }
Answer
  • Machine dependent
  • 513
  • 258

Question 8

Question
int main() { char *ptr = "GeeksQuiz"; printf("%c\n", *&*&*ptr); return 0; }
Answer
  • Garbage Value
  • Runtime Error
  • G

Question 9

Question
#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; }
Answer
  • 2 2
  • 0 1
  • 0 2
Show full summary Hide full summary

Similar

Linked Lists WedW15
Madeline Harlow
Programming in C MindMap
Tejas Rao
MIND MAP 1
vsolakis
Linked Lists WedW15
Kunall Banerjee
Linked Lists WedW15
Neyavanan v
Linked Lists WedW15
Neyavanan v
Linked Lists WedW15
Neyavanan v
C programming # 001
satya.panda
Romeo and Juliet essay
Tambo234
Repaso de Revalida Enfermeria 2015
Francisco Rivera
“In gaining knowledge, each area of knowledge uses a network of ways of knowing.” Discuss this statement with reference to two areas of knowledge
Julianapabab