2015年计算机软件水平初级程序员笔试考前训练(16)
发布时间:2011/6/23 21:07:50 来源:城市学习网 编辑:admin
希尔排序
已知待排序序列data[n];希尔排序的增量序列为d[m],其中d[]序列降序排列,且d[m-1]=1。其方法是对序列进行m趟排序,在第i趟排序中,按增量d把整个序列分成d个子序列,并按直接插入排序的方法对每个子序列进行排序。
希尔排序的程序为:
void shellsort(int *data,int *d,int n,int m)
{ int i,j;
for (i=0;i for (j=0; (1) ;j++)
shell( (2) );
}
void shell(int *data,int d,int num,int n)
{ int i,j,k,temp;
for (i=1; (3) ;i++)
{ j=0;
temp=data[j+i*d];
while ((j j++;
for (k=j;k data[k+1]=data[k];
(5) ;
(6) }
}
答案:(1)j (2)data,d,j,n
(3)num+i*d (4)data[j+i*d] (5)data[j]=temp [NextPage] 阅读以下说明和Java程序,将应填入__(n)__处的字句写在答题纸的对应栏内
【说明】
以下程序的功能时三角形、矩形和正方形的面积输出。
程序由5个类组成:areatest是主类,类Triangle,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。
【程序】
public class areatest{
public static viod main(string args[]){
Figure[]Figures={
New Triangle(2,3,3),new rectangle(5,8),new square(5)
};
for (int i= 0;i< Figures.length;i++){
system.out.println(Figures+”area=”+ Figures.getarea());
}
}
}
public abstract class figure{
public abstract double getarea();
}
public class rectangle extends __(1)__ {
double height;
double width;
public rectangle (double height, double width){
this.height= height;
this. width = width;
}
public string tostring(){
return”rectangle: height=”+ height +”, width=”+ width +”:”;
}
public double getarea(){
return __(2)__
}
}
public class square exends __(3)__
{
public square(double width) {
__(4)__ ;
}
public string tostring(){
return” square:width=”+width”:”;
}
}
public class rectangle entend __(5)__
{
double la;
double lb;
double lc;
public triangle(double la ,double lb,double lc){
this.la=la; this.lb=lb; this.lc=lc;
}
public string tostring(){
return” triangle:sides=”+la+”, ”+lb+”, ”+lc+”:”;
}
public double get area(){
double s=(la+lb+lc)/2.0;
return math.sqrt(s*(s-la) *(s-lb) *(s-lc));
}
}
答案:
(1)Figure
(2)height*width
(3)Rectangle
(4)super(width,width)
(5)Figure