![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
请教几个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,我记得课本上说过不能那样写啊!! 展开
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,我记得课本上说过不能那样写啊!! 展开
展开全部
第一题,c有非常明显的错误,那就是有三个输入控制符,确只有两个变量,d,第一个是按十六进制输入,第二个是按八进制输入,第三个是按整数位为六位,小数位为二位的输入控制输入,是正确的。至于第二题,你看,c跟d是错的离谱,b的话也没给a和b赋初值!所以只能选a!!!
追问
大哥你懂不懂啊!!第一题是选错误的,D是错的C是正确的!!
展开全部
Z是double型,D中如果说是printf的话就可以这样用6.2f输出,而scanf是不能精确到小数位的,还有楼上有三个控制符就一定要输入3个有效数?第二题题目是要求a,b,c都要赋予5,这里没答案啊,A答案语法是错的,除非有特殊条件
追问
但第二题答案确实是A!!有人说有的编译系统是合法的??不懂啊!!
追答
你就记住这是错的就行了,你想想这条题都不知过了多少年了,时代也不断变化,现在的好多编译器不能这样写的情况下,还计较这样的答案?实践才是真理啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1
C选项,scanf里格式符%后面跟一个*,表示读指定类型的数据但不保存。所以后面%o才是给y读取内容,%o表示以8进制形式读入。
D选项,scanf不能通过%6.2f这种方式控制读入精度,这是非法的,另外,读取double型数要用%lf。
2.
你说的没错,选项A也是非法的。除非哪个编译器能认同这样的语法。
C选项,scanf里格式符%后面跟一个*,表示读指定类型的数据但不保存。所以后面%o才是给y读取内容,%o表示以8进制形式读入。
D选项,scanf不能通过%6.2f这种方式控制读入精度,这是非法的,另外,读取double型数要用%lf。
2.
你说的没错,选项A也是非法的。除非哪个编译器能认同这样的语法。
更多追问追答
追问
但答案确实是选A啊!!为毛呢??
追答
除非A选项这条语句前还有定义b和c的语句:int b,c;
否则一定语法错误。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询