c语言scanf函数格式问题
intx1,x2;chary1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的...
int x1,x2;
char y1,y2;
scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);
若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。(注:└┘代表空格)
A.10A└┘20B B.10└┘A20B
C.10 └┘A└┘20└┘ B D.10A20└┘B
为什么选a啊 不输入空格我知道也可以输入 但是为什么啊我没让用户输入空格啊 展开
char y1,y2;
scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);
若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。(注:└┘代表空格)
A.10A└┘20B B.10└┘A20B
C.10 └┘A└┘20└┘ B D.10A20└┘B
为什么选a啊 不输入空格我知道也可以输入 但是为什么啊我没让用户输入空格啊 展开
2个回答
展开全部
scanf从缓冲区读取的时候不是依据空格的,读整数就取一个整数,读字符就取一个字符
所以是A,比如C,读取整数10之后读到空格,会将空格当做字符放到y1中
最好的办法就是写程序跑一下,下面是程序和结果
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
int x1,x2;
char y1,y2;
scanf("%d%c%d%c",&x1,&y1,&x2,&y2);
printf("%d %c %d %c\n", x1,y1,x2,y2);
system("pause");
return 0;
}
展开全部
首先明确
1. 对于%d的输入,会忽略之前的空格
2. 对于%c的输入则不会忽略。
3. 对于%d的输入,会被字符截断,这也就是 输入"10A20B"的时候,也不会错的原因了。
正确答案是A
x1接收了10, y1接收了字符A,之后是一个空格,而输入的是%d,所以会忽略空格,所以x2接收了20,y2接收了字符B
分下下其它的选项
B, x1 接收了10, y1接收了空格,错误
C 错误同B
D x1接收了10, y1接收了A,x2接收了20,y1接收了空格。
1. 对于%d的输入,会忽略之前的空格
2. 对于%c的输入则不会忽略。
3. 对于%d的输入,会被字符截断,这也就是 输入"10A20B"的时候,也不会错的原因了。
正确答案是A
x1接收了10, y1接收了字符A,之后是一个空格,而输入的是%d,所以会忽略空格,所以x2接收了20,y2接收了字符B
分下下其它的选项
B, x1 接收了10, y1接收了空格,错误
C 错误同B
D x1接收了10, y1接收了A,x2接收了20,y1接收了空格。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询