![](https://lstatic.shangxueba.com/sxbzda/h5/images/m_q_title.png)
输出数组中最大和最小的元素值及其下标
![](https://lstatic.shangxueba.com/sxbzda/h5/images/tips_org.png)
第2题
下面流程图输出的是( )。
A、数组中的最小值所在的下标位置
B、数组元素中的最大值
C、数组元素中的最小值
D、数组中的最大值所在的下标位置
第3题
下面流程图输出的是( )。
A、数组中的最小值所在的下标位置
B、数组元素中的最大值
C、数组元素中的最小值
D、数组中的最大值所在的下标位置
第4题
下面流程图输出的是( )。
A、数组中的最大值所在的下标位置
B、数组中的最小值所在的下标位置
C、数组元素中的最小值
D、数组元素中的最大值
第5题
下面流程图输出的是( )。
A、数组中的最大值所在的下标位置
B、数组中的最小值所在的下标位置
C、数组元素中的最小值
D、数组元素中的最大值
第6题
(1) int a[4]={5,3,8,9};其中 a[3]的值为 A. 5 B. 3 C. 8 D. 9 (2) 以下 4 个数组定义中, D 是错误的 A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. int n,d[n]; (3) 对字符数组进行初始化, 形式是错误。 A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123"; (4) 在数组中,数组名表示 A. 数组第 1 个元素的首地址 B.数组第 2 个元素的首地址 C. 数组所有元素的首地址 D.数组最后 1 个元素的首地址 (5) 若有以下数组说明,则数值最小的和最大的元素下标分别是 int a[12] = {1,2,3,4,5,6,7,8,9,10,11,12}; A. 1,12 B. 0,11 C. 1,11 D. 0,12 (6)下列程序执行后的输出结果是________ main() { int i,j,a[3][3]; for(i=0;i<3;i++) 3 4 5 6 7 9 18 19 20 21 for(j="0;j<3;j++)" a[i][j]="i*j+1;" printf("%d,%d\n",a[1][2],a[2][1]); } a) 3,3 b) 3,不定值 c) d) 3,1 (7)有如下程序 main() { int a[3][3]="{{1,2},{3,4},{5,6}},i,j,s=0;" for(i="1;i<3;i++)" s+="a[i][j];" printf("%d\n",s); 该程序的输出结果是________ (8)有如下程序 (9)以下各组选项中,均能正确定义二维实型数组a的选项是 a、float a[3][4]; float a[ ][4]; a[3][ ]="{{1},{0}};" b、float a(3,4); ][ c、float static ][4]="{{0},{0}};" auto d、float ]; (10)定义如下变量和数组:则下面语句的输出结果是 k; for(k="0;k<3;k++)" printf("%d",a[k][2-k]); a、3 b、3 c、1 d、1>
第7题
【说明】
下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该
序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次数并
记录在数组b中,再从小到大顺序地排列各元素即可得到一个非递减有序序列。例如,
对于序列6,5,6,9,6,4,8,6,5,其元素在整数区间[4,9]内取值,因此使数组元素b[O]~b[5]的下标O~5分别对应数值4~9,顺序地扫描序列的每一个元素并累计其出现的次数,即将4的个数记入b[0],5的个数记入b[l],依此类推,9的个数记入b[5]。最后依
次判断数组b的每个元素值,并将相应个数的数值顺序地写入结果序列即可。
对于上例,所得数组b的各个元素值如下:
那么在输出序列中写入1个4、2个5、4个6、1个8、1个9,即得4,5,5,6,6,6,6,8,9,
从而完成排序处理。
【C函数】
void sort(int n,int a[])
( int *b;
int i, k, number;
int minimum=a[0], maximum=a 0];
/.minimum和maximum分别表示数组a的最小、最大元素值*/
For(i=1;i<n;i++) {
if ( _(1) ) minimum = a[j];
else
if ( _ (2) ) maximum = a[i];
}
number = maximum - minimum + 1;
if (number<=l) return;
b = (int *) calloc (number, sizeod (int) ;
if ( !b) return;
for(f=0;i<n,i++){/*计算数组a的每个元素值出现的次数并记入数组b*/
k= a[i] - minimum; ++b[k];
}
/*按次序在数组a中写入排好的序列*/
l= (3) ;
for( k=0; k<number; k++)
for(; (4) ;一一b[k] )
a[i++】=minimum+ (5)’ ;
}
第10题
#include <stdio.h>
main ()
{ int a[10],*p,*s;
for ( p=a;p-a<10;p++ ) scanf ( " %d " ,p ) ;
for ( p=a,s=a;p-a<10;p++ ) if ( *p>*s ) s= 【 15 】 ;
printf ( " index=%d\n " ,s-a ) ;
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!