C语言数组练习题.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计实验教学(6)
【实验目的】数组的应用是很重要的一章。通过实验掌握一维数组的主要应用,并理解数组的存储。对二维数组的处理要比较熟悉。
【实验要求】一维数组的题目要求全面掌握,应用循环结构完成一维数组的输入、处理和输出。二维数组能够完成简单的数据处理和应用。
【实验课时】8.0
【实验内容】
一维数组:
1、定义一个可以存放10个元素的int数组a,输入10个数,并逆序输出。
#include
#include
void main( )
{int a[10], i; clrscr();
printf("Please input array a :");
for(i=0;i<10;i++)
scanf("%d", &a[i]);/* 由键盘逐次输入值赋予数组各元素*/
for(i=9;i>=0;i--) /* 变量i递减控制着数组元素倒序输出*/ printf("%5d", a[i]);
}
2、用数组来保存Fibonacci数列前20项数值,以每5个数据为一行进行
输出。
#include
#include
void main( )
{int i; long f[20]; clrscr();
f[0]=1;f[1]=1;
for(i=2;i<20;i++)
f[i]=f[i-1]+f[i-2];
for(i=0;i<20;i++)
{if(i%5==0) printf("\n");
printf("%10ld",f[i]);
}
}
3、统计具有10个元素的自然数数组num中的奇数个数。
#include
#include
void main( )
{int i,num[10],count=0; clrscr();
for(i=0;i<10;i++)
{printf("enter NO %d : ",i+1);/*给予输入提示*/
scanf("%d",&num[i]);
if(num[i]%2!=0) count++;}
printf("Count is:%d\n",count );
}
4、计算整数数组a中的最大值及其所在的下标。
#include
#include
void main( )
{int i,max,p,a[10]; clrscr();
printf("please enter 10 data:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];p=0;
for(i=1;i<10;i++)
if(a[i]>max) {max=a[i];p=i;}
printf("max is:%d\n",max);
printf("point is:%d\n",p+1);
}
5、输入20个实数存放在一维数组中,输出它们的平均值以及高于平均值
的数的个数。
#include
#include
void main( )
{float a[20],sum=0,ave;
int i, n=0; clrscr();
printf("Enter array a: \n");
for(i=0;i<20;i++) scanf("%f",&a[i]);
for(i=0;i<20;i++) sum+=a[i]; /* 计算20个实数累加和*/
ave=sum/20.0; /* 计算20个实数平均值*/
for(i=0;i<20;i++)
if(a[i]>ave) n++; /* 统计高于平均值的个数*/
printf("The average=%f \n", ave);
printf("connt=%d\n",n);
}
6、实现对n个数的数列从小到大排序。(比较交换法、选择法、冒泡法)
方法一:比较交换法
#include
#include
void main( )
{int i,j,n,a[100]; int temp; clrscr();
printf("enter the number:\n"); scanf("%d",&n);
for(i=0;i printf("\n output the original array\n"); for(i=0;i for(j=i+1;j if(a[i]>a[j]) {temp=a[i];a[i]=a[j];a[j]=temp;} printf("\n output the sorted array\n"); for(i=0;i 方法二:选择法 #include #include void main( ) {int i,j,n,p,a[100];int temp;clrscr(); printf("enter the number:\n"); scanf("%d",&n); for(i=0;i printf("\n output the original array\n"); for(i=0;i {p=i; /*假定第i趟中最小数的位置是i*/ for(j=i+1;j