阅读下面的程序
#include<stdio.h>
void main()
{undefined
int i,j;
scanf("%3d%2d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
如果从键盘上输入1234567<回车>,则程序的运行结果是______.
A) i=123,j=4567 B) i=1234,j=567
C) i=1,j=2 D) i=123,j=45
程序的运行结果是 D) i=123,j=45。
原因如下:
在程序中,使用了scanf函数以特定的格式读取输入。"%3d%2d" 表示先读取3个数字的整数,然后读取2个数字的整数。
当输入为1234567时,首先,scanf会读取123,因为这是前三个数字,然后将45赋给i。接下来,scanf会读取45,因为这是接下来的两个数字,然后将67赋给j。
所以,最后i的值为123,j的值为45。
注意:这里的解析并不依赖于回车或者其他非数字字符,只要输入的数字数量满足格式字符串的要求即可。
不懂
Pure 回复 兰德里的折磨: 在程序中,使用了scanf函数以特定的格式读取输入。"%3d%2d" 表示先读取3个数字的整数,然后读取2个数字的整数。 当输入为1234567时,首先,scanf会读取123,因为这是前三个数字,然后将45赋给i。接下来,scanf会读取45,因为这是接下来的两个数字,然后将67赋给j。 所以,最后i的值为123,j的值为45。
D
用户登录可进行刷题及查看答案
登录后提交答案