这是C++的几道题,我不太明白这几道题为什么这么选,想听听详细的讲解。谢谢啦!

1.下列程序执行后的输出结果是{main()inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\... 1.下列程序执行后的输出结果是
{ 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)随机数
2.若有定义:a[2][3];,以下选项中对a数组元素正确引用的是
A)a[2][!1] B)a[2][3] C)a[0][3] D)[1>2][!1]
特别不理解D选项的意思。
3.char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";这个为什么是错误的呢。哪里错了?
展开
 我来答
百度网友561485b
2012-02-26 · TA获得超过147个赞
知道答主
回答量:43
采纳率:0%
帮助的人:30.8万
展开全部
第1题选 B
因为,p=&a[0][0]; 就是说p是数组a的首地址,for(i=1;i<9;i++) p[i]=i+1;就是说a[0][1]=1+1,a[0][2]=2+1,a[1][0]=3+1,a[1][1]=4+1,a[1][2]=5+1。。。。。。
以此类推 是6
第2题选 D
首先说一下, !1 --> 就是非1 --> 非1就是0
这是两行三列的数组,所以,a[2][!1] 就是指 a[2][0] ,不对,因为第一个数字只能是0~1
a[2][3], 肯定也不对,因为行数是0~1,列数是0~2
a[0][3], 肯定也不对,列数超过了
最后一个,[1>2]里面是布尔表达式,并且是false,所以相当于0,[!1]里面就是0,所以这个就是
a[0][0],正确引用
第3题
从我们逻辑上说的确是对的,但是写程序的时候,不能这么赋值,会报错的
百度网友0d0f789
2012-02-26
知道答主
回答量:22
采纳率:0%
帮助的人:8.8万
展开全部
第一题选B
p=&a[0][0];这句的意思是将a数组的首地址给指针P
题目求a[1][2]就是求第六个元素也就是P[5]
第二题选D,应该少写了a吧应该是a[1>2][!1]
1>2假所以值为0:;!1表示非1也就是0所以D选项为a[0][0]
第三题中字符串是不能直接复值的,只能用strcpy(字符串1,字符串2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wu_zhenjiu
科技发烧友

2012-02-26 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:3.1万
采纳率:79%
帮助的人:1.2亿
展开全部
1.B,2.D
char c[4]=d[4]="abc"不能这样赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式