![](https://lstatic.shangxueba.com/sxbzda/h5/images/m_q_title.png)
若有以下数组说明,则数值最小的和最大的元素下标分别是()。 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
![](https://lstatic.shangxueba.com/sxbzda/h5/images/tips_org.png)
A.1,12
B.0,11
C.1,11
D.0,12
第1题
(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>
第2题
A、A.1,12
B、B.0,11
C、C.1,11
D、D.0,12
第5题
【说明】
下面的函数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)’ ;
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!