NOIP 提高组初赛 · NOIP 2016 提高组初赛试题 第 23 题

选择题 · 答案 6,5,4,3,2,1, · 考点:输入输出、位运算、循环结构、一维数组

← 整套速查表 NOIP 提高组初赛 全部真题

题目

#include <iostream> 
using namespace std;
int main()
{
    int a[6] = {1, 2, 3, 4, 5, 6};
    int pi = 0;
    int pj = 5;
    int t, i;
    while (pi < pj)
    {
        t = a[pi];
        a[pi] = a[pj];
        a[pj] = t;
        pi++;
        pj--;
    }
    for (i = 0; i < 6; i++)
        cout << a[i] << ",";
    cout << endl;
    return 0;
}

输出:_________

答案:6,5,4,3,2,1,

考点

输入输出位运算 讲解 →位运算 真题汇总 →循环结构一维数组

解题思维

看到双指针 pi/pj 向中间靠拢交换,直接判定为数组原地反转。

常见错误

易漏输出末尾逗号;误判循环条件 pi<=pj 导致多交换一次。

详细解析(节选)

考点:数组反转(双指针)

程序在做什么

输入整型数组,利用双指针从两端向中间交换元素实现原地反转,最后按格式输出。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断