i的格式怎么写( 二 )

<回车>代表向buffer中输入了:31H,0AH 。
然后按%c的要求 , 只扫描buffer中的一个字节:31h , 并将它直接送入变量j.此时 , buffer中还留下:0AH 。第二次scanf要求键盘输入数据 , 按%c的要求 , 只扫描buffer中的一个字节:0Ah , 并将它直接送入变量j.此时 , buffer无数据了 。
最后 , 你用%d格式输出j的值(0AH换成整型就是10) 输出10 程序5#includevoid main() { int i; char j; for(i=0;i<2;i++) scanf(" %c",&j);/*注意这里%前有一个空格*/ printf("%d",j); }1<回车>2的情况:scanf会按照格式控制字符串的要求 , 顺序扫描buffer.但是你其中有一个空格 , 这个很特殊 , 我也是第一次发现这个问题(一般我都不会在scanf中加入任何常量字符) 我测试了一下:我发现这个空格有吸收回车(0AH)和空格(20H)的“神奇功效” , 吸收之后再要求buffer给一个字节 , 直到这个字节不是0AH或者 20H , 此时把这个字节交给下一个格式字串 。第一次循环时遇到格式字串空格 , 就扫描buffer中的一个字节 , 但是buffer中无数据 , 要求从键盘输入数据:1〈回车〉 , buffer中有数据了——31H,0AH 。
再读取到字节31H,scanf发现这个并不是0AH/20H , 就把这个字节31H交给格式字符%c处理 。循环结束 , 此时buffer里面还有:0AH.第二次循环时遇到格式字串空格 , 就扫描buffer中的一个字节——0AH , 发现是0AH/20H , 于是就要求buffer再来一个字节 。
此时buffer里面已经没有数据了 , 要求键盘输入:2.buffer中有数据了——32H,0AH 。于是再读一个字节31H,scanf发现这个并不是0AH/20H , 就把这个字节32H交给格式字符%c处理(j最终得到32H) 。
循环结束 , 此时buffer里面还有:0AH.这里有一篇关于Printf的帖子:程序6#include "stdio.h" void main() { int a; int b; scanf("%c",&a); scanf("%c",&b); printf("%d %d",a,b); } 键盘输入1<回车> 问题5:你的编译器VC认为%d数据应该是4个字节 , 但是你采用的是%c读数据 ,  scanf("%c",&a);此句读到的是1的ascii码:31h.然后把31H直接送入地址&a(而并没有改写a的三个高字节地址) 。scanf("%c",&b);同理 。
你可以用printf("a=%x,b=%x\n",a,b);来验证我说的 。它们的最低字节肯定是31H,0AH 。
PS1:当你把 int a;int b;放在main()外进行定义时 , a,b的初值就是0 。此时你会得到正确的结果 。
当你把 int a;int b;放在main()内进行定义时 , a,b不会被初始化(它们的三个三个高字节地址的内容是不确定的) , 你就会得到上面错误的结果 。(定义的动态变量都不会被初始化 , 静态变量会被初始化为0) PS2:以下也是不正确的用法 。
char c; scanf("%d",&c);/当你用%d给c赋值时 , 会对从&c开始的连续4个字节进行赋值 。当从buffer得到的值是在一个字节范围内(-128~127) , 下面是可以正常输出的 。
但是不管怎样 , 这样做是很危险的——越界 。printf("%d",c);=========== 。
3. K 大小写的格式 K 大小写的格式如下图:
操作指导:
让孩子说出“k”的第二笔名称及其在四线格中的位置 。
家长指导:
“k”占上中格 , 由两笔写成 , 先写竖 , 再写左斜右斜 。
扩展资料:
大写字母的书写规格是:
上不顶天下立地 。即笔画的上端稍离第一线 , 笔画的下端必须紧贴第三线 , 不许离线也不许出格 。