📌  相关文章
📜  教资会网络 | UGC NET CS 2017 年 1 月至 2 日 |问题 26(1)

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

UGC NET CS 2017 年 1 月至 2 日 |问题 26
简介

教资会网络(University Grants Commission National Eligibility Test)是印度的一项全国性考试,旨在评估高等教育机构教师和研究人员的资格和能力。其中,UGC NET CS(Computer Science)是针对计算机科学领域的考试。

问题 26 是一道关于 C++ 编程语言的基础问题,要求考生判断程序的输出结果。

代码
#include<iostream>
using namespace std;
int main()
{
    int arr[] = {10,20,30,40,50};
    int *p = arr;
    *(p++) += 123;
    cout<<*p<<endl;
    return 0;
}
解析

这段程序使用了指针(*p)和数组(arr)的知识点。

程序中定义了一个 int 类型的数组 arr,长度为 5,并初始化为 {10,20,30,40,50}。同时,定义了一个 int 型指针 p,指向数组 arr 的首地址(arr[0])。

接下来,使用了前置自增运算符(++)和后置自增运算符(++)对指针 p 进行了运算。其中,前置自增运算符会先将指针 p 自增 1,然后将其所指向的值取出来;而后置自增运算符则是先将其所指向的值取出来,再将指针 p 自增 1。

*(p++) += 123;

因此,这段代码的作用是将 arr[0] 这个元素的值加上 123。

最后,程序输出 *p 的值,也就是 arr[1] 的值,即输出结果为 143。

结论

正确的答案为: D) 143。

参考资料
  1. 印度大学教资会官网,https://ugcnetonline.in/,2021 年 9 月访问。