x,s);D)printf("%f %s",x,s); 3、下列定义中,错误的是___B____。A)int a[3]={1,2,3};B)int b[]={1,2,3,4};C)float c[2][3]={1.2,2.3,3.4};D)char d[4]={'a','b','c','d'} 4、若有以下的定义:int a[][3]={1,2,3,4,5,6};则 a[1][1] 的值是___C____。A)2B)4C)5D)6 5、下列程序的输出结果是___D____。 //代码如下
#include <stdio.h>
int main(){
int a[]={1,2,3,4,5};
int *pa[5],i;//注意 pa 为指针数组
for (i=0;i<5;i++)
pa[i]=&a[i];
printf("%d,%d,%d,%d,%d\n",*pa[4],*pa[3],*pa[2],*pa[1],*pa[0]);
return 0;
}
A)5,4,3,2,1B)1,2,3,4,5C)5,3,1,2,4D)5,4,3,2,1 6、下列程序的输出结果是___A____。 //代码如下
#include <stdio.h>
#include <string.h>
int main(){
int a[]={1,2,3,4,5};
int *pa[5],i;//注意 pa 为指针数组
for (i=0;i<5;i++)
pa[i]=&a[i];
printf("%d,%d,%d,%d,%d\n",pa[4],pa[3],pa[2],pa[1],pa[0]);
return 0;
}
A)十六进制地址B)5,4,3,2,1C)4,3,2,1,0D)乱码 7、以下关于 C 语言数组的叙述中,错误的是___C____。A)数组名是指向数组首元素的指针,即指向第一个元素的地址。B)数组名与指针不同,不能进行递增和递减运算。C)数组名是常量,不能被重新赋值。D)数组名本身无法指向数组中的其他元素。 8、已知 int p[3][4]; 则 &p 和 &p[0][0] 的值分别是___B____。A)相同,B)不同C)不同,D)不同 9、若有以下的定义:int a[5]={1,2,3,4,5};则 a[4] 等于___D____。A)4,B)5,C)1,D)5;
从以上的练习题中,我们可以学到C语言中关于数组的定义、初始化和使用。首先要注意数组的定义方式,如int t[3][2];表示一个3行2列的二维数组。其次要熟练掌握数组元素的访问方式,如a[1][1]表示二维数组的第2行第2列元素。另外要注意指针数组的使用,以及数组名和指针的区别。最后要注意数组名是常量、不能被重新赋值的特点。通过这些练习,我们可以加深对C语言数组的理解,提高自己的编程能力。