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
|
C Aptitude Papers
Posted Date: 11 Mar 2008 Resource Type: Articles/Knowledge Sharing Category: General
|
Posted By: ramya Member Level: Gold Rating: Points: 2
|
|
|
|
1) 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 its value is H. Again & references it to an address and * dereferences it to the value H.
2) main()
{
int i=1;
while (i<=5)
{
printf(”%d”,i);
if (i>2)
goto here;
i++;
}
}
fun()
{
here:
printf(”PP”);
}
Answer:
Compiler error: Undefined label ‘here’ in function main
Explanation:
Labels have functions scope, in other words The scope of the labels is limited to functions . The label ‘here’ is available in function fun() Hence it is not visible in function main.
3) main()
{
static char names[5][20]={”pascal”,”ada”,”cobol”,”fortran”,”perl”};
int i;
char *t;
t=names[3];
names[3]=names[4];
names[4]=t;
for (i=0;i<=4;i++)
printf(”%s”,names);
}
Answer:
Compiler error: Lvalue required in function main
Explanation:
Array names are pointer constants. So it cannot be modified.
4) void main()
{
int i=5;
printf(”%d”,i++ + ++i);
}
Answer:
Output Cannot be predicted exactly.
Explanation:
Side effects are involved in the evaluation of i
5) void main()
{
int i=5;
printf(”%d”,i+++++i);
}
Answer:
Compiler Error
Explanation:
The expression i+++++i is parsed as i ++ ++ + i which is an illegal combination of operators.
6) #include
main()
{
int i=1,j=2;
switch(i)
{
case 1: printf(”GOOD”);
break;
case j: printf(”BAD”);
break;
}
}
Answer:
Compiler Error: Constant expression required in function main.
Explanation:
The case statement can have only constant expressions (this implies that we cannot use variable names directly so an error).
Note:
Enumerated types can be used in case statements.
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) #define f(g,g2) g##g2
main()
{
int var12=100;
printf(”%d”,f(var,12));
}
Answer:
100
9) main()
{
int i=0;
for(;i++;printf(”%d”,i)) ;
printf(”%d”,i);
}
Answer:
1
Explanation:
before entering into the for loop the checking condition is “evaluated”. Here it evaluates to 0 (false) and comes out of the loop, and i is incremented (note the semicolon after the for loop).
10) #include
main()
{
char s[]={’a',’b',’c',’\n’,'c’,'\0'};
char *p,*str,*str1;
p=&s[3];
str=p;
str1=s;
printf(”%d”,++*p + ++*str1-32);
}
Answer:
M
Explanation:
p is pointing to character ‘\n’.str1 is pointing to character ‘a’ ++*p meAnswer:”p is pointing to ‘\n’ and that is incremented by one.” the ASCII value of ‘\n’ is 10. then it is incremented to 11. the value of ++*p is 11. ++*str1 meAnswer:”str1 is pointing to ‘a’ that is incremented by 1 and it becomes ‘b’. ASCII value of ‘b’ is 98. both 11 and 98 is added and result is subtracted from 32.
i.e. (11+98-32)=77(”M”);
|
Responses
|
No responses found. Be the first to respond and make money from revenue sharing program.
|
|
|