请教C语言的一个题目?

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:07:16
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
我写的程序如下:
#include<stdio.h>
int main(void)
{
char a=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);
return 0;
}
问题1:我用的编写环境是VC++6.0企业版的。运行结果如图所示,如何才能显示正确的结果?
问题2:为什么编译的时候会出现警告,退出VC后重新打开编译却没有警告,这是为什么?

问题一解答:

首先,我得说明的是:这应该是个来自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对应的那个编译菜单就可以看到了

请教一个C语言的题目 请教C语言的题目 有一个C语言的题目想请教一下! 请教一个C语言上机题目 一个C语言的题目 请教C语言题目 请教几道C语言的题目 请教一道C语言的题目 一个C语言题目 一个c语言题目