一道等级考试真题!
有以下程序
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
for(i=0;i<3;i++)
{for(j=0;j<2;j++)printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果是
A)产生错误信息 B)1 0 C)1 2 D)1 0
2 0 3 0 2 0
0 0 0 0 3 0
问题点数:10、回复次数:12Top
1 楼zhym05(雁鸣)回复于 2005-12-27 18:06:05 得分 0
后两行一次往后串一下,格式乱了!Top
2 楼zhym05(雁鸣)回复于 2005-12-27 19:41:05 得分 0
麻烦大家帮忙Top
3 楼stoneyrh()回复于 2005-12-27 19:51:22 得分 0
C
吧Top
4 楼zhym05(雁鸣)回复于 2005-12-27 20:04:24 得分 0
to stoneyrh() :
选B!帮忙分析一下,谢谢Top
5 楼primercpp(初学者)回复于 2005-12-28 23:25:22 得分 5
输入:1 2 3<回车>
---------
此时键盘缓冲区中有数据1 2 3 ,
输入部分执行2轮循环,第一轮将1读入ptr[0],即a[0][0],
第二轮将2读入ptr[1],即a[1][0].
循环结束,3未读入。
数组中数据就为:
1 0
2 0
0 0
是这样吗?Top
6 楼zhym05(雁鸣)回复于 2005-12-29 08:33:36 得分 0
primercpp(初学者):Thank you!Top
7 楼cyblueboy83(爱情白痴—电脑迷)回复于 2005-12-29 10:10:04 得分 0
同意 primercpp(初学者)
Top
8 楼widowss(widowss)回复于 2005-12-29 11:06:31 得分 0
10
20
30Top
9 楼widowss(widowss)回复于 2005-12-29 11:15:39 得分 0
10
20
00Top
10 楼crazybee(浪心)回复于 2005-12-29 11:49:15 得分 2
应该是
1 0
2 0
0 0
因为指针*prt分别指向a[0][0] 和a[1][0]Top
11 楼whatsouta(某疯子)回复于 2005-12-29 12:08:30 得分 3
B
prt为一指向有二个元素的数组
因此,prt++ 相当于数组 a 去到下一行Top
12 楼zhym05(雁鸣)回复于 2005-12-30 23:53:41 得分 0
又解决了一问题,谢谢大家!Top




