C语言问题?解释下下面代码?

2024-12-26 11:35:35
推荐回答(3个)
回答1:

char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
进行5个字符变量的声明和初始化,其中:
c1=’a’//被赋值为字符a
c2=’b’//被赋值为字符b
c3=’c’//被赋值为字符c
c4=’\101’//这里/是一个转义字符,\101被转义为一个八进制数101,也就是十进制的65,所以c4被赋值为ASCII码值为65的字符,也就是'A'
c5=’\116’//这里/是一个转义字符,\116被转义为一个八进制数116,也就是十进制的78,所以c4被赋值为ASCII码值为78的字符,也就是'N'

printf(“a%cb%c\tabc\n”,c1,c2,c3);
输出语句:
a:输出字符'a'
%c:以%c格式(也就是字符格式)输出c1
b:输出字符'b'
%c:以%c格式(也就是字符格式)输出c2
\t:输出制表符\t(也就是输出4个空格)
abc:输出字符'a','b','c'
\n:输出回车
由于c1='a',c2='b',所以这一句输出:
aabb(空格)(空格)(空格)(空格)abc(回车)

printf(“\t\b%c %c”,c4,c5);
输出语句:
\t:输出制表符\t
\b:输出退格符(也就是取消前一个字符的输出效果)
%c:以%c格式(也就是字符格式)输出c4
(空格):输出空格
%c:以%c格式(也就是字符格式)输出c5
所以这一句输出:
A(空格)N

回答2:

c4='\101',把ASCII中八进制值为101的字符赋给c4,就是A,c5='\116'为N
第一个printf,三个%c分别对应后面的c1、c2、c3,\t 输出tab制表符,\n 输出回车
第二个printf,两个%c分别对应后面的c4、c5,\b是退格
其他的字符包括空格原样输出

回答3:

楼上的回答已经很好了