第四部分数组
4. 1选择题
1.以下关于数组的描述正确的是(C )。
A.数组的大小是固泄的,但可以有不同的类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固泄的,所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同的类型的数组元素
2.以下对一维整型数组a的正确说明是(d ) o
A.int a(10) ; B・ int n=10, a[n];
C.int n; D. #define SIZE 10
scanf (z/%d?z, &n) ; int a [SIZE];
int a[n];
3.在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
4.以下对一维数组m进行正确初始化的是(c )。
A.int m[10] = (0, 0, 0, 0) ; B. int m[10Z = { };
C. int m[ ] = {0}; D. int m[10] = {10*2};
5.若有左义:int bb[8]“则以下表达式中不能代表数组元bb[l]的地址的是(c
A.&bb[O]+l B. &bb[l] C. &bb[O]卄 D. bb+1
6.假定int类型变量占用两个字节,其有定义:int x[10] = {0, 2,4};,则数组x在内 存中所占字节数是(d )0
A.3 B. 6 C. 10 D. 20
7.若有以下说明:
int a[12] = {l> 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12};
char c二'a', d, g;
则数值为4的表达式是(d )
A. aFg-c] B・ a[4] C. D. a['d' -c]
8.以下程序段给数组所有的元素输入数据,请选择正确答案填入G )。 #include<stdio. h>
mainO
{
int a[10], i=0;
while(i<10) scanf );
I
I
I
}
A. a+(i++) B. &a[i+l. C. a+i
9.执行下面的程序段后,变量k中的值为(a )o
int k=3t s[2];
s[O]=k; k=s[l]*10;
A.不立值 B. 33 C. 30
10.以下程序的输出结果是(c ) mainO
{
int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf (/,%d%d%d/,, a[2], a[5], a⑻);
}
A. 258 B. 741 C. 852
11・以下程序运行后,输出结果是(d )° mainO
{
int n[5] = {0, 0, 0}, i, k=2;
for (i=0 ;i<k; i++) n [i] =n[i]+l;
printf (z,%d\nz\ n[k]);
}
A.不确楚的值 B・2 C. 1
12・以下程序运行后,输岀结果是(b )。
mainO
{
int y=18, i=0, j, a[8];
do
{ a[i:=y%2; i++;
y=y/2;
} wh订e(y>=l);
for(j=i-l;j>=0;j--) printf(“%d", a[j]); printf ("\n");
}
A. 10000 B. 10010 C. 00110
D. &a[++i]
D. 10
D. 369
D. 0
D. 10100
13.以下程序运行后,输出结果是(e)。
mainO
{
int a[10], al[ ] = {1, 3, 6, 9,10}, a2[ ]={2,4,7,&15},i=0f j=O,k;
for (k=0:k<4;k++)
if(al Ci]<a2[j]) a[k]=al[i++];
else a[k]=a2[j++];
for (k二0;k<4;k++) printf C%d", a[k]);
A. 1234 B. 1324 C. 2413
14.以下程序运行后,输出结果是(b)° mainO
D. 4321
int i, k, a[10], p[3];
k二 5;
for (i=0;i<10;i++) a[i]=i;
for (i=0;i<3;i++) p[i]=a[i*(i+l)];
for (i=0;i<3;i++) k+二p[i]*2;
printf(”%d\n", k);
}
A. 20 B. 21 C. 22 D. 23
15.以下程序运行后输出结果是(d )°
main()
{
int nL3], i, j, k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for (i=0;i<k;i++)
for (j=O;j<k;j++)
n[j]=n[i]+l;
printf (”%d\n: n[l]) ; }
A. 2 B・ 1 C. 0 D. 3
16.下列程序的主要功能是输入10个整数存入数组/再输入一个整数x,在数组&中査 xo到则输出x在10个整数中的序号(从1开始):不到则输岀0。程序缺少的是(b ) o
mainO
int i, a[10L x, flag=0;
for(i=0;i<10;i++)
scanf (z,%dz\ &a[i]);
scanf (,z%d/z, &x);
for(i=0;i<10;i++) 辻 {flag=i+l; break;}
printf ("%d\n: flag);
}
A. x!=a[i] B. ! (x-a[ij) C. x~a[il D. !x~a[i]
17.若说明:int a[2] [31;则对a数组元素的正确引用是(c ) °
A. a(l,2) B. a[l,3] C. a[l>2][!l] D. a[2][0]
18.若有定义:int b[3] [4]={0}:则下述正确的是(b ) o
A.此宦义语句不正确
B.没有元素可得初值0
C.数组b中各元素均为0
D.数组b中各元素可得初值但值不一立为0
19.若有以下数组泄义,其中不正确的是(d ) o
A. | int | a⑵⑶; |
B | int | b[][3]={0, lf2, 3}; |
C. | int | c [100] [100X0}; |
D. | int | d[3] [] = {{!, 2}, {1,2, 3}, {1,2, 3,4}}; |
20.若有以下的左义:int t[5] [41;能正确引用t数组的表达式是(c )。
A. t[2][4] B. t[5] [0] C. t[0][0] D. t[0,0]
21.在定义 int m[ ][3]={1, 2, 3, 4, 5, 6};后,m[l][O]的值是(a )°
A. 4 B・ 1 C. 2 D・ 5
22.在左义int n[5] [6]后第10个元素是(c)°
A. n[2][5] B. n[2][4] C. n[l][3] D. n[l][4]
23.若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为(d )。 (假设cEO] [0]位于数组的第一个位置)
A. i*m+j B・ j*m+i C・ D・ i*m+j+1
24.若有以下定义语句,则表达式“x[l][l]*x⑵⑵”的值是(a ). float x[3] [3]二{{1・ 0, 2. 0, 3. 0}, {4. 0, 5. 0, 6. 0}};
A. 0. 0 B. 4. 0 C. 5. 0 D. 6. 0
25.以下程序运行后,输出结果是(a )o
mainO
c语言二维数组表示方法
{
int a[4] [4] = {{1,3, 5}, {2, 4,6}, {3, 5,7}};
printfC%d%d%d%d\n/z, a[0] [3], a[l] [2], a[2] [1], a[3] [0]);
}
A. 0650 B. 1470 C. 5430 D.输出值不定
26.以下程序运行后,输出结果是(b ).
mainO
{
int aa[4] [4] = {{1,2, 3, 4}, {5, 6, 7,8}, {3,9, 10, 2}, {4,2, 9,6}}; int i, s=0;
for(i=0;i<4;i++) s+=aa[i][1]:
printf (“%d\n” , s);
}
A. 11 B. 19 C. 13
27.有以下程序
main()
{
int aC3] [3]={{1,2}, {3,4}, {5, 6}}, i, j, s二0;
for(i=l;i<3;i++)
for (j=0;j<=i;j++) s+=a[i][j]:
printf("%d\n", s);
}
该程序的输出结果是G )o
A. 18 B. 19 C. 20
2&若泄义如下变量和数组:
int i;
int x⑶[3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
则下面语句的输出结果是(c )o
for(i=0;i<3;i++) printfx[i] [2-i]);
A. 1 5 9 B・ 1 4 7 C・ 3 5 7
29.
D. 20
D. 21
D. 3 6 9
下述对C语言字符数组的描述中错误的是(cA.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输岀
C.可以在赋值语句中通过赋值运算符"「对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
30.下述对C语言字符数组的描述中正确的是(a )o
A.任何一维数组的需称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占 存储空间
B.一维数组的元素在引用时其下标大小没有限制
C.任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方 式占用存储空间
D.一维数组的第一个元素是其下标为1的元素
31.不能把字符串:Hello!赋给数组b的语句是(b )0
A.char str[10]= {'H‘, T „ ! '};
B.char str[10];str二"Hello!";
C・ char str[10]:strcpy(str,,/Hello!,/);
D. char str[10]="Hello!";
32.合法的数组住义是(d )o
B. int a[5] = {0, 1, 2, 3,4, 5};
D. char a[] = {0, 1, 2, 3, 4, 5};
B・ static char a[2] = { T‘,’2'};
D・ static char a[2] = { i};
A. int a[]=,?stringz/;版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论