C语言关于sizeof和sprintf以及符号扩展的问题

今天在自己瞎捣鼓的时候堆了一堆问题,有几个实在是想不通特来求助

首先是关于sizeof的一个问题
见图

图片说明

前后是否矛盾了呢……?
该文章原址 http://blog.csdn.net/wzy198852/article/details/7246836

然后是关于sprintf的,有两个问题

第一个:
见图
图片说明

整理思路的时候想到了这个问题

第二个

见图
图片说明

我试着输出了一下结果如下

图片说明

困惑我的地方在于

【以下铺垫废话一段】

我又去了解了一下关于符号扩展的知识
了解完了以后结合该文实践验证了一下

图片说明

图片说明

第二个记事本是我的验证

然后将这个套用在float上的时候

图片说明

就感到困惑,不知道哪里出了问题
希望诸位可以给予解答

该文章链接http://blog.csdn.net/guoyong10721073/article/details/52414228

第三个关于符号扩展的问题

图片说明

short转换成unsigned long 符号位扩展到long;
然后为什么从long转到unsigned double而不是unsigned long?是不是打错了还是确实就是这样?

该文章链接http://blog.sina.com.cn/s/blog_7880b6e30100vo06.html

觉得现在教的课完全没办法满足我呀……自己捣鼓再去问学校老师问题,老师根本就不回答……又在好奇心的逼迫下自己瞎捣鼓,有的时候问题多了多少有一些自己实在没办法解决的,只能来论坛向各位求助啦
烦请各位帮帮忙,谢谢!