这是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";这个为什么是错误的呢。哪里错了? 展开
{ 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";这个为什么是错误的呢。哪里错了? 展开
3个回答
展开全部
第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题
从我们逻辑上说的确是对的,但是写程序的时候,不能这么赋值,会报错的
因为,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题
从我们逻辑上说的确是对的,但是写程序的时候,不能这么赋值,会报错的
展开全部
第一题选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)
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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.B,2.D
char c[4]=d[4]="abc"不能这样赋值。
char c[4]=d[4]="abc"不能这样赋值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询