c语言字符输出

#include<stdio.h>intmain(){charc1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2);prin... #include<stdio.h>
int main()
{
char c1,c2;
c1=197;
c2=198;
printf("c1=%c,c2=%c\n", c1,c2);
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}
各位高手,请问为什么没有输出对应的字符和数字呢?
展开
 我来答
DZhouXianSheng
2018-03-30 · TA获得超过1万个赞
知道小有建树答主
回答量:15
采纳率:20%
帮助的人:3728
展开全部
  • 可以在"%"和字母之间插进数字表示最大场宽。 

  • 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

  • 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可,说明输出为左对齐, 否则为右对齐。

1.首先打开Microsoft Visual C++软件,单击“文件”菜单->“新建”,新建一个文件,文件名后缀为.c。

2.新建好文件后,输入如下内容。

3.然后我们在{  }之间输入函数的内容,我们先定义变量c1,变量的类型为char,字符型。

4.然后,我们用printf语句进行输出。

5.当内容输入好后,我们点击图中工具按钮,对程序进行检测,如果没有错误,会得到下图所示效果(红线画出)。

6.检测到没有错误后,点击运行(红色感叹号),弹出的黑色窗口中为最终结果,可以看到大写字母“A”显示在上面。

xoalyg
推荐于2017-12-15 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2375万
展开全部
#include<stdio.h>
int main() {
char c1,c2;
c1 = 197;
c2 = 198;
printf("c1 = %c,c2 = %c\n",c1,c2);// ASCII码的值在0 ~ 127之间,而c1、c2都大于127,所以没有对应的字符
printf("c1 = %d,c2 = %d\n",c1,c2);
return 0;
}
追问
那为什么输出是c1=?c2=?  而第二个输出是c1=-59,c2=-58呢?
追答
对于单字节的有符号字符,其值在-128 ~ 127之间。
(197)D = (11000101)B,去除符号位1后为(1000101)B,减1求反得(0111011)B,所以这个数是-59。
c2的计算方法一样。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
傲血风
2012-03-23 · TA获得超过397个赞
知道答主
回答量:162
采纳率:0%
帮助的人:89.4万
展开全部
%d输出的是有符号的整数,超过127的数字,在二进制的最高位就是1了。那么在后符号数的首位标记正负。如果是1,就是负数了。
具体还是看看补码运算法则吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落叶知秋W
2012-03-23
知道答主
回答量:2
采纳率:0%
帮助的人:3236
展开全部
#include<stdio.h>
int main()
{
int c1,c2;
c1=197;
c2=198;
printf("c1,c2\n");
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}
自己对着下吧 主要是变量类型错误使编程识别不了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3076ef7
2012-03-23 · TA获得超过377个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:158万
展开全部
C语言的字符是ascii编码 标准的ascii码只到127吧 没记清楚 大概是这个数 char 的变量存的值太大直接溢出了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式