一维数组的应用课程设计.docx
- 文档编号:28753551
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:11
- 大小:17.69KB
一维数组的应用课程设计.docx
《一维数组的应用课程设计.docx》由会员分享,可在线阅读,更多相关《一维数组的应用课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
一维数组的应用课程设计
一维数组的应用课程设计
一、实训目标
熟练掌握使用一维数组的编程方法和常用算法。
1、掌握数组的定义、输入和输出方法。
2、掌握下标变量的使用方法。
3、掌握求极值、分类统计、排序、查找、移动等常用算法。
4、进一步熟练程序的调试和测试方法。
5、*学习数组作为函数参数的编程方法。
二、语法练习
1、数组是把同类型的变量组织在一起。
2、inta[5];表示定义了5个整形类型的变量,分别为:
a[2]、a[3]、a[4]、a[0],各元素在内存中连续存放,数组名a表示数组在内存中的初始地址。
3、在C语言中对一维整型数组的正确定义为D。
A)inta(10);B)intn=10,a[n];
C)inta[];D)#defineN10
inta[N];
4、以下能对一维数组a进行初始化的语句是:
(C)
A.inta[5]=(0,1,2,3,4,);
B.inta(5)={};
C.inta[3]={0,1,2};
D.inta[5]={5*1};
5、已知:
inta[10];则对a数组元素的正确引用是(D)。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
6、若有以下数组说明,则数值最大的和最小的元素下标分别是(B)。
inta[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)。
inta[6]={8,11,3,6,2,12};
A.3
B.2
C.6
D.11
8、设有定义inta[5],i;用for循环结构分别写出数组的输入和输出程序段。
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
for(i=0;i<5;i++)
printf(“%d”,&a[i]);
1
三、实训内容和步骤
1、定义一个具有10个元素的一维整型数组,从键盘给各元素赋值,并以每行4个数的
格式输出。
源程序
#include
#defineSIZE10
voidmain()
{
inti,a[SIZE];
printf(“Input10integers:
\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)inta[10];未初始化时,各数组元素的值是多少?
2)inta[10]={1,3};则a[0]~a[9]的值分别为:
2、改错(教育在线上需改错的程序文件夹中err6_1.cpp),程序功能为:
在数组a中查找与x相同的元素,如找到,输出x在数组中的下标。
(要求画出流程图)
有错的源程序
#include
intmain()
{
inti,x,n;
inta[n];
printf("输入数组元素的个数:
");
scanf("%d",&n);
printf("输入数组%d个元素:
",n);
for(i=0;i scanf("%d",&a[i]); printf("x=");//断点1 scanf("%d",&x); for(i=0;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]); return0;//断点3 } 修改后的源程序 #include #defineSIZE100 intmain() { inti,x,n,flag; inta[SIZE]; flag=1; printf("输入数组元素的个数: "); scanf("%d",&n); printf("输入数组%d个元素: ",n); for(i=0;i scanf("%d",&a[i]); printf("x=");//断点1 scanf("%d",&x); for(i=0;i if(a[i]==x){ printf(“与x相同的元素的下标为%d”,i);flag=0;} if(flag) printf(“没有与x相同的元素”); return0;//断点3 } 语法错误: 测试数据预期结果实际结果(连续运行时) 调试过程: (指编译通过,无语法错误,但运行结果不对时,借助3个断点) 在断点1处,查看数组各元素的值与你输入的数据是否一致 3、从键盘输入一个班的成绩(最多20人),具体人数由键盘输入。 要求: 找出最高分及 序号、计算平均分、统计不及格的人数 流程图 #include #defineSIZE20 voidmain() { inti,n,index,count; floata[SIZE],s,avg; printf(“Inputn: \n”); scanf(“%d”,&n); printf(“Input%dgrades: \n”,n); for(i=0;i scanf(“%f”,&a[i]); index=0; s=0; count=0; for(i=1;i if(a[i]>a[index]) index=i; printf(“最高分=%f,序号=%d”,a[index],index);for(i=0;i s=s+a[i]; avg=s/n; printf(“平均分=%f”,avg); for(i=0;i if(a[i]<60) count++; printf(“不及格人数=%d”,count); } 源程序 语法错误: 测试数据预期结果实际结果(连续运行时) 调试过程: (指编译通过,无语法错误后,但运行结果不对时) 4、定义一个长度为6的数组,从键盘输入6个数据给数组,并显示;然后输入一个新数据x,原数组中数据逐次前移,即a[1]→a[0],a[2]→a[1],……,a[5]→a[4],新数据x→a[5],输出新的数组。 流程图 #include #defineSIZE6 voidmain() { inta[SIZE],i,x,temp; printf(“Input6integers: \n”); for(i=0;i<6;i++) scanf(“%d”,&a[i]); for(i=0;i<6;i++) printf(“%d\n”,a[i]); printf(“Inputx: \n”); scanf(“%d”,&x); for(i=1;i<6;i++) a[i-1]=a[i]; a[5]=x; for(i=0;i<6;i++) printf(“%d”,a[i]); } 语法错误: 测试数据实际结果(连续运行时) 调试过程: (指编译通过,无语法错误后,但运行结果不对时) 思考: 数据移动时,若按照: a[5]→a[4],……,a[2]→a[1],a[1]→a[0]的顺序编程,结果如何? a[4]=a[3]=a[2]=a[1]=a[0]=a[5] 5、*(选做)输入一个班的成绩(最多20人),具体人数由键盘输入,按分数从高到低排序并输出。 流程图 源程序 #include #defineSIZE20 voidmain() { inti,n,index,k; floata[SIZE],temp; printf(“Inputn: \n”); scanf(“%d”,&n); printf(“Input%dgrades: \n”,n); for(i=0;i scanf(“%f”,&a[i]); for(k=0;k { index=k; for(i=k+1;i if(a[i]>a[index]) index=i; temp=a[index]; a[index]=a[k]; a[k]=temp; } for(i=0;i printf(“%f”,a[i]); } 语法错误: 测试数据实际结果(连续运行时) 调试过程: (指编译通过,无语法错误后,但运行结果不对时) 6、*(选作)把内容3中求最平均分的功能用一个函数去实现,如何改写? 函数接口 函数名: 形参: 返回值: 源程序 #include floatavg(floatb[],intn); #defineSIZE20 voidmain() { inti,n,index,count; floata[SIZE],s; printf(“Inputn: \n”); scanf(“%d”,&n); printf(“Input%dgrades: \n”,n); for(i=0;i scanf(“%f”,&a[i]); index=0; s=0; count=0; for(i=1;i if(a[i]>a[index]) index=i; printf(“最高分=%f,序号=%d”,a[index],index); s=avg(a,n); printf(“平均分=%f”,s); for(i=0;i if(a[i]<60) count++; printf(“不及格人数=%d”,count); } floatavg(floatb[],intn) { floatall,result; inti; all=0; for(i=0;i all=all+b[i]; result=all/n; returnresult; } 语法错误: 测试数据实际结果(连续运行时) 调试过程: (指编译通过,无语法错误后,但运行结果不对时) 四、分析与思考 五、体会与建议
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 应用 课程设计