一道2级C的题目

来源:百度知道 编辑:UC知道 时间:2024/07/03 09:30:33
程序如下:
main ()
{
char str [10],c='a';
int i=0;
for (;i<5;i++)
str [i]=c++;
printf ("%s",str );
}
我个人认为,应该是abcde,但是答案是不确定,
请大家帮忙,解释下为什么

因为没有字符串结束字符'\0'这个十分关键

数组后面的字符没有初始化

据我所学 我认为 C++ 是表达式,返回是 C的值,而不是什么从右从左的结构, 如果是 ++C 那他也是一个表达式 返回 C+1 的值 这是在某本小说书上看到的

所以 结果还是 abcde 至于那个 对事符 我认识还是要加上去

一道2级C的题目
悬赏分:5 - 离问题结束还有 14 天 22 小时
程序如下:
main ()
{
char str [10],c='a';
int i=0;
for (;i<5;i++)
str [i]=c++;
c[i]= ' \ n '
printf ("C语言编程QQ群:3489968 %s",str );
}

我认为就是没加'\0'的原因。由于没加'\0',所以输出的是abcde乱码。测了几次,乱码的后半部分是不确定的。

缺少结束字符,字符串长度是10但是不足10,后面就出来些别的符号.按书上说的是应该自动补空格的吧? 我觉得是,可是编译器可能没有那么理解.

在str[i]=c++;下面添一行语句:
str[i]='\0';