有以下程序:#include <stdio.h>main ( ){int a[3] [3] , *p,i; p=&amp;a[0][0];for(i=0;i<9; i++

题目
有以下程序:include main ( ){int a[3] [3] , *p,i; p=&a[0][0];for(i=0;i<9; i++

有以下程序: #include <stdio.h> main ( ) { int a[3] [3] , *p,i; p=&a[0][0]; for(i=0;i<9; i++)p[i]=i: for(i=0; i<3;i++)Printf("%d",a[1][i]); } 程序运行后的输出结果是( )。

A.012

B.123

C.234

D.345

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序 main() { int a[3][3], *p, i; p = &a[0][0]; for(i = 0;i < 9;i++) p[i] = i; for(i = 0;i<3;i++) printf("%d",a[1][i]); } 程序运行后的输出结果是______。

A.012

B.123

C.234

D.345


C

第2题:

下列程序执行后的输出结果是()。includemain(){int a[3][3],*p,i; p=&a[0][0]; for

下列程序执行后的输出结果是( )。 #include <stdio.h> main() { int a[3][3],*p,i; p=&a[0][0]; for(i=1;i<9;i++) p[i]=i+1; printf("%d\n",a[1][2]); }

A.3

B.6

C.9

D.随机数


正确答案:B
解析:本题中,a[1][2]是二维数组中的第6个元素,对应for循环中i的值为5,p[5]=5+1。

第3题:

有以下程序:includemain() {int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i

有以下程序: #include <stdio.h> main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i+1; printf("%d\n",a[1][2]); } 程序运行后的输出结果是( )。

A.3

B.6

C.9

D.2


正确答案:B
解析:本题考查指向数组元素的指针变量。p=&a[0][0]是把该数组的第一个元素a[0][0]的地址赋给指针变量p,a[1][2]是数组中的第6个元素,根据for循环中的赋值可知,输出结果是6。

第4题:

若有以下程序includeint a[]={2,4,6,8};main(){int i; int *p=a; for(i=0;i<4;i++)a[i

若有以下程序 #include <stdio.h> int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++)a[i]=*p; printf("%d\n",a[2]);} 上面程序输出结果是

A.6

B.8

C.4

D.2


正确答案:D
解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

第5题:

有以下程序: main() { int a[3],[3]*p,i; p=&a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是 ______ 。

A.12

B.123

C.234

D.345


正确答案:D
解析:本题赋值后,a的数组元素的值分别为a[0][0]=0,a[0][1]=1,a[0][2]=2,a[1][0]=3,a[1][1]=4,a[1][2]=5,a[2][0]=6 a[2][1]=7,a[2][2]=8,故本题输出的值为345。

第6题:

有以下程序: main() { int a[3][3],*P,i; p=&a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是( )。

A.0 1 2

B.1 2 3

C.2 3 4

D.3 4 5


正确答案:D
解析:本题的考点是C语言的指针。p指向二维数组a的首地址,而二维数组是按行存放的。因此“。for(i=0;i9;i++)p[i]=i;”的结果是等价于a[3][3]={0,1,2,3,4,5,6,7,8},也就是a[3][3]={{0,1,2),{3,4,5),{6,7,8}}。因此a[1][i](i=0,1,2)的结果是3、4、5。输出结果应该是:3 4 5。

第7题:

有以下程序main ( ) { int a[3] [3],*p, i; p=&a[0] [0]; for (i=0;i<9; i++) p[i] =i; for(i=0;i<3;i++) printf ("%d" ,a[1] [i] );} 程序运行后的输出结果是

A.12

B.123

C.234

D.345


正确答案:D
解析:本题考查的是二维数组元素在内存中的排列形式。虽然二维数组成多维数组从结构上来看不是线性的,但是在C语言中,这些数组元素在内存中的排列是连续线性存放的。它们的排列规则是:第一维下标变化最慢,最右边的下标变化最快.例如本题中定义的二维数组a[3][3]中9个元素在内存中的排列顺序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函数中,首先定义了二维数组a[3][3],然后定义了一个指针p指向数组a的第1个元素a[0][0]。在第一个for循环中,依数组a在内存中的排列顺序为其元素赋从0~8九个值,然后用第二个for循环依次输出a[1][0],a[1][1],a[1][2]三个元素的值。所以,4个选项中选项D符合题意。

第8题:

有以下程序: main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是 ______。

A.0 1 2

B.1 2 3

C.2 3 4

D.3 4 5


正确答案:D
解析:p指向的a的首地址,由于C语言是行优先存储的,一维数组p就依次存放了a中从第0行到第2行的所有元素,因此a[1][i]就对应了p[3]~p[5]。

第9题:

有以下程序main(){ int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++)p[i]=i; for(i=0;i<3;i++)printf("%d",(++p)[i]);}程序运行后的输出结果是( )。A.012 B.135 C.234 D.345


正确答案:B
第一个for循环的结果是p[9]={0,1,2,3,4,,5,6,7,8},第二个for循环:i=0,++p,使得p指向了1,所以输出的结果是1,然后i++,i=1,++p,p指向了3……