分析下面程序结果,并上机验证(整型、字符型数据表示和输出)。
#include <stdio.h>
int main()
{
int x=010,y=10,z=0x10; /*前导中的’0’是数字0而不是字母o*/
char c1=’M’,c2=’\x4d’,c3=’\115′,c4=77,c; /*字符型数据表示*/
/* 整型数据的输出 */
printf(“x=%o,y=%d,z=%x\n”,x,y,z);
/* 数据以原进制输出,注意是否有前导0或0x */
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
/* 数据以10进制输出,换算到10进制,结果对吗? */
/* 字符型数据的输出 */
printf(“c1=%c,c2=%x,c3=%o,c4=%d\n”,c1,c2,c3,c4);
/* 数据以原进制输出,注意是否有前导0或0x */
printf(“c1=%c,c2=%c,c3=%c,c4=%c\n”,c1,c2,c3,c4);
/*结果都是什么字符?,也就是说字符可以自由的表示成几种形式? */
printf(“c1=%d,c2=%d,c3=%d,c4=%d\n”,c1,c2,c3,c4);
/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符 */
/* 字符型数据参与算术运算 */
c=c1+32; /* 字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码 */
printf(“c=%c,c=%d\n”,c,c);
/*看看这个字符是什么?’M’+32就变为’m’了字母的大小写转换原来如此!*/
}
程序运行结果
x=10,y=10,z=10
x=8,y=10,z=16
c1=M,c2=4d,c3=115,c4=77
c1=M,c2=M,c3=M,c4=M
c1=77,c2=77,c3=77,c4=77
c=m,c=109
暂无评论内容