问题 单项选择题

设变量已正确定义,下列不能统计出一行中输入字符个数(不包含回加符)的程序段是( )。

A.n=0;while((ch=getchar())!='\n')n++;

B.n=0;while(getchar()!='\n')n++;

C.for(n=0;getchar()!='\n';n++);

D.n=0;for(ch=getchar();ch!='\n';n++);

答案

参考答案:D

解析: 本题中,第一条语句对变量n赋初值时为0,在for循环中,从getchar函数得到一个输入的字符,然后判断这个字符是否为回车换行符,如果不是则变量n加1,而在程序运行时,每次输入时是一个字符串,而不是一个字符,因而for循环语句得不到正确的执行,所以不能够统计出一行中字符的个数。所以正确答案为选项D。

选择题
改错题