全部问题 > 当前问题

%c形式不能用间隔符,那么这里输入65回车,程序为什么不认为c1是6而认为输入的字符是65?

DK小强 2016-8-16 11:08:25

共 2 个回答

DK小强 2016-8-16 18:29:58

求解答啊

最佳答案

嘿嘿大人 2016-8-16 21:07:18

c1是字符6啊,然后因为字符6不是大写字符所以执行了while循环,然后c1又被赋值为字符5,但是字符5也不是大写字母,所以不能跳出循环,所以程序不能结束,而是需要一直输入知道输入一个大写字母

问题来自: 字符数组
有以下程序
#include <stdio.h>
main()
{ char c1, c2;
  scanf("%c",&c1);
  while(c1<65||c1>90) scanf("%c",&c1);
  c2=c1+32;
  printf("%c,%c\n",c1,c2);
}
程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能) __【8】__ 。
A. 能
B. 不能
答案:B
解析:输入c1后,当c1&lt;65或c1&gt;90时,继续输入c1。65到90正好是大写字母的ASCII范围,也就是当输入的是大写字母时,停止输入。6、5都不是大写字母,因此答案是不能。