C语言数组练习题

  • 格式:doc
  • 大小:69.00 KB
  • 文档页数:11

C语言程序设计实验教学(6)
【实验目的】数组的应用是很重要的一章。

通过实验掌握一维数组的主要应用,并理解数组的存储。

对二维数组的处理要比较熟悉。

【实验要求】一维数组的题目要求全面掌握,应用循环结构完成一维数组的输入、处理和输出。

二维数组能够完成简单的数据处理和应用。

【实验课时】8.0
【实验内容】
一维数组:
1、定义一个可以存放10个元素的int数组a,输入10个数,并逆序输出。

#include <stdio.h>
#include <conio.h>
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 <stdio.h>
#include <conio.h>
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 <stdio.h>
#include <conio.h>
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 <stdio.h>
#include <conio.h>
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 <stdio.h>
#include <conio.h>
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 <stdio.h>
#include <conio.h>
void main( )
{int i,j,n,a[100]; int temp; clrscr();
printf("enter the number:\n"); scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
printf("\n output the original array\n");
for(i=0;i<n;i++) printf("%5d",a[i]);/* 输出原始的一维数组序列*/
for(i=0;i<n-1;i++)
for(j=i+1;j<n;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<n;i++) printf("%5d",a[i]); /* 输出排序后的一维数组序列*/ }
方法二:选择法
#include <stdio.h>。