C程序设计实验七实验报告_第1页
C程序设计实验七实验报告_第2页
C程序设计实验七实验报告_第3页
C程序设计实验七实验报告_第4页
C程序设计实验七实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实实 验验 报报 告告 工学院院 土木工程专业专业 09 级级 2011 至至 2012 学年度学年度 第第 1 学期学期 学号 学号 xxxxxxxxxx 姓名 姓名 xxxxxxx 2011 年年 11 月月 17 日日 第第 3 4 节节 综合 楼楼 325 教教 室室 进入实验室时间同组者离开实验室时间实验项目名称 09 50无11 30实验七实验七 函数 一 实验目的 实验目的 1 熟悉定义函数的方法 2 熟悉声明函数的方法 3 熟悉调用函数时实参与形参的对应关系 以及 值传递 的方式 4 学习对多文件的程序的编译和运行 实验内容实验内容 编程序并上机调试运行之 1 写一个判别素数的函数 在主函数输入一个整数 输出是否素数的信息 本程序应当准备一下测试数据 17 34 2 1 0 分别运行检查结果是否正确 要求所 编写的程序 主函数的位置在其他函数之前 在主函数中对其所调用的函数作声明 进行以下工作 输入自己编写的程序 编译和运行程序 分析结果 输入程序如下 include int main int prime int int n printf Input an interger scanf d 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 i n 2i if n i 0 flag 0 return flag 运行结果如下 将主函数的函数声明删掉 再进行编译 分析编译结果 删掉后编译过程发现错误 指示主函数中的判别素数的处理函数无法识别 因为 C 语言规定 在程序中用到的所有函数 必须 先定义 后使用 把主函数的位置改为在其他函数之后 在主函数中不含函数声明 运行结果如 保留判别素数的函数 修改主函数 要求输出 100 200 之间的素数 输入程序如下 include int main int prime int int n printf There are primes n n for n 100 n 200 n if prime n printf d n printf n return 0 int prime int n int flag 1 i for i 2 i n 2i if n i 0 flag 0 return flag 运行结果如下 2 写一个函数 将一个字符串中得元音字母复制到另一个字符 然后输出 输入程序 编译和运行程序 分析结果 输入程序如下 include int main void cpy char char char str 80 c 80 printf Input string gets str cpy str c printf The vowel letters are s n c 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 运行结果如下 分析函数声明中参数的写法 先后用以下两种形式 a 函数声明中参数的写法与定义函数时的形式完全相同 如 void cpy char s char c b 函数声明中参数的写法与定义函数时的形式基本相同 但省略写数组名 如 void cpy char char 分别编译和运行 分析结果 a 运行结果如下 b 运行结果如下 两者结果相同 说明函数声明中参数的写法需与定义函数时的写法相同 但 可省略数组名 思考型参数组为什么可以不指定数组大小 答 实参向形参的数据传递是单向 值传递 只能由实参传给形参 而不能由形 参传回来给实参 在调用函数时 给形参分配存储单元 并将实参对应的值 传递给形参 调用结束后 形参单元被释放 实参单元仍保留并维持原值 如果随便指定数组大小行不行 如 void cpy char s 40 char c 40 答 可以 因为实参向形参的数据传递是单向 值传递 只能由实参传给形参 而不能由形参传回来给实参 在调用函数时 给形参分配存储单元 并将实参 对应的值传递给形参 调用结束后 形参单元被释放 实参单元仍保留并维持 原值 所以形参的存储空间没有实际意义 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 highest void 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 aver n for i 0 i N i printf n NO 2d i 1 for j 0 j M j printf 8 2f score i j printf 8 2f n a stu i printf naverage for j 0 j M j printf 8 2f a cour j printf n h highest printf highest 7 2f NO 2d coure 2d n h r c return 0 void input stu void int i j for i 0 i N i printf ninput score of student 2d n i 1 for j 0 j M j scanf f void aver stu void int i j float s for i 0 i N i for j 0 s 0 j M j s score i j a stu i s 5 0 void aver cour void int i j float s for j 0 j M j s 0 for i 0 i N i s score i j a cour j s float N float highest float high int i j high score 0 0 for i 0 i N i for j 0 jhigh high score i j r i 1 c j 1 return high 运行结果如下 4 用一个函数来实现将一行字符中最长的单词输出 此行字符串从主函数传递 给该函数 把两个函数放在同一个程序文件中 作为一个文件进行编译和运行 把两个函数分别放在两个程序文件中 作为两个文件进行编译 连接和运行 输入程序如下 include include int main int alphabetic char int longest char int i char line 100 printf input one line n gets line printf The longest word is for i longest line alphabetic line i i printf c line i printf n return 0 int alphabetic char c if c a 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 include int main int alphabetic char int longest char int i char line 100 printf input one line n gets line printf The longest word is for i longest line alphabetic line i i printf c line i printf n return 0 存入 file1 int alphabetic char c if c a else return 0 存入 file2 int longest char st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论