江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2009秋江苏计算机等级上机试题

(1)改错题:

[题目]以下程序的功能是;将一个数组插入到一个有序数组中,
.插入后数组仍然有序.
输出示倒(带下划线部分为键盘输入):
原数组为;
0 2 4  6  8  10 12 14 16 18
输入一个整数:7
插入后的数组为:
0 2 4 6 7 8 10 12 14 16  18
含有错误的源程序如下:
#include <iostream.h>
int *insert(int *a,int n,int x)
{
int *tO=new int[n+1],*t1=a;  //扩充数组空间
int *p0=t0,*p1=a;
while(p1<a+n){
  if(*p1<x)
    *pO++=p1;
  else{
    *p0++=x:
    break;
  }
}
whilie(p1<a+n)
  *p0++=*p1++;
delete[]a;
a=t0;
return *a;
}

void print(int p[],int n)
{
 for(int i=0;i<n;i++)
   cout<<p[i]<<'\t';
 cout<<endl;
)
void main()
{
  int a=new int[10];
  cout<<"原数组为:"<<endl;
  print(a,10);
  cout<<"输入一个整数:";
  cin>>x;
  a=insert(a,10,x);
  cout<<”插入后的数组为:\l_1”;
  print(a,lO);
  delete【】a;
}
[要求]
(1)把上述程序输入到文件myfa.cpp中,根据题目要求及程序错误进行改进。
程序中的注解可以不输入。
(2)改错时,可以修改语句中的一部分内容和增加预处理命令,
但不能增加其它语句,也不能删除整条语句
(3)改正后的源程序文件myfa.cpp'须放在考生文件夹T:盘中