This is a continuation of last post.
Before seeing the answer try to predict it & then see the explanation.
All the Best!!
31) #include<stdio.h>
main()
{
int i=1,j=2;
switch(i)
{
case 1: printf("GOOD");
break;
case j: printf("BAD");
break;
}
}
32) main()
{
int i;
printf("%d",scanf("%d",&i)); // value 10 is given as input here
}
33) main()
{
clrscr();
}
clrscr();
34) main()
{
int i=0;
for(;i++;printf("%d",i)) ;
printf("%d",i);
}
35) #include<stdio.h>
main()
{
char s[]={'a','b','c','\n','c','\0'};
char *p,*str,*str1;
p=&s[3];
str=p;
str1=s;
printf("%C",++*p + ++*str1-32);
}
======================================================
31.
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.
32.
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.
33.
Answer:
No output/error
Explanation:
The first clrscr() occurs inside a function. So it becomes a function call. In the
second clrscr(); is a function declaration (because it is not inside any
function).
34.
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).
35.
Answer:
M
Explanation:
p is pointing to character '\n'.str1 is pointing to character 'a' ++*p
Answer:"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
Answer:"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");
Before seeing the answer try to predict it & then see the explanation.
All the Best!!
31) #include<stdio.h>
main()
{
int i=1,j=2;
switch(i)
{
case 1: printf("GOOD");
break;
case j: printf("BAD");
break;
}
}
32) main()
{
int i;
printf("%d",scanf("%d",&i)); // value 10 is given as input here
}
33) main()
{
clrscr();
}
clrscr();
34) main()
{
int i=0;
for(;i++;printf("%d",i)) ;
printf("%d",i);
}
35) #include<stdio.h>
main()
{
char s[]={'a','b','c','\n','c','\0'};
char *p,*str,*str1;
p=&s[3];
str=p;
str1=s;
printf("%C",++*p + ++*str1-32);
}
======================================================
31.
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.
32.
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.
33.
Answer:
No output/error
Explanation:
The first clrscr() occurs inside a function. So it becomes a function call. In the
second clrscr(); is a function declaration (because it is not inside any
function).
34.
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).
35.
Answer:
M
Explanation:
p is pointing to character '\n'.str1 is pointing to character 'a' ++*p
Answer:"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
Answer:"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");
To be continued...
========================================================
Thanks for coming till this point!!
VSG
SQL DBA
Thanks for coming till this point!!
VSG
SQL DBA
No comments:
Post a Comment