C语言数组练习题

  • 格式:doc
  • 大小:70.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

if(a[j]

if(i!=p) {temp=a[i];a[i]=a[p];a[p]=temp;}

}

printf("\n output the sorted array\n");

for(i=0;i

方法三:冒泡法

#include