C Objective Questions useful for coding contests
BASICSQ.1 The address of a variable temp of type float is (A) *temp (B) &temp (C) float& temp (D) float temp& Ans: B 2) If an array is declared as int a[4] = {3, 0, 1, 2}, then values assigned to a[0] & a[4] will be ________ (A) 3, 2 (B) 0, 2 (C) 3, 0 (D) 0, 4 Ans: C 3) What type of errors are checked during compilation (A) logical errors (B) divide by zero error (C) run - time errors (D) syntax errors Ans: D 4) The minimum number of temporary variable needed to swap the contents of two variable is (A)3 (B)1 (C) 0 (D) 2 Ans:C 5) What is range of char data value? (A) -64 to 64 (B) -128 to 127 (C) 0 to 255 (D) -127 to 128 Ans:B 6) The process of repeating a group of statements in an algorithm is known as (A) sequence (B) iteration (C) flow (D) selection Ans:B 7) Every executable C program must contain a (A) printf function (B) scanf, printf and main functions (C) main function (D) scanf function Ans:C 8) The individual units of a C program is known as (A) records (B) tokens (C) units (D) program Ans:B 9) Pseudo code is (A) language independent code (B) refined version of program (C) code developed using the syntax of a specific language (D) outcome of compilation process Ans:A 10) A block is enclosed with pair of (A) ( ) (B) { } (C) <> (D) [ ] Ans:B 11) The purpose of main function is (A) to stop program execution (B) to stop algorithm (C) to start algorithm (D) to start program execution Ans:D 12) How many values a function can return at a time (A) only one (B) depends on the system (C) infinite values (D) 2 Ans:A 13) The purpose of return statement is (A) To return control back to the calling function (B) To return control and value to calling function (C) To return void (D) To return value to the calling function Ans:B 14) If the value of the formal argument is changed in the called function, the corresponding change in the calling function, if it is call by value (A) machine dependen (B) does not reflects (C) unpredictable (D) reflects Ans:B 15) When compared to call by value, the call by reference is_________in execution (A) fast (B) neither slow nor fast (C) slow (D) equal Ans:A 16) The statement used to send back any value to the calling function is (A) continue (B) exit (C) break (D) return Ans:D 17 The index or subscript value for an array of size n ranges from (A) 1 to n-1 (B) 0 to n-1 (C) 1 to n (D) 0 to n Ans:B 18) If we dont initialize a static array, what will be the elements set to: (A) 0 (B) a floating point number (C) an undetermined value (D) character constant Ans:A 19) A string is an array of (A) integers (B) floating point numbers (C) characters (D) boolen values Ans:C 20) Two dimensional array elements are stored (A) system dependent (B) in row major order (C) compiler dependent (D) in column major order Ans:C 21) Array elements are stored in (A) Sequential memory locations (B) Scattered memory locations (C) Direct memory locations (D) Random memory location Ans:A 22) Identify the incorrect declaration of arrays from the following (A) int a[50]; (B) float values[10][20]; (C) double a[50]; (D) int score[10,15]; Ans:D 23) Array is used to represent the following (A) A list of data items of different data type (B) A list of data items of real data type (C) A list of data items of same data type (D) A list of data items of integer data type Ans:C 24) Arrays are passed as arguments to a function by (A) reference (B) both value and reference (C) context (D) value Ans:A 25) In a multidimensional array with initialization (A) no demension must be omitted (B) the left most dimension may be omitted (C) both leftmost and right most may be omitted (D) the right most dimension may be omitted Ans:B 26) Which of the following is not a storage class (A) external (B) automatic (C) register (D) define Ans:D 27) Which of the following statement is wrong with respect to a storage class (A) it specifies the defualt initial value (B) it specifies the life of a variable (C) by defualt a storage class is static\ (D) if specifies where variable is stored Ans:C 28) The storage area for register variables (A) cache (B) memory (C) processor registers (D) virtual memory Ans:C 29) Register variable are active (A) outside the function (B) throughout the program (C) only in the function where it is defined (D) surrounding of that function Ans:C 30) A static variable is one (A) which cant be initialized (B) which is same as automatic variable but it is placed at the head of the program (C) which is initialized once and cant be changed at run time (D) which retains its value through out the life of the program Ans:D 31) An external variable definition can appear in (A) only two files (B) only three files (C) only one file (D) more than one file Ans:C 32) The register class cannot used for all types of variables. This is because (A) register variables usage decreases the system performance (B) register variable precision in less (C) register variables cannot support arithmetic operations (D) number of bits in the register are less than the size of same variable types Ans:D 33) Automatic variable are active (A) outside the function (B) only in the function where it is defined (C) surroundings of that function (D) throughout the program Ans:B 34) In case both external and autovariables are declared with the same name in a program, the priority is given to which of the variables (A) complier dependent (B) auto variable (C) depends on logic\ (D) external variable Ans:B 35) Register variables can hold ________ values (A) float (B) int (C) complex (D) double Ans:B 36) A string is an array of (A) integers (B) floating point numbers (C) characters (D) boolen values Ans:C 37) The following function is used to count and return the number of characters in a given string (A) strcat() (B) strrev() (C) strcmp() (D) strlen() Ans:D 38) The function is used to reverse a string (A) strrsa() (B) strrev() (C) strcmp() (D) strcat() Ans:B 39) The function strrev( )________ the actual string in the array (A) will not reverse (B) may not reverse (C) will reverse (D) may reverse Ans:C 40.What is the use of strcmp( ) function (A) finds the length of the string (B) string comparison (C) copies one string into another (D) string concatenation Ans:B 41) If the first string and the second string both are identical, then strcmp function returns (A) a value of 0 (B) either 1 or 0 (C) a value of 1 (D) any positive integer Ans:A 42) What function is appropriate for accepting a string? (A) getch ( ) (B) gets( ) (C) getche ( ) (D) scanf ( ) Ans:B 43) What is the use of the strlen( ) function (A) finds the length of the string (B) string comparison (C) string concatenation (D) copies one string into another Ans:A 44) function used to open a file is (A) feof( ) (B) f.open( ) (C) openf( ) (D) fopen( ) Ans:D 45) end of file is detected by (A) fend( ) (B) endf( ) (C) EOF (D) FEND Ans:C |
CODING1) #include<stdio.h>
main() { struct xx { int x=3; char name[]=”hello”; }; struct xx *s=malloc(sizeof(struct xx)); printf(“%d”,s->x); printf(“%s”,s->name); } Answer: Compiler Error Explanation: Initialization should not be done for structure members inside the structure declaration 2) main( ) { printf(“%d”, out); } int out=100; Answer: Compiler error: undefined symbol out in function main. Explanation: The rule is that a variable is available for use from the point of declaration. Even though a is a global variable, it is not available for main. Hence an error. 3) main() { char string[]=”Hello World”; display(string); } void display(char *string) { printf(“%s”,string); } Answer: Compiler Error : Type mismatch in redeclaration of function display Explanation : In third line, when the function display is encountered, the compiler doesn’t know anything about the function display. It assumes the arguments and return types to be integers, (which is the default type). When it sees the actual function display, the arguments and type contradicts with what it has assumed previously. Hence a compile time error occurs. 4) #define int char main() { int i=65; printf(“sizeof(i)=%d”,sizeof(i)); } Answer: sizeof(i)=1 Explanation: Since the #define replaces the string int by the macro char 5) main() { int i=10; i=!i>14; Printf (“i=%d”,i); } Answer: i=0 Explanation: In the expression !i>14 , NOT (!) operator has more precedence than ‘ >’ symbol. ! is a unary logical operator. !i (!10) is 0 (not of true is false). 0>14 is false (zero). 6) main() { printf(“\nab”); printf(“\bsi”); printf(“\rha”); } Answer: hai Explanation: \n – newline \b – backspace \r – linefeed(previous line) 7) main() { int i; printf(“%d”,scanf(“%d”,&i)); // value 10 is given as input here } Answer: 1 Explanation: Scanf returns number of items successfully read and not 1/0. Here 10 is given as input which should have been scanned successfully. So number of items read is 1. 8) void main() { int const * p=5; printf(“%d”,++(*p)); } Answer: Compiler error: Cannot modify a constant value. Explanation: p is a pointer to a “constant integer”. But we tried to change the value of the “constant integer”. (9) What will be output if you will compile and execute the following c code? #include<stdio.h> void main() { char *str; scanf("%[^\n]",str); printf("%s",str); } (a)It will accept a word as a string from user. (b)It will accept a sentence as a string from user. (c)It will accept a paragraph as a string from user. (d)Compiler error Ans: (b) Explanation: Task of % [^\t] is to take the stream of characters until it doesn’t receive new line character ‘\n’ i.e. enter button of your keyboard. (10) What will be output if you will compile and execute the following c code? #include<stdio.h> void main() { int array[3]={5}; int i; for(i=0;i<=2;i++) printf("%d ",array[i]); } (a)5 garbage garbage (b)5 0 0 (c)5 null null (d)Compiler error Ans: (b) Explanation: Storage class of an array which initializes the element of the array at the time of declaration is static. Default initial value of static integer is zero. (11) What will be output if you will compile and execute the following c code? #include<stdio.h> void main( ) { register int i,x; scanf("%d",&i); x=++i + ++i + ++i; printf("%d",x); } (a)17 (b)18 (c)21 (d)Compiler error Output: (d) Explanation: In c register variable stores in CPU it doesn’t store in RAM. So register variable have not any memory address. So it is illegal to write &a. (12) What will be output if you will compile and execute the following c code? #include<stdio.h> void main(){ int a=-20; int b=-3; printf("%d",a%b); } (a)2 (b)-2 (c)18 (d)-18 Output: (b) Explanation: Sign of resultant of modular division depends upon only the sign of first operand. 13) #include<stdio.h> int main() { goto abc; printf("main"); } void dispaly() { abc: printf("display"); } (a)main (b)display (c)maindisplay (d)Compiler error Output: (d) Explanation: Label of goto cannot be in other function because control cannot move from one function to another function directly otherwise it will show compiler error: unreachable label 14) #include<stdio.h> int main() { const int i=5; i++; printf("%d",i); } (a)5 (b)6 (c)0 (d)Compiler error Output: (d) Explanation: We cannot modify the const variable by using increment operator. (15) #include<stdio.h> int main() { int array[2][2][3]={0,1,2,3,4,5,6,7,8,9,10,11}; printf("%d",array[1][0][2]); } (a)4 (b)5 (c)6 (d)7 (e)8 Output: e Explanation: array[1][0][2] means 1*(2*3)+0*(3)+3=9th element of array starting from zero i.e. 8. 16) #include<stdio.h> void main() { int a=5,b=10,c=1; if(a&&b>c) printf("codershunt"); else break; } output: error Misplaced break. Explanation: Keyword break is not syntactical part of if else statement. So we cannot use break keyword in if else statement. This keyword can be use in case of loop or switch case statement. Hence when you will compile above code compiler will show an error message: Misplaced break. 17) #include<stdio.h> void main() { if(!printf("Mukesh Ambani")) if(printf(" Lakashmi Mittal")) } Output: Mukesh Ambani Explanation: Return type of printf function is int. This function return a integral value which is equal to number of characters a printf function will print on console. First of all printf function will print Mukesh Ambani. Since it is printing 13 character so it will return 13. So, !printf("Mukesh Ambani") = !13= 0 In c language zero represents false. So if(0) is false so next statement which inside thebody of first if statement will not execute. 18) #include<stdio.h> void main() { int x=1; if(x) printf("The Godfather"); x; else printf("%d",x); } Output: error: Misplace else Explanation: If you are not using { and } in if clause then you can write only one statement. Otherwiseit will cause of compilation error: Misplace else 19) #include<stdio.h> void main() { if('\0'); else if(NULL) printf("codershunt"); else; } output: no output Explanation: ‘\0’ is null character constant. Its ASCII value is zero. if(0) means false so program control will check else if clause. NULL is macro constant which has been defined in stdio.h which also returns zero. 20) main() { char *p; p="Hello"; printf("%c\n",*&*p); } Answer: H Explanation: * is a dereference operator & is a reference operator. They can be applied any number of times provided it is meaningful. Here p points to the first character in the string "Hello". *p dereferences it and so itsvalue is H. Again & references it to an address and * dereferences it to the value H. |