C语言上机考试试卷:数组排序与元素交换.pdfVIP

  • 1
  • 0
  • 约2.97千字
  • 约 2页
  • 2026-03-07 发布于北京
  • 举报

C语言上机考试试卷:数组排序与元素交换.pdf

江苏省高等学校非计算机专业学生

计算机基础知识和应用能力等级考试上机试卷(2010年春)

二级C语言(试卷代号C08,备用)

(本试卷完成时间70分钟)

一、改错题(16分)

【程序功能】

函数fun的功能是:采用法对数组元素a[1]a[n-1]中的n-1个整数从小到大排序。

函数change的功能是:将数组元素a[1]a[n-1]中的前m个元素值与后m个元素值交

换。交换规则:a[1]a[n-1]中的第1个元素值与倒数第m个元素交换数据,第2个元素与

倒数第m-1个元素交换数据,…,第m个元素与最后一个元素交换数据。

法排序的算法描述如下:

将a[0]作为观察哨使用,i从2开始直到n-1为止,重复以下操作:

(1)将a[i]存入a[0]

(2)使j的值从i-1开始,若a[j]a[0]成立则重复做以下操作:

将a[j]的值移到a[j+1]并且j减1

(3)将a[0]到a[j+1]

【测试数据与运行结果】

数组初始化数据:

2312794538885599

输出:

7912233845558899

5588992338457912

【含有错误的源程序】

#includestdio.h

#defineN=10

voidfun(inta[],intn)

{inti,j;

for(i=2;in;i++)

{a[0]=a[i];

j=i-1;

while(a[0]a[j])

{a[j+1]=a[j];j--;}

a[j]=a[0];

}

}

voidchange(inta[],intn,m)

{inti,t;

for(i=1;im;i++)

{t=a[i];

a[i]=a[n-m-1+i];

a[n-m-1+i]=t;

}

}

voidmain()

{intb[N]={0,23,12,7,9,45,38,88,55,99},i;

printf(\n);

fun(b,N);

for(i=1;iN;i++)

printf(%3d,b[i]);

printf(\n);

change(b,N,3);

for(i=1;iN;i++)

printf(%3d,b[i]);

getch();

}

【要求】

1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序

中的错误进行修改。

2.

文档评论(0)

1亿VIP精品文档

相关文档