写出模板函数实现数值型数组元素值按从小到大排序的程序。
include<iostream>
using namespace std;
template <class T>
void sort(T b[],int n)
{
T temp;
int i,j;
T *a=new T[n];
for (i=0;i<n;i++){a[i]=b[i];}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{ if(a[i]>a[j])
{temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<n;i++){cout<<a[i]<<" ";}
cout<<endl;
delete []a;
}
void main()
{
int i,n=6;
int a[]={5,1,9,10,3,8};
____________;
for(i=0;i<n;i++)
{cout<<a[i]<<" ";}
cout<<endl;
}
第1题:
阅读下列说明、流程图和算法,将应填(n)处的字句写在对应栏内。
[说明]
下面的流程图(如图3所示)用N - S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为 low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:

[流程图]
[算法说明]
将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int hieh)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],int L,int H)的功能是实现数组A中元素的递增排序。
[算法]
void sort(int A[],int L,int H) {
if (L<H) {
k=p(A,L,R); //p()返回基准数在数组A中的下标
sort((4)); //小于基准敷的元素排序
sort((5)); //大于基准数的元素排序
}
}
第2题:

for(i=0;i</**/m-1/**/;i++)
if/**/(a[j]<a[j+1])/**/
a[j]=/**/a[j+1]/**/;
第3题:
类 myArray定义如下:
public class myArray
{
static int[] a = {21,42,16,31,23,47,35};
public void sortArray() //对数组从小到大进行排序
{ …… }
public int getMax() //返回最大的数组元素
{ …… }
public int getMin() //返回最小的数组元素
{ …… }
public float getAverage() //返回所有数组元素的平均值
{ …… }
public static void main(String[] args)
{ myArray myarray = new myArray();
myarray.sortArray();
System.out.println(myarray.getMax());
System.out.println(myarray.getMin());
System.out.println(myarray.getAverage());
}
在 main 方法中实现了数组元素最大值、最小值和平均值的输出。请编程实现 sortArray()、 getMax()、 getMin()、
getAverage()四个方法。
提示:排序完成以后,最大值即为最后一个数组元素,最小值为第一个数组元素。
请在 jsp 网页中利用脚本计算1*2*3*……*10 的值并输出。
第4题:
程序定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。
例如:若m的值为2,a数组中的值为:

注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


解析:该程序功能是使数组右上半三角元素中的值乘以m。本题中首先要确定右上角半角元素的特点,然后对元素逐个进行乘以m的操作。其中,右上角的元素是行下标小于等于列下标的元素。
第5题:
请编写函数proc(),函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

则函数值为59。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:


【解析】要求二维数组周边元素之和,首先应该判断数组中的每一个元素是否是周边元素。找出所有的周边元素后求和,返回给主函数。周边元素的下标特点为行或列的下标为。或N—1。根据此特点,找出所有的周边元素然后求和。
第6题:
程序定义了M×M的二维数组,并在主函数中自动赋值。请编写函数proc(int a[][M],int n),该函数的功能是使数组左下半三角元素中的值加上n。例如,a数组中的值为:

注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:



【解析】使数组左下半三角元素中的值加上n,首先要找出数组中下半三角元素。数组中下半三角元素的特点是,其列下标小于等于行下标。根据这个特点找出所有的下半三角元素再加上n放在原来的位置上。
第7题:

第8题:
当调用函数时,实参是一个数组名,则向函数传送的是()。
第9题:
如果你想对一个数组进行排序,排序的方式是按照元素的值从小到大排序。同时,需要在排序后保持关键字与值的对应关系。下面哪个函数实现这个功能()。
第10题:
若用数组名作为调用函数的实参,则传递给形参的是()
第11题:
在函数调用过程中数值型函数的默认返回值为0,可变型函数的默认返回值为空串
在调用Sub过程中使用Call语句时,参数必须在括号内
过程本身使用的参数列表称为“形参”,而主程序传递给过程的真正参数称为“实参”
DIM语句声明的数组把数值数组中的全部数组元素都初始化为0,把字符串数组中的全部元素都初始化为空字符串
第12题:
ksort()
asort()
krsort()
sort()
usort()
第13题:
阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。
【说明】
假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5, 6,7,9;数组B中有元素2,3,4,7:则数组C中将有元素:2,2,3,4,5,6,7, 7, 9。
【流程图】

第14题:
请编写一个函数void fun(int a [],int n),其中a为数组,n为数组a的长度。函数fun()的功能是冒泡排序法将数组a元素按从小到大的顺序排列,实现数组a的升序排列。
注意:部分源程序已存在文件PROC12.cpp中。
请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。
文件PROC12.cpp的内容如下:
//PROC12. cpp
include <iostream>
using namespace std;
define MAX 100
void fun(int a[],int n);
int main ()
{
int a[MAX],n,i;
cout<<"Please enter the array size n:\n";
do {
cin>>n;
if (n>100)
cout<<"array size flowover! ReEnter a number(0-100)\n";
}while (n>100);
cout<<"Enter the array data:\n";
for (i=0; i<n; i++)
cin>>a [ii;
fun(a[],n);
for (i=0; i<n; i++)
cout<<a [i] <<" ";
cout<<end1;
return 0;
}
void fun(int a[ ],int n)
{
// * * * * * * * *
}
第15题:
将文件in.dat中的200个整数读至数组XX中。请编制js Vralue函数,要求:求出数组XX中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组xx下标为偶数(包括下标为0的元素)的元素值的算术平均值pj。 结果cnt1,cnt2,pJ输出到out.dat中。注意:部分源程序存在test.c文件中。请勿改动数据文件in.dat中的任何数据、主函数main、读函数readdat和输出函数writeDatj的内容。

第16题:
程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
例如:a数组中的值为:

则返回主程序后s的值应为:3.375。
注意:部分源程序存在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


解析:该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。
第17题:
请补充函数proc(),该函数的功能是把数组num中的数按从小到大的顺序排列(数组元素个数及值从主函数中输入)。
例如,输入n=5,num[0]~num[4]依次为5 7 2 8 0,结果为0 2 5 7 8。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:



【l】i<n【2】j%n-1
【解析】由函数proc()可知,该程序选用的是冒泡法来进行排序,变量i为循环次数,因此,【1】处填“i<n”;变量J用来判断第j个元素和第j+1个元素顺序是否正确,因此,【2】处填“j<n-1”。
第18题:
试题一(共 15 分)
阅读以下说明和流程图,填补流程图中的空缺(1)~(9) ,将解答填入答题纸的对应栏内。
[说明]
假设数组 A 中的各元素 A(1),A(2) ,…,A(M)已经按从小到大排序(M≥1) ;数组 B 中的各元素 B(1),B(2),…,B(N)也已经按从小到大排序(N≥1) 。执行下面的流程图后, 可以将数组 A 与数组 B 中所有的元素全都存入数组 C 中, 且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序) 。例如,设数组 A 中有元素:2,5,6,7,9;数组B 中有元素:2,3,4,7;则数组 C 中将有元素:2,2,3,4,5,6,7,7,9。
[流程图]

第19题:
若用数组名作为函数调用的实参,传递给形参的()。
第20题:
在对表中数据排序时,只能按数值型字段的值进行排序
第21题:
请把下面说法中正确的选出来()。
第22题:
冒泡排序算法中降序排序指的是()
第23题:
对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序函数的参数
reverse用于对数组数据的倒序排列
向数组的最后位置加一个新元素,可以用pop方法
unshift方法用于向数组删除第一个元素