请高手帮忙解答2道C语言选择题

第一题:若定义int*p,*s[5],a[5];下列赋值语句中错误的是A.s=a;B,p=a;C.p=s;D.p=s[0];第二题我用图片插入了。请高手解答下,说的详细点... 第一题:若定义int *p,*s[5],a[5];下列赋值语句中错误的是
A.s=a ; B,p=a ; C.p=s; D.p=s[0];
第二题我用图片插入了。
请高手解答下,说的详细点,最好把每个答案都分析下为什么对或错,先O(∩_∩)O谢谢了,在线等
展开
 我来答
手把手教你学编程
2010-12-24 · TA获得超过102个赞
知道答主
回答量:51
采纳率:0%
帮助的人:26.2万
展开全部
第一题应该是选A,因为s和a都是数组名,代表的是地址常量,不能改变,即不能做左值被赋值。虽然s和p指针类型不同,但不会报错。最多是警告,并且是可以运行的。
第二题应该选A,首先将i写入文件,然后将j附加在i的后面,所以文件中的内容应该是33 44。主要是注意两次打开文件的方式不一样,如果都是W的话,后面写入的会覆盖前面的那么结果就是44了。
匿名用户
2010-12-24
展开全部
第一个题是C错了吧。
这样指针不兼容,一个是一级指针
一个是二级指针,不能直接赋值的。
第二个a+是追加的
那么就是分别写入了i和j
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvisq61
2010-12-25 · TA获得超过240个赞
知道答主
回答量:303
采纳率:100%
帮助的人:226万
展开全部
答案是A
我上机试过
scanf("%s%s",a1,a2);
可以正常读取aa bb a1=aa b1=bb
gets(a3);gets(a4);
gets(a3)读取了一个空字符('/0')
gets(a4)读取了 cc dd
所以输出是A ,这个你自己上机调试跟踪就可以了。
这道题说明scanf和gets是有区别的,但我也说不清,上网查吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chiconysun
2010-12-25 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2503万
展开全部
第一题答案AC都是错的
A的原因是:s是常量指针,是右值,不得出现在赋值号左边,且不论类型是否兼容
至于答案C,就是类型不兼容,并且如果D成立,则C就不会成立
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式