12,13题请问详解,c语言的谢谢

如题所述

12. 没有正确选项。应该是'1''-''2'('-'表示空格),即ch1=='1',ch2=='-',ch3=='2'。因为%1c取1个宽度即1赋给ch1;%2c取2个宽度即'-'和'2',结果把'-'赋给ch2而把'2'丢弃;%3c取3个字符'2''-''3',结果把2赋给ch3,把'-''3'都丢弃;还有2个3还留在输入缓冲区里。而选项中的(B)、(D)中间那个符号是''而不是' ',所以说无正确选项。估计出题者的意图是选(D),但把选项印错了。
13. (A)。%3d是截取3位,%*3c是跳过3个字符。我想你已明白了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-01
第十二题:D; %1c表示读取1个字节字符'1',然后赋值给ch1,%2c表示读取两个字节字符,然后把读取的第一个字符 '空格' 赋值给ch2,然后%3c读取三个字符'2',' ', '3',然后把'2'赋值给ch3
第十三题:A;这里*3c表示照常读取3个字节字符,但是不存储到变量中去
第2个回答  2016-01-01
*可以理解为跳过,先读入一个3位整数,再跳过3个字符,再读入一个3位整数,所以选A追答

在scanf中若没有分隔符则软入时也不能加任何字符,空格类字符除外

相似回答