有几个C语言的题目不会做,求高手帮忙啊,急急急!!

2.填空题(填空、注释并调试!)(1)以下程序的功能是若已定义:inta[11],i;:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在... 2.填空题(填空、注释并调试!)
(1)以下程序的功能是若已定义:int a[11],i;:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1,然后输出。请在程序的下划线处填空。
#include"stdio.h"
void main()
{ int a[10],i;
for(i=1;i<=10;i++) =i;
for(i=1;i<=10;i++)
printf(" %d,", );
for(i=1;i<=5;i++) =a[i];
for(i=1;i<=10;i++)
printf(" %d,", ); a[i]
}
(2)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请在程序的下划线处填空。
void main()
{ int x[10],a[9],i;
for(i=0;i<10;i++) scanf("%d",&x[i]);
for( i=1; i<10;i++) a[i-1]=x[i]+______;
for(i=0;i<9;i++ ) printf("%d",a[i] ) ;
printf("\n" );
}
(3)以下程序的功能是进行方阵的转置。在程序的下划线处填空。
#include <stdio.h>
void main()
{ int i,j,t,a[4][4];
printf("\n input a:");
for(i=0;i<4;i++)
for(j=0;j<4;j++)scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{t=a[i][j];
;
a[j][i]=t;}
for(i=0;i<4;i++)
{ printf("\n");
for(j=0;j<4;j++)
printf(" %d ",a[i][j]);
}
(4)若要按以下形式输出数组num右上半三角
1 2 3 4
6 7 8
11 12
16
请在程序的下划线处填空,满足以上要求。
void main()
{int i,j,num[4][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12}, {13,14,15,16}};
for(i=0;i<4;i++)
{ for(j=1;j<=i;j++) printf(" ");
for(j= ;j<4;j++)
printf("%4d",num[i][j]);
printf(“\n”);
}
}
(5)以下程序的功能是:已知按升序排好的字符串a,将字符串s中的每个字符按升序的规则插到数组a中。请在程序的下划线处填空。
#include<string.h>
#include <stdio.h>
void main()
{ char a[20]="cehiknqtw";char s[]="fbla";
int i,k,j;
puts(a);
puts(s);
for(k=0;s[k]!='\0';k++)
{ j=0;
while(s[k]>=a[j]&&a[j]!='\0')
j++;
for( )
;
a[j]=s[k];
}
puts(a);
}
展开
 我来答
Negamax
推荐于2016-07-06 · TA获得超过2721个赞
知道小有建树答主
回答量:656
采纳率:100%
帮助的人:280万
展开全部
第一题:
int a[10],i;
for(i=1;i<=10;i++)
a[i]=i;
for(i=1;i<=10;i++)
printf(" %d,", a[i]);
for(i=1;i<=5;i++)
a[10-i+1]=a[i];
for(i=1;i<=10;i++)
printf(" %d,", a[i]);

第二题:

a[i-1]=x[i]+x[i-1];

第三题:
for(i=0;i<2;i++)
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i] ;
a[j][i]=t;
}

第三题有个很严重的bug 题目中的第二个for循环应该j<i.否则的话矩阵还是会2次交换后还原的。

第四题:
1 2 3 4
6 7 8
11 12
16
for(i=0;i<4;i++)
{
for(j=1;j<=i;j++) printf(" ");
for(j=i;j<4;j++)
printf("%4d",num[i][j]);
printf("\n");
}

第五题:
测试结果:
cehiknqtw
fbla
abcefhiklnqtw

for(k=0;s[k]!='\0';k++)
{
j=0;
while(s[k]>=a[j]&&a[j]!='\0')
j++;
for(i=20;i>j;i--)
a[i]=a[i-1];
a[j]=s[k];
}

思路:找到一个字符该插入的地方。从后往前,把后面的字符一次往后移动一位。然后把这个要插入的字符填进去就可以了

楼主下次不能一下子弄这么多题目啊 累

祝你好运!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1475065219
2012-04-08
知道答主
回答量:8
采纳率:0%
帮助的人:1.3万
展开全部
分····
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式