*的用法我的书上也没写,我还是不明白,希望能够解答!
----------------解决方案--------------------------------------------------------
4.y=-43456
有空格,但你是否看的到.
5.输入10A 20B
main()
{ int a1,a2; char c1,c2;
scanf("%d%c%d%c", &a1, &c1, &a2, &c2);
printf("%d %d %c %c", a1, a2, c1, c2);
getch();
}
运行结果:
10A 20B
10 20 A B
6.scanf("%3d%f", &x, &y);限制x最多只能接收3位数,所以45被y接收,而678是无效的.
C中允许指定输入数据所占列数,系统将自动按它截取所需数据.
8.视编译器而定,我在win-tc上运行答案是: 123.456
9.如果在%后有一个*附加说明符,表示跳过它指定的列数,老潭书上有.
10.这个也是视编译系统而定,一般来说是规定指数部分占5位,e占1位,指数符号占一位,指数占3位.
----------------解决方案--------------------------------------------------------
但是第4题的答案,书上可没有空格呀!!
----------------解决方案--------------------------------------------------------
怎么会没有呢?如果你可以把书上的前一句,后一句一起抄下来的话,我愿意看看,是否我错了
----------------解决方案--------------------------------------------------------
6. 已知定义int x; float y; 且执行scanf("%3d%f", &x, &y); 语句,若输入:
12345(空格)678(回车),则y的值为多少?为什么?
结果应该是y=45.000000吧.
----------------解决方案--------------------------------------------------------
那道题的答案的确是没有空格呀!!有空格是用方框来表示,但它没有方框呀!!!
----------------解决方案--------------------------------------------------------
说是没有用的,看我的程序测试.
int main()
{ long y=43456;
printf("y=%-8ldww\n",y);
return(0);
}
运行结果:y=43456 ww
你看中间不是有空格.
不信你可以自己测试.
----------------解决方案--------------------------------------------------------
我运行之后也是有空格的。估计是答案给错了。
所有的题目现在都会了,谢谢大家了!!!!!!
----------------解决方案--------------------------------------------------------