分类:软考/初级_程序员    来源:软考
【说明】 下面的流程图中有两个判断条件A>0和B>0。这些判断条件的各种组合情况如下表所示。表中Y表示相应的条件成立,N表示相应的条件不成立。每一列表示一种条件组合,并在列首用相应的序号来表示。 ![]() 【流程图】 ![]() |
问题:1.1 当遇到哪几种条件组合时,流程图能执行“1→i”?(写出相应的序号即可) |
问题:1.2 当遇到哪几种条件组合时,流程图能执行“2→j” ?(写出相应的序号即可) |
问题:1.3 当遇到哪几种条件组合时,流程图能执行“3→k” ?(写出相应的序号即可) |
问题:1.4 该流程图共有多少条实际热行路径? |
【说明1】 函数deldigit(char*s)的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再复制给s。 |
问题:2.1
【C函数】![]() 【说明2】 函数reverse(char *s, int len)的功能是用递归方式逆置长度为len的字符串s。例如,若串s的内容为“abcd”,则逆置后其内容变为“dcba”。 【C函数】 ![]() |
【说明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)。 |
【说明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)。 |
【说明】 已知单链表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
【函数】![]() |
阅读以下说明和C++代码,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。 【说明】 某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。 |
问题:5.1
【C++代码】![]() ![]() ![]() ![]() |
阅读以下说明和Java代码,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。 【说明】 某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后,选出排名前30%的学生。 |
问题:6.1
【Java代码】![]() ![]() ![]() |