主题:2题关于数组输出的问题,请解答
1。main()
{
char a[10]={"abcde"},b[]="fgh";
int i=0;
strcat(a,b);
while(a[i++]!='\0') b[i]=a[i];
cout<<b;
}
此程序运行结果是什么?
2。下列程序运行结果是什么_____?
f(int a[],int n)
{
int s=0;
for(int j=0;j<n;j+=2,s+=a[j])
return s;
}
main()
{
int j,i=5;
int a[]={1,2,3,4,5};
cout<<f(a,6);
}
以上2个题目的答案 第1题为fbcdefgh 第2题为 0
此程序运行结果是什么?
2。下列程序运行结果是什么_____?
f(int a[],int n)
{
int s=0;
for(int j=0;j<n;j+=2,s+=a[j])
return s;
}
main()
{
int j,i=5;
int a[]={1,2,3,4,5};
cout<<f(a,6);
}
下面说下我的解题思路,请大家帮忙看看 错误的所在。
第1题:
strcat(a,b); 2个字符数组的拼接,返回的是字符数组a的地址,也就是输出的是 abcdefgh
while(a[i++]!='\0') b[i]=a[i]; 当a【i】的值不是‘\0’ 就赋给相应的b【i】
由于 strcat 函数是去掉第1个数组的‘\0’拼接上第2个数组,只保留第2个数组的
'\0’ 所以i的值一直变化到7
所以我的答案是 就是a【】的输出 abcdefgh。 但是标准答案是 fbcdefgh 请 告知为什么? 谢谢!
第2题:
for(int j=0;j<n;j+=2,s+=a[j]) 内层循环n=6, j=0时, s=0; 执行j+=2;j=2。 s+=a[j] s=0+a【2】=0+3=3
j=2时, s=3; 执行j+=2;j=4. s+=a[j] s=0+a【4】=0+5=5
j=4时, s=5; 执行j+=2;j=6.跳出循环,
所以结果是 0,3,5 。 但是标准答案是 0 请问为什么?
{
char a[10]={"abcde"},b[]="fgh";
int i=0;
strcat(a,b);
while(a[i++]!='\0') b[i]=a[i];
cout<<b;
}
此程序运行结果是什么?
2。下列程序运行结果是什么_____?
f(int a[],int n)
{
int s=0;
for(int j=0;j<n;j+=2,s+=a[j])
return s;
}
main()
{
int j,i=5;
int a[]={1,2,3,4,5};
cout<<f(a,6);
}
以上2个题目的答案 第1题为fbcdefgh 第2题为 0
此程序运行结果是什么?
2。下列程序运行结果是什么_____?
f(int a[],int n)
{
int s=0;
for(int j=0;j<n;j+=2,s+=a[j])
return s;
}
main()
{
int j,i=5;
int a[]={1,2,3,4,5};
cout<<f(a,6);
}
下面说下我的解题思路,请大家帮忙看看 错误的所在。
第1题:
strcat(a,b); 2个字符数组的拼接,返回的是字符数组a的地址,也就是输出的是 abcdefgh
while(a[i++]!='\0') b[i]=a[i]; 当a【i】的值不是‘\0’ 就赋给相应的b【i】
由于 strcat 函数是去掉第1个数组的‘\0’拼接上第2个数组,只保留第2个数组的
'\0’ 所以i的值一直变化到7
所以我的答案是 就是a【】的输出 abcdefgh。 但是标准答案是 fbcdefgh 请 告知为什么? 谢谢!
第2题:
for(int j=0;j<n;j+=2,s+=a[j]) 内层循环n=6, j=0时, s=0; 执行j+=2;j=2。 s+=a[j] s=0+a【2】=0+3=3
j=2时, s=3; 执行j+=2;j=4. s+=a[j] s=0+a【4】=0+5=5
j=4时, s=5; 执行j+=2;j=6.跳出循环,
所以结果是 0,3,5 。 但是标准答案是 0 请问为什么?