My Profile
Active Members
TodayLast 7 Days
more...
Awards & Gifts
Online Exams
Fresher Jobs
Our fresher job section is exclusively for fresh graduates! Find jobs for freshers in major Indian
cities including Bangalore, Chennai, Hyderabad, Pune or Kochi
Resources
Find educational articles, blogs, discussion threads and other resources.
Colleges
Find details about any college in India or search for courses.
Advertisements
|
Predict the output or error(s) for the following:(1)
Posted Date: 05 Mar 2008 Resource Type: Articles/Knowledge Sharing Category: Entertainments
|
Posted By: Deepu Member Level: Diamond Rating: Points: 5
|
|
|
|
7. main() { int i=-1,j=-1,k=0,l=2,m; m=i++&&j++&&k++||l++; printf("%d %d %d %d %d",i,j,k,l,m); }
Answer: 0 0 1 3 1
Explanation : Logical operations always give a result of 1 or 0 . And also the logical AND (&&) operator has higher priority over the logical OR (||) operator. So the expression ‘i++ && j++ && k++’ is executed first. The result of this expression is 0 (-1 && -1 && 0 = 0). Now the expression is 0 || 2 which evaluates to 1 (because OR operator always gives 1 except for ‘0 || 0’ combination- for which it gives 0). So the value of m is 1. The values of other variables are also incremented by 1.
8. main() { char *p; printf("%d %d ",sizeof(*p),sizeof(p)); } Answer: 1 2
Explanation: The sizeof() operator gives the number of bytes taken by its operand. P is a character pointer, which needs one byte for storing its value (a character). Hence sizeof(*p) gives a value of 1. Since it needs two bytes to store the address of the character pointer sizeof(p) gives 2.
9. main() { int i=3; switch(i) { default:printf("zero"); case 1: printf("one"); break; case 2:printf("two"); break; case 3: printf("three"); break; } }
Answer : three
Explanation : The default case can be placed anywhere inside the loop. It is executed only when all other cases doesn't match.
10. main() { printf("%x",-1<<4); }
Answer: fff0
Explanation : -1 is internally represented as all 1's. When left shifted four times the least significant 4 bits are filled with 0's.The %x format specifier specifies that the integer value be printed as a hexadecimal value.
11. 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.
12. main() { int c=- -2; printf("c=%d",c); }
Answer: c=2;
Explanation: Here unary minus (or negation) operator is used twice. Same maths rules applies, ie. minus * minus= plus. Note: However you cannot give like --2. Because -- operator can only be applied to variables as a decrement operator (eg., i--). 2 is a constant and not a variable.
13. #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
14. 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).
|
Responses
|
No responses found. Be the first to respond and make money from revenue sharing program.
|
|
|