C语言题求解答?

下列程序的运行结果是( )。
#include <stdio.h>
int main()
{
int i=1,n=3,j,k=3;
int a[5]={1,4,8};
while (i<=n && k>a[i])
i++;
for (j=n-1;j>=i;j--)
a[j+1]=a[j];
a[i]=k;
for (i=0;i<=n;i++)
printf("%3d",a[i]);
printf("\n");
return 0;
}

答案: 1 3 4 8
int a[5]={1,4,8}; //初始化,a[]={1,4,8,0,0} 后2元素是0
while (i<=n && k>a[i]) i++; //循环条件不成立,所以 i 不变,还等于初始值 1
for (j=n-1;j>=i;j--) a[j+1]=a[j]; //变化为:1 4 4 8 0
a[i]=k; // 即 a[1]=k=3; //a[]变化为:1 3 4 8 0
for (i=0;i<=n;i++) printf("%3d",a[i]); //输出a[0] 到 a[3], 得:1 3 4 8
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-15

上机实测,结果为 1 3 4 8

第2个回答  2019-12-15
要相信大家这道题不会做,可以从网上查几,大家力量是无穷尽的,可以成功的。
相似回答