问答题
18分
打开考生文件夹下的工程proj3,,其中声明了List类,它是一个用于表示整数列表的类。List的成员函数insert的功能是将一个指定的整数插入到列表的指定位置处,原位置处的及其后的所有元素依次向后...
打开考生文件夹下的工程proj3,,其中声明了List类,它是一个用于表示整数列表的类。List的成员函数insert的功能是将一个指定的整数插入到列表的指定位置处,原位置处的及其后的所有元素依次向后顺移一个位置。请补充完整成员函数insert。在main函数中给出了一组测试数据,此情况下程序的输出应该是:
5 3 7 9 13 2 6 8 1 0
5 3 7 13 2 6 8 1 0
5 -23 3 7 13 2 6 -19 8 1 0
注意:只需在 //********333******** 和 //********666******** 之间填入所编写的若干语句,不要改动程序中的其他内容。
5 3 7 9 13 2 6 8 1 0
5 3 7 13 2 6 8 1 0
5 -23 3 7 13 2 6 -19 8 1 0
注意:只需在 //********333******** 和 //********666******** 之间填入所编写的若干语句,不要改动程序中的其他内容。
参考解析: 【参考答案】
for (int i = count-1; i >= pos; i--)
{
elem[i+1] = elem[i];
}
elem[pos] = data;
count++;
【考点分析】
本题考查的是List类,其中涉及数组、成员函数。
【解题思路】
主要考查考生对对象处理的掌握,函数insert的功能是将一个指定的整数data插入到列表的指定位置pos处,原位置处的及其后的所有元素依次向后顺移一个位置。首先通过比较count与MAX_SIZE判断存储空间是否已满,若存储空间已满,直接返回;然后判断插入的位置是否在当前数组最后元素之后,若是,则紧贴最后元素之后插入新元素即可;最后使用for循环,将pos位置及其之后的所有元素向后顺移一位,再将data插入pos位置,同时更新count的值。