What will be the result of the following program?
main()
{
char p[]="String";
int x=0;

if(p=="String")
{
printf("Pass 1");
if(p[sizeof(p)-2]=='g')
printf("Pass 2");
else
printf("Fail 2");
}
else
{
printf("Fail 1");
if(p[sizeof(p)-2]=='g')
printf("Pass 2");
else
printf("Fail 2");
}
}

a) Pass 1, Pass 2
b) Fail 1, Fail 2
c) Pass 1, Fail 2
d) Fail 1, Pass 2
e) syntax error during compilation

Answers were Sorted based on User's Feedback



What will be the result of the following program? main() ..

Answer / jaroosh

Fail 1 , Pass 2.

Some explanation,
1. Fail 1
first of all, to compare strings in C, you use this strcmp
function, so this WOULD give PASS 1 :
if(strcmp(p,"String") == 0)
but
if(p=="String")
will fail because this line means :
if address of p is the same as address of some temporary
storage for literals, where literal "String" is stored,
which is very rarely true, because storing literals is
compiler specific and is very hard to estimate at runtime.
2. Pass 2
sizeof(p) gives 7, because sizeof(char) is 1 byte, and we
have 7 chars in array storing "String", which are :
[0]S
[1]t
[2]r
[3]i
[4]n
[5]g
[6]\0 (EOS)
now, clearly sizeof(p) - 2 is [5] which is "g"
thats why
if(p[sizeof(p)-2]=='g')
is true.

Is This Answer Correct ?    10 Yes 0 No

What will be the result of the following program? main() ..

Answer / guest

d) Fail 1, Pass 2

Is This Answer Correct ?    6 Yes 0 No

What will be the result of the following program? main() ..

Answer / reepal

e) syntex error during compilation

Is This Answer Correct ?    3 Yes 1 No

What will be the result of the following program? main() ..

Answer / rakhi

b) Fail 1 Fail 2

Is This Answer Correct ?    2 Yes 2 No

What will be the result of the following program? main() ..

Answer / guest

a) Pass 1, Pass 2

Is This Answer Correct ?    1 Yes 1 No

What will be the result of the following program? main() ..

Answer / vikram

b)fail1,fail2
bcoz whenever we compare strings,we use strcmp()
function,hence the condition in if() will not be true,
the control will go into else part and will print fail1,then
size of array p is 6 and sizeof(p)-2 results to 4 and hence
p[4]=='n'which again makes the condition in the if()
false,hence fail2 in else part will be printed.
thnx

Is This Answer Correct ?    1 Yes 1 No

What will be the result of the following program? main() ..

Answer / guest

c)Pass 1, Fail 2

Is This Answer Correct ?    1 Yes 2 No

What will be the result of the following program? main() ..

Answer / vinay deore

Fail 1,Fail 2

Is This Answer Correct ?    0 Yes 2 No

What will be the result of the following program? main() ..

Answer / guest

Fail 1,Fail 2

Is This Answer Correct ?    0 Yes 2 No

What will be the result of the following program? main() ..

Answer / shruti

syntax error during compilation..


we cannot compare strings using if(p == "string")

so will not work..

NOTE:
while comparing string otherwise also we use 'string'
(string in single quotes ' ' not " ")..

Is This Answer Correct ?    0 Yes 2 No

Post New Answer

More C Interview Questions

write a c/c++ program that takes a 5 digit number and calculates 2 power that number and prints it?

4 Answers  


Which one to choose from 'initialization lists' or 'assignment', for the use in the constructor?

0 Answers  


Why do we use static in c?

0 Answers  


What is the difference between the expression “++a” and “a++”?

0 Answers  


Explain function?

0 Answers  






Name the language in which the compiler of "c" in written?

3 Answers   Bajaj,


How to declare pointer variables?

0 Answers  


Write a function expand(s1,s2) that expands shorthand notations like a-z in the string s1 into the equivalent complete list abc...xyz in s2 . Allow for letters of either case and digits, and be prepared to handle cases like a-b-c and a-z0-9 and -a-z. z-a:zyx......ba -1-6-:-123456- 1-9-1:123456789987654321 a-R-L:a-R...L a-b-c:abbc

0 Answers  


Identify the operators that is not used with pointer a. && b. # c. * d. >>

2 Answers  


Explain how can a program be made to print the line number where an error occurs?

0 Answers  


How can I read in an object file and jump to locations in it?

0 Answers  


what are far pointers?

1 Answers  


Categories