初级程序员2011上半年下午试题

初级程序员2011上半年下午试题

ID:37725819

大小:26.68 KB

页数:11页

时间:2019-05-29

初级程序员2011上半年下午试题_第1页
初级程序员2011上半年下午试题_第2页
初级程序员2011上半年下午试题_第3页
初级程序员2011上半年下午试题_第4页
初级程序员2011上半年下午试题_第5页
资源描述:

《初级程序员2011上半年下午试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、初级程序员2011上半年下午试题试题一阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入对应栏内。  [说明]  下面的流程图可在正文字符串T(1:L)中计算关键词字符串K(1:m)出现的次数(用n表示)。其中,L为字符串T的长度,m为字符串K的长度(m<L)。为便于模糊查找,关键词中的字符“?”可以匹配任意一个字符。  在该流程图中,先从T中取出长度为m的子串存入A中,再将A与K进行逐个字符的比较(其中,K可以包含字符“?”)。注意:从正文字符串中取出的关键词字符串不允许交叉。例如,“aaaaaa”中有3个关键词字

2、符串“aa”。  [流程图]  试题二阅读以下说明和C函数,回答问题1至问题3,将解答写在对应栏内。  [说明1]  函数substring(constcharstr[],intindex,intlength)的功能是求出字符串str中指定序号index开始且长度为length的子串,并返回所取出的子串。以字符串“Chinatoday”为例,其第一个字符“C”的序号为1(而其在字符数组str中的下标为0),从序号5开始且长度为3的子串为“at”。  [C函数1]行号代码1234567891011121314char*substrin

3、g(constcharstr[],intindex,intlength){char*tptr=0;intk;/*参数错误,返回空指针*/if(index<1

4、

5、length<0

6、

7、index+length-1>strlen(Str))return0;tptr=(char*)malloc((length+1)*sizeof(char));/*申请了串所需的存储区域*/if(tptr=0)return0;/*内存申请失败,返回空指针*/for(k=0;k<length;k++)tptr[k]=str[index+k-1];tptr[le

8、ngth-1]='';/*字符串置结束标志*/returntptr;}1、函数substring中有两处错误,请指出这些错误所在代码的行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行(有注释时,注释可省略)。出错行号修改正确后的完整代码行      [说明2]  在C函数2中,reverse(unsignedintn)的功能是求出并返回n的反序数。例如,1234的反序数是4321,其求解过程如下:  (1)由1234除以10得到商123和余数4,0乘以10再加上4得到4;  (2)由123除以10得到商1

9、2和余数3,4乘以10再加上3得到43;  (3)由12除以10得到商1和余数2,43乘以10再加上2得到432;  (4)由1除以10得到商0和余数1,432乘以10再加上1得到4321。  [C函数2]  unsignedintreverse(unsignedintn)  {  unsignedintresult=0;  while( (1) ){  result=result*10+n%10;  n= (2) ;  }  returnresult;  }2、请根据说明2,填充C函数2中的空缺(1)和(2)。3、用567,123

10、4,56781234,62354879643分别作为实参调用函数reverse,对应的返回值分别为765,4321,43218765,1357400630。请说明以62354879643作为实参调用函数reverse时返回结果出错的原因。试题三阅读以下说明和C函数,回答问题1和问题2,将解答填入对应栏内。  [说明]  对于具有n个元素的整型数组a,需要进行的处理是删除a中所有值为0的数组元素,并将a中所有非0元素按照原顺序连续地存储在数组空间的前端。  下面分别用函数compactArr_v1和compactArr_v2来实现上述

11、处理要求,函数的返回值为非零元素的个数。  函数CompactArr(inta[],intn)的处理思路是:首先申请一个与数组a的大小相同的动态数组空间,然后顺序扫描数组a的每一个元素,将遇到的非0元素依次复制到动态数组空间中,最后再将动态数组中的元素传回数组a中。  函数CompactArr_v2(inta[],intn)的处理思路是:利用下标i(初值为0)顺序扫描数组a的每一个元素,下标k(初值为0)表示数组a中连续存储的非0元素的下标。扫描时,每遇到一个数组元素,i就增1,而遇到非0元素并将其前移后k才增1。  [C函数1] 

12、 intCompactArrvl(inta[],intn)  {  inti,k;  int*temp=(int*)malloc(n* (1) );  if(!temp)  return-1;  for(i=0,k=0;i<n;i++

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。