c语言实验7数组实验报告.docx

上传人:b****2 文档编号:11333774 上传时间:2023-05-31 格式:DOCX 页数:17 大小:3.28MB
下载 相关 举报
c语言实验7数组实验报告.docx_第1页
第1页 / 共17页
c语言实验7数组实验报告.docx_第2页
第2页 / 共17页
c语言实验7数组实验报告.docx_第3页
第3页 / 共17页
c语言实验7数组实验报告.docx_第4页
第4页 / 共17页
c语言实验7数组实验报告.docx_第5页
第5页 / 共17页
c语言实验7数组实验报告.docx_第6页
第6页 / 共17页
c语言实验7数组实验报告.docx_第7页
第7页 / 共17页
c语言实验7数组实验报告.docx_第8页
第8页 / 共17页
c语言实验7数组实验报告.docx_第9页
第9页 / 共17页
c语言实验7数组实验报告.docx_第10页
第10页 / 共17页
c语言实验7数组实验报告.docx_第11页
第11页 / 共17页
c语言实验7数组实验报告.docx_第12页
第12页 / 共17页
c语言实验7数组实验报告.docx_第13页
第13页 / 共17页
c语言实验7数组实验报告.docx_第14页
第14页 / 共17页
c语言实验7数组实验报告.docx_第15页
第15页 / 共17页
c语言实验7数组实验报告.docx_第16页
第16页 / 共17页
c语言实验7数组实验报告.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言实验7数组实验报告.docx

《c语言实验7数组实验报告.docx》由会员分享,可在线阅读,更多相关《c语言实验7数组实验报告.docx(17页珍藏版)》请在冰点文库上搜索。

c语言实验7数组实验报告.docx

c语言实验7数组实验报告

实验报告

课程名称程序设计

实验项目名称数组

班级与班级代码14级计算机科学与技术1班

实验室名称(或课室)SS1-332

专业计算机科学与技术

任课教师

学号:

姓名:

实验日期:

2014年月日

 

广东商学院教务处制

1.实验目的

1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。

2.熟练掌握字符数组和字符串函数的使用。

3.熟练掌握一位数组以及一位数组元素的存储关系。

4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。

5.通过上机实践掌握与数组有关的算法。

二、实验内容

上机题1输入并运行以下程序。

实验内容:

用2个数组对第3个数组进行赋值

#include

main()

{inti,a[5],b[5],c[5];

a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;

b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;

for(i=0;i<=4;i++)

{c[i]=a[i]*b[i];

printf("c[%d]=%d\n",i,c[i]);

}

}

实验步骤

inta[5]:

整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。

a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。

数组赋值方法和一般变量一样。

例如,a[0]=2表示将2赋给a[0]。

运行结果

 

上机题2输入并运行以下程序。

实验内容:

对不指明数组的数组进行赋值并用循环结构进行求和

#include

main()

{intsum,i;

inta[]={5,8,4,6,4,3,8,2,4,5,6};

sum=0;

for(i=0;i<=10;i++)

sum+=a[i];

printf("sum=%d\n",sum);

}

实验结果

 

实验小结

对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。

由于数组元素的下标可以是变量,因此数组的操作一般用循环实现。

上机题3程序实现:

从键盘输入5个数,输出最大、最小元素的值以及它们的下标。

将程序补充完整并上机调试。

实验内容:

用循环结构对数组进行输入并求出最大最小值及下标

#include

main()

{inti,j,k,max,min;

inta[5];

for(i=0;i<5;i++)

scanf("%d",&a[i]);

max=min=a[0];

i=k=0;

for(i=0;i<5;i++)

{if(max

{max=a[i];j=i;}

elseif(max>a[i])

{min=a[i];k=i;}

}

printf("max:

a[%d]=%d,min:

a[%d]=%d\n",j,max,k,min);

}

实验结果

实验小结:

比较最值时令第一个值为最大最小值,再用循环结构把最大值最小值赋给maxmin

上机题4输入并运行以下程序,分析程序运行结果。

实验内容:

二维数组的加法

#include

main()

{inti,j;

inta[3][2]={12,34,24,11,45,20};

intb[3][2]={11,23,34,13,10,64};

intc[3][2];

for(i=0;i<=2;i++)

for(j=0;j<=1;j++)

c[i][j]=a[i][j]+b[i][j];

for(i=0;i<=2;i++)

{for(j=0;j<=1;j++)

printf("%d+%d=%d",a[i][j],b[i][j],c[i][j]);

printf("\n");

}

}

实验结果:

实验小结:

以上程序实现两个3行2列的矩阵相加,如果要实现两个矩阵相乘,在其程序的第9行和第12行的“+”改为“*”。

上机题5程序实现:

从键盘输入12个数,组成一个3行4列的二维数组并输出。

将程序补充完整并上机调试。

实验内容:

对二维数组的输入输出

#include

main()

{inta[3][4];

inti,j;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf("Theresultis:

\n");

for(i=0;i<3;i++)

{for(j=0;j<4;j++)

printf("%5d",a[i][j]);

printf("\n");

}

}

实验小结运行程序后,从键盘输入的12个整数应以空格、Enter键或Tab键分开。

分别输出各行最小值各列最大值

实验过程:

#include

main()

{inta[3][4];

inti,j,min,max;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf("Theresultis:

\n");

for(i=0;i<3;i++)

{for(j=0;j<4;j++)

{printf("%5d",a[i][j]);

min=a[i][0];

if(a[i][j]

printf("\t%d\n",min);

};

for(j=0;j<4;j++)

{for(i=0;i<3;i++)

{max=a[0][j];

if(a[i][j]>a[0][j])max=a[i][j];}

printf("\t%d",max);}

实验结果:

实验小结:

注意格式

 

上机题6输入并运行以下程序。

实验内容:

字符串的输入与输出

#include

main()

{chara[7]="Foxpro";

printf("%s\n");

printf("%c\t%c\t%c\n",a[0],a[1],a[2]);

}

实验结果:

实验小结:

数组可以用字符串进行初始化“chara[7]=“Foxpro”;”,但是不能将字符串直接赋给数组,如“a[7]=”Foxpro;”和“a=”Foxpro;”都是错误的。

字符串的最后有串尾标志‘\o’,所以“chara[6]=”Foxpro”;”也是不正确的。

用“%s”格式输出指定地址开始的字符串,用“%c”格式输出数组元素的字符。

上机题7输入并运行以下程序。

实验内容:

利用二维数组对字符串进行输入输出

#include

main()

{inti;

chara[][8]={"SQL","Foxpro","Unix","ASP"};

for(i=0;i<=3;i++)

printf("%s\n",a[i]);

}

实验小结:

“chara[][8]={"SQL","Foxpro","Unix","ASP"};”定义了一个二维数组。

a[0]是一个字符串的串首地址,a[1]是第2个字符串的串首地址,a[i]为第i个字符串的串首地址。

因此,字符串输出时用“printf(“%s”,a[i]);”。

上机题8输入并运行以下程序,分析程序运行结果。

实验内容:

引用函数对数组进行运算

#include

main()

{inta[5]={1,2,3,4,5};

inti;

pr(a);

for(i=0;i<5;i++)printf("%5d",a[i]);

printf("\n");

}

pr(p)

intp[];

{inti;

for(i=0;i<5;i++)p[i]=p[i]*p[i];

}

实验结果:

实验小结:

当形参为数组时,对应的实参为数组名,传递的是数组的首地址,此时实参数组与形参数组共享同一段内存单元,形参数组元素的改变会影响实参数组元素的改变。

上机题9编写程序:

从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序并输出。

自定义函数voidantitone

(inta[],intn)实现将数组中的n个数据按逆序存放。

实验内容:

将数组反序并输出,

实验步骤:

#include

voidantitone(inta[],intn);

intb[5],n;inti;

main()

{n=5;

for(i=0;i

{scanf("%d",&b[i]);

}

antitone(b,5);

}

voidantitone(inta[],intn)

{inti,t,c[5];

for(i=0;i

{c[i]=a[n-i-1];

printf("%d",c[i]);}}

实验结果:

实验小结:

注意局部变量与全局变量作用域,数组的常量表达式必须是常量,格式必须对,还有对程序的了解。

上机题10已知某数列的前两项为2和3,其后每一项为其前两项之积。

分别用函数和数组实现:

从键盘输入一个整数x,判断并输出x最接近数列的第几项?

实验内容:

从键盘输入一个整数x,判断并输出x最接近数列的第几项

实验步骤:

#include

#include

#defineM100

inta[M]={2,3};

inti,x,t;

main()

{for(i=0;i<98;i++)

a[i+2]=a[i+1]+a[i];

scanf("%d",&x);

for(i=0;i<99;i++)

{if(fabs(a[i+1]-x)

t=i+1;

elset=i;

if(x-a[i]<0)break;}

printf("%d",t);

}

实验结果:

实验小结:

注意对输出时,不要相互赋值例如a【i+1】=a【i】,这样会使输出结果出现数组后几组数据的丢失,注意循环结构的结束循环的控制。

上机题11分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:

(1)求每个学生的平均分。

(2)求每门课程的平均分。

(3)输出一张包括10个学生成绩的成绩单。

(4)找出最高分数所对应的学生(学号)和课程。

(5)分别统计5门课程都高于90分的学生人数。

实验内容:

用函数和数组实现,求每个学生的平均分,求每门课程的平均分,输出一张包括10个学生成绩的成绩单,找出最高分数所对应的学生(学号)和课程,分别统计5门课程都高于90分的学生人数。

实验步骤:

#include

inti,j,a[10][5],t,k,w;

staticfloatc[10]={0};staticfloatd[5]={0};

voidmax(floatc[10])

{

for(i=0;i<9;i++)

{

if(c[i+1]>c[i])t=i+1;

elset=i;

}

printf("%s%d\n","最好成绩学号",t);

}

voidmax1(floatd[5])

{

for(j=0;j<4;j++)

{

if(d[j+1]>c[j])k=j+1;

elsek=j;

}

printf("%s%d","最好成绩科目",k);

}

voidmax2(floate[10][5])

{{

for(i=0;i<10;i++)

{for(j=0;j<5;j++)

{

if(e[i][j]<90)continue;

}

w++;}

}

printf("%s%d","成绩大于90的人数",w);}

intmain()

{

for(i=0;i<10;i++)

{for(j=0;j<5;j++)

{

scanf("%d",&a[i][j]);

c[i]+=a[i][j];}

}

printf("%s%s%s%s%s%s%s\n","学号","语文","高数","英语","程序设计","马克思","平均成绩");

for(i=0;i<10;i++)

{printf("%d",i);

for(j=0;j<5;j++)

{

printf("%d",a[i][j]);}

printf("%f\t\n",c[i]/5);}

printf("%s","平均成绩");

for(j=0;j<5;j++)

{

for(i=0;i<10;i++)

{d[j]+=a[i][j];}

printf("%.2f\t",d[j]/10);

}

max(c);max1(d);max2(a);

return0;

}

实验结果:

 

实验小结:

函数的调用需要注意参数的作用域,for语句要注意循环体的范围。

实验总结:

只有用心读程序才能将程序写好。

一般的实验步骤:

程序分析

算法设计

编写程序

程序的检错

程序更正

程序优化

姓名论文成绩

评语:

 

指导教师(签名)

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2