一维数组程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训六一维数组程序设计
一、实训目标
熟练掌握使用一维数组的编程方法和常用算法。
1、掌握数组的定义、输入和输出方法。
2、掌握下标变量的使用方法。
3、掌握求极值、分类统计、排序、查找、移动等常用算法。
4、进一步熟练程序的调试和测试方法。
5、*学习数组作为函数参数的编程方法。
二、语法练习
1、数组是把同类型的变量组织在一起。
2、 int a[5]; 表示定义了 5 个整形类型的变量,分别为:
a[2]、a[3]、 a[4] 、 a[0] ,各元素在内存中连续存放,数组名a表示数组在内存中的初始地址。
3、在C语言中对一维整型数组的正确定义为 D 。
A)int a(10); B)int n=10,a[n];
C)int a[ ]; D)#define N 10
int a[N];
4、以下能对一维数组a进行初始化的语句是: ( C )
A. int a[5]=(0,1,2,3,4,);
B. int a(5)={} ;
C. int a[3]={0,1,2};
D. int a[5]={5*1};
5、已知:int a[10]; 则对a数组元素的正确引用是( D )。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
6、若有以下数组说明,则数值最大的和最小的元素下标分别是( B )。
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
A.1,12
B.0,11
C.1,11
D.0,12
7、若有以下数组说明,则i=4;a[a[i]]元素数值是( A )。
int a[6]={ 8,11,3,6,2,12};
A.3
B.2
C.6
D.11
8、设有定义int a[5],i;用for循环结构分别写出数组的输入和输出程序段。
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
for(i=0;i<5;i++)
printf(“%d”,&a[i]);
三、实训内容和步骤
1、定义一个具有10个元素的一维整型数组,从键盘给各元素赋值,并以每行4个数的
格式输出。
源程序
#include
#define SIZE 10
void main()
{
int i,a[SIZE];
printf(“Input 10 integers:\n”);
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=0;i<10;i++)
{
printf(“%d ”,a[i]);
if((i+1)%4==0)
printf(“\n”);
}
}
语法错误:
测试数据预期结果实际结果(连续运行时)
调试过程:(指编译通过,无语法错误,但运行结果不对时)
思考:(结合上一个实验内容)
1)int a[10]; 未初始化时,各数组元素的值是多少?
2)int a[10]={1,3};则a[0]~a[9]的值分别为:
2、改错(教育在线上需改错的程序文件夹中err6_1.cpp),程序功能为:在数组a中查找与x相同的元素,如找到,输出x在数组中的下标。(要求画出流程图)
有错的源程序
#include
int main()
{
int i, x, n;
int a[n];
printf("输入数组元素的个数:");
scanf("%d", &n);
printf("输入数组%d个元素:",n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf( "x= " ); //断点1
scanf("%d", &x);
for(i = 0; i < n; i++)
if(a[i] != x) break; //断点2
if(i!=n)
printf( "没有找到与%d相等的元素!\n", d);
else
printf( "和%d相同的数组元素是a[%d]=%d\n", x, i, a[i]);
return 0; //断点3
}
修改后的源程序
#include
#define SIZE 100
int main()
{
int i, x, n,flag;
int a[SIZE];
flag=1;
printf("输入数组元素的个数:");
scanf("%d", &n);
printf("输入数组%d个元素:",n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf( "x= " ); //断点1
scanf("%d", &x);
for(i = 0; i < n; i++)
if(a[i] == x) {
printf(“与x相同的元素的下标为%d”,i);flag=0;}
if(flag)
printf(“没有与x相同的元素”);
return 0; //断点3
}
语法错误:
测试数据预期结果实际结果(连续运行时)
调试过程:(指编译通过,无语法错误,但运行结果不对时,借助3个断点)
在断点1处,查看数组各元素的值与你输入的数据是否一致
3、从键盘输入一个班的成绩(最多20人),具体人数由键盘输入。要求:找出最高分及
序号、计算平均分、统计不及格的人数
流程图
#include
#define SIZE 20
void main()