发布网友 发布时间:2023-05-10 13:41
共6个回答
热心网友 时间:2024-12-12 05:12
问题一解答:
首先,我得说明的是:这应该是个来自dos时代的C程序。
在dos时代,128到255的ascii码并不会以汉字模式显示,而是有独立的字符集表示。在windows时代,128到255的ascii码会以两个一组表示为一个汉字的模式显示,就是你给出的例图那样。
如果希望看到正确的结果,你必须用dos时代的C语言编译器“TurboC2.0”来编译运行,而且必须用 Alt+回车 把屏幕转换成全屏模式,这样你就能看到正确的结果了,如我给出的下图。
问题二解答:
这两个警告是指这里
char a=176,b=219;
如果改成这样
char a=(char)176,b=(char)219;
就没问题了。
之所以产生警告,是因为176和219是整型常量,赋值给字符型有丢失信息之虞,所以提出警告。实际上,这两个数都小于255,是不会丢失信息的。
你问到编译的时候会出现警告,退出VC后重新打开编译却没有警告,这是因为这个bug出现在编译(Compiling)阶段,而第一次编译之后,vc就没有再次执行编译阶段,而是直接进入执行(Execute)阶段,所以这个bug就被忽略了。
如果你希望再次看到这个警告,不要点击Ctrl+F5对应的那个红叹号,点击Ctrl+F7对应的那个编译菜单就可以看到了
热心网友 时间:2024-12-12 05:12
#include<stdio.h>热心网友 时间:2024-12-12 05:13
1, 这个是正常结果, 不知你所谓的"正确的结果"是何物, 或者说你预期出现啥结果热心网友 时间:2024-12-12 05:14
这样正确热心网友 时间:2024-12-12 05:14
问题1.你的值已经超出了范围:0~127热心网友 时间:2024-12-12 05:15
超过范围0-127时,输出时就成中文了,大于127时最高位为1,即输出的是扩展编码,变成中文了。