下列程序的功能是:将一正整数序列{K1,K2,…,K91重新排成一个新的序列。新序列中,比K1小的数都在K1的左面(后续的再向左存放),比KI大的数都在K1的右面(后续的再向右存放),从K1向右扫描。要求编写函数JsValue()实现此功能,最后调用函数writeDat()把新序列输出到文件out90.dat中。
说明:在程序中已给出了.10个序列,每个序列中有9个正整数,并存入数组a[10][9]中,分别求出这 10个新序列。
例如:
序列排序前 {6,8,9,1,2,5,4,7,3}
序列排序后 {3,4,5,2,1,6,8,9,7}
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDat()的内容。
试题程序:
include
jsValue(int a[lO] [9])
{
}
main()
{
int a[10] [9]={{6,8,9,1,2,5,4,7,3},
{3,5,8,9,1,2,6,4,7},
{8,2,1,9,3,5,4,6,7},
{3,5,1,2,9,8,6,7,4},
{4,7,8,9,1,2,5,3,6},
{4,7,3,5,1,2,6,8,9},
{9,1,3,5,8,62,4,7}
{2,6,1,9,8,35,7,4}
{5,3,7,9,1,82,6,4}
{7,1,3,2,5,89,4,6}
};
int i,j;
jsValue(a);
for(i=0;i<10;i++)
{
for(j=0;j<9;j++)
{
printf("%d",a[i] [j]);
if(j<=7) printf(",");
}
printf("\n");
}
writeDat(a);
}
writeDat(int ail0] [9])
{
FILE *fp;
int i,j;
fp=fopen("outg0.dat","w");
for(i=0;i<10;i++)
{
for(j=0;j<9;j++)
{
fprintf(fp,"%d",a[i] [j]);
if(j<=7) fprintf(fp,",");
}
fprintf(fp,"\n");
}
fclose(fp);
}
第1题:
下列程序的功能是:将一正整数序列{K1,K2,…,K9}重新排成一个新的序列。新序列中,比K1小的数都在K1的左面(后续的再向左存放),比K1大的数都在K1的右面(后续的再向右存放),从K1向右扫描。要求编写函数jsValue()实现此功能,最后调用函数writeDat()把新序列输出到文件out90.dat中。
说明:在程序中已给出了10个序列,每个序列中有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。
例如:序列排序前 {6,8,9,1,2,5,4,7,3}
序列排序后 {3,4,5,2,1,6,8,9,7}
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDat()的内容。
试题程序:
include<stdio.h>
jsValue(int a[10][9])
{
}
main ()
{
int a[10] [9]={{6,8,9,1,2,5,4,7,3},
{3,5,8,9,1,2,6,4,7},
{8,2,1,9,3,5,4,6,7},
{3,5,1,2,9,8,6,7,4},
{4,7,8,9,1,2,5,3,6},
{4,7,3,5,1,2,6,8,9},
{9,1,3,5,8,6,2,4,7},
{2,6,1,9,8,3,5,7,4},
{5,3,7,9,1,8,2,6,4},
{7,1,3,2,5,8,9,4,6},
};
int i,j;
jsValue (a);
for (i=0;i<10; i++)
{
for(j=0;j<9;j++)
{
printf("%d",a[i] [j]);
if(j<=7) printf(",");
}
printf ("\n");
}
writeDat (a);
}
writeDat (int a[10] [9])
{
FILE *fp;
int i,j;
fp=fopen ("out90.dat", "w");
for (i=0;i<10; i++)
{
for(j=0;j<9;j++)
{
fprintf (fp, "%d", a [i] [j] );
if (j<=7) fprintf (fp, ", ");
}
fprintf (fp, "\n");
}
fclose (fp);
}
第2题:
下列程序的功能是:将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数NumSort(int a[10][9])实现此功能,最后调用Wdata函数将新序列输出到文件out.dat中。 说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[l0][9]中,分别求出这10个新序列。 例:序列{6,8,9,1,2,5,4,7,3} 经重排后成为{3,4,5,2,1,6,8,9,7} 注意:部分源程序已经给出。 请勿改动主函数main和写函数Wdata的内容。
第3题:
第4题:
下列程序的功能是:将一个正整数序列{K1, K2,…, K9}重新排列成一个新的序列。在新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数jsValue()实现以上功能,最后调用函数writeDat(),将新序列输出到文件out.dat中。说明:程序中已给出了10个序列,每个序列中有9个正整数,并存入数组a[10][9] 中,分别求出这10个新序列。例如:序列{6, 8, 9, 1, 2, 5, 4, 7, 3}重排后为{3, 4, 5, 2, 1, 6, 8, 9, 7}。部分源程序已给出。请勿改动主函数main() 和写函数writeDat() 的内容。#include<stdio.h>void jsValue(int a[10][9]){ } void main(){ int a[10][9]={{6,8,9,1,2,5,4,7,3} {3,5,8,9,1,2,6,4,7} {8,2,1,9,3,5,4,6,7} {3,5,1,2,9,8,6,7,4} {4,7,8,9,1,2,5,3,6} {4,7,3,5,1,2,6,8,9} {9,1,3,5,8,6,2,4,7} {2,6,1,9,8,3,5,7,4} {5,3,7,9,1,8,2,6,4} {7,1,3,2,5,8,9,4,6} }; int i,j; jsValue(a); for(i=0;i<10;i++){ for(j=0;j<9;j++) { printf("%d",a[i][j]); if(j<=7) printf(","); } printf("\n");}writeDat(a);}void writeDat(int a[10][9]){ FILE *fp; int i,j; fp=fopen("out.dat","w"); for(i=0;i<10;i++){ for(j=0;j<9;j++){ fprintf(fp,"%d",a[i][j]); if(j<=7) fprintf(fp,","); } fprintf(fp,"\n");} fclose(fp);}
第5题:
对于n个元素的关键字序列K1,K2,…,Kn,若有Ki≤K2i≤且Ki≤2i+1(i=1,2,…,[n/2],2i+1≤n),则称其为小根堆。以下关于小根堆及其元素关系的叙述中,错误的是( )。
A.关键字序列K1,K2,…,Kn呈非递减排序时一定为小根堆
B.小根堆中的序列K1,K2,K4…,K2j(2j≤n)一定为非递减序列
C.小根堆中元素K2i与K2i+1(2i≤n,2i+1≤n)之间的大小关系不能确定
D.小根堆的最后一个元素一定是序列的最大元素