📌  相关文章
📜  国际空间研究组织 | ISRO CS 2015 |问题 75

📅  最后修改于: 2022-05-13 01:58:03.470000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2015 |问题 75

考虑以下陈述

#define hypotenuse (a, b) sqrt (a*a+b*b); 

宏调用 hypotenuse(a+2,b+3);
(A)求边为 a+2 和 b+3 的三角形的斜边
(B)求 (a+2) 2和 (b+3) 2的平方根
(C)无效
(D)求 3*a + 4*b + 5 的平方根答案: (D)
解释:

A macro is defined with, hypotenuse (a, b) sqrt (a*a+b*b);
call hypotenuse(a+2,b+3);
hypotenuse = sqrt (a+2*a+2 + b+3*b+3)
           = sqrt (a + 2a + 2 + b + 3b + 3)
           = sqrt (3a + 4b + 5)

所以,选项(D)是正确的。

注意:定义此宏的正确方法是:

#include 
#include 
  
//space is not allowed before bracket
#define hypotenuse(a, b) sqrt(a*a+b*b)
int main()
{
    //assume a = 1, b = 2
    printf("%f", hypotenuse (1+2, 2+3));
      
    //output should be 4.000000 
    return 0;
}

这个问题的测验