首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,回答问题1和问题2,将解答填入对应栏内。 [说明] 对于具有n个元素的整型数组a,需要进行的处理是删除a中所有值为0的数组元素,并将a中所有非0元素按照原顺序连续地存储在数组空间的前端。 下面分别用函数compact
阅读以下说明和C函数,回答问题1和问题2,将解答填入对应栏内。 [说明] 对于具有n个元素的整型数组a,需要进行的处理是删除a中所有值为0的数组元素,并将a中所有非0元素按照原顺序连续地存储在数组空间的前端。 下面分别用函数compact
admin
2012-01-13
60
问题
阅读以下说明和C函数,回答问题1和问题2,将解答填入对应栏内。
[说明]
对于具有n个元素的整型数组a,需要进行的处理是删除a中所有值为0的数组元素,并将a中所有非0元素按照原顺序连续地存储在数组空间的前端。
下面分别用函数compactArr_v1和compactArr_v2来实现上述处理要求,函数的返回值为非零元素的个数。
函数CompactArr(int a[],int n)的处理思路是:首先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非0元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。
函数CompactArr_v2(int a[],int n)的处理思路是:利用下标i(初值为0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增1,而遇到非0元素并将其前移后k才增1。
[C函数1]
int CompactArr vl(int a[],int n)
{
int i, k;
int *temp=(int*)malloc(n* (1) );
if(!temp)
return-1;
for(i=0, k=0; i<n; i++)
if(a
!=0){
(2) =a
;
}
for(i=0; (3) ; i++)
a
=temp
;
return k;
}
[C函数2]
intCompactArr v2(inta[],intn)
{
int i, k;
for(i=0, k=0; i<n; i++) {
if(a
!=0){
(4) =a
;
}
}
return k;
}
请说明函数CompactArr_v1存在的缺点。
选项
答案
可能由于动态内存申请操作失败而导致函数功能无法实现,没有释放动态数组空间(存在内存泄漏问题),时问和空间效率低。
解析
本问题考查程序分析基本能力。
解决同一个问题会有多种不同的方法,各种方法都有其特点。在本问题中,相比于函数CompactArr v2,CompactArr_v1的处理思路容易理解,由于数组a的数据需要复制给temp,然后再复制回来,因此需要更多的空间支持,处理速度时间也更长。另外,其代码执行时也可能由于申请内存空间的要求得不到满足,从而导致函数的功能不能实现,虽然发生这种情况的概率很低,但也有可能发生。此外,函数结束前也没有释放所申请的内存块。
转载请注明原文地址:https://kaotiyun.com/show/y6jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
()不属于信息污染。
在Excel2003中,A1到E6单元格的值如下图所示,若在A7单元格中输入计算众数的函数“=MODE(A1:E6)”,按回车键后,则.A7单元格显示的值为(47)。
在Microsoft Word中点击“文件”→“另存为”,在保存类型下拉框中不能选择的有(45)。
在Word编辑状态下,有些英文单词或汉字下面会自动加上红色或绿色的波浪型细下划线。以下叙述中,“波浪型细下划线(44)”是错误的。
在用Word软件编辑文档时,若误删除了一个数据,随后可使用______命令进行恢复。
在大型分布式信息系统中,为提高信息处理效率,减少网络拥堵,信息存储的原则是:数据应尽量(66)________________。
在Excel2007的A1单元格中输入函数“=LEFT(“CHINA”,1)”,按回车键后,则A1单元格中的值为()。
连接主机A与交换机的单根网线的最大长度为多少?该局域网中的集线器每个端口平均享有的带宽是多少?
从以下备选答案中为程序中(1)~(5)处空缺内容选择正确答案,填入答题纸对应的解答栏内。(1)A.CreatObject()B.connect0C.go()D.open()(2)A."select*fromdata"B."select
随机试题
K对策生物一旦受到危害而种群下降就难以恢复。()
全口义齿初戴时,如果出现前牙开拾,其原因不可能是
护士误给某青霉素过敏患者注射青霉素造成患者死亡,此事故属于()。
()不是我国保险资产管理公司的资产管理业务内容。
2018年1月15日,某房地产开发公司(增值税一般纳税人)收到主管税务机关的《土地增值税清算通知书》,要求对其建设的W项目进行清算。该项目总建筑面积18000平方米,其中可售建筑面积17000平方米,不可售建筑面积1000平方米(产权属于全体业主所有的公共
根据马斯洛需求层次理论,A的口头禅反应了A的()。根据麦克里兰的三重需要理论,B喜欢对人指手画脚,发号施令,反映了他内心强烈的()。
()不是《中华人民共和国国家赔偿法》明确规定的赔偿方式。
1,2,2,6,3,15,5,(),8,104,13
为了保证大多数测验题目和整个测验都具有较高的区分度,题目难度的分布最好是
A、Heisnotsatisfiedwiththepay.B、Heisnotabletoenjoypaidholidays.C、Thejobisnotverychallengingforhim.D、There
最新回复
(
0
)