输出的是什么

来源:百度知道 编辑:UC知道 时间:2024/07/04 17:44:24
main()
{char c1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%tabc\n",c1,c2,c3);
printf("\t\b%c%c",c4,c5);
}

第一个结果是aa--bb---cc------abc
第2个结果是A-N
上面的2个中的-都是代表空格,我不知道怎么表是就这样表示了,第一个里面的a%cb%c\tc%tabc\n不明白什么意思啊,第2个我自己感觉怎么应该是输出-------et啊.迷茫

先看a%cb%c\tc%tabc\n的意思,printf的格式串,%和\字符要和后面的字符结合起来表示特殊含义,其它字符直接输出,那么:

先看第一个printf("a%cb%c\tc%tabc\n",c1,c2,c3);
a 输出字符'a'
%c 输出变量c1的值即'a'
b 输出字符'b'
%c 输出变量c2的值即'b'
\t 输出四个空格(\t不一定都是4个空格,这里的4有点复杂)
c 输出字符'c'
%t 输出字符't'
a 输出字符'a'
b 输出字符'b'
b 输出字符'c'
\n 输出一个回车+换行
所以,第一个结果的正确答案是:aabb____tabc,你说的结果是错误的。

在看第二个printf("\t\b%c%c",c4,c5);
\t 输出8个空格
\b 后退一个
%c 输出ASCII码第65(八进制101)个符号,即字母'A'
%c 输出ASCII码第78(八进制116)个符号,即字母'N'
所以,第二个结果的正确答案是:_______et,你的答案是正确的

你对题目的标准答案有怀疑,是正确的,只能说你们的教材太Y了,第一个题目不应该出%t这样的东西让学生做,第二个题目的\b也是无聊的东西,答案也没有注意空格的个数。

main()
{char c1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%tabc\n",c1,c2,c3);
printf(