1. 以下对一维数组a的正确说明是:
A)char a(10); B) int a[];
C)int k=5,a[k]; D)char a[]={‘a’,’b’,’c’};
2.以下能对一维数组a进行初始化的语句是: ( )
A) int a[5]=(0,1,2,3,4,) B) int a(5)={}
C) int a[ ]={0,1,2} D) int a{5}={10*1}
3.在C语言中对一维整型数组的正确定义为 。
A)int a(10); B)int n=10,a[n];
C)int n;a[n]; D)#define N 10
int a[N];
4、已知:int a[10]; 则对a数组元素的正确引用是( )。
A、a[10] B、a[3.5] C、a(5) D、a[10-10]
5. 执行下面的程序段后,变量k中的值为
A) 不定值 B) 33 C) 30 D) 10
int k=3, s[2];
s[0]=k; k=s[0]*10;
6. 下列说法中错误的是
A 构成数组的所有元素的数据类型必须是相同的
B 用指针法引用数组元素允许数组元素的下标越界
C 一维数组元素的下标依次是1、2、3……
D 定义数组时的长度可以是整型常量表达式
7.若有以下数组说明,则数值最大的和最小的元素下标分别是( )。
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
8.若有以下数组说明,则i=10;a[a[i]]元素数值是( )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A)10 B)9 C)6 D)5
9. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
A) 3 B) 6 C) 10 D) 20
10.若有说明:int a[][3]={1,2,3,4,5,6,7}; 则数组a的第一维的大小为: ( )
A) 2 B) 3 C) 4 D)无确定值
11.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( )
A) 2 B) 3 C) 4 D)无确定值
12.以下定义语句中,错误的是
A) int a[]={1,2}; B) char *a[3];
C) char s[10]=“test”; D) int n=5,a[n];
13.下面程序段的输出结果是:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for (i=0;i<3;i++)
printf("%d ",x[i][2-i]);
A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9
14.对二维数组的正确定义是( )
A)int a[ ] [ ]={1,2,3,4,5,6}; B)int a[2] [ ]={1,2,3,4,5,6};
C)int a[ ] [3]={1,2,3,4,5,6}; D)int a[2,3]={1,2,3,4,5,6};
15.已知int a[3][4];则对数组元素引用正确的是______.
A)a[2][4] B)a[1,3] C)a[2][0] D)a(2)(1)
*16. 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是
A) &t[3][2] B) t[3] C) t[1][2] D) t[2]
17.下面程序的输出结果是____。
main( )
{
int m[3][3]={ {1}, {2}, {3} };
int n[3][3]={ 1, 2, 3 };
printf("%d", m[1][0]+n[0][0] );
printf("%d", m[0][1]+n[1][0] );
}
A)30 B)34 C)56 D)11
二、程序填空题
1、下面程序的功能是:输入一行字符,统计其中有多少个单词,单词之间
用空格分开。请填空完成。
# include main() {char str[81]; int I,( ); char c; gats(str); for(I=0;( )!=’\\0’;I++) if(c==’ ’)word=0; else if( ) {word=1; ( )} printf(“There are %d word in line. \\n”,num); } 2、下面程序的功能是:用选择排序法对数组中10个数据按由小到大排序。请填空完成。 void sort(int a[],int n) {( )