# Exercise: Questions on Variable Declaration and Scope

Questions on Variable Declaration and Scope : Question 1 :
Consider the following two C lines
```int var1;
extern int var2;
```
Which of the following statements is correct

 Both statements only declare variables, don't define them. First statement declares and defines var1, but second statement only declares var2  Correct Both statements declare define variables var1 and var2
Questions on Variable Declaration and Scope : Question 2 :
Predict the output
```#include <stdio.h>
int var = 20;
int main()
{
int var = var;
printf("%d ", var);
return 0;
}
```

 Garbage Value  Correct 20 Compiler Error
Questions on Variable Declaration and Scope : Question 3 :
```#include <stdio.h>
extern int var;
int main()
{
var = 10;
printf("%d ", var);
return 0;
}
```

 Compiler Error: var is not defined  Correct 20 0
Questions on Variable Declaration and Scope : Question 4 :
```#include <stdio.h>
extern int var = 0;
int main()
{
var = 10;
printf("%d ", var);
return 0;
}
```

 10  Correct Compiler Error: var is not defined 0
Questions on Variable Declaration and Scope : Question 5 :
Output?
```int main()
{
{
int var = 10;
}
{
printf("%d", var);
}
return 0;
}
```

 10 Compiler Errror  Correct Garbage Value
Questions on Variable Declaration and Scope : Question 6 :
Output?
```#include <stdio.h>
int main()
{
int x = 1, y = 2, z = 3;
printf(" x = %d, y = %d, z = %d \n", x, y, z);
{
int x = 10;
float y = 20;
printf(" x = %d, y = %f, z = %d \n", x, y, z);
{
int z = 100;
printf(" x = %d, y = %f, z = %d \n", x, y, z);
}
}
return 0;
}
```

 ``` x = 1, y = 2, z = 3 x = 10, y = 20.000000, z = 3 x = 1, y = 2, z = 100``` Compiler Error ``` x = 1, y = 2, z = 3 x = 10, y = 20.000000, z = 3 x = 10, y = 20.000000, z = 100 ```  Correct ``` x = 1, y = 2, z = 3 x = 1, y = 2, z = 3 x = 1, y = 2, z = 3```
Questions on Variable Declaration and Scope : Question 7 :
```int main()
{
int x = 032;
printf("%d", x);
return 0;
}
```

 32 0 26  Correct 50
Questions on Variable Declaration and Scope : Question 8 :
Consider the following C program, which variable has the longest scope?
```int a余
int main()
{
int b余
// ..
// ..
}
int c余
```

 a  Correct b c All have same scope
Questions on Variable Declaration and Scope : Question 9 :
Consider the following variable declarations and definitions in C
```i) int var_9 = 1;
ii) int 9_var = 2;
iii) int _ = 3;
```
Choose the correct statement w.r.t. above variables.

 Both i) and iii) are valid.  Correct Only i) is valid. Both i) and ii) are valid. All are valid.
Questions on Variable Declaration and Scope : Question 10 :
Find out the correct statement for the following program.
```#include "stdio.h"

int * gPtr;

int main()
{
int * lPtr = NULL;

if(gPtr == lPtr)
{
printf("Equal!");
}
else
{
printf("Not Equal");
}

return 0;
}
```

 It’ll always print Equal.  Correct It’ll always print Not Equal. Since gPtr isn’t initialized in the program, it’ll print sometimes Equal and at other times Not Equal.