Gate2017 cs Q48

0. Consider the following C program.
#include
#include
void printlength (char *s, char *t)
{
unsigned int c = 0;
int len = ((strlen (s) - strlen (t)) > c) ? strlen (s) : strlen (t);
printf("%d\n", len);
}
void main()
{
char *x = "abc";
char *y = "defgh";
printlength(x, y);
}
Recall that strlen is defined in string.h as returning a value of type size_t, which is an unsigned int .The output of the program is

  • Option : C
  • Explanation : ((strlen(s) – strlen(t)) > c) ? strlen (s) : strlen (t)
    = (3 – 5 > 0)
    = (-2 > 0)
    Important point here is while comparing -2 with c, result will be a positive number as c is unsigned. So, out of these two, strlen (s) will be printed. Therefore, option c is correct
Cancel reply

Your email address will not be published. Required fields are marked *


Cancel reply

Your email address will not be published. Required fields are marked *