01数组练习题
数组练习题1
1.有如下语句 int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;则数值为9的表达式为:B
A.*p+9 B.*(p+8) c.*p+=9(首元素变10) D.p+7
2.若有定义语句,int a[3][6]:按在内存中存放的顺序,a数组的第10个元素是:D
A.a[0][3] B.a[1][4] C.a[0][4] D.a[1][3]
3.以下数组定义错误的是:B
A.int x[][3]={0};
B.int x[2][3]={{1,2},{3,4},{5,6}};
C.int x[][3]={{1,2,3},{4,5,6}};
D.int x[2][3]={1,2,3,4,5,6};
4.若有说明:int i,j=2,*p=&i;则能完成i==j赋值功能的语句是:A
A)*p=*&j;
B)i=*p;
C)i+&j;
D)i=**p;
5.下列程序的运行结果是:20、50
#include<stdio.h>
int main()
{
int a[]={10,20,30,40,50};
int *p=(int*)(&a+1);
printf("%d%d\n",*(a+1),*(p-1));
return 0;
}
6.下列的程序输出结果是:1、4、8
#include<stdio.h>
int main()
{
int a[5][2]={0,1,2,3,4,5,6,7,8,9};
int *p=a;//两边类型不一致,但是C语言可以运行,弱类型语言a是{0,1}这个数组的地址。
int (*p2)[2]=&a[1];//[]这个优先级高,
++p;//犏移一个int
++p2;//犏移两个int
printf("%d\n",*p);
printf("%d\n",**p2);//*p2是4的地址,**p2是4。
printf("%d\n",p2[1][2]);//p2[1]是对p2先犏移一个p2的单位,再间接引用,得到的是6的地址;[2]是对p2[1]的结果犏移再引用,此时犏移的大小看p2[1]的大小。
return 0;
}
自律,
坚定,
随和,
坚强,
为了自己想要的,去奋斗