有以下程序 #include <stdio.h> main() { char b[3][10]; int i; for (i=0; i<2; i++) scanf("%s", b[i]); gets(b[2]); prin

admin2020-10-26  38

问题 有以下程序
#include <stdio.h>
main()
{  char b[3][10];  int i;
   for (i=0; i<2; i++)
      scanf("%s", b);
   gets(b[2]);
   printf("%s%s%s\n", b[0],b[1],b[2]);
}
执行时若从第一列输入:Fig flower is red. <回车>
则输出结果是

选项 A、Figflower is red.
B、Figfloweris red.
C、Figflowerisred.
D、Fig flower is red.

答案A

解析 scanf()函数从输入设备按照指定的类型输入对应类型的若干个数据,遇到空格、制表符和回车时,读取结束。gets()函数从标准输入设备键盘上读取1个字符串(可以包含空格),并将其存储到字符数组中去。此函数的读取结束符是换行符,即当遇到一个换行符时,就停止读操作,并且换行符不能够作为字符串的内容来存储,系统会自动用"\0"来代替。可知读到第一个空格时b[0]赋值结束,为Fig,读到第二个空格时b[1]赋值结束,为flower,退出for循环执行gets()函数,空格为有效字符,b[2]=" is red." ,之后打印三个字符串,A选项正确。
转载请注明原文地址:https://jikaoti.com/ti/9WD0FFFM
0

最新回复(0)