首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,回答问题1和问题2,将解答填入对应栏内。 [说明] 对于具有n个元素的整型数组a,需要进行的处理是删除a中所有值为0的数组元素,并将a中所有非0元素按照原顺序连续地存储在数组空间的前端。 下面分别用函数compact
阅读以下说明和C函数,回答问题1和问题2,将解答填入对应栏内。 [说明] 对于具有n个元素的整型数组a,需要进行的处理是删除a中所有值为0的数组元素,并将a中所有非0元素按照原顺序连续地存储在数组空间的前端。 下面分别用函数compact
admin
2012-01-13
61
问题
阅读以下说明和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://www.kaotiyun.com/show/y6jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel2010中,设单元格A1、B1、C1、A2、B2、C2中的值分别为1、2、3、4、5、6,若在单元格D1中输入函数“=MAX(A1:A2,B1:C2)”,按回车键后,则D1单元格中的值为(
将四个元素a,b,c,d分成非空的两组,不计组内顺序和组间顺序,共有()种分组方法。
下面关于幻灯片打印的叙述中,正确的是______。
在Outlook中可以借助(6)的方式传送一个文件。
删除Windows中某个应用程序的快捷方式,意味着(39)。
下列选项中,衡量数据校验人员业务水平的主要指标是(20)。
从①地开车到⑥地,按下图标明的道路和行驶方向,共有(4)种路线。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
防火墙包过滤规则的默认策略为拒绝,下表给出防火墙的包过滤规则配置界面。若要求内部所有主机能使用IE浏览器访问外部IP地址为202.117.118.23的Web服务器,为图中(1)~(4)空缺处选择正确答案。(1)A.允许B.拒绝(2)A.192
阅读下列说明和HTML文本,分析其中嵌入的JavaScdpt脚本,将应填入(n)处的语句对应栏内。[说明]这是一个修改字符串的题目,此题中将字符串“hello,Iamnotastudent,Idonotlikecompute
随机试题
用千分尺加上一定的辅助量具,可以测量圆锥体的角度和大小端直径的精确尺寸。()
Aqualityeducationistheultimateliberator.Itcanfreepeoplefrompoverty,givingthemthepowertogreatlyimprovetheirl
肺心病不导致
非胃肠道手术患者,术前应禁食
以下关于尿道损伤的叙述,不正确的是()
老年男性,咳喘经年,入冬则发,咳痰色白量多易咯,胸脘痞闷,呕恶食少,舌苔折厚腻,治宜首选
在合同计价争议的鉴定中,鉴定项目的发包人对承包人材料采购价格高于合同约定不予认可的说法,正确的有()。
符合绩效考核指标设置的陈述是()。(2003年11月二级真题)
UKismentionedinthetextwiththeintentionto______.Inboththesecondandthethirdparagraphs,theauthoremployswhich
A、Richenoughandoldenough.B、Strongandundertheageof70.C、Healthyandovertheageof17.D、Havingbeentrainedandpass
最新回复
(
0
)