早教吧 育儿知识 作业答案 考试题库 百科 知识分享

6.14若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是:while(ch=getchar()=='A');6.4C语言中,下列不合法的字符常量是A'\xff'B'\65'C'&'D'\028'6.10有以下程序:#includemain(){intc;while((c=g

题目详情
6.14 若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是:
while(ch=getchar()=='A');
6.4 C语言中,下列不合法的字符常量是
A '\xff' B '\65' C '&' D '\028'
6.10 有以下程序:
#include
main()
{ int c;
while((c=getchar())!='\n')
{ switch(c-'2')
{ case 0 :
case 1 :putchar(c+4);
case 2 :putchar(c+4);break;
case 3 :putchar(c+3);
default :putchar(c+2);break;
}
} printf("\n");
}
从第一列开始输入数据:2473,代表Enter键,程序的输出结果是:668977
▼优质解答
答案和解析
第一题:while中的条件表达是ch=getchar()=='A',按照运算符优先级先做getchar()=='A',输入字符'A'时表达式的值为真,也就是1,再做ch=1,ch得到时值为1,同时表达式1,继续循环,继续计算条件ch=getchar()=='A',接下来应是回车键,getchar()=='A',结果为假,也就是0,ch=0,同时表达式为0,循环结束,所以最终ch的值为0,注意这题无论如何输入,循环结束后ch都为0.
第二题:考的是转义字符,注意转义字符有三种,一种\号后跟一个字母,转义为一个其它字符,一种是\后跟0再跟1到3位的八进制数,转义为此八进制数ASCII码所代表的字符,一种是\后跟x再跟1到2位的十六进制数,转义为此十六进制数ASCII码所代表的字符,D选项应属于第二种情况,但0后跟的应是八进制数,但28是非法的八进制数(所用的数码应是0——7).
第三题:此题的while条件表达式为(c=getchar())!='\n',括号优先级高,先执行c=getchar()(将输入的字符赋给c),再判断c的值是不是!='\n',不等于'\n'继续,否则结束循环,(注意用getchar()输入的是字符)第一个输入'2',执行循环体内语句,switch('2'-'2'),从case 0入口,putchar('2'+4)(输出字符6),putchar('2'+4)(输出字符6),break结束switch语句,继续执行下一次循环.以后具体执行情况不再分析了,请自己分析.