实验六-数组--实验七-函数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void main()
{float average(float array[10]); /*函数声明*/
float score[10] , aver;
inti;
printf(″input10scores:\n″);
for(i=0;i<10;i++=
scanf(″%f″,&score[i]);
printf(″\n″);
aver=average(score);
printf(″average score is%5.2f\n″, aver);
}
float average(float array[10])
{inti;
float aver,sum=array[0];
for (i=1;i<10;i++=)
sum=sum+array[i];
2、运行下面的C程序,根据运行结果,可以说明什么?
main( )
{
int num[5]={1,2,3,4,5};
inti i;
for(i=0;i<=5;i++)
printf(“%d”,num[i]);
}
3将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。
printf("%5d",a[i]);
for (i=0;i<N/2;i++)/*对数组前一半元素,与后一半相应位置上的元素调换*/
{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n Now,array a:\n");
for (i=0;i<N;i++)/*输出逆序存放后的值*/
int a,b;
return(a+b);
}
}
2调用函数时的数据传递,通过单步走,查看调用情况。
#include <stdio.h>
voidmain()
{int max(intx,inty);
/*对max函数的声明*/
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Maxis%d",c);
aver=sum/10;
return(aver);
}
三、分析讨论
1、针对以上实验内容写出相应的参数传递过程并分析结果。
2、讨论参数的传递的几种形式。
#define N 5
main()
{
int a[N],i,temp;
printf("Enter array a:\n");
for (i=0;i<N;i++)/*读入a[0]---a[4]的值*/
scanf("%d",&a[i]);
百度文库printf("array a:\n");
for (i=0;i<N;i++)/*输出a[0]---a[4]的值*/
}
int max(intx,inty)/*定义有参函数max */
{
intz;
z=x>y?x∶y;
return(z);
}
3、编写并调试一个求(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。
4数组名作函数参数
例有一个一维数组score,内放10个学生成绩,求平均成绩。
#include <stdio.h>
int a[n];
}
(3)#include <stdio.h>
#define M 10
main()
{
int a[M];
}
(4)main()
{
int a[2+2*4];
}
(5)#include <stdio.h>
#define M 2
#define N 8
main()
{
int a[M+N];
}
通过这一实验,可以说明什么问题?
实验七
一、目的与要求
1、掌握C语言函数定义及调用的规则。
2、理解参数传递的过程。
3、本实验可在学习了教材第5章后进行。
二、实验内容与步骤
1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
main()
{
int,y;
printf(“%d\n”,sum(x+y));
int sum(a,b)
{
printf("%5d",a[i]);
printf("\n");
}
运行情况下:
Enter array a:
86541↙
array a:
8 6 5 4 1
Now,array a:
14568
思考:第3个for语句中的i<N/2可否改成i<=N/2?如N为6时又如何?
三、分析讨论
通过实验,分析定义与引用数组的区别。
实验六
一、目的和要求
1、掌握数组定义的规则。
2、掌握C语言数组的基本用法。
3、本实验可在学习教材第5.2节后进行。
二、实验内容与步骤
1、编写程序,测试下列数组的定义方式是否正确
(1)main()
{
int n;
scanf(“%d”,&n);
int a[n];
……
}
(2)main()
{
const int n=10;
{float average(float array[10]); /*函数声明*/
float score[10] , aver;
inti;
printf(″input10scores:\n″);
for(i=0;i<10;i++=
scanf(″%f″,&score[i]);
printf(″\n″);
aver=average(score);
printf(″average score is%5.2f\n″, aver);
}
float average(float array[10])
{inti;
float aver,sum=array[0];
for (i=1;i<10;i++=)
sum=sum+array[i];
2、运行下面的C程序,根据运行结果,可以说明什么?
main( )
{
int num[5]={1,2,3,4,5};
inti i;
for(i=0;i<=5;i++)
printf(“%d”,num[i]);
}
3将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。
printf("%5d",a[i]);
for (i=0;i<N/2;i++)/*对数组前一半元素,与后一半相应位置上的元素调换*/
{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n Now,array a:\n");
for (i=0;i<N;i++)/*输出逆序存放后的值*/
int a,b;
return(a+b);
}
}
2调用函数时的数据传递,通过单步走,查看调用情况。
#include <stdio.h>
voidmain()
{int max(intx,inty);
/*对max函数的声明*/
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Maxis%d",c);
aver=sum/10;
return(aver);
}
三、分析讨论
1、针对以上实验内容写出相应的参数传递过程并分析结果。
2、讨论参数的传递的几种形式。
#define N 5
main()
{
int a[N],i,temp;
printf("Enter array a:\n");
for (i=0;i<N;i++)/*读入a[0]---a[4]的值*/
scanf("%d",&a[i]);
百度文库printf("array a:\n");
for (i=0;i<N;i++)/*输出a[0]---a[4]的值*/
}
int max(intx,inty)/*定义有参函数max */
{
intz;
z=x>y?x∶y;
return(z);
}
3、编写并调试一个求(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。
4数组名作函数参数
例有一个一维数组score,内放10个学生成绩,求平均成绩。
#include <stdio.h>
int a[n];
}
(3)#include <stdio.h>
#define M 10
main()
{
int a[M];
}
(4)main()
{
int a[2+2*4];
}
(5)#include <stdio.h>
#define M 2
#define N 8
main()
{
int a[M+N];
}
通过这一实验,可以说明什么问题?
实验七
一、目的与要求
1、掌握C语言函数定义及调用的规则。
2、理解参数传递的过程。
3、本实验可在学习了教材第5章后进行。
二、实验内容与步骤
1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
main()
{
int,y;
printf(“%d\n”,sum(x+y));
int sum(a,b)
{
printf("%5d",a[i]);
printf("\n");
}
运行情况下:
Enter array a:
86541↙
array a:
8 6 5 4 1
Now,array a:
14568
思考:第3个for语句中的i<N/2可否改成i<=N/2?如N为6时又如何?
三、分析讨论
通过实验,分析定义与引用数组的区别。
实验六
一、目的和要求
1、掌握数组定义的规则。
2、掌握C语言数组的基本用法。
3、本实验可在学习教材第5.2节后进行。
二、实验内容与步骤
1、编写程序,测试下列数组的定义方式是否正确
(1)main()
{
int n;
scanf(“%d”,&n);
int a[n];
……
}
(2)main()
{
const int n=10;