Here is a listing of C questions and puzzles on “Declarations” along with answers, explanations and/or solutions:
1. Which of the following declaration is illegal?
a) char *str = “Best C programming classes by ”;
b) char str[] = “Best C programming classes by ”;
c) char str[20] = “Best C programming classes by ”;
d) char[] str = “Best C programming classes by ”;
Answer: d
Clarification: char[] str is a declaration in Java, but not in C.
2. Which keyword is used to prevent any changes in the variable within a C program?
a) immutable
b) mutable
c) const
d) volatile
Answer: c
Clarification: const is a keyword constant in C program.
3. Which of the following is not a pointer declaration?
a) char a[10];
b) char a[] = {‘1’, ‘2’, ‘3’, ‘4’};
c) char *str;
d) char a;
Answer: d
Clarification: Array declarations are pointer declarations.
4. What will be the output of the following C code?
-
#include
-
void main()
-
{
-
int k = 4;
-
float k = 4;
-
printf("%d", k)
-
}
a) Compile time error
b) 4
c) 4.0000000
d) 4.4
Answer: a
Clarification: Since the variable k is defined both as integer and as float, it results in an error.
Output:
$ cc pgm8.c
pgm8.c: In function ‘main’:
pgm8.c:5: error: conflicting types for ‘k’
pgm8.c:4: note: previous definition of ‘k’ was here
pgm8.c:6: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘double’
pgm8.c:7: error: expected ‘;’ before ‘}’ token
5. Which of the following statement is false?
a) A variable defined once can be defined again with different scope
b) A single variable cannot be defined with two different types in the same scope
c) A variable must be declared and defined at the same time
d) A variable refers to a location in memory
Answer: c
Clarification: It is not an error if the variable is declared and not defined. For example – extern declarations.
6. A variable declared in a function can be used in main().
a) True
b) False
c) True if it is declared static
d) None of the mentioned
Answer: b
Clarification: Since the scope of the variable declared within a function is restricted only within that function, so the above statement is false.
7. The name of the variable used in one function cannot be used in another function.
a) True
b) False
Answer: b
Clarification: Since the scope of the variable declared within a function is restricted only within that function, the same name can be used to declare another variable in another function.