首页整卷下载分项下载 试卷搜索题目搜索全站搜索招考信息

2010年下半年程序员下午试卷案例

分类:软考/初级_程序员    来源:软考

1
 
【说明】
下面的流程图中有两个判断条件A>0和B>0。这些判断条件的各种组合情况如下表所示。表中Y表示相应的条件成立,N表示相应的条件不成立。每一列表示一种条件组合,并在列首用相应的序号来表示。

【流程图】
 
问题:1.1   当遇到哪几种条件组合时,流程图能执行“1→i”?(写出相应的序号即可)
 
问题:1.2   当遇到哪几种条件组合时,流程图能执行“2→j” ?(写出相应的序号即可)
 
问题:1.3   当遇到哪几种条件组合时,流程图能执行“3→k” ?(写出相应的序号即可)
 
问题:1.4   该流程图共有多少条实际热行路径?
 
 
2
 
【说明1】
函数deldigit(char*s)的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再复制给s。
 
问题:2.1   【C函数】

【说明2】
函数reverse(char *s, int len)的功能是用递归方式逆置长度为len的字符串s。例如,若串s的内容为“abcd”,则逆置后其内容变为“dcba”。
【C函数】
 
 
3
 
【说明1】
下面代码的设计意图是:将保存在文本文件data.txt中的一系列整数(不超过100个)读取出来存入数组arr[],然后调用函数sort()对数组arr的元素进行排序,最后在显示屏输出数组arr的内容。
【C代码】

 
问题:3.1   以上C代码中有三处错误(省略部分的代码除外),请指出这些错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行。
 
问题:3.2   若分别采用函数定义方式1、2和调用方式1、2,请分析程序的运行情况,填充下面的空(1)〜(3)。
若采用定义方式1和调用方式1,则输出为“00000000”,
若采用定义方式1和调用方式2,则(1)。
若采用定义方式2和调用方式1,则(2)。
若采用定义方式2和调用方式2,则(3)。
 
 
3
 
【说明1】
下面代码的设计意图是:将保存在文本文件data.txt中的一系列整数(不超过100个)读取出来存入数组arr[],然后调用函数sort()对数组arr的元素进行排序,最后在显示屏输出数组arr的内容。
【C代码】

 
问题:3.1   以上C代码中有三处错误(省略部分的代码除外),请指出这些错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行。
 
问题:3.2   若分别采用函数定义方式1、2和调用方式1、2,请分析程序的运行情况,填充下面的空(1)〜(3)。
若采用定义方式1和调用方式1,则输出为“00000000”,
若采用定义方式1和调用方式2,则(1)。
若采用定义方式2和调用方式1,则(2)。
若采用定义方式2和调用方式2,则(3)。
 
 
4
 
【说明】
已知单链表L含有头节点,且节点中的元素值以递增的方式排列。下面的函数DeleteList在L中查找所有值大于minK且小于maxK的元素,若找到,则逐个删除,同时释放被删节点的空间。若链表中不存在满足条件的元素,则返回-1,否则返回0。
例如,某单链表如下图(a)所示。若令minK为20、maxK为50,则删除后的链表如图(b)所示。

链表节点类型定义如下:
typedef struct Node{
     int data;
     struct Node *next;
}Node, *LinkList;

 
问题:4.1   【函数】
 
 
5
 
阅读以下说明和C++代码,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。
【说明】
某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。
 
问题:5.1   【C++代码】



 
 
6
 
阅读以下说明和Java代码,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。
【说明】
某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后,选出排名前30%的学生。
 
问题:6.1   【Java代码】