main()
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2) printf("%d",p[i]);
}
答案解析:
i=0时,输出p[0],也就是x[1][1],输出是5;
i=2时,输出p[2],即p[2+0],也就是x[2][0],输出是3。
为啥p[2]即p[2+0]?
为啥不能p[1+1]?
为啥p[2+0]也就是x[2][0]?
...{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
x[2][0] 3 2 1 其实也可以看做一维数组的存储 x[0]---x[8] x[0]=9 x[1]=8 x[8]=1 因为存储的时候都是一样的 p指向的是 x[1][1] 也就是说 p[0] = x[1][1]p[1] = x[1][2] p[2] = x[2][0] 所以结果就是那样了。这里并不是拆分,而是...
20分求谭浩强的C程序设计基础习题
main() {int x=10,y=10,I; for(i=0;x》8;y=i) printf(“%d,%d ”,x——,y); } (23)以下程序的输出结果是 A)5 2 B)5 1 C)5 3 D)9 7 main() {int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0;i《4;i=2)printf(“%d ”,p[i]); } (24)以下...
...main() { int i,x[9]={9,8,7,6,5,4,3,2,1}; for(i=0;i<4;i+=2...
main() { int i,x[9]={9,8,7,6,5,4,3,2,1};for(i=0;i<4;i+=2) -- 每次循环加2,第一次循环是0,第二次是2,第三次是4 ,因为I=4所以循环结束 printf("%d",a[i]);} 这个题目么?答案是 97
...{ int i, x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0...
首先,p是int型指针,指向x[1][1]的地址(int *p=&x[1][1])第一个是p[0],即p地址上的内容,就是x[1][1],所以是5 因为 i+=2 第二个是p[2],(也可以写成*(p+2))即p地址向后两个int型长度地址上的内容,是3。然后 i=4 跳出循环 ...
以下程序的输出结果是___. #include <stdio.h> main() {int a=2,i...
1.这里static c=3,局部修饰c,所以c的值是不变的。(注:当static在函数中修饰局部变量时,该变量为静态变量,不再存放在堆栈中,函数结束也不会销毁,每次进入该函数的时候变量值还是上次函数退出时候的值。静态变量只能初始化一次。)2.a的值是不变的。3.b的值每次加1.4.i=0,1,2,共三个...
...main() { int a[4][4]={{1,2,3,4},{5,6,7?
然后在while循环中,i作为数组的行来参与运算。我们发现当到第二行时是直接运行了continue语句,不会执行后面的do~while语句。那么满足i++<4的i就有1、3,在此基础上满足j<4的j值有0-3,所以程序就是对数组的第1、3行的每一列数据进行相加,然后结果放在s中,所以s=5+6+7+8+15+16+17+18...
main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) p...
3 5 7 实际上t[][3]=t[3][3]= {{9,8,7},{6,5,4},{3,2,1}} 再由循环 i=0,t[2][0]=3 i=1,t[1][1]=5 i=2,t[0][2]=7 i=3循环结束 即 t[2][0]=3 t[1][1]=5 t[0][2]=7
以下程序的输出结果是___。 #include 〈stdio.h〉 main...
A.8,17
main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) p...
357,供参考……
main( ) { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++...
输出内容如下:3,5,7,