顺序排序选择排序Word文档格式.docx
《顺序排序选择排序Word文档格式.docx》由会员分享,可在线阅读,更多相关《顺序排序选择排序Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
】
main()
{
inti,j,k,t,a[N];
for(i=0;
i<
=N-1;
i++)
scanf("
%d"
&
a[i]);
N-1;
{
/***********SPACE***********/
【?
】;
for(j=i+1;
j++)
if(a[j]<
a[k])k=j;
if(【?
】)
t=a[i];
a[i]=a[k];
a[k]=t;
}
printf("
outputthesortedarray:
\n"
);
%5d"
a[i]);
}
答案:
=======(答案1)=======
#defineN10
=======(答案2)=======
k=i
=======(答案3)=======
j<
N
=========或=========
N>
j
=N-1
N-1>
=j
=======(答案4)=======
k!
=i
第2题(20.0分)题号:
14难度:
产生10个[30,90]区间上的随机整数,然后对其用选择法
进行由小到大的排序。
#include"
stdlib.h"
inti,j,k;
inta[10];
10;
a[i]=random(61)+30;
9;
】)k=j;
if(k!
=i)
t=a[k];
a[k]=a[i];
a[i]=t;
}
for(【?
】)
intt
a[k]>
a[j]
a[j]<
a[k]
i=0;
i++
10>
i;
=9;
i+=1
9>
=i;
++i
二、程序改错共1题(共计30分)
第1题(30.0分)题号:
54难度:
难第2章
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
用选择法对数组中的n个元素按从小到大的顺序进行排序。
------------------------------------------------------*/
#include<
stdio.h>
#defineN20
voidfun(inta[],intn)
inti,j,t,p;
for(j=0;
j<
n-1;
j++)
/**********FOUND**********/
p=j
for(i=j;
i<
n;
i++)
if(a[i]>
a[p])
p=j;
t=a[p];
a[p]=a[j];
a[j]=t;
inta[N]={9,6,8,3,-1},i,m=5;
排序前的数据:
"
);
for(i=0;
m;
i++)
%d"
fun(a,m);
排序后的数据:
getch();
p=j;
if(a[i]<
a[p])
if(a[p]>
a[i])
p=i;
三、程序设计共4题(共计120分)
58难度:
中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
对长度为8个字符的字符串,将8个字符按降序排列。
例如:
原来的字符串为CEAedcab,排序后输出为edcbaECA。
------------------------------------------------*/
#include<
ctype.h>
conio.h>
intfun(char*s,intnum)
/**********Program**********/
/**********End**********/
chars[10];
clrscr();
输入8个字符的字符串:
gets(s);
fun(s,8);
\n%s"
s);
NONO();
----------------------
inti,j;
chart;
num;
if(s[i]<
s[j])
{t=s[i];
s[i]=s[j];
s[j]=t;
第2题(30.0分)题号:
56难度:
/*------------------------------------------------
对长度为7个字符的字符串,除首、尾字符外,将其
余5个字符按降序排列。
原来的字符串为CEAedca,排序后输出为CedcEAa。
输入7个字符的字符串:
fun(s,7);
for(i=1;
num-1;
第3题(30.0分)题号:
98难度:
编写函数fun用比较法对主程序中用户输入的具有10
个数据的数组a按由大到小排序,并在主程序中输出
排序结果。
stdio.h"
intfun(intarray[],intn)
inta[10],i;
请输入数组a中的十个数:
for(i=0;
fun(a,10);
由大到小的排序结果是:
%4d"
yzj();
inti,j,t;
n-1;
for(j=k+1;
n;
if(array[i]<
array[j])
t=array[i];
array[i]=array[j];
array[j]=t;
第4题(30.0分)题号:
79难度:
编写函数用选择排序法对数组中的数据进行从小到
大的排序。
stdlib.h>
voidsort(inta[],intn)
inta[13],i;
13;
a[i]=random(20)-5;
%3d"
\n-------------------\n"
sort(a,13);
inti,j,k,t;
{k=i;
if(a[k]>
a[j])k=j;
=i)
{t=a[i];