📜  C++程序的输出|套装25(微距)

📅  最后修改于: 2021-05-30 09:40:29             🧑  作者: Mango

先决条件–宏

  1. 以下程序的输出是什么?
    #include 
    using namespace std;
      
    #define a 10
      
    int main()
    {
        int a = 5;
        cout << "macro variable value: "<< a;
        return 1;
    }
    

    输出:
    错误
    说明:编译器无法解析范围,因此它不知道要打印哪个值,因此会出错。

  2. 以下程序的输出是什么?
    #include 
    using namespace std;
      
    #define area length * width
      
    int main()
    {
        int length = 10, width = 20;
        cout << "macro expression area: " << area;
        return 1;
    }
    

    输出:

    macro expression area: 200

    说明:与第一个问题不同,这里的程序值需要在宏中替换。一旦控件进入“区域”,它将被替换为宏代码,即

    cout<< "macro expression area: " << length * width;
    

    然后替换和计算长度和宽度的值。

  3. 以下程序的输出是什么?
    #include
    using namespace std;
      
    #define sqrt(x) (x*x)
      
    int main()
    {
        int a = 3, b;
        b = sqrt(a + 5);
        cout<< "Output of b = " << b;
    }
    

    输出:

    Output of b =  23

    描述:是,不是sqrt(8)但sqrt(a + 5);将被替换为(a + 5 * a + 5);为了使其完美,结果为23,宏命令应替换为

    #define sqrt(x) ( (x) * (x) )
    
  4. 以下程序的输出是什么?
    #include 
    using namespace std;
      
    #define printf(s) cout << s;
      
    int main()
    {
        printf("GeeksforGeeks");
        cout << "\nBye Bye";
    }
    

    输出:

    GeeksforGeeks
    Bye Bye

    说明: C++编译器支持printf,因此不会引发任何错误。宏甚至适用于关键字和诸如printf之类的任何语句。当控件进入printf时,它将像函数调用一样抛出参数,因为它已经定义。

  5. 以下程序的输出是什么?
    #include 
    using namespace std;
      
    #define SQRT(x) ( x * x)
      
    int main()
    {
        int a,  b= 3;
        a = SQRT(b++);
        cout << a << endl << b;
        return 0;
    }
    

    输出:

    12
    5

    说明: a = SQRT(b ++);变成a = b ++ * b ++; a = 3 * 4;这里我们使用post-increment运算符,因此对于每次执行以及在语句执行之后,语句中的3都会递增。

宏测验

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”