请教几个C语言的问题、大神快来!!

①若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是??答案是DAscanf("%d%lx,%le"&x,&y,&z);Bscanf(... ①若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是??答案是D
A scanf("%d%lx,%le"&x,&y,&z);
B scanf("%2d*%d%lf,&x,&y,&z);
C scanf("%x%*d%o",&x,&y);
D scanf("%x%o%6.2f",&x,&y,&z);
这题为什么选D,C为什么正确??
②以下能正确的定义整型变量a,b和c并为其赋初值5的语句是??答案是A
A int a=b=c=5; B int a,b,c=5;
C a=5,b=5,c=5 ; D a=b=c=5;
这题为什么选A,我记得课本上说过不能那样写啊!!
展开
 我来答
a2091013
2013-07-12
知道答主
回答量:7
采纳率:0%
帮助的人:5.7万
展开全部
第一题,c有非常明显的错误,那就是有三个输入控制符,确只有两个变量,d,第一个是按十六进制输入,第二个是按八进制输入,第三个是按整数位为六位,小数位为二位的输入控制输入,是正确的。至于第二题,你看,c跟d是错的离谱,b的话也没给a和b赋初值!所以只能选a!!!
追问
大哥你懂不懂啊!!第一题是选错误的,D是错的C是正确的!!
Evai_KING
2013-07-12 · TA获得超过264个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:146万
展开全部
Z是double型,D中如果说是printf的话就可以这样用6.2f输出,而scanf是不能精确到小数位的,还有楼上有三个控制符就一定要输入3个有效数?第二题题目是要求a,b,c都要赋予5,这里没答案啊,A答案语法是错的,除非有特殊条件
追问
但第二题答案确实是A!!有人说有的编译系统是合法的??不懂啊!!
追答
你就记住这是错的就行了,你想想这条题都不知过了多少年了,时代也不断变化,现在的好多编译器不能这样写的情况下,还计较这样的答案?实践才是真理啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友83cdc1c
2013-07-12 · TA获得超过5792个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:853万
展开全部
1

C选项,scanf里格式符%后面跟一个*,表示读指定类型的数据但不保存。所以后面%o才是给y读取内容,%o表示以8进制形式读入。
D选项,scanf不能通过%6.2f这种方式控制读入精度,这是非法的,另外,读取double型数要用%lf。
2.
你说的没错,选项A也是非法的。除非哪个编译器能认同这样的语法。
更多追问追答
追问
但答案确实是选A啊!!为毛呢??
追答
除非A选项这条语句前还有定义b和c的语句:int b,c;

否则一定语法错误。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式