已知:int a[5]={20,40,60,80,100},*p=&a[1],*s,k=2;。请填空:(1)通过指针变量p给s赋值,使s指向a[4]的语句是 。(2)S已指向a[4],移动指针s,使其指向a[2]的语句是 。(3)指针s已指向a[2],表达式*(s+k)的值是 。(4)指针s已指向a[2],不移动指针,通过s引用a[3]的表达式是 。(5)指针s已指向a[2],表达式s-a的值是 。
举一反三
- 若有如图8.8所示五个连续的int类型的储存单元并赋值如图,且定义:int *p, *s;其中p指向储存单元a[1]。(1)使指针p,给s赋值,使其指向最后一个储存单元a[4]的语句是 。(2) s指向储存单元a[4],移动指针s,使之前向中间的储存单元a[2]的表达式是 。(3)已知k=2,指针s已指向储存单元a[2],表达式*(s+k)的值是 。(4)指针s已指向存储单元a[2],不移动指针s,通过s引用存储单元a[3]的表达式是 (5)指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是 。(6)若p指向存储单元a[0],则以下语句的输出结果是 。for(i=0;i<5;i++)printf(‘’%d’’,*(p+i));printf(‘’\n’’);
- 若有5个连续的int类型的存储单元并赋值如下图所示,a[0]的地址小于a[4]的地址。p和s是int类型的指针变量。请对以下问题进行填空。[img=692x114]17e447e92ae1020.png[/img]1)若指针p已指向存储单元的a[1],通过指针p给s赋值,使s指向最后一个存储单元a[4]的语句是( );2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是( );3)若指针p指向a[3],则执行语句“*--p;”后*p的值是( )。
- 若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。a[0] a[1] a[2] a[3] a[4]22 33 44 55 661,若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元 a[4]的语句是 __________。2,若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是_______________ 。
- 若p已指向存储单元a[1]。通过指针p给指针变量s赋值,使s指向最后一个存储单元a[4]的语句是____________
- 关于二维数组的创建,以下做法正确的是:(1)int a[][] =new int[4][5](2)int a[][] =new int[4][]; a[0]=new int[10]; a[1]=new int[20];(3)int a[][]; a=new int[3][]; a[0]=new int[3]; a[1]={1,2};a[2]={1,2,3}; A: (1)(2)(3) B: (1)(2) C: (1)(3) D: (1)