19、阅读下面的程序
#include
void main()
{
char ch;
scanf("%3c",&ch);
printf("%c",ch);
}
如果从键盘上输入
abc<回车>
则程序的运行结果为A_.
A) a B) b C) c D) 程序语法出错
24、阅读下面的程序
#include
void main()
{
int i,j;
scanf("%3d%2d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
如果从键盘上输入1234567<回车>,则程序的运行结果是_D.
A) i=123,j=4567 B) i=1234,j=567
C) i=1,j=2 D) i=123,j=45
第一个其实是有问题的。程序语法不会报错,但运行会出错误,因为scanf语句把bc字符写到ch字符的后续内存空间了,但这个内存空间不是这个程序可以控制的。ch的值是a。
%3d是读取3个数字字符。%2d读取2个数字字符。所以i=123,j=45