3.1 ANSI C提供的 getchar0函数与 Turbo c提供的 getche 函数有何不同? 答:最明显的区别在于:前后是带键盘缓冲区的,后者不是。因 此,前者需等待键入回车符后才接收输入的一个字符,后者则当键入 个字符时立即接收该字符 3.2输出结果是50%,为什么是执行语句 printf(%d%%\n", 50) 而不是执行语句 printf(%d\%\n", 50) 答:因为反斜杠\是编译器的转义字符,而我们要解决的是 printf的转义字符 3.3执行语句 scanf(%d\n", &a) 为什么不是只需要输入一个数据而是两个才返回呢? 答:、n在 scanf格式串中并不代表等待换行符,而是读取并放 弃所有的空白字符。因此,当你输入一个数据后,如果回车,它读取 并丢弃,等待你继续输入,直到遇到非空白字符。 3.4下列代码是否存在问题 char ch while((ch getchar()!=EOF) 答:必须用int型而不是char型变量保存 getchar的返回值。因3.1 ANSI C 提供的 getchar()函数与 Turbo C 提供的 getche() 函数有何不同? 答:最明显的区别在于:前后是带键盘缓冲区的,后者不是。因 此,前者需等待键入回车符后才接收输入的一个字符,后者则当键入 一个字符时立即接收该字符。 3.2 输出结果是 50%,为什么是执行语句 printf("%d%%\n",50) 而不是执行语句: printf("%d\%\n",50); 答:因为反斜杠\是编译器的转义字符,而我们要解决的是 printf 的转义字符。 3.3 执行语句 scanf("%d\n",&a); 为什么不是只需要输入一个数据而是两个才返回呢? 答:\n 在 scanf 格式串中并不代表等待换行符,而是读取并放 弃所有的空白字符。因此,当你输入一个数据后,如果回车,它读取 并丢弃,等待你继续输入,直到遇到非空白字符。 3.4 下列代码是否存在问题? char ch; while((ch = getchar())!= EOF) … 答:必须用 int 型而不是 char 型变量保存 getchar 的返回值。因