全部科目 > 程序员 >
2023年上半年 下午试卷 案例
第 2 题
 
 
对于具有n个元素的整型数组a,需要进行的处理是删除a中所有值为0的数组元素,并将a中所有非0元素按照原顺序连续地存储在数组空间的前端。
下面分别用函数CompactArr_vl和CompactArr_v2来实现上述处理要求,函数的返回值为非零元素的个数。
函数CompactArr_vl(int a[], intn)的处理思路是:首先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组.a的每一个元素,将遇到的非0元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。
函数CompaetArr_v2(int a[], intn)的处理思路是:利用下标i (初值为0)顺序扫描数组a的每一个元素,下标k (初值为0)表示数组a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增1,而遇到非0元素并将其前移后k才增1。
 
问题:2.1   请根据说明中函数CompactArr_vl的处理思路填补空缺(1)〜(3),根据CompactArr_ v2的处理思路填补空缺(4)。
问题:2.2   请说明函数CompactArr_vl存在的缺点。




 
 



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有