The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+24 votes
4.9k views

Consider the following C program.

#include<stdio.h>
#include<string.h>
int main() {
    char* c=”GATECSIT2017”;
    char* p=c;
    printf(“%d”, (int)strlen(c+2[p]-6[p]-1));
    return 0;
}

The output of the program is _______

 

asked in Programming by Active (1.9k points)
edited by | 4.9k views
+1
In que. it was asked about strlen that would be 2
0
what was actual que . does this contain both printf line .......
0
Actual one had strlen wala .
0
i will just explain this wait for 5 min .....
+1
"(int)" is it use for type casting???
0
Acc to me, the value at address 110 is 1 not 7 ,how you have taken 7 which is at 111

6 Answers

+43 votes
Best answer
char c[]="GATECSIT2017";
char *p=c;
printf("%d",strlen(c+2[p]-6[p]-1)); 

$2[p] = *(2+p) = p[2]$
$6[p] = *(6+p) = p[6]$
$c + 2[p] - 6[p] -1 = c + 'T' - 'I' - 1 = c + 11 - 1 = c + 10$ (In any character coding all alphabet letters are assigned consecutive int values as per C)

printf will print $2$ which is the length of "$17$".

answered by Veteran (339k points)
edited by
0

sir i believe the question was a numerical answer type and had only one output which was to print just 2,

i remember that there was only one

printf statement which was

printf("%d",(int)strlen(c+2[p]-6[p]-1));

kindly change the question as it can be misleading

0
leave it for now. When the answer response comes, all the questions will be renetered. It should be coming next week.
0
why it is tycasted?
0
How do i 17 lenth ans is 2 Pls Explain ?
0
strangely counting position of alphabet number worked out here c is c[0]=g (7th position in alphabet) , similarly T=20th , I is 11th (7+20-11-1) :D , do you think it will work for every case ?
+2
Strlen returns unsigned values ... thats y type cast is needed ...
0

@ Puja Mishra 

If we type cast and value of strlen is negative then what happens ?

ex : strlen(-2); // output 2

(int)strlen(-2); // what is the output ?

+14 votes

I hope now you can understood easily

answered by Active (3.7k points)
0
how you start "c" address from 100. what need to do "110 %5"??? kindly plz explain...
0
you can assume any starting address for array . ANswer would be same .
0
%s=17 please explain
0
tysm
0
%s=17 here bcz of

Since address is now 110. So from 110 it will print whole string i.e 17
0
@Anup

can we index arrays like 2[p] ???

Any reference.
+2
+9 votes
The answer wil be 2.
This was asked , c+2[p]-6[p]-1
Look at 2[c] - 6[p] this will be evaluate as ( T -  I)

the difference in ascii walue of T and I will be 11.
So it will boil down to c + 11-1

means c+10  and the address for stringlength will become like strlength("17');

That is 2
answered by Boss (15.7k points)
0
how c+10 become "17"?? kindly eplain
0
@pankajbelwal

(ascii value of c) + 10 (make sure ascii value of 'c' is relative to the value choosen in 't' and 'i' in previous steps )
+5
Ascii value of C is not used here, C is the starting address of the array and C+10 is same as C[10], now strlen starts counting from the address passed to it as argument and stops when it finds '\0'(null- by default added at the end of any array of characters- string) but while counting array length strlen does not add extra 1 for this null character, so starting  from C+10, strlen finds that C+12 is null('\0), hence stops and returns length as 2
0
in ASCII table all alphabets are listed in consecutive locations, so you can assume  a is  1 , then b is 2 , c is 3 , d is 4, e is 5, f is 6, g is 7  .......so on till z=26,

now given in question C +10, where C gives the value of starting address of the array , i,e value of G which is 7

so C+7 turns out to be 17 , i hope this helps
+8 votes

Hope it might help.......

answered by Boss (23.2k points)
0
1010 means from 10 th position consider complete string?
0 votes

output is 2

answered by (127 points)
0 votes

answer is 2

answered by (189 points)


Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

34,814 questions
41,798 answers
119,031 comments
41,443 users