2017年下半年程序员考试真题+答案解析(上午选择+下午案例完整版)全国计算机软考 下载本文

计算方式为从第2行计算迭代到计算第3行,再根据第3行值求取第4行,直到计算到第n行。所以第一空填2,n,1。

而对于每行的求取,第1项结果一直为1,最大项一直是1,可以直接赋值,所以第二空填A[k]。

然后从倒数第二项开始计算,依次往前计算。

所以第三空的填k-1,1,-1。因为:,,故有A[i]=A[i]+A[i-1]。(注意A[i]+A[i-1]保留的k-1行的结果)。

第2题

阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】

对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有序序列。

问题:2.1 【代码】 #include

void selectSort(int data[ ],int n)

//对 data[0]~data[n-1]中的n个整数按非递减有序的方式进行排列 {

int i,j,k; int temp;

for(i=0;i

for(k=i,j=i+1;(1);(2)) //k表示data[i]~data[n-1]中最小元素的下标 if(data[j]

//将本趟找出的最小元素与data[i]交换 temp=data[i]; (4) ;data[k]=temp;