C Programming Declarations and Initializations Online Test
Finish Quiz
0 of 30 questions completed
Questions:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
Information
C Programming Declarations and Initializations Online Test. C Programming Question and Answers in English. C Programming Declarations and Initializations Online mock test paper is free for all students and Very Helpful for Exam Preparation. C Programming Declarations and Initializations Online Quiz. C Programming Online Mock test for Declarations and Initializations Topic. Here we are providing C Programming Declarations and Initializations Online Test Series in English. Check C Programming Mock Test Series 2024-2024.
This paper has 30 questions.
Time allowed is 30 minutes.
The C Programming online Mock Test Exam is Very helpful for all students. Now Scroll down below n click on “Start Quiz” or “Start Test” and Test yourself.
You have already completed the quiz before. Hence you can not start it again.
Quiz is loading...
You must sign in or sign up to start the quiz.
You have to finish following quiz, to start this quiz:
Results
0 of 30 questions answered correctly
Your time:
Time has elapsed
You have reached 0 of 0 points, (0)
Average score |
|
Your score |
|
Categories
- Not categorized 0%
Pos. | Name | Entered on | Points | Result |
---|---|---|---|---|
Table is loading | ||||
No data available | ||||
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- Answered
- Review
-
Question 1 of 30
1. Question
Which of the following statements should be used to obtain a remainder after dividing 3.14 by 2.1 ?
Correct
fmod(x,y) – Calculates x modulo y, the remainder of x/y.
This function is the same as the modulus operator. But fmod() performs floating point divisions.Example:
#include <stdio.h> #include <math.h> int main () { printf ("fmod of 3.14/2.1 is %lf\n", fmod (3.14,2.1) ); return 0; }
Output:
fmod of 3.14/2.1 is 1.040000Incorrect
fmod(x,y) – Calculates x modulo y, the remainder of x/y.
This function is the same as the modulus operator. But fmod() performs floating point divisions.Example:
#include <stdio.h> #include <math.h> int main () { printf ("fmod of 3.14/2.1 is %lf\n", fmod (3.14,2.1) ); return 0; }
Output:
fmod of 3.14/2.1 is 1.040000 -
Question 2 of 30
2. Question
What are the types of linkages?
Correct
External Linkage-> means global, non-static variables and functions.
Internal Linkage-> means static variables and functions with file scope.
None Linkage-> means Local variables.Incorrect
External Linkage-> means global, non-static variables and functions.
Internal Linkage-> means static variables and functions with file scope.
None Linkage-> means Local variables. -
Question 3 of 30
3. Question
Which of the following special symbol allowed in a variable name?
Correct
Variable names in C are made up of letters (upper and lower case) and digits. The underscore character (“_”) is also permitted. Names must not begin with a digit.
Examples of valid (but not very descriptive) C variable names:
=> foo
=> Bar
=> BAZ
=> foo_bar
=> _foo42
=> _
=> QuUxIncorrect
Variable names in C are made up of letters (upper and lower case) and digits. The underscore character (“_”) is also permitted. Names must not begin with a digit.
Examples of valid (but not very descriptive) C variable names:
=> foo
=> Bar
=> BAZ
=> foo_bar
=> _foo42
=> _
=> QuUx -
Question 4 of 30
4. Question
Is there any difference between following declarations?
1 : extern int fun( );
2 : int fun( );Correct
extern int fun( ); declaration in C is to indicate the existence of a global function and it is defined externally to the current module or in another file.
int fun( ); declaration in C is to indicate the existence of a function inside the current module or in the same file.
Incorrect
extern int fun( ); declaration in C is to indicate the existence of a global function and it is defined externally to the current module or in another file.
int fun( ); declaration in C is to indicate the existence of a function inside the current module or in the same file.
-
Question 5 of 30
5. Question
How would you round off a value from 1.66 to 2.0?
Correct
/* Example for ceil() and floor() functions: */ #include<stdio.h> #include<math.h> int main() { printf("\n Result : %f" , ceil(1.44) ); printf("\n Result : %f" , ceil(1.66) ); printf("\n Result : %f" , floor(1.44) ); printf("\n Result : %f" , floor(1.66) ); return 0; } // Output: // Result : 2.000000 // Result : 2.000000 // Result : 1.000000 // Result : 1.000000
Incorrect
/* Example for ceil() and floor() functions: */ #include<stdio.h> #include<math.h> int main() { printf("\n Result : %f" , ceil(1.44) ); printf("\n Result : %f" , ceil(1.66) ); printf("\n Result : %f" , floor(1.44) ); printf("\n Result : %f" , floor(1.66) ); return 0; } // Output: // Result : 2.000000 // Result : 2.000000 // Result : 1.000000 // Result : 1.000000
-
Question 6 of 30
6. Question
By default a real number is treated as a
Correct
In computing, ‘real number’ often refers to non-complex floating-point numbers. It include both rational numbers, such as 42 and 3/4, and irrational numbers such as pi = 3.14159265…
When the accuracy of the floating point number is insufficient, we can use the double to define the number. The double is same as float but with longer precision and takes double space (8 bytes) than float.
To extend the precision further we can use long double which occupies 10 bytes of memory space.
Incorrect
In computing, ‘real number’ often refers to non-complex floating-point numbers. It include both rational numbers, such as 42 and 3/4, and irrational numbers such as pi = 3.14159265…
When the accuracy of the floating point number is insufficient, we can use the double to define the number. The double is same as float but with longer precision and takes double space (8 bytes) than float.
To extend the precision further we can use long double which occupies 10 bytes of memory space.
-
Question 7 of 30
7. Question
Which of the following is not user defined data type?
struct book { char name[10]; float price; int pages; };
2.
long int l = 2.35;
3.
enum day {Sun, Mon, Tue, Wed};
Correct
C data types classification are
- Primary data types
- int
- char
- float
- double
- void
- Secondary data types (or) User-defined data type
- Array
- Pointer
- Structure
- Union
- Enum
So, clearly long int l = 2.35; is not User-defined data type.
(i.e.long int l = 2.35; is the answer.)Incorrect
C data types classification are
- Primary data types
- int
- char
- float
- double
- void
- Secondary data types (or) User-defined data type
- Array
- Pointer
- Structure
- Union
- Enum
So, clearly long int l = 2.35; is not User-defined data type.
(i.e.long int l = 2.35; is the answer.) -
Question 8 of 30
8. Question
Is the following statement a declaration or definition?
extern int i;Correct
Declaring is the way a programmer tells the compiler to expect a particular type, be it a variable, class/struct/union type, a function type (prototype) or a particular object instance. (ie. extern int i)
Declaration never reserves any space for the variable or instance in the program’s memory; it simply a “hint” to the compiler that a use of the variable or instance is expected in the program. This hinting is technically called “forward reference”.
Incorrect
Declaring is the way a programmer tells the compiler to expect a particular type, be it a variable, class/struct/union type, a function type (prototype) or a particular object instance. (ie. extern int i)
Declaration never reserves any space for the variable or instance in the program’s memory; it simply a “hint” to the compiler that a use of the variable or instance is expected in the program. This hinting is technically called “forward reference”.
-
Question 9 of 30
9. Question
Identify which of the following are declarations
1 : extern int x;
2 : float square ( float x ) { … }
3 : double pow(double, double);Correct
extern int x; – is an external variable declaration.
double pow(double, double); – is a function prototype declaration.
Therefore, 1 and 3 are declarations. 2 is definition.
Incorrect
extern int x; – is an external variable declaration.
double pow(double, double); – is a function prototype declaration.
Therefore, 1 and 3 are declarations. 2 is definition.
-
Question 10 of 30
10. Question
In the following program where is the variable a getting defined and where it is getting declared?
#include<stdio.h> int main() { extern int a; printf("%d\n", a); return 0; } int a=20;
Correct
– During declaration we tell the datatype of the Variable.
– During definition the value is initialized.
Incorrect
– During declaration we tell the datatype of the Variable.
– During definition the value is initialized.
-
Question 11 of 30
11. Question
When we mention the prototype of a function?
Correct
A function prototype in C or C++ is a declaration of a function that omits the function body but does specify the function’s name, argument types and return type.
While a function definition specifies what a function does, a function prototype can be thought of as specifying its interface.
Incorrect
A function prototype in C or C++ is a declaration of a function that omits the function body but does specify the function’s name, argument types and return type.
While a function definition specifies what a function does, a function prototype can be thought of as specifying its interface.
-
Question 12 of 30
12. Question
What is the output of the program given below ?
#include<stdio.h> int main() { enum status { pass, fail, atkt}; enum status stud1, stud2, stud3; stud1 = pass; stud2 = atkt; stud3 = fail; printf("%d, %d, %d\n", stud1, stud2, stud3); return 0; }
Correct
enum takes the format like {0,1,2..) so pass=0, fail=1, atkt=2
stud1 = pass (value is 0)
stud2 = atkt (value is 2)
stud3 = fail (value is 1)
Hence it prints 0, 2, 1
Incorrect
enum takes the format like {0,1,2..) so pass=0, fail=1, atkt=2
stud1 = pass (value is 0)
stud2 = atkt (value is 2)
stud3 = fail (value is 1)
Hence it prints 0, 2, 1
-
Question 13 of 30
13. Question
What will be the output of the program in 16 bit platform (Turbo C under DOS)?
#include<stdio.h> int main() { extern int i; i = 20; printf("%d\n", sizeof(i)); return 0; }
Correct
Linker Error : Undefined symbol ‘i’
The statement extern int i specifies to the compiler that the memory for ‘i’ is allocated in some other program and that address will be given to the current program at the time of linking. But linker finds that no other variable of name ‘i’ is available in any other program with memory space allocated for it. Hence a linker error has occurred.Incorrect
Linker Error : Undefined symbol ‘i’
The statement extern int i specifies to the compiler that the memory for ‘i’ is allocated in some other program and that address will be given to the current program at the time of linking. But linker finds that no other variable of name ‘i’ is available in any other program with memory space allocated for it. Hence a linker error has occurred. -
Question 14 of 30
14. Question
What is the output of the program?
#include<stdio.h> int main() { extern int a; printf("%d\n", a); return 0; } int a=20;
Correct
extern int a; indicates that the variable a is defined elsewhere, usually in a separate source code module.
printf(“%d\n”, a); it prints the value of local variable int a = 20. Because, whenever there is a conflict between local variable and global variable, local variable gets the highest priority. So it prints 20.
Incorrect
extern int a; indicates that the variable a is defined elsewhere, usually in a separate source code module.
printf(“%d\n”, a); it prints the value of local variable int a = 20. Because, whenever there is a conflict between local variable and global variable, local variable gets the highest priority. So it prints 20.
-
Question 15 of 30
15. Question
What is the output of the program in Turbo C (in DOS 16-bit OS)?
#include<stdio.h> int main() { char *s1; char far *s2; char huge *s3; printf("%d, %d, %d\n", sizeof(s1), sizeof(s2), sizeof(s3)); return 0; }
Correct
Any pointer size is 2 bytes. (only 16-bit offset)
So, char *s1 = 2 bytes.
So, char far *s2; = 4 bytes.
So, char huge *s3; = 4 bytes.
A far, huge pointer has two parts: a 16-bit segment value and a 16-bit offset value.Since C is a compiler dependent language, it may give different output in other platforms. The above program works fine in Windows (TurboC), but error in Linux (GCC Compiler).
Incorrect
Any pointer size is 2 bytes. (only 16-bit offset)
So, char *s1 = 2 bytes.
So, char far *s2; = 4 bytes.
So, char huge *s3; = 4 bytes.
A far, huge pointer has two parts: a 16-bit segment value and a 16-bit offset value.Since C is a compiler dependent language, it may give different output in other platforms. The above program works fine in Windows (TurboC), but error in Linux (GCC Compiler).
-
Question 16 of 30
16. Question
What is the output of the program
#include<stdio.h> int main() { struct emp { char name[20]; int age; float sal; }; struct emp e = {"Tiger"}; printf("%d, %f\n", e.age, e.sal); return 0; }
Correct
When an automatic structure is partially initialized remaining elements are initialized to 0(zero).Incorrect
When an automatic structure is partially initialized remaining elements are initialized to 0(zero). -
Question 17 of 30
17. Question
What will be the output of the program?
#include<stdio.h> int X=40; int main() { int X=20; printf("%d\n", X); return 0; }
Correct
Whenever there is conflict between a local variable and global variable, the local variable gets priority.Incorrect
Whenever there is conflict between a local variable and global variable, the local variable gets priority. -
Question 18 of 30
18. Question
What is the output of the program
#include<stdio.h> int main() { int x = 10, y = 20, z = 5, i; i = x < y < z; printf("%d\n", i); return 0; }
Correct
Since x < y turns to be TRUE it is replaced by 1. Then 1 < z is compared and to be TRUE. The 1 is assigned to i.
Incorrect
Since x < y turns to be TRUE it is replaced by 1. Then 1 < z is compared and to be TRUE. The 1 is assigned to i.
-
Question 19 of 30
19. Question
What is the output of the program
#include<stdio.h> int main() { extern int fun(float); int a; a = fun(3.14); printf("%d\n", a); return 0; } int fun(int aa) { return (int)++aa; }
Correct
2 Errors
1. Type mismatch in redeclaration of fun
2. Type mismatch in parameter aaIncorrect
2 Errors
1. Type mismatch in redeclaration of fun
2. Type mismatch in parameter aa -
Question 20 of 30
20. Question
What is the output of the program
#include<stdio.h> int main() { int a[5] = {2, 3}; printf("%d, %d, %d\n", a[2], a[3], a[4]); return 0; }
Correct
When an automatic array is partially initialized, the remaining elements are initialized to 0.
Incorrect
When an automatic array is partially initialized, the remaining elements are initialized to 0.
-
Question 21 of 30
21. Question
In the following program how long will the for loop get executed?
#include<stdio.h> int main() { int i=5; for(;scanf("%s", &i); printf("%d\n", i)); return 0; }
Correct
During the for loop execution scanf() ask input and then printf() prints that given input. This process will be continued repeatedly because, scanf() returns the number of input given, the condition is always true(user gives a input means it reurns ‘1’).
Hence this for loop would get executed infinite times.
Incorrect
During the for loop execution scanf() ask input and then printf() prints that given input. This process will be continued repeatedly because, scanf() returns the number of input given, the condition is always true(user gives a input means it reurns ‘1’).
Hence this for loop would get executed infinite times.
-
Question 22 of 30
22. Question
What will be the output of the program?
#include<stdio.h> int main() { int X=40; { int X=20; printf("%d ", X); } printf("%d\n", X); return 0; }
Correct
In case of a conflict between a local variable and global variable, the local variable gets priority.
Incorrect
In case of a conflict between a local variable and global variable, the local variable gets priority.
-
Question 23 of 30
23. Question
A long double can be used if range of a double is not enough to accommodate a real number.
Correct
True, we can use long double; if double range is not enough.
double = 8 bytes.
long double = 10 bytes.Incorrect
True, we can use long double; if double range is not enough.
double = 8 bytes.
long double = 10 bytes. -
Question 24 of 30
24. Question
A float is 4 bytes wide, whereas a double is 8 bytes wide.
Correct
True,
float = 4 bytes.
double = 8 bytes.Incorrect
True,
float = 4 bytes.
double = 8 bytes. -
Question 25 of 30
25. Question
If the definition of the external variable occurs in the source file before its use in a particular function, then there is no need for an extern declaration in the function.
Correct
True, When a function is declared inside the source file, that function(local function) get a priority than the extern function. So there is no need to declare a function as extern inside the same source file.
Incorrect
True, When a function is declared inside the source file, that function(local function) get a priority than the extern function. So there is no need to declare a function as extern inside the same source file.
-
Question 26 of 30
26. Question
Size of short integer and long integer can be verified using the sizeof() operator.
Correct
True, we can find the size of short integer and long integer using the sizeof() operator.
Example:#include<stdio.h> int main() { short int i = 10; long int j = 10; printf("short int is %d bytes.,\nlong int is %d bytes.", sizeof(i),sizeof(j)); return 0; }
Output:
short int is 2 bytes.
long int is 4 bytes.Incorrect
True, we can find the size of short integer and long integer using the sizeof() operator.
Example:#include<stdio.h> int main() { short int i = 10; long int j = 10; printf("short int is %d bytes.,\nlong int is %d bytes.", sizeof(i),sizeof(j)); return 0; }
Output:
short int is 2 bytes.
long int is 4 bytes. -
Question 27 of 30
27. Question
Range of double is -1.7e-38 to 1.7e+38 (in 16 bit platform – Turbo C under DOS)
Correct
False, The range of double is -1.7e+308 to 1.7e+308.
Incorrect
False, The range of double is -1.7e+308 to 1.7e+308.
-
Question 28 of 30
28. Question
Size of short integer and long integer would vary from one platform to another.
Correct
True, Depending on the operating system/compiler/system architecture you are working on, the range of data types can vary.
Incorrect
True, Depending on the operating system/compiler/system architecture you are working on, the range of data types can vary.
-
Question 29 of 30
29. Question
Range of float id -2.25e+308 to 2.25e+308
Correct
False, The range of float is -3.4e+38 to 3.4e+38.
Incorrect
False, The range of float is -3.4e+38 to 3.4e+38.
-
Question 30 of 30
30. Question
Is it true that a global variable may have several declarations, but only one definition?
Correct
Yes, In all the global variable declarations, you need to use the keyword extern.
Incorrect
Yes, In all the global variable declarations, you need to use the keyword extern.