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
",*(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
",*p);
    printf("%d
",**p2);//*p2是4的地址,**p2是4。
    printf("%d
",p2[1][2]);//p2[1]是对p2先犏移一个p2的单位,再间接引用,得到的是6的地址;[2]是对p2[1]的结果犏移再引用,此时犏移的大小看p2[1]的大小。
    return 0;
}
自律, 坚定, 随和, 坚强, 为了自己想要的,去奋斗
原文地址:https://www.cnblogs.com/xiaowututu/p/13905228.html