>>730様
6行目を
unsigned int y1,y2; /*符号無しのint*/
に変更しましたが、結果が一緒でした。

>>729様
ありがとうございます、目指す形に出来ました。
y1= 0 y2= 65000 の65000は何故かshortを使うと65000になるみたいな書き方が本にされていたので書いたのですが。
汎用的に使えるようにしたかったためこうなりました。
%uは16bitの数字を表示する書式指定文字列と考えていいのでしょうか。
x1,x2は%dで上手くいっているのは何故でしょうか、あまり気にしなくていいのでしょうか。

-----------------------------------------------------------
#include <stdio.h> /*stdio.hファイル宣言*/

int main()
{
int x1,x2; /*符号付きのint*/
unsigned int y1,y2; /*符号無しのint*/

x1=-32768;
x2=32767;
printf("x1=%d x2=%d \n",x1,x2);

y1=0;
y2=65535;
printf("y1=%u y2=%u \n",y1,y2);
}
-----------------------------------------------------------
「よくわかる最新C言語の基本と仕組み」という本のP74あたりを参考にしているのですが、書いてある通りに書いてもちゃんと動いてないような気がします。
少し古いのでそのせいかもしれませんが・・。