函数(一)实验报告

2020-06-18 19:24

嘉应学院 计算机学院

实 验 报 告

课程名称 指导老师 班 级

程序设计基础

实验名称 实验时间 姓 名

实验地点 提交时间 座 号

一、实验目的和要求

1、熟悉定义函数的方法。 2、熟悉声明函数的方法。

3、熟悉调用函数时实参与形参的对应关系,以及“值传递”的关系。 4、学习对多文件的程序编译和运行。

二、实验环境和方法

实验方法:

(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。

(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。

(三)根据实验内容,编译程序。

实验环境:Windows xp Visual C++6.0

三、实验内容及过程描述

实验内容:编译以下题目的程序并调试运行。

1、写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。

本程序应当准备以下实验数据:17,34,2,1,0。分别运行并检查结果是否正确。要求所写的程序,主函数的位置在其它函数之前,在主函数中对其所调用的函数作声明。进行以下工作: ①输入自己编写的程序,编译和运行程序,分析结果。

②将主函数的函数声明删掉,再进行编译,分析编译结果。

③把主函数的位置改在其它函数之后,在主函数中不含函数声明。

④保留判别素数的函数,修改主函数,要求实现输出100~200之间的素数。 2、写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。 ①输入程序,编译和运行程序,分析结果。

②分析函数声明中参数的写法。先后用以下两种形式:

(a)函数声明中参数的写法与定义函数时的形式完全相同,如:

void cpy(char s[ ],char c[ ]);

(b)函数声明中参数写法与定义函数时基本相同,但省略写数组名。如:

void cpy(char[ ],char[ ]);

③如果随便指定数组大小行不行,如:

void cpy(char s[40 ],char[40]);

3、输入10个学生5门课的成绩,分别用函数实现下列功能: ①计算每个学生平均分; ②计算每门课的平均分;

③找出所有50个分数中最高的分数所对应的学生和课程。

4、用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。 ①把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。

②把两个函数分别放在两个程序文件中,作为两个文件进行编译、链接和运行。 实验步骤: ① 进入Visual C++ 6.0集成环境。 ② 输入自己编好的程序。

③ 检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。 ④ 进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤ 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,

应运行多次,分别检查在不同情况下结果是否正确。 以下是各题源代码:

1、写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。 #include int main()

{int prime(int); int n;

printf(\请输入一个整数:\scanf(\ if(prime(n))

printf(\是一个素数。\\n\ else

printf(\不是一个素数。\\n\

return 0; }

int prime(int n) {int flag=1,i;

for (i=2;i

保留判别素数的函数,修改主函数,要求实现输出100~200之间的素数。 #include int main()

{int prime(int); int n;

printf(“100~200之间的素数为:”); for(n=100;n<=200;n++) if(prime(n))

printf(\。\\n\ return 0; }

int prime(int n) {int flag=1,i;

for (i=2;i

2、写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。 #include int main()

{void cpy(char [],char []); char str[80],c[80];

printf(\输入字符串:\gets(str); cpy(str,c);

printf(\元音字母为:%s\\n\return 0;

}

void cpy(char s[],char c[])

{int i,j;

for(i=0,j=0;s[i]!='\\0';i++)

if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'||s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U') {c[j]=s[i]; j++; }

c[j]='\\0'; }

3、输入10个学生5门课的成绩,分别用函数实现下列功能:

①计算每个学生平均分;②计算每门课的平均分;③找出所有50个分数中最高的分数所对应的学生和课程。 #include #define N 10 #define M 5

float score[N][M];

float a_stu[N],a_cour[M]; int r,c;

int main() { int i,j; float h;

float s_var(void); float highest();

void input_stu(void); void aver_stu(void);

void aver_cour(void); input_stu();

aver_stu(); aver_cour();

printf(\ NO. cour1 cour2 cour3 cour4 cour5 aver\\n\ for(i=0;i

{printf(\ for(j=0;j

printf(\ printf(\ }

printf(\平均分:\

for (j=0;j

printf(\ printf(\ h=highest();

printf(\最高分:%7.2f NO. - course -\\n\ printf(\方差: %8.2f\\n\ return 0; }

void input_stu(void) {int i,j;

for (i=0;i

{printf(\请输入学生-的成绩:\\n\ for (j=0;j

void aver_stu(void) {int i,j; float s;

for (i=0;i

{for (j=0,s=0;j

void aver_cour(void) {int i,j;

float s;

for (j=0;j

for (i=0;i

} }

float highest() {float high; int i,j;

high=score[0][0]; for (i=0;ihigh)

{high=score[i][j]; r=i+1;

c=j+1; }

return(high); }

float s_var(void) {int i;

float sumx,sumxn; sumx=0.0; sumxn=0.0;

for (i=0;i

{sumx+=a_stu[i]*a_stu[i]; sumxn+=a_stu[i]; }

return(sumx/N-(sumxn/N)*(sumxn/N)); }

4、用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。 #include #include

int main()

{int alphabetic(char); int longest(char []); int i;

char line[100];

printf(\请输入一行英文:\\n\

gets(line);

printf(\最长的单词是 :\

for (i=longest(line);alphabetic(line[i]);i++) printf(\ printf(\ return 0;


函数(一)实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:商务谈判 案例分析题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: