计算机二级

若变量已正确定义,以下while循环不断输出读入的字符,当读入回车换行符时结束循环。正确的程序段是A.while(ch=getchar()=='\N')putchar(ch);B.while(ch=getchar())=='\N')putchar(ch);C.whle((ch=getchar())!='\N')putchaf(ch);D.while((ch=getchar())!='\N')putchar(ch);

题目

若变量已正确定义,以下while循环不断输出读入的字符,当读入回车换行符时结束循环。正确的程序段是

A.while(ch=getchar()=='\N')putchar(ch);

B.while(ch=getchar())=='\N')putchar(ch);

C.whle((ch=getchar())!='\N')putchaf(ch);

D.while((ch=getchar())!='\N')putchar(ch);

参考答案和解析
正确答案:D
解析:换行符是一个转义字符,应该是‘\n’,而不是‘\N’。选项B)中,因为关系运算符“==”的优先级高于赋值运算符“=”,所以ch得到的值是关系运算getchar()=='\n'的结果而不是从键盘输入的字符,因而不正确,故正确答案为选项D)。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。

A.while((ch=getchar())!=′N′) printf("%c",ch);

B.while(ch=getchar()!=′N′) printf("%c",ch);

C.while(ch=getchar()==′N′) printf("%c",ch);

D.while((ch=getchar())==′N′) printf("%c",ch);


A 解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

第2题:

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。

A.while((ch=getchar())!='N') printf(“%c”,ch);

B.while(ch=getchar()!='N') printf(“%c”,ch);

C.while(ch=getchar()=='N') printf(“%c”,ch);

D.while((ch=getchar())=='N') printf(“%c”,ch);


A 解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

第3题:

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。

A.while((ch=getchar())!='N' printf(“%c”,ch) ;

B.while(ch=getchar()!='N' printf(“%c”,ch) ;

C.while(ch=getchar())=='N' printf(“%c”,ch);

D.while((ch=getchar())=='N' printf(“%c”,ch);


A 解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

第4题:

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()

A.while(ch=getchar() ='N') printf("%c ",ch);

B.while((ch=getchar())!='N') printf("%c ",ch);

C.while(ch=getchar()=='N') printf("%c ",ch);

D.while((ch=getchar())=='N') printf("%c ",ch);


A 解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

第5题:

要求通过while循环不断读入字符,当读入字母'N'时结束循环。若变量已正确定义,以下正确的程序段是( )。

A.while(( ch = getchar( )) ! ='N') printf(" %c",ch);

B.while(ch = getehar() ! ='N')printf("%c",ch);

C.while (ch = getehar() = = 'N')printf( "%c", ch);

D.while ((ch = getchar( )) == 'N')printf("%c", ch );


正确答案:A
解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

第6题:

要求通过while循环不断读人字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 ( )。

A.A

B.B

C.C

D.D


正确答案:A
本题考查的知识点是:9etCharl函数和逻辑表达式的判定。题目要求“当读人字母N时结束循环”,所WE)、D)选项不对;选项B)中,作为条件的表达式的值恒成立,不符合题目要求,故本题选A)。

第7题:

要求通过while循环不断读入字符,当读人字母N时结束循环,若变量已正确定义,下列正确的程序段是( )。A.

B.

C.

D.

A.A

B.B

C.C

D.D


正确答案:A
while循环的执行过程如下:①计算while后面圆括号中表达式的值。当值为非0时,执行步骤②。当值为0时,执行步骤④。②执行循环体一次。③转去执行步骤①④退出循环。在选项A中,表达式(ch=get-char())!="N"表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。所以选项A为正确答案。

第8题:

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( )。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch):


正确答案:A
解析:因为while是以条件为假时结束循环,因此选项C、D不正确。“!=”的优先级比“=”高,因此“ch=getchar()!='N'”相当于“ch=(getchar!='N')”,ch并不能得到输入的字符,只能得到true或者false值。

第9题:

要求通过 while 循环不断读入字符 , 当读入字母 N 时结束循环 。 若变量已正确定义 , 以下正确的程序段是

A)while((ch=getchar())!='N') printf(" % c",ch);

B)while(ch=getchar()!='N') printf(" % c",ch);

C)while(ch=getchar()=='N') printf(" % c",ch);

D)while((ch=getchar())=='N') printf(" % c",ch);


正确答案:A
(22)A) 解析 : while 语句的功能是 : 计算表达式的值 , 如为真 , 则执行循环体语句 , 执行完毕后 , 再计算表达式的值 , 若仍为真 , 则重复执行循环体语句。直到表达式的值为假时 , 结束循环。ch=getchar() 应加一个括号 , 表示输入字符的函数。