二级C语言选择题 两道求详细解释!

ABC哪里错了?请大神详解... ABC哪里错了?请大神详解 展开
 我来答
philip016
2014-09-17 · TA获得超过134个赞
知道答主
回答量:6
采纳率:0%
帮助的人:4万
展开全部
A的意思是取n的地址赋给指针p ,*p表示取指针p里的变量值,正确是p=&n;
B同理,输出的是变量值,而不是地址,正确是printf("%d\n”,*p);
C格式输入函数scanf后面参数是取地址值,乍看&p好像对,但是别忘了p是指针变量,本身作用就是保存地址,所以正确是scanf("%d",p);

第一题嘛,if(a=1)b=1;后面有一个分号,看到了吗,这样if语句就结束了,所以后面还加else语句就会出错咯
追问
求大神进一步解释……??  if(表达式1) 语句1;else(表达式2) 语句2;
这样就是正确的格式不是吗??if后的分号应该不算错啊??只是c=2部分不属于if控制的范围啊??
追答
大神不敢当,我也在学,你的问题问到我了,我刚才测试了一下,原来我也错了,if语句如果有多条语句就要用大括号{}括起来,这就是错的地方。还有不明白在问,互助互利嘛。

不加花括号if语句就只控制b=1,那么c=2肯定会执行了。加了花括号也会执行,因为包含在if语句里
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0b6a7ab
2014-09-17 · TA获得超过369个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:80.4万
展开全部
A. 这么理解,p就是内存地址,*p就是指向p的内容。&n,是取n的地址
B. printf 后面带的是内容,不是地址
C. scanf是内存地址,如果前面是int n, p,那么这样就对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
释竹阳花
2014-09-17 · TA获得超过2901个赞
知道小有建树答主
回答量:837
采纳率:0%
帮助的人:831万
展开全部
24)中,
A:定义中*p表示p是指针;而语句“*p=&n”,表示将变量n的地址存放在指针p的地址中。而不是用指针p指向变量n的地址。正确的应该是p=&n;故A错
B:输出的是指针p的地址,而不是指针指向的内容,正确的应该是printf("%d\n",*p);
C:p本来就是一个指针,如果在对其取址,则表示将数据输入给地址变量p对应的地址中,而不是赋给指针p指向的存储空间中。正确的应该是scanf("%d",p).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式