c语言中scanf(“%2d%*2d%2d”,&a,&b);若要输入123456789 则变量a和

c语言中scanf(“%2d%*2d%2d”,&a,&b);若要输入123456789
则变量a和b的值分别是?

a=12,b=56;

scanf可以指定输入的宽度,比如scanf(“%2d",&a);就是把输入数据的前两位赋值给a。scanf可以用“*”跳过指定的宽度,比如scanf(“%2d%*2d%2d”,&a,&b);就是把输入数据的前两位12赋值给a,然后跳过34两位,最后把下面两位56赋给b。scanf函数遇到空格和非法输入时结束,并且可以指定输入宽度。追问

知道了,谢了啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-13
答案:A 解析:在本题的 scan 语句中,格式串指定变量 a 和 b 分别从输入中取 2 位数字,a 的值为 12, b 的值为 34,格式串中多出来的“%3d”没有作用,输出的是 12+34=46,答案为 A。
第2个回答  2013-10-22
a=12,b=56

%2d 读1个2位整型数 存入a
%*2d -- 跳过输入流中的 1个2位整型数.
%2d读1个2位整型数 存入b追问

什么意思啊?看不懂呢

追答

%d 是输入一个整数,这个你知道吧? %2d中的2表示是一个两位的整数,输入一个两位整数,并赋值给a,所以a是最先输入的两个数12;
%*2d表示跳过或者忽略后面输入的1个两位整数,也就是34,这个两个数被忽略了
%2d就是从输入中取一个两位整数给b,所以b的值是56

追问

好的,知道了啊,谢了啊

第3个回答  2018-05-24
12 45 %d是赋予2个整数,*%2d是跳过两个整数你可以去百度一下这些符号的意思的
第4个回答  2013-10-22
a=12,b=56具体请见链接http://wenku.baidu.com/view/cabc1927af45b307e87197de.html。里面有介绍。追问

找不到。。。