下面给出一些有关于c语言数组的部分的复习题,供大家参考~
设已定义:float
a[15]; 则数组a可引用的元素有(
).
A) a[1]~a[15]
B) a[0]~a[15]
C) a[1]~a[14]
D) a[0]~a[14]
以下程序段给数组所有元素输入数据:
main()
{
int a[10],i=0;
while(i<10) scanf("%d",(
));
... ...
}
应在园括号中填入的是:
A) a+(i++)
B) &a[i+1]
C) a+i
D) &a[++i]
若有以下定义:double
w[100]; 则数组w的元素下标范围是(
).
A) [0,100]
B) [0,99]
C) [1,100]
D) [1,99]
若有以下说明:int
a[10]={1,2,3,4,5,6,7,8,9,10}; char
c='a'; 则数值为4的表达式是(
).
A) a['f'-c]
B) a[4]
C) a['d'-'c']
D) a['d'-c]
已知int类型变量在内存中占用2个字节,定义数组int
b[8]={2,3,4};则数组b在内存中所占字节数为(
).
A)
3
B)
6
C)
8
D)
16
用数组名作为函数调用时的实参,实际上传送给形参的是(
).
A) 数组首地址B) 数组的第一个元素值
C) 数组中全部元素的值D) 数组元素的个数
若定义数组int
a[10] ,其数组元素的下标下限为(
).
A)
1
B)
0
C)
9
D)
10
若定义数组int
a[10],以下语句哪一个不成立(
)?
A)
a 数组在内存中占有一连续的存储区
B)
a代表a数组在内存中占有的存储区的首地址
C)
*(a+1)与a[1]代表的数组元素相同
D)
a是一个变量
若定义数组并初始化int
a[10]={ 1,2,3,4},以下语句哪一个成立(
)?
A)
若引用a[10],编译时报错
B)
若引用a[10],连接时报错
C)
若引用a[10],运行时出错
D)
若引用a[10],系统不报错
若定义数组并初始化int
a[10]={ 1,2,3,4},以下语句哪一个不成立(
)?
A)
a[10]是a数组的最后一个元素的引用
B)
a数组中有10个元素
C)
a数组中每个元素都为整数
D)
a数组是整型数组
执行下面的程序段后,变量k中的值为(
).
int k=3,s[2];
s[0]=k;k=s[1]*10;
A)不定值B)33
C)30
D)10
如已有定义:int
a[4];若要把10,20,30,40分别赋值给数组a的4个元素,下面正确的赋值方式是(
).
A)scanf("%d%d%d%d",a[0],a[1],a[2],a[3]};
B)scanf("%s",a);
C)a={10,20,30,40};
D)a[0]=10;a[1]=a[0]+10;a[2]=a[1]+10;a[3]=a[2]+10;
下列在给数组定义正确的是(
).
A) int a[];
B) char a[100]={68,69,70};
C) int n=100,a[n];
D) char n=4,a[n]={"abc"};
一维数组初始化时,若对部分数组元素赋初值,则下面正确的说法是(
).
A)可以只对数组的前几个元素赋初值
B)可以只对数组的中间几个元素赋初值
C)可以只对数组的后几个元素赋初值
D)以上说法全部正确
决定数组所占内存单元多少的是(
).
A)数组的长度B)数组的类型
C)数组在初始化时被赋值的元素的个数D) 数组元素的个数及其类型
以下程序的输出结果是(
).
main(
)
{int i , a[10]};
for (i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A)258
B)741
C)852
D)369
设有程序段:
#define N 3
#define M N+2
float a[M][N];
则数组a的元素个数和最后一个元素分别为(
).
A) 15,a[5][3]
B) 15,a[3][5]
C) 8,a[4][2]
D) 15,a[4][2]
设有:int
x[2][4]={1,2,3,4,5,6,7,8};printf("%d",x[2][4]); 则输出结果是(
).
A)
8 B)
1
C) 随机数D) 语法检查出错
以下程序的输出结果是(
).
main()
{
int i,a[3][3]={ 1,2,3,4,5,6,7,8,9 };
for(i=0;i<3;i++)
printf("%d,",a[i][2-i] );
}
A)
1,5,9
B)
1,4,7
C)
3,5,7
D)
3,6,9
很多中问道,以下数组定义中正确的是(
).
A) float f[3,4]; B) int a[
][4];
C) char c(3);
D) double d[3+2][4];
指出以下错误语句(
).
A)
int a[2][3]= {{1,2,3},{4,5,6}};
B)
int b[2][3]= {1,2,3,4,5,6};
C)
int a[][]={{1,2,3},{4,5,6}};
D)
int a[][3]= {{1,2,3},{4,5,6}};
若定义数组并初始化int
b[][3]={{1,2,3},{4,5,6}};以下语句哪一个成立(
)?
A)
b[1][2]的值为1
B)
b[1][2]的值为4
C)
b[1][2]的值为6
D)
b[1][2]的值为2
若定义数组并初始化int
b[][3]={{1,2,3},{4,5,6}};以下语句哪一个成立(
)?
A)
b[1][2]的值为1
B)
b[1][2]的值为4
C)
b[1][2]的值为6
D)
b[1][2]的值为2
若定义数组并初始化int
a[2][3]={{1,2,3},{4,5,6}},b[2][3]={
1,2,3,4,5,6};
以下语句哪一个不成立(
)?
A)
a和b数组中各有6个元素
B)
b数组的初始化是错误的
C)
a数组与b数组中每个对应元素相等
D)
a、b数组都是整型数组
合法的数组初始化是(
).
A)
int x[][]={{1,2,3},{4,5,6}};
B)
int x[][3]={1,2,3,4,5};
C)
int x[3][3]={1,2,3;4,5,6;7,8,9};
D)
int x[3][3]={1,2,3};
在对二维数组初始化时,错误的说法是(
).
A)可对二维数组的全部元素赋初值
B)可对二维数组的部分元素赋初值
C)给二维数组的全部元素赋初值时,可以不指定第一维的长度但第二维的长度不能省略
D)给二维数组的全部元素赋初值时,可以不指定第二维的长度但第一维的长度不能省略
以下程序的输出结果是(
).
main()
{int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A)0650
B)
1470
C) 5430
D)输出值不确定
在内存中,二维数组存放的顺序是(
).
A)按行顺序B)按列顺序
C)按元素的大小D)按元素被赋值的先后顺序
设定义了:char
a[10]={'1','2','3','4','5'}; 则a[5]的正确初值是(
).
A) '5'
B) 5
C) '\0'
D)
' '
设有:char
a[10]; 下列语句那个是正确的(
)?
A) scanf("%c",a[0]);
B) scanf("%c",a);
C) printf("%c",a)
D) printf("%c",a[0])
设有定义:char
a[][5]={{'*'},{'*',' ','*'},{'*',' ',' ',' ','*'},{'*','
','*'},{'*'}};
则a[0][0]和a[4][4]的初值分别为(
).
A) *,*
B)
空格,空格
C)
空白符,*
D)
*,空白符
设有:char
a[]={"I am a student."}; 则a在内存中占用的字节数是(
).
A) 15
B) 12
C) 16
D) 32
给出以下定义:char
u[ ]="abcdef"; char v[
]={'a','b','c','d','e','f'};
则下列正确的描述为(
).
A)
数组u和数组v等价
B)
数组u和数组v的长度相等
C)
数组u的长度大于数组v的长度
D)
数组u的长度小于数组v的长度
若有以下定义和语句,则输出结果是(
).
char string[ ]="Sunny";
printf("%.3s",string);
A)
Su
B)
Sun
C)
Sunn
D)
Sunny
C语言中实现字符串输入的库函数是(
).
A)
gets(字符数组)
B) puts(字符数组)
C)
strlen (字符串)
D) strcmp(字符串1,字符串2)
若定义数组并初始化char
a[]={"hello"},该数组的元素个数是(
).
A)
不知道
B)
5
C)
6
D)
7
若定义数组并初始化char
a[10]={"hello"},该数组的元素中’\0’的个数是(
).
A)
10
B)
5
C)
6
若定义数组并初始化char
a[10]={"hello"},该数组的元素中
a[5]是(
).
A)
'h'
B)
'o'
C)
'\0'
D)
'l'
若定义数组并初始化char
a[10]={'0','1
','2','3','4','5','6','7','8','9'},指出以下错误语句(
):
A)可以用scanf("%s",a[0]);语句对a[0]元素重新赋值。
B)可以用scanf("%s",&a);语句对a数组重新赋值。
C)可以用scanf("%c",a[3]);语句对a[3]元素重新赋值。
D)可以用scanf("%s",a);语句对a数组重新赋值。
数组初始化时,下面说法错误的是(
).
A)当对一维数组的全部元素赋初值时,可以不指定长度
B)当对二维数组的全部元素赋初值时,可以省略维数
C)用字符串对一维字符数组赋值时,可以不指定长度
D)用字符串对二维字符数组赋值时,可以省略维数
可以用如下的语句定义数组a:int
n=10,a[n];
设已定义:int
a[15]={1,2,3,4,5};
则语句 printf("%d",a[5]);
的输出结果是5。
数组中的所有元素必须属于同一种数据类型。
数组名表示的是该数组元素在内存中的首地址。
C语言只能单个引用数组元素而不能一次引用整个数组。
定义数组:int
a[10]; 则数组a的最后一个元素是a[9],数组
a共有9个元素。
C语言中数组元素用数组名后带圆括弧的下标表示。
C语言中数组所占存储单元的多少仅由数组的长度决定。
定义一维数组int
a[10];则语句for(i=0;i<10;i++)
scanf("%d",a[i]);是正确的。
给二维数组的全部元素赋初值,可以用如下的语句实现:int
a[][]={{1,2,3},{4,5,6},{7,8,9}};