单选题函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[0]=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为(  )。A1,1B1,2C2,2D2,1

单选题
函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[0]=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为(  )。
A

1,1

B

1,2

C

2,2

D

2,1


参考解析

解析:
函数实参为数组名,数组名代表数组首元素的地址,主函数和子函数共享数组内存。swap(b,2)将数组b第1个元素与第2个元素进行交换,b[0]=2,b[1]=1。

相关考题:

●已知有二维数组A[0..n-1][0..n-1],其中当i+j=n时,A[i][j]≠0,现在要将A数组压缩存储到一维数组T[0..m],其中mn。数组T的第一个元素T[0]=A[1][n-1] T[1]=A[2][n-2],……,依次类推,那么放入A[i][j](i+j=n)的元素是 (37) 。(37) A.T[i+j]B.T[i*n+j]C.T[i]D.T[i-1]

对n个元素值分别为-1、0或1的整型数组A进行升序排序的算法描述如下:统计A中-1、0和1的个数,设分别为n1、n2和n3,然后将A中的前n1个元素赋值为-1,第n1+1到n1+n2个元素赋值为0,最后n3个元素赋值为1。该算法的时间复杂度和空间复杂度分别为()。 A.(n)和(1)B.(n)和(n)C.(n2)和(1)D.(n2)和(n)

●试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。令a[0]~a[low-1]小于0(初始为空);a[low]~a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。【函数】move(int*a,int n){int i,low,high,t;low=i=0;high=n-1;while( (1) )if(a[i]0){t=a[i];a[i]=a[low];a[low]=t;(2) ;i++;}else if( (3) ){t=a[i];a[i]=a[high];a[high]=t;(4) ;}else (5) ;}

阅读以下说明和C语言函数,将应填入(n)处。[说明]函数int find_Max_Min(int a[],int n)的功能是:找出n个元素的数组a中的最大元素和最小元素并输出,返回查找过程中元素的比较次数。查找方法如下:比较a[0]和a[n-1],若a[0]大,则交换a[0]和a[n-1]的值:再比较a[1]和a[n-2],若a[1]大,则交换a[1]和a[n-2]的值;以此类推,直到所有的元素都比较完。然后在数组的前半区从前往后找出小元素,在后半区从后往前找出大元素。[函数]int find_Max_Min(int a[],int n){/*找出n个元素的数组a的最大、最小元素并输出,返回查找过程元素中的比较次数*/int i,Count=0;int temp,Maxnum,Minnum;for(i=0; i<n/2; i++){Count=Count+1 /*元素比较次数计数*/if(a[i]>a[(1)]){/*数组元素交换代码略*/}}Maxnum=a[n-1]; Minnum=a[0];for(i=1;i<n/2+n%2;i++){Count=(2); /*元素比较次数计数*/Minnum=(3)? a[i]:Minnum; /*找最小元素*/Maxnum=(4)?(5):Maxnum; /*找最大元素*/}printf("Max=%d\n",Maxnum);printf("Min=%d\n",Minnum);return Count;}

函数swap(a, n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[0]=1;b[1]=2; swap(b, 2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为( )。A.1,1B.1,2C.2,2D.2,1

阅读以下说明和流程图,回答问题将解答填入对应栏。[说明]本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。注:int min(int X,int y)为返回两数中最小数的函数。int minInArray(int a[],int n)为返回数组中最小数的函数。minA为数组中最小值。[问题l]将流程图的(1)~(4)处补充完整。[问题2]min()函数的定义为(5)。

假设有一维数组T[O...m*n-1],其中m>n。从数组T的第一个元素(T[0])开始,每隔n个元素取出一个元素依次存入数组B[1...m)中,即B[1]=T[0],B[2]=T[n],依此类推,那么放入B[k](1≤k≤n)的元素是(120)。A.T[(K-1)*m]B.T[K*n)C.T[(K-1)*n]D.T[K*m]

函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[o]=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为( )。A.1,1B.1,2C.2,2D.2,1

已知数组a中有n个元素,下列语句将数组a中从下标x1开始的k个元素移动到从下标x2开始的k个元素中,其中O<=xl<x2<n,x2+k<n,请将下列语句补充完整。For(int i=x1+k-1;i>=x1;i--)a[______]=a[i];

设线性表中有2n个元素,算法( ),在单链表上实现要比在顺序表上实现效率更高。A.删除所有值为x的元素B.在最后一个匀速的后面插入一个新元素C.顺序输出前k个元素D.交换第i个元素和第2n-i-1个元素的值(i=0,1,…,n-1)

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。【函数2.1说明】递归函数sum(int a[], int n)的返回值是数组a[]的前n个元素之和。【函数2.1】int sum (int a[],int n){if(n>0) return (1);else (2);}【函数2.2说明】有3个整数,设计函数compare(int a,int b,int c)求其中最大的数。【函数2.2】int compare (int a, int b, int c ){ int temp, max;(3) a:b;(4) temp:c;}【函数2.3说明】递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回 1,否则返回0。【函数2.3】int dec( int a[], int n ){if(n<=1) return 1;if(a[0]<a[1]) return 0;return (5);}

在窗体上画一个名称为Command1的命令按钮。然后编写如下程序:Option Base 1Private Sub Commandl_click()Dim a(10)As IntegerFor i=l T0 10a(i)=1Nextcall swap(【 】)For i=1 To 10Print a(i);NextEnd subSub swap(b()As Integer)n=UBound(b)For i=1 To n/2t=b(i)b(i)=b(n)b(n)=t【 】NextEnd sub上述程序的功能是,通过调用过程swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换,……。请填空。

已知有一维数组T[0..m*n-1],其中m>n。从数组T的第一个元素(T[0])开始,每隔n个元素取出一个元素依次存入数组B[1..m]中,即B[1]=T[0],D[2]=T[n],依此类推,那么放入B[k](1≤k≤n)的元素是______。A.T[(k-1)*n]B.T(k*n)C.T[(k-1)*m]D.T[k*m]

函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。在运行调用函数中的语句后,a[0]和a[1]的值分别为【 】。a[0]=1;a[1]=2;swap(a,2);

给定一组长度为n的无序序列,将其存储在一维数组a[O..n-1]中。现采用如下方法找出其中的最大元素和最小元素:比较a[O]和a[n-1],若a[0]较大,则将二者的值进行交换;再比较a[1]和a[n-2],若a[1]较大,则交换二者的值;然后依次比较a[2]和a[n-3]、 a[3]和a[n-4]、…,使得每一对元素中的较小者被交换到低下标端。重复上述方法,在数组的前n/2个元素中查找最小元素,在后n/2个元素查找最大元素,从而得到整个序列的最小元素和最大元素。上述方法采用的算法设计策略是(64)。A.动态规划法B.贪心法C.分治法D.回溯法

函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为( )。A.1,1B.1,2C.2,2D.2,l

已知有一维数组T[0...m*n-1],其中m>n。从数组T的第一个元素(T[0])开始,每隔n个元素取出一个元素依次存入数组B[1...m]中,即B[1]=T[0],B[2)= T[n],依次类推,那么放入B[k](1≤k≤m)的元素是______。A.T[(k-1)*n]B.T[k*n]C.T[(k-1)*m]D.T[k*m]

已知有二维数组A[0..n-1][0..n-1],其中当i+j=n时,A[i][j]≠0,现在要将A数组压缩存储到一维数组T[0..m],其中m>n。数组T的第一个元素T[0]=A[1][n-1] T[1]=A[2][n-2],……,依次类推,那么放入A[i][j](i+j=n)的元素是(37)。A.T[i+j]B.T[i*n+j]C.T[i]D.T[i-1]

栈的输入序列为1,2,3,…,n-1,n,输出序列的第1个元素为n,则第i个输出元素为A.n-i+1B.n-1C.iD.哪个元素无所谓

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]函数int psort(int a[],int n)实现将含n个整数的数组a[]的不同元素按从小到大顺序存于数组a[]中。实现方法是从未确定的元素列中找到最小元素并将a[]的第i最小元素交换至a[i]位置。如该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面;否则,忽视该元素。[C函数]int psort(int a[],int n){int i,J,k,P;for(i=0,k=0;i<(1);i++){for(j=i+1, (2) ;j<n; j++)if(a[p]>a[j])p=j;if(p!=i){t=a[p];a[p]=a[i];a[i]=t;}if( (3) ) k++;else if( (4) <a[i])(5)=a[i];}return k;}int a[]={5,7,5,6,4,3,4,6,7};main(){int k,n;for(k=0;k<(Sizeof a)/Sizeof(int);k++)printf("%5d",a[k]);printf ("\n\n");n=psort(a,(sizeof(a))/sizeof(int));for(k=0;k<n;k++)printf("%5d",a[k]);printf("\n\n");}

● 给定一组长度为n的无序序列,将其存储在一维数组a[0..n-1]中。现采用如下方法找出其中的最大元素和最小元素:比较 a[0]和 a[n-1],若 a[0]较大,则将二者的值进行交换;再比较a[1]和a[n-2],若a[1]较大,则交换二者的值;然后依次比较a[2]和a[n-3]、a[3]和 a[n-4]、…,使得每一对元素中的较小者被交换到低下标端。重复上述方法,在数组的前 n/2 个元素中查找最小元素,在后 n/2 个元素查找最大元素,从而得到整个序列的最小元素和最大元素。上述方法采用的算法设计策略是 (64) 。(64)A. 动态规划法B. 贪心法C. 分治法D. 回溯法

第二题 阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有序序列。 问题:2.1 【代码】#include void selectSort(int data[ ],int n)//对 data[0]~data[n-1]中的n个整数按非递减有序的方式进行排列{ int i,j,k; int temp; for(i=0;i for(k=i,j=i+1;(1);(2)) //k表示data[i]~data[n-1]中最小元素的下标 if(data[j] if(k!=i) { //将本趟找出的最小元素与data[i]交换 temp=data[i]; (4) ;data[k]=temp; } }}int main(){ int arr[ ]={79,85,93,65,44,70,100,57}; int i,m; m=sizeof(arr)/sizeof(int); //计算数组元素的个数,用m表示 (5); //调用selectSort对数组arr进行非递减排序 for((6);i printf(“%d\t”,arr[i]); printf(“\n”); return 0;}

阅渎以下说明和C代码,回答问题,将解答写入答题纸的对应栏内。 【说明】函数bubbleSort(int arr [ ] int n, int (*compare)(int, int)的功能是根据调用时传递的比较函数 compare 对数組arr的前n个元素进行排序。 【C代码】#define swap(a,b){a=a^b;b=a^b;a=a^b //交换a与b 的值int less(int x, int y){ return((xy)?1: 0);} void bubble Sort(int arr[ ], int n, int (*compare)(int, int)){ int i,j; int swapped= 1; for( i= 0; swapped; 1++) { swapped =0; for(j=0; j【问题1】设有如下数组定义:int data1[ ]={4,2.6.3,1};int data2[ ]={4,2,6.3,1}int datas3[ ]={4,2,6.3,1}请分别给出下面的函数调用执行后,数组 data1、data2和 data3 各自的元素序列。(1)bubble Sort(data1, 5, less);(2)bubbleSort(data2, 5, larger)(3)bubbleSort(data3, 3, larger)

数据结构里,在n个元素的顺序表的第i个位置插入元素需要移动()个元素。A、n-i+1B、n-2C、n-1D、n

设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。A、O(n)B、O(nlog2n)C、O(1)D、O(n2)

单选题设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。AO(n)BO(nlog2n)CO(1)DO(n2)

单选题对n个元素值分别为-1、0或1的整型数组A进行升序排序的算法描述如下:统计A中-1、0和1的个数,设分别为n1、n2和n3,然后将A中的前n1个元素赋值为-1,第n1+1到n1+n2个元素赋值为0,最后n3个元素赋值为1。该算法的时间复杂度和空间复杂度分别为()。AΘ(n)和Θ(1)BΘ(n)和Θ(n)CΘ(n2)和Θ(1)DΘ(n2)和Θ(n)