已知int a, *p=&a; 则下列函数调用中错误的是 (A) scanf(“%d”, &a); (B) scanf(“%d”, p); (C) printf(

详解(C)printf(“%d”,a);(D)printf(“%d”,p);... 详解
(C) printf(“%d”, a);
(D) printf(“%d”, p);
展开
 我来答
百度网友21a360264
推荐于2017-09-10 · TA获得超过1856个赞
知道小有建树答主
回答量:640
采纳率:100%
帮助的人:369万
展开全部
做题的话选 D。
先说AC. scanf("%d", &a); printf("%d", a) 这两个不用怀疑,只要上过机就知道。
B,没有问题。因为p=&a即p已经接收了a的地址,所以scanf("%d", p)就做到了把a的地址传递给scanf函数,运行时输入的数值会正确存到a那里,没有问题。
D,在语义上就有问题,显示a可用printf("%d",*p),而显示p本身可用printf("%p", p)但几乎没实际意义。更深入的讨论不展开了。
不得不提scanf调用的较奇怪地方,要用取址运算符('&'),而printf不用。如果哪天用scanf忘了用'&',就会发现结果出问题了。初学只需记得scanf调用几乎一定要用'&',只有字符串不用就够了。 至于其原因,详细解释的话涉及到C函数的本质,等到学完函数和指针就明白了。
zjhxmjl
2011-12-31 · TA获得超过1078个赞
知道小有建树答主
回答量:1203
采纳率:0%
帮助的人:803万
展开全部
答案:D
分析:p是指针变量,输出用格式字符%d,两者相冲突!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
香皂皂
2011-12-31
知道答主
回答量:3
采纳率:0%
帮助的人:3万
展开全部
已知int a, *p=&a; 则下列函数调用中错误的是
(A) scanf(“%d”, &a);
(B) scanf(“%d”, p);
(C) printf(“%d”, a);
(D) printf(“%d”, p);

D是错的,改为printf(“%d”, *p);
指针名p没有意义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钉喵酱
2011-12-31
知道答主
回答量:3
采纳率:0%
帮助的人:4995
展开全部
第二个错了,不能直接输入并且改变指针p的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gullet89
2011-12-31 · TA获得超过143个赞
知道答主
回答量:199
采纳率:0%
帮助的人:179万
展开全部
A 10 B 20 C 不确定值 D 程序有错误 完整程序的话,D 因为A是未定义的符号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式