A: a[i]
B: *(pa+i)
C: *(a+i)
D: pa[i]
举一反三
- voidmain(){inta[10],b'10],*pa,*pb;pa=a;pb=b;for(inti=0;i<3;i++,pa++,pb++){*pa=i;*pb=2*i;}pa=&a[0];pb=&b[0];for(inti=0;i<3;i++){*pa=*pa+i;*pb=*pb+i;cout<<*pa++<<","<<*pb++<<",";}}
- 中国大学MOOC: 下面程序的运行结果是___ 。 #include<stdio.h>void main(){ int va[10],vb[10],*pa,*pb,i; pa=va; pb=vb; for(i=0; i<3; i++,pa++,pb++) { *pa=i; *pb=2*i; printf(”%d%d”,*pa,*pb); } pa=&va[0]; pb=&vb[0]; for(i=0; i<3; i++) { *pa=*pa+i; *pb=*pb*i; printf(”%d%d”,*pa++,*pb++); }}
- 如果int a[10],*pa=a;则*(pa+i)指的是( )。 A: a[i]的地址 B: a[i]的内容 C: a的地址 D: a的内容
- 若指针变量pa指向同类型数组的某个元素,以下描述错误的是_____ A: pa+i指向pa所指元素之后的第i个元素 B: pa-i指向pa所指元素之前的第i个元素 C: 若pa指向a[0],那么pa+i指向a[i],该结论只适用于字符型数组 D: 若pa指向a[0],那么pa+i指向a[i],该结论适用于任何类型的数组
- 若有int a[5][5];则*(a+i)+j是a[i][j]的地址,*(a+i)等价于a[i]等价于&a[i][0][/i][/i][/i]
内容
- 0
有以下程序voidmain(){inta[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<;3;i++)if(i<;2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}执行后输出结果是______。[/i][/i][/i] A: 7 B: 6 C: 8 D: 无确定值
- 1
有以下程序 #include main() { inta[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2)pa[1][i]=pa[1][i]-1; elsepa[1][i]=1; printf(""%d\n"",a[0][1]+a[1][1]+a[1][2]); } 执行后输出结果是()[/i][/i][/i] A: 7 B: 6 C: 8 D: 无确定值
- 2
有以下程序:#includestdio.hvoid main(){int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i3;i++) if(i2) pa[1][i] = pa[1][i]-1; else pa[1][i] = 1;printf(%d\n,a[0][1]+a[1][1]+a[1][2]);}执行后输出结果是( )。[/i][/i][/i] A: 9 B: 7 C: 0 D: 8
- 3
若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是()。 (o<=i<4,0<=j<=10[/i] A: *(&a[0][0]+10*i+j) B: *(a+i)+j C: *(*(a+i)+j) D: *(a[i]+j)
- 4
有以下程序 void main() { int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf("%d\n",a[0][1]+a[1][1]+a[1][2]); } 执行后输出结果是______。[/i][/i][/i] A: 7 B: 6 C: 8 D: 无确定值