计算机二级C语言题目 int x; x=11/3; int y=5; printf("%%d,%%%d\n",x,y); 输出的为: %d,%3 为什么?

来自:    更新日期:早些时候
已有定义:int x;执行以下语句后的结果是——。 x=11/3;y=5;printf("%%d,%%%d\n",x,y) ;~

%是转移字符 %d是十进制

%和下一个字符构成转移字符

如果要输出转移字符需要在转移字符前加%
如 %前加% %% 输出的是%
%d前加 % ,%%d输出的是 %d
所以 "%%d,%%%d"
输出的是 %d,%3

%% 代表 %,所以"%%d"输出的是 字符"%d”
而"%%%d"相当于 先输出一个% 然后把 输出变量x的值。y没有输出。
如果你想输出%3, %5 可以这么写
#include
main()
{int x,y;
x=11/3;
y=5;
printf("%%%d,%%%d
",x,y);
}

printf("%%");输出是%
所以上面
%%d 输出%d
%%%d 本来是% %d 但是%d正好要接受X的值为11/3=3
所以结果就是 %d,%3

printf("%%%d,%%%d\n",x,y); 换成这个你可能就明白了,我开始也不明白,看了他的自己动动手就懂了。

这么理解对吗?
%%d 输出%d之后,因为其对应x便赋予其x的值了(x=3)
%%%d可以化简到% %d 后, %d 便接受了上式中赋予的相应的值3,而不是简单地继承y的值
不对,%%d压根就不是%d %%是一个独立的,printf编译器在查到%%就把它看成%了,那d就单独了,第二个编译器查找参数会从右向左的,所以y没作用了,你如果改一下你就知道什么原因了
x=3
printf("%d",x,x++)
结果是4了


计算机二级C语言题目 int x; x=11/3; int y=5; printf("%%d,%%%d\n",x,y); 输出的为: %d,%3 为什么?视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网