实验报告9

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

课程名称:高级语言程序设计

实验九:函数与数组

班级:2015级

学生姓名:

学号:

专业:计算机科学与技术

指导教师:

学期:2015-2016学年上学期

云南大学信息学院

一、实验目的

1、掌握数组作为参数的函数编写与调用方法

2、掌握数组作为参数的特殊性

3、掌握字符串作为参数的函数编写与调用方法

二、知识要点

1、地址传递的概念及使用

2、数组元素和数组名作为函数参数的特点与区别

3、字符串作为参数的特点:‘\0’字符的使用

三、实验预习(要求做实验前完成)

1、数组作为函数参数时,其特殊性是

2、定义作为参数的函数时,通常需要提供长度作为参数;而定义

作为参数的函数时,通常不需要提供长度参数

3、写出满足如下要求函数的函数首部:

①函数名为fmax,求一个实型数组的最大元素值:

②函数名为scount,求一个字符串中大写字母的个数:

③函数名为delf,删除一个字符串的第一个字符:

四、实验内容

1、编写一个函数,其功能是将字符串中的大写字母改为小写字母,其他字

符不变。

2、编写一个函数,求出给定的二维数组中每一行最大的元素,并显示出来。

3、在主函数中输入N个人的某门课程的成绩,分别用函数求:①平均分、最

高分和最低分;②分别统计90~100分的人数、80~89分的人数、70~

79分的人数、60~69分的人数及59分以下的人数。结果在主函数中输出。

五、实验结果(要求写出运行界面及输出的运行结果)

1.

#include

#include

int n=0;

void f(char *p);

int main()

{

printf("请输入欲输入的字符串的长度:\n");

scanf("%d",&n);

char *p= (char *)malloc(n*sizeof(char));

printf("请输入字符串:\n");

scanf("%s",p);

f(p);

printf("字符串大写字母变为小写后:\n%s\n",p);

free(p);

return 0;

}

void f(char *p)

{

int i=0;

for(i=0; *(p+i)!='\0'; i++)

{

if(*(p+i)>='A'&&*(p+i)<='Z')

*(p+i)+=32;

}

}

2.

#include

#include

int m=0,n=0,i,j;

void linemax(int b[m][n]);

int main()

{

printf("请输入二维数组的行标和列标:\n");

scanf("%d%d",&m,&n);

int a[m][n];

printf("请输入数组元素:\n");

for(i=0; i

{

for(j=0; j

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

}

printf("输出数组元素:\n");

for(i=0; i

{

for(j=0; j

{

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

if(j==n-1)

printf("\n");

}

}

linemax(a);

return 0;

}

void linemax(int b[m][n])

{

int Max[m];

for(i=0; i

{

Max[i]=b[i][0];

for(j=0; j

{

if(b[i][j]>Max[i]) Max[i]=b[i][j];

}

}

printf("数组每行的最大元素分别是:\n");

for(i=0; i

{

printf("%d ",Max[i]);

}

}

3.

#include

#include

int i=0;

float Max,Min,sum=0;

int main()

{

void f1(float score[],int N);

void f2(float score[],int N,int b[]);

int N=0,b[5]= {0};

printf("输入人数:\n");

scanf("%d",&N);

float score[N];

printf("输入%d个人的某门课程的成绩:\n",N);

for(; i

{

scanf("%f",&score[i]);

}

f1(score,N);

f2(score,N,b);

printf("平均分:%.2f\n最高分:%.2f\n最低分:%.2f\n",sum/N,Max,Min);

printf("90~100分的人数:%d\n80~89分的人数:%d\n70~79分的人数:%d\n60~69分的人数:%d\n59分以下的人数:%d\n",b[0],b[1],b[2],b[3],b[4]);

return 0;

}

void f1(float score[],int N)

{

for(i=0; i

{

sum+=score[i];

if(i==0)

{

Max=score[i];

Min=score[i];

}

else if(Max

else if(Min>score[i]) Min=score[i];

}

}

void f2(float score[],int N,int b[])

{

for(i=0; i

{

switch((int)score[i]/10)

{

case 10:

case 9:

b[0]++;

break;

case 8:

b[1]++;

break;

case 7:

相关文档
最新文档