2010下半年程序员考试真题及答案-下午卷.docVIP

  • 2
  • 0
  • 约6.93千字
  • 约 19页
  • 2021-08-24 发布于北京
  • 举报

2010下半年程序员考试真题及答案-下午卷.doc

2010下半年程序员考试真题及答案-下午卷 试题一 【说明】 下面的流程图中有两个判断条件A>0和B>0。这些判断条件的各种组合情况如下表所示。表中Y表示相应的条件成立,N表示相应的条件不成立。每一列表示一种条件组合,并在列首用相应的序号来表示。 【流程图】 【问题1】 当遇到哪几种条件组合时,流程图能执行“1→i”?(写出相应的序号即可) 1, 2 本题考查程序模块处理流程设计的理解能力。 针对流程图中的多个判断条件及其组合,给出流程图的各种输入数据方案,检查流程图的执行情况,这种方法实际上就是单元测试常用的白盒方法。一组输入数据方案就是一个测试案例。 对于本题的处理流程,三个判断条件中有两个是一样的,即只有两种判断条件。因此判断条件的组合共有4种。题中对这4种组合情况编制了序号。我们可以分别对这4种条件组合分析其执行流程的情况,见下表: 因此,条件组合序号为1、2时,该流程将执行1→i。 【问题2】 当遇到哪几种条件组合时,流程图能执行“2→j” ?(写出相应的序号即可) 2,4 本题考查程序模块处理流程设计的理解能力。 针对流程图中的多个判断条件及其组合,给出流程图的各种输入数据方案,检查流程图的执行情况,这种方法实际上就是单元测试常用的白盒方法。一组输入数据方案就是一个测试案例。 对于本题的处理流程,三个判断条件中有两个是一样的,即只有两种判断条件。因此判断条件的组合共有4种。题中对这4种组合情况编制了序号。我们可以分别对这4种条件组合分析其执行流程的情况,见下表: 因此,条件组合序号为2、4时,该流程将执行2→j。 【问题3】 当遇到哪几种条件组合时,流程图能执行“3→k” ?(写出相应的序号即可) 1,3,4 本题考查程序模块处理流程设计的理解能力。 针对流程图中的多个判断条件及其组合,给出流程图的各种输入数据方案,检查流程图的执行情况,这种方法实际上就是单元测试常用的白盒方法。一组输入数据方案就是一个测试案例。 对于本题的处理流程,三个判断条件中有两个是一样的,即只有两种判断条件。因此判断条件的组合共有4种。题中对这4种组合情况编制了序号。我们可以分别对这4种条件组合分析其执行流程的情况,见下表: 因此,条件组合序号为1、3、4时,该流程将执行3→k。 【问题4】 该流程图共有多少条实际热行路径? 4 由于这4种执行的情况不同,即执行路径不同,因此,该流程图共有4条不同的执行路径。 试题二 【说明1】 函数deldigit(char*s)的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再复制给s。 【C函数】 【说明2】 函数reverse(char *s, int len)的功能是用递归方式逆置长度为len的字符串s。例如,若串s的内容为“abcd”,则逆置后其内容变为“dcba”。 【C函数】 (1) strlen(s)+1 (2) *(s+i),或s[i],或其等价表示 (3) *(t+k),或t[k],或其等价表示 (4) len>1,或len>=1,或其等价表示 (5) s+1,len-2 本题考查C程序基本结构的理解和应用。 根据说明1,在函数deldigit(char *s)中需先申请一个与s等长的临时字符串空间并令t指向它,因此空(1)处应填入“Strlen(s)+1”,其中,加1的原因是函数strlen计算s所指向字符串的长度时,没有包含串结束标志字符“\0”。当然,申请比“strlen(s)+1” 更大的存储区也可以,只是没有必要。 由于需要将非数字字符按原来的顺序存入t所指向的存储区,所以空(2)处填入“s[i]”,或其等价表示形式。 最后再设置t所指向字符串的结束标志,即令t[k] = \0。在这里,空(3)处的t[k]写为t[k++]也可以,而写为t[k+1]或t[++k]则不符合整个代码的处理逻辑。 函数reverse(char *s, int len)的功能是用递归方式逆置长度为len的字符串s,其中,以下代码实现了将s所指字符与串中最后一个字符交换的处理: ch=*s; *s=*(s+len-1); *(s+len-1)=ch; 显然,当字符串的长度len小于或等于1时,无须进行交换,因此空(4)处应填入“len>1”,或者“len>=1”。若长度为1时也进行交换,逻辑上没有错,但是运算是冗余的。 试题三 【说明1】 下面代码的设计意图是:将保存在文本文件data.txt中的一系列整数(不超过100个)读取出来存入数组arr[],然后调用函数sort()对数组arr的元素进行排序,最后在显示屏输出数组arr的内容。 【C代码】 【问

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档