Variable naming rule questions in c


Following question are based on variable naming rules in c. If you have any doubt in the variable naming rules you can ask here.

Rules for identifiers in c language


1.

What will be output of the following c program?

#include<stdio.h>
int main(){
int goto=5;
printf("%d",goto);
return 0;
}

(A)5
(B)**
(C)**
(D)Compilation error
(E)None of these


Explanation:

Invalid variable name. goto is keyword in c. variable name cannot be any keyword of c language.

2.

What will be output of the following c program?

#include<stdio.h>
int main(){
long int 1a=5l;
printf("%ld",1a);
    return 0;
}

(A)5
(B)51
(C)6
(D)Compilation error
(E)None of these


Explanation:

Invalid variable name. Variable name must star from either alphabet or underscore.

3.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int _=5;
    int __=10;
    int ___;
    ___=_+__;
    printf("%i",___);
    return 0;
}

(A)5
(B)10
(C)15
(D)Compilation error
(E)None of these

Explanation:

Variable name can have only underscore.

4.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int max-val=100;
    int min-val=10;
    int avg-val;
    avg-val = max-val + min-val / 2;
    printf("%d",avg-val);
    return 0;
}

(A)55
(B)105
(C)
60
(D)Compilation error
(E)None of these


Explanation:

We cannot use special character – in the variable name.

5.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int class=150;
    int public=25;
    int private=30;
    class = class >> private - public;
    printf("%d",class);
    return 0;
}

(A)1
(B)2
(C)4
(D)Compilation error
(E)None of these


Explanation:

Variable name can be keyword of c++.

6.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int abcdefghijklmnopqrstuvwxyz123456789=10;
    int abcdefghijklmnopqrstuvwxyz123456=40;
    printf("%d",abcdefghijklmnopqrstuvwxyz123456);
    return 0;
}


(A)10
(B)40
(C)50
(D)Compilation error
(E)None of these


Explanation:

Only first 32 characters are significant in variable name. So compiler will show error: Multiple declaration of identifier abcdefghijklmnopqrstuvwxyz123456.


7.

What will be output of the following c program?

#include<stdio.h>
int main(){
    register xyz_123=91;
    auto pqr_123=991;
    const _1a1_=pqr_123+~xyz_123;
    printf("%d",_1a1_);
    return 0;
}

(A)900
(B)999
(C)899
(D)Compilation error
(E)None of these


Explanation:

Variable name can have digits.

8.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int __SMALL__ = 11;
    int y;
    y= __SMALL__ < 5;
    printf("%d",y);
    return 0;
}

(A)11
(B)5
(C)0
(D)Compilation error
(E)None of these


Explanation:

Variable name cannot be global identifier.

9.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int __BIG__ = 32;
    int y;
    y= __BIG__ && 8;
    printf("%d",y);
    return 0;
}

(A)
32
(B)8
(C)1
(D)Compilation error
(E)None of these


Explanation:

Variable name can be in the format: __NAME__. But it is bad practice since this format is used for global identifiers.


10.

What will be output of the following c program?

#include<stdio.h>
static num=5;
int num;
extern int num;
int main(){
    printf("%d",num);
    return 0;
}

(A)5
(B)10
(C)0
(D)Compilation error
(E)None of these


Explanation:

Two or more global variables can have same name but we can initialize only one of them.


11.

What will be output of the following c program?

#include<stdio.h>
static num=5;
extern int num;
int main(){
    printf("%d",num);
    return 0;
}
int num =25;

(A)
0
(B)5
(C)25
(D)Compilation error
(E)None of these


Explanation:

Two or more global variables can have same name but we can initialize only one of them.


12.

What will be output of the following c program?

#include<stdio.h>
static num;
int main(){
    printf("%d",num);
    return 0;
}
int num =25;

(A)0
(B)1
(C)25
(D)Compilation error
(E)None of these


Explanation:

Two or more global variables can have same name but we can initialize only one of them.

13.

What will be output of the following c program?

#include<stdio.h>
int xyz=10;
int main(){
    int xyz=20;
    printf("%d",xyz);
    return 0;
}

(A)10
(B)20
(C)30
(D)Compilation error
(E)None of these


Explanation:

Two variables can have same name in different scope.

14.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int xyz=20;
    int xyz;
    printf("%d",xyz);
    return 0;
}

(A)20
(B)
0
(C)Garbage
(D)Compilation error
(E)None of these


Explanation:

Two local variables cannot have same name in same scope.

15.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int xyz=20;{
         int xyz=40;
    }
    printf("%d",xyz);
    return 0;
}

(A)20
(B)
40
(C)
0
(D)Compilation error
(E)None of these


Explanation:

Two variables can have same name in different scope.

16.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int main = 80;
    printf("%d",main);
    return 0;
}

(A)80
(B)
0
(C)
Garbage value
(D)Compilation error
(E)None of these


Explanation:

Variable name can be main.

17.

What will be output of the following c program?

#include<stdio.h>
int main(){
    struct a{
         int a;
    };
    struct a b={10};
    printf("%d",b.a);
    return 0;
}

(A)0
(B)
10
(C)Garbage value
(D)Compilation error
(E)None of these


Explanation:

Two variables can have same name in different scope.

18.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int ABC=10;
    printf("%d",abc);
    return 0;
}

(A)10
(B)0
(C)5
(D)Compilation error
(E)None of these


Explanation:

Variable name is case sensitive.

19.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int printf=12;
    printf("%d",printf);
    return 0;
}

(A)12
(B)
0
(C)5
(D)Compilation error
(E)None of these


Explanation:

Variable name cannot be pre defined function of included header file.

20.

What will be output of the following c program?

#include<stdio.h>
int main(){
    int EOF=12;
    printf("%d",EOF);
    return 0;
}

(A)12
(B)
0
(C)5
(D)Compilation error
(E)None of these


Explanation:

Variable name cannot be pre defined function of included header file.


C Tutorial

Variables in c
C questions

17 comments:

aman verma said...

good tricky question bro!!1

shivdas said...

Good Qustions but expect more explanation.

Shivdas Kanade

Ashish said...

good question !!!!!!!!!!!

Md said...

awesome question ......good work

Anonymous said...

Very good work... but question 8 has wrong answer.

Ritesh kumar said...

Answer of question 8 is correct. You may using different compiler. Check it in Turbo c 3.5 compiler.

Aman agarwal said...

Question 10 & 11 are giving error redefinition of ‘num’
with gcc compiler :-/

Anonymous said...

Nice questions........

Ruchi said...

great questions but question number 8,10,12 are incorrect

SU said...

gud que's like it

Anonymous said...

in question 17 the stucture is not properly because the object which is defined is defined incoorectly

Anonymous said...

Can you pleaze explain question number 5.How does it give output 4?what is operator << doing?

Anonymous said...

nice questions .Good work

Anonymous said...

nice...

Anonymous said...

hiiiiii...this is SILKY BANKA ..i m nt getting ques no.7 and 8.

Anonymous said...

In question 5......

remember the value becomes half during every right shift(>>) and 150>>30-25
150>>5 times right shift

now ,150 becomes 75(1st time)
75 becomes 37(2nd time)
37 becomes 18(3rd time)
18 become 9 (4th time)
9 become 4 (5th time)
BY ABHINAV SAXENA

Anonymous said...

Tricky Questions dude...nice explanation

C compiler: gcc 4.1.2