问题 单项选择题

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

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

解析:[评析] 本题主要考查了while和for循环语句的执行过程。for循环的一般形式如下: for(表达式1;表达式2;表达式3)循环体 for循环的执行过程如下: ①计算表达式1; ②计算表达式2。若其值为非o,转步骤3;若其值为0,转步骤5; ③执行—次for循环体: ④计算表达式3,转向步骤2: ⑤结束循环。 在选项D中,由于for循环语句末尾直接是分号,没有循环体,因此可以将其看做—条空循环语句,循环体部分可以忽略。程序首先在for循环语句外为变量n赋初值0,在for循环中,先执行表达式“cb=getchar();”,getchar函数用于输入字符,因此程序首先将输入的字符赋值绐变量ch,然后执行表达式“ch!='\n';”,判断输入的字符是否为回车,如果此时输入的字符是回车,结束循环,所以D选项错误。

解答题
单项选择题