问题
单项选择题
设有定义:char s[10];int i=0;,以下不能将一行(不超过100个字符)带有空格的字符串正确读入的语句或语句组是( )。
A) gets(s);
B) scanf("%s",s);
C) while((s[i++]=getchar())!='\n');s[i]='\0';
D) doscanf("%c",&s[i]);while(s[i++]!='\n');s[i]='\0';
答案
参考答案:B
解析: 本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf()数接收字符串时的结束标志为回车或者空格。因此选巧B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此正确。