实 验 报 告
课程名称:高级语言程序设计 实 验 九:函数与数组
班
级: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
void f(char *p); int main() {
printf(\请输入欲输入的字符串的长度:\\n\ scanf(\
char *p= (char *)malloc(n*sizeof(char)); printf(\请输入字符串:\\n\ scanf(\ f(p);
printf(\字符串大写字母变为小写后:\\n%s\\n\ 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
int m=0,n=0,i,j;
void linemax(int b[m][n]); int main() {
printf(\请输入二维数组的行标和列标:\\n\ scanf(\
int a[m][n];
printf(\请输入数组元素:\\n\ for(i=0; i for(j=0; j scanf(\ } printf(\输出数组元素:\\n\ for(i=0; i for(j=0; j { printf(\ if(j==n-1) printf(\ } } 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(\ \ } } 3. #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(\