●试题四【说明】下面程序的功能是:在含有10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。例如:若输入2857848328则应输出The max:8Total:4∥最大数出现次数The positions:1469【函数】#includestdio.h#define M 10int fun(int*a,int*n,int pos[]){int i,k max=-32767;(1)for(i=0;iM;i++)if( (2) )max=a[i];for(i=0;iM;i++)if( (3) )pos[k++]=i;*n=k;return max;}main(){int a[M],pos[M],i=0,j,n;printf("Enter 10 number:");for(i=0;i<M;i++)scanf("%d", (4) );j=fun( (5) );printf("The max:%d\n",j);printf("Total:%d",n);printf("The position:");for(i=0;i<n;i++)printf("%4d",pos[i]);printf("\n");}
●试题四
【说明】
下面程序的功能是:在含有10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。
例如:若输入
2857848328
则应输出
The max:8
Total:4∥最大数出现次数
The positions:1469
【函数】
#include<stdio.h>
#define M 10
int fun(int*a,int*n,int pos[])
{
int i,k max=-32767;
(1)
for(i=0;i<M;i++)
if( (2) )max=a[i];
for(i=0;i<M;i++)
if( (3) )pos[k++]=i;
*n=k;
return max;
}
main()
{
int a[M],pos[M],i=0,j,n;
printf("Enter 10 number:");
for(i=0;i<M;i++)scanf("%d", (4) );
j=fun( (5) );
printf("The max:%d\n",j);
printf("Total:%d",n);
printf("The position:");
for(i=0;i<n;i++)printf("%4d",pos[i]);
printf("\n");
}
相关考题:
试题二下面程序中函数fun的功能是:在含有10 个元素的s数组中查找最大数,及最大数所在位置(即,下标值),最大数可能不止一个。最大数作为函数值返回,最大数的个数通过指针变量n传回,所在位置由数组pos传回。例如:若输入 2 8 5 7 8 4 5 3 2 8则应输出:The max: 8Total: 3 //最大数出现次数The positions: 1 4 9请补充下列空缺:includestdio.hincludeconio.hdefine M 10int fun(int *a, int *n, int pos[]){int i, k,max=-32767;(1)for(i=0; iM; i++)if( (2) ) max=a[i];for(i=0; iM; i++)if( (3) )pos[k++]=i;*n=k;return max;}main(){int a[M], pos[M], i=0, j, n;clrscr();printf(Enter 10 number :);for(i=0; iM; i++)scanf(%d, (4));j=fun( (5) );printf(The max: %d\n, j);printf(Total: %d,n);printf(The position:);for(i=0; in; i++ ) printf(%4d, pos[i]);printf(\n);}
下列给定程序中,函数fun()的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。请修改程序中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或删行,也不能更改程序的结构。试题程序:
score是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读下面代码,程序运行结果是( )temp=score[0];for(intindex=1;indexif(score[index]temp=score[index];}}A.求最大数B.求最小数C.找到数组最后一个元素D.编译出错
第四题 阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。【说明】当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(int r[],int low,int high,int key)用非递归方式在数组r中进行二分查找,函数biSearch_rec(int r[],int low,int high,int key)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。【C函数1】int biSearch(int r[],int low,int high,int key)//r[low..high] 中的元素按非递减顺序排列//用二分查找法在数组r中查找与key相同的元素//若找到则返回该元素在数组r的下标,否则返回-1{ int mid; while((1)) { mid = (low+high)/2 ; if (key ==r[mid]) return mid; else if (key (2); else (3); }/*while*/ return -1;}/*biSearch*/【C 函数 2】int biSearch_rec(int r[],int low,int high,int key)//r[low..high]中的元素按非递减顺序排列//用二分查找法在数组r中查找与key相同的元素//若找到则返回该元素在数组r的下标,否则返回-1{ int mid; if((4)) { mid = (low+high)/2 ; if (key ==r[mid]) return mid; else if (key return biSearch_rec((5),key); else return biSearch_rec((6),key); }/*if*/ return -1;}/*biSearch_rec*/ 问题:4.1 (12分)请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。 问题:4.2 (3分)若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与( )个数组元素进行比较,即可确定查找结果。(7)备选答案:A.[log2(n+1)] B.[n/2] C.n-1 D.n
3、有程序段: int a[10], i; for(i=1; i=10; i++) scanf("%d", a[i]); 则以下说法正确的是()。A.该程序段的功能是从键盘接收10个数赋值给数组各元素B.该程序段的功能是输出10个数组元素C.该程序段运行将会出现错误,因为数组a的下标应从0到9,而循环中数组下标从1到10,会发生数组下标越界问题D.该程序段只能给数组a中从1到9的9个元素赋值
将一个三对角矩阵A[100][100]中的元素按行存储在一维数组B[298]中,矩阵A中的元素A[55][56]在数组B中的下标为()。 (说明:矩阵及数组的下标均从0开始)A.164B.165C.166D.167
8、将一个三对角矩阵A[100][100]中的元素按行存储在一维数组B[298]中,矩阵A中的元素A[55][56]在数组B中的下标为()。 (说明:矩阵及数组的下标均从0开始)A.164B.165C.166D.167