永发信息网

有以下程序 #include<stdio.h> main() { char c1,c2; scanf("%c",&c1); c2=c1+32; printf("

答案:6  悬赏:0  手机版
解决时间 2021-11-08 04:18
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-11-07 17:40
有以下程序 #include<stdio.h> main() { char c1,c2; scanf("%c",&c1); c2=c1+32; printf("%c,%c\n",c1,c2
最佳答案
  • 五星知识达人网友:逐風
  • 2021-11-07 18:29
输入65是不能运行的!
首先你输的6就送给了C1,然后执行while循环语句,
字符6的ASCII码是054,很明显 C1<65成立,
继续执行while里面的语句,而此时又输了个‘5’,
C1被重新赋值,它现在是5了!!而字符'5'依然符合 C1<65,
再次循环执行 scanf("%c",&c1)....
直到输入一个字符不满足条件(c1<65||c1>90),循环才会终止,否则程序将一直循环下去而不会有任何结果。
只要输入一个大写字母,立即就会有输出!!!

楼主明儿就考试了!!我也要考阿!!
加油阿!!!!
全部回答
  • 1楼网友:轻雾山林
  • 2021-11-07 22:19
能运行的 ASCLL码 65是A 65+32=97是a 输出的结果是A a
  • 2楼网友:三千妖杀
  • 2021-11-07 21:55
可以的,数字也可以对应字符
  • 3楼网友:渡鹤影
  • 2021-11-07 20:17
能输出结果,但不是A,a,输出的是6,v。你把 scanf("%c",&c1); 中的%c改成%d就能输出A,a了
  • 4楼网友:末日狂欢
  • 2021-11-07 19:48
程序规范格式后应该是这样:
#include
main()
{
char c1,c2;
scanf("%c",&c1);
c2=c1+32;
printf("%c,%c\n",c1,c2);
}
这是传说中的大小写转换啊。
输入65,其对于的ASCII字符为"A"
c2=c1+32即为“a”
那么最后输出结果为:
A,a
  • 5楼网友:第四晚心情
  • 2021-11-07 19:08
事实上你的printf函数后面少了一个括号和一个分号。。。如果你的程序是下面这样:
#include
main()
{
char c1,c2;
scanf("%c",&c1);
c2=c1+32;
printf("%c,%c\n",c1,c2);
}
那么它是可以运行的,但也许不是你要的结果。因为%c作为scanf的参数是要求录入一个字符,而65是两个字符,故实际上c1的值为'6'。
输出结果如下:
--------------------------
65
6,V
请按任意键继续. . .
------------------------追问恩,对的,我少打了。。。但是答案是不能???追答你的问题是能否输出结果并结束运行,答案是可以(因为它实际上输出了结果。VC中测试)。
但也许你的本意是测试大小写转换,这种转换由于你的参数为%c,故你应该输入的字符'A',而不是65,它实际上是两个字符'6'与'5'。

输出结果并结束是可以的,但输入“65”测试大小写转换时不行的。追问这是09年3月全国二级c 填空第8题。。。就是问能还是不能追答没办法,从题干中可以看出来出题者的意图是测试大小写转换,但问的有问题,因为它明明输出了结果(如果你没打错的话,我在VC中测试了的)。。。可能出题者的答案是说该程序(输入'65')实现大小写转换是“不能”的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯