C程序设计实验七实验报告

上传人:我*** 文档编号:136320907 上传时间:2020-06-27 格式:DOC 页数:9 大小:162KB
返回 下载 相关 举报
C程序设计实验七实验报告_第1页
第1页 / 共9页
C程序设计实验七实验报告_第2页
第2页 / 共9页
C程序设计实验七实验报告_第3页
第3页 / 共9页
C程序设计实验七实验报告_第4页
第4页 / 共9页
C程序设计实验七实验报告_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C程序设计实验七实验报告》由会员分享,可在线阅读,更多相关《C程序设计实验七实验报告(9页珍藏版)》请在金锄头文库上搜索。

1、实 验 报 告工学院 土木工程专业 09级 2011 至 2012 学年度 第 1 学期学号:xxxxxxxxxx 姓名:xxxxxxx 2011 年11月 17日 第34节 综合 楼 325教室进入实验室时间同组者离开实验室时间实验项目名称09:50无11:30实验七 函数(一)实验目的:1、熟悉定义函数的方法;2、熟悉声明函数的方法;3、熟悉调用函数时实参与形参的对应关系,以及“值传递”的方式;4、学习对多文件的程序的编译和运行。实验内容 编程序并上机调试运行之。(1) 写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。 本程序应当准备一下测试数据:17,34,2,1,0.分

2、别运行检查结果是否正确。要求所编写的程序,主函数的位置在其他函数之前,在主函数中对其所调用的函数作声明。进行以下工作: 输入自己编写的程序,编译和运行程序,分析结果。输入程序如下:#includeint main()int prime(int); int n; printf(Input an interger:); scanf(%d,&n); if(prime(n) printf(%d is a prime.n,n); else printf(%d is not a prime.n,n); return 0;int prime(int n) int flag=1,i; for(i=2;in/2

3、&flag=1;i+) if(n%i=0) flag=0; return(flag); 运行结果如下:将主函数的函数声明删掉,再进行编译,分析编译结果。 删掉后编译过程发现错误,指示主函数中的判别素数的处理函数无法识别。因为C语言规定,在程序中用到的所有函数,必须“先定义,后使用”。把主函数的位置改为在其他函数之后,在主函数中不含函数声明。 运行结果如。保留判别素数的函数,修改主函数,要求输出100200之间的素数。 输入程序如下:#includeint main()int prime(int); int n; printf(There are primes:n,n); for(n=100;n

4、=200;n+) if(prime(n) printf(%d,n); printf(n); return 0;int prime(int n) int flag=1,i; for(i=2;in/2&flag=1;i+) if(n%i=0) flag=0; return(flag); 运行结果如下:(2) 写一个函数,将一个字符串中得元音字母复制到另一个字符,然后输出。 输入程序,编译和运行程序,分析结果。输入程序如下:#includeint main()void cpy(char,char); char str80,c80; printf(Input string:); gets(str);

5、cpy(str,c); printf(The vowel letters are:%sn,c); return 0; void cpy(char s,char c) int i,j; for(i=0,j=0;si!=0;i+)if(si=a|si=A|si=e|si=E|si=i|si=I|si=o|si=O|si=u|si=U) cj=si; j+; cj=0; 运行结果如下: 分析函数声明中参数的写法。先后用以下两种形式。(a) 函数声明中参数的写法与定义函数时的形式完全相同,如:void cpy(char s,char c);(b) 函数声明中参数的写法与定义函数时的形式基本相同,但省略

6、写数组名。如:void cpy(char,char);分别编译和运行,分析结果。(a) 运行结果如下:(b) 运行结果如下: 两者结果相同。说明函数声明中参数的写法需与定义函数时的写法相同,但可省略数组名。 思考型参数组为什么可以不指定数组大小? 答: 实参向形参的数据传递是单向“值传递”,只能由实参传给形参,而不能由形参传回来给实参。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。 如果随便指定数组大小行不行,如:void cpy(char s40,char c40);答:可以。因为实参向形参的数据传递是单向“值传递”,只能

7、由实参传给形参,而不能由形参传回来给实参。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。所以形参的存储空间没有实际意义。(3) 输入10个学生5门课的成绩,分别用函数实现下列功能: 计算每个学生平均分; 计算每门课的平均分; 找出所有50个分数中最高的分数所对应的学生和课程。输入程序如下:#include#define N 10#define M 5float scoreNM;float a_stuN,a_courM;int r,c;int main()int i,j; float h; float highest(); v

8、oid input_stu(void); void aver_stu(void); void aver_cour(void); input_stu(); aver_stu(); aver_cour(); printf(n NO. cour1 cour2 cour3 cour4 cour5 avern); for(i=0;iN;i+) printf(n NO%2d,i+1); for(j=0;jM;j+) printf(%8.2f,scoreij); printf(%8.2fn,a_stui); printf(naverage:); for(j=0;jM;j+) printf(%8.2f,a_c

9、ourj); printf(n); h=highest(); printf(highest:%7.2f NO.%2d coure %2dn,h,r,c); return 0; void input_stu(void) int i,j; for(i=0;iN;i+) printf(ninput score of student%2d:n,i+1); for(j=0;jM;j+) scanf(%f,&scoreij); void aver_stu(void) int i,j; float s; for(i=0;iN;i+) for(j=0,s=0;jM;j+) s+=scoreij; a_stui

10、=s/5.0; void aver_cour(void) int i,j; float s; for(j=0;jM;j+) s=0; for(i=0;iN;i+) s+=scoreij; a_courj=s/(float)N; float highest() float high; int i,j; high=score00; for(i=0;iN;i+) for(j=0;jhigh) high=scoreij; r=i+1; c=j+1; return(high); 运行结果如下:(4) 用一个函数来实现将一行字符中最长的单词输出。此行字符串从主函数传递给该函数。 把两个函数放在同一个程序文

11、件中,作为一个文件进行编译和运行。 把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。输入程序如下:#include#includeint main()int alphabetic(char); int longest(char); int i; char line100; printf(input one line:n); gets(line); printf(The longest word is:); for(i=longest(line);alphabetic(linei);i+) printf(%c,linei); printf(n); return 0; int

12、alphabetic(char c) if(c=a&c=A&c=z) return(1); else return(0); int longest(char string) int len=0,i,length=0,flag=1,place=0,point; for(i=0;i=length) length=len;place=point;len=0; return(place); 若把两个函数分别放在两个程序文件中,则#include#includeint main()int alphabetic(char); int longest(char); int i; char line100; printf(input one line:n); gets(line); printf(The longest word is:); for(i=longest(line);alphabetic(linei

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号