问题 单项选择题

设有定义:char s[10];int i=0;,以下不能将一行(不超过100个字符)带有空格的字符串正确读入的语句或语句组是( )。

A.gets(s);

B.scanf("%s",s);

C.while((s[i++]=getchar())!='\n');s[i]='\0';

D.do{scanf("%c",&s[i]);}while(s[i++]!='\n');s[i]='\0';

答案

参考答案:B

解析: 本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf()数接收字符串时的结束标志为回车或者空格。因此选巧B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此正确。

判断题
单项选择题