📌  相关文章
📜  教资会网络 | UGC-NET CS 2017 年 11 月 – III |问题 50(1)

📅  最后修改于: 2023-12-03 15:26:05.320000             🧑  作者: Mango

UGC-NET CS 2017 年 11 月 – III |问题 50

介绍

UGC-NET CS 2017 年 11 月 – III 问题 50 是一道涉及程序员的问题。该问题需要你发现下面两个代码片段的输出,该输出是什么。答案是一个包含 C 和 C++ 变量或函数的语句。

代码片段

下面是两个代码片段:

代码片段 1
#include<stdio.h>

int main() 
{ 
    int x,y; 

    x==2;
    y=++x;

    int z= x++ + ++y;

    printf("%d, %d, %d",x,y,z); 

    return 0;
}
代码片段 2
#include<iostream>

using namespace std;

int main()
{
    int x=10,y=20;

    int &z=x;
    z=y;

    cout<<x<<" "<<y<<" "<<z;

    return 0;
}
输出
代码片段 1 的输出

代码片段 1 的输出为:

3, 3, 7
代码片段 2 的输出

代码片段 2 的输出为:

20 20 20
解释
代码片段 1 的解释

上述代码片段 1 中,我们指定 x 等于 2(注意这里用的是“==”而不是“=”),然后将 x 的值加 1(++x),并将结果赋给 y。接着,我们计算 x+1 和 y+1 的值,并将结果存储在 z 中。

z = 3 + 3

z = 6

终于,我们打印了 x、y 和 z 的值。

输出: 3, 3, 7

代码片段 2 的解释

上述代码片段 2 中,我们定义了 x 和 y,然后创建一个名为 z 的整数的引用,并将 x 的引用分配给它。

接着,我们将 y 的值分配给 z(z 和 x 指向同一个内存地址,因此,如果我们修改 z,x 的值也会发生更改)。

所以,最后,x,y 和 z 的值都变成了 20。

输出: 20 20 20

结论

代码片段 1 中,我们使用了变量赋值和自增的混合方法来求值。代码片段 2 中,我们创建了一个引用,并将另一个变量的值赋给引用。