0% found this document useful (0 votes)
28 views

CDS Q8

The document discusses storage classes and types in C programming. It includes 20 multiple choice questions about static, auto, register, extern and other storage classes. Some questions test understanding of static variables and how they retain their value between function calls. Other questions cover typedefs, const pointers, and how storage classes affect variable scope and lifetime.

Uploaded by

Jaydeep S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

CDS Q8

The document discusses storage classes and types in C programming. It includes 20 multiple choice questions about static, auto, register, extern and other storage classes. Some questions test understanding of static variables and how they retain their value between function calls. Other questions cover typedefs, const pointers, and how storage classes affect variable scope and lifetime.

Uploaded by

Jaydeep S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

STORAGE CLASSES AND TYPES

1. Consider the following C function, what is the output?

int f(int n)
{
static int r = 0;
if (n <= 0) return 1;
if (n > 3)
{
r = n;
return f(n-2)+2;
}
return f(n-1)+r;
}

int main()
{
printf("%d", f(5));
}

(a) 5 (b) 7
(c) 9 (d) 18

2. Which of the following is not a storage class specifier in C?

(a) auto (b) register


(c) static (d) volatile

3. Output of following program?

int main()
{
static int i=5;
if(--i){
main();
printf("%d ",i);
1
}
}

(a) 4 3 2 1 (b) 1 2 3 4
(c) 0 0 0 0 (d) Compiler Error

4.

#include <stdio.h>

int main()
{
static int i=5;
if (--i){
printf("%d ",i);
main();
}
}

(a) 4 3 2 1 (b) 1 2 3 4
(c) 4 4 4 4 (d) 0 0 0 0

5.

int main()
{
int x = 5;
int * const ptr = &x;
++(*ptr);
printf("%d", x);
return 0;
}

(a) Compiler Error (b) Runtime Error


(c) 6 (d) 5

6.

2
#include<stdio.h>

int main()
{
typedef static int *i;
int j;
i a = &j;
printf("%d", *a);
return 0;
}

(a) Runtime Error (b) 0


(c) Garbage Value (d) Compiler Error

7. Output?

#include<stdio.h>

int main()
{
typedef int i;
i a = 0;
printf("%d", a);
return 0;
}

(a) Compiler Error (b) Runtime Error


(c) 0 (d) 1

8.

#include<stdio.h>

int main()
{
typedef int *i;
int j = 10;
i *a = &j;
printf("%d", **a);
3
return 0;
}

(a) Compiler Error (b) Garbage Value


(c) 10 (d) 0

9. Output?

#include<stdio.h>

int fun()
{
static int num = 16;
return num--;
}

int main()
{
for(fun(); fun(); fun())
printf("%d ", fun());
return 0;
}

(a) Infinite loop (b) 13 10 7 4 1


(c) 14 11 8 5 2 (d) 15 12 8 5 2

10.

#include<stdio.h>

int main()
{
int x = 10;
static int y = x;
if(x == y)
printf("Equal");
else if(x > y)
printf("Greater");
else
printf("Less");

4
return 0;
}

(a) Compiler Error (b) Equal


(c) Greater (d) Less

11. Consider the following C function

int f(int n)
{
static int i = 1;
if (n >= 5)
return n;
n = n+i;
i++;
return f(n);
}

The value returned by f(1) is (GATE CS 2004)

(a) 5 (b) 6
(c) 7 (d) 8

12. In C, static storage class cannot be used with:

(a) Global variable (b) Function parameter


(c) Function name (d) Local variable

13. Output? (GATE CS 2012)

#include<stdio.h>

int a, b, c = 0;
void prtFun (void);
int main ()
{
5
static int a = 1; /* line 1 */
prtFun();
a += 1;
prtFun();
printf ( "\n %d %d " , a, b) ;
}

void prtFun (void)


{
static int a = 2; /* line 2 */
int b = 1;
a += ++b;
printf (" \n %d %d " , a, b);
}

(a) 31 (b) 42
41 61
42 61

(c) 42 (d) 31
62 52
20 52

14. What output will be generated by the given code segment if:

Line 1 is replaced by “auto int a = 1;”


Line 2 is replaced by “register int a = 2;” (GATE CS 2012)

(a) 31 (b) 42
41 61
42 61

(c) 42 (d) 42
62 42
20 20

15. Output?

#include<stdio.h>
6
int main()
{
register int i = 10;
int *ptr = &i;
printf("%d", *ptr);
return 0;
}

(a) Prints 10 on all compilers (b) May generate compiler Error


(c) Prints 0 on all compilers (d) May generate runtime Error

16.

#include<stdio.h>

int main()
{
extern int i;
printf("%d ", i);
{
int i = 10;
printf("%d ", i);
}
}

(a) 0 10 (b) Compiler Error


(c) 0 0 (d) 10 10

17. Output?

#include <stdio.h>

int main(void)
{
int i = 10;
const int *ptr = &i;
*ptr = 100;
7
printf("i = %d\n", i);
return 0;
}

(a) ) i = 100 (b) i = 10


(c) Compiler Error (d) Runtime Error

18. Output of following program

#include <stdio.h>

int fun(int n)
{
static int s = 0;
s = s + n;
return (s);
}

int main()
{
int i = 10, x;
while (i > 0)
{
x = fun(i);
i--;
}
printf ("%d ", x);
return 0;
}

(a) 0 (b) 100


(c) 110 (d) 55

19.

#include <stdio.h>

char *fun()
{
8
static char arr[1024];
return arr;
}

int main()
{
char *str = "ravindrababus";
strcpy(fun(), str);
str = fun();
strcpy(str, "gatessquiz");
printf("%s", fun());
return 0;
}

(a) ravindrababus (b) gatesquiz


(c) ravindrababus gatesquiz (d) Compiler Error

20.

#include <stdio.h>

int main()
{
int i = 1024;
for (; i; i >>= 1)
printf("GatesQuiz");
return 0;
}

How many times will GatesQuiz be printed in the above program?

(a) 10
(b) 11
(c) Infinite
(d) The program will show compile-time error

You might also like