关于C语言的几个问题?

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:27:30
一个选择题 看不懂啊
8.执行以下程序,从键盘输入xyz则输出是( C)
main()
{ char s[10]
scanf ("%c%c%c",&s[0],&s[1],&s[2]);
put (s)
}
A xya B XYZ C无特定值 D 程序出错 不能进行编译
望高手帮我解决一哈啊 !! 过程稍微详细一些啊

选择C
因为字符数组s的前三个元素分别为xyz,但后面的元素值是什么,不得而知
而puts(s),它以字符串的结束符号'\0'为标志,把它之前的全部输出
有可能s[3]就是结束符,也有可能从s开始,向后很远很远的地方才有

main()
{
char s[10];
scanf ("%c%c%c",&s[0],&s[1],&s[2]);
puts(s);
}

o(∩_∩)o...! 选D 输入语句的地址符 & 不需要啊! 刚学吧!加油啊!

因为你数组只赋值给s[0]~s[2],剩下的7个单元存的就是随机值。
只要加一句s[3]='\0';就可以了,这样就打印正确了。

#include <stdio.h>
main()
{
char s[10] ;
scanf ("%c,%c,%c",&s[0],&s[1],&s[2]);
puts(s);
getch();
}

s是数据首地址,第4个成员开始为随机值`所以选C