📜  门| GATE-CS-2017(套装1)|第 55 题

📅  最后修改于: 2021-09-26 03:35:48             🧑  作者: 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);
}

回想一下strlen字符串.h 中定义为返回一个size_t类型的值,它是一个unsigned int

.
程序的输出是_________。

注意:此问题显示为数字答案类型。
(一) 2
(乙) 3
(三) 4
(四) 5答案:(乙)
解释: ((strlen(s) – strlen(t)) > c) ? strlen (s) : strlen (t)
= (3 – 5 > 0)
= (-2 > 0)

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

看代码澄清:https://ide.geeksforgeeks.org/hDPNVE
这个问题的测验