📜  门| GATE-CS-2017(Set 1)|第55章

📅  最后修改于: 2021-06-28 22:05:24             🧑  作者: Mango

考虑下面的C程序。

#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);
}

回想一下,在字符串.h中将strlen定义为返回size_t类型的值,这是一个无符号的int


该程序的输出是_________。

注意:此问题显示为数值答案类型。
(A) 2
(B) 3
(C) 4
(D) 5答案: (B)
说明: (((strlen(s)– strlen(t))> c)? strlen(s):strlen(t)
=(3 – 5> 0)
=(-2> 0)

这里的重点是在将-2与c进行比较时,由于c为无符号,结果将为正数。因此,将在这两个中打印出strlen。因此,选项B是正确的。

请参阅代码以进行澄清:https://ide.geeksforgeeks.org/hDPNVE
这个问题的测验