实验5数组 习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 数组
班级:学号:
姓名:日期:
一、实验目的
(1)掌握一维数组和二维数组的定义、赋值和输入输出方法;
(2)掌握字符数组和字符串函数的使用;
(3)掌握与数组有关的算法(特别是排序算法)。
二、实验内容
1.阅读下面程序,写出程序运行结果,并且上机进行验证。
(1) #include "stdio.h"
void main()
{
int i,n[4]={0,0,0,0};
for(i=1;i<4;i++)
{
if (i==3) break;
n[i]=n[i-1]+1;
}
printf("n[i-1]=%d n[i]=%d\n",n[i-1],n[i]);
}
(2)#include "stdio.h"
void main()
{
char ch[]={'0','1','2','3','4','5','6','7','8','9'};
int i=0,m=2,r,x=42; char b[80];
while(x)
{
r=x%m; x/=m;
b[i++]=ch[r];
}
for(--i;i>=0;i--)
printf("%c",b[i]);
printf("\n");
}
(3)#include "stdio.h"
void main()
{
int a[][3]={9,7,5,3,1,2,4,6,8};
int i,j,s1=0,s2=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j) s1=s1+a[i][j];
if(i+j==2) s2=s2+a[i][j];
}
printf("s1=%d s2=%d",s1,s2);
}
(4)#include "stdio.h"
void main()
{
int r[5]={1,2,3,4,5};
int i,j,a[5][5];
for(i=0;i<=4;i++)
{ for(j=i;j<=4;j++)
a[i][j]=r[j-i];
for(j=0;j
a[i][j]=r[i-j];
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}
2.程序填空(根据题意在空白处填入适当的内容,使程序变得完整。并上机进行调试验证)
(1)程序说明:下列程序完成的是插入排序功能:数组a 中存放一个递增数列,输入一个整数x,将它插入到数组中,使之仍为一个有序数列。
#include "stdio.h"
#define N 10
void main()
{
int a[11]={1,10,20,30,40,50,60,70,80,90} ,x,i,p;
scanf("%d",&x);