C语言-实验五.doc

上传人:豆**** 文档编号:33457393 上传时间:2022-08-11 格式:DOC 页数:11 大小:60.50KB
返回 下载 相关 举报
C语言-实验五.doc_第1页
第1页 / 共11页
C语言-实验五.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《C语言-实验五.doc》由会员分享,可在线阅读,更多相关《C语言-实验五.doc(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流C语言-实验五【精品文档】第 11 页实 验 报 告课程名称程序设计基础(C语言)实验项目实验五 函数的简单应用学院 系别 班级/学号 学生姓名 实验日期 成绩 指导教师 一、实验目的 1掌握函数的定义、函数的说明和调用。 2掌握函数的参数及其传递方式,函数值的正确返回。 二、实验内容 题目 1:编写一个自动出题程序,该程序可以给出任意两个数的、/运算式子,当用户输入运算结果时,程序可以判断正误。当用户做完十道题目之后,程序给出最终的统计结果。 提示: 1 系统函数 srand,是随机数发生器的初始化函数,这个函数在头文件 stdlib.h 中。 原型:

2、void srand(unsigned seed) 2 系统函数 rand,产生随机数的函数, 原型:int rand(void) 3 系统函数 time,可以获取系统时间,这个函数在 time.h 中。 大家可以试用下面的程序体会随机数的生成。 #include #include #include void main() int i,j; srand(unsigned) time(NULL); for(i=0;i10;i+) j=(int)(10*rand()/(RAND_MAX+1.0); printf(%5d,j); getchar(); 说明: 1 srand 和 rand 配合使用产

3、生伪随机数序列。 2 rand 函数在产生随机数前,需要系统提供生成伪随机数序列的种子,rand 根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用 rand 函数生成的伪随机数序列都是一样的。 3 srand(unsigned seed)通过参数seed 改变系统提供的种子值,从而可以使得每次调用 rand 函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。 4 通常可以利用系统时间来改变系统的种子值,即srand(time(NULL),可以为 rand 函数提供不同的种子值,进而产生不同的随机数序列 5 “j=(int)(10*rand()/(RAND_MAX+

4、1.0);”rand()函数前的10 控制了 j 的范围,使其只能是 0 到 10 之间的数;如果将其改成 100,则 j 即是 0 到 100 之间的随机数。 我们可以利用上面的方法产生运算式中的两个操作数。 4 如何产生操作符? 我们将随机产生四个操作符:、/。 可以定义一个变量:int op;并利用上述生成随机数的方法,用程序控制 op 的值为 1 到 4 的随机数。 然后: switch(op) case 1: /*做加法*/ printf(nNO%d: %d+%d=,i,a,b); scanf(%d,&ans); if(ans=add(a,b) printf(Right!n); el

5、se printf(Error!n); break; case 2: /*做减法*/ break; case 3: /*做乘法*/ break; case 4: /*做除法*/ break; 上面的程序片段中 add 为用户自定义函数,实现两个数的加法计算,并返回结果。 类似的还需要编写减法、乘法、除法三个自定义函数。不过这几个自定义函数的 内部实现都特别简单。大家请将注意力放在高层的函数定义、声明、调用三个环节上。流程图:代码:#include#include #include int add(int x,int y) int z; z=x+y; return(z); int jian(in

6、t x,int y) int z; z=x-y; return(z); int cheng(int x,int y) int z; z=x*y; return(z); int chu(int x,int y) int z; z=x/y; return(z); int main() int i,j,x; int op; int res; int z=0; srand(unsigned)(time(NULL); for(x=0;x10;x+) j=rand()%101; i=rand()%101; op=rand()%5; switch(op) case 1: printf(nNO%d:%d+%d

7、=,x,i,j); scanf(%d,&res); if(res=add(i,j) printf(RIGHT!n); z+=1; else printf(ERROR!n); break; case 2: printf(nNO%d:%d-%d=,x,i,j); scanf(%d,&res); if(res=jian(i,j) printf(RIGHT!n); z+=1; else printf(ERROR!n); break; case 3: printf(nNO%d:%d*%d=,x,i,j); scanf(%d,&res); if(res=cheng(i,j) printf(RIGHT!n)

8、; z+=1; else printf(ERROR!n); break; case 4: printf(nNO%d:%d/%d=,x,i,j); scanf(%d,&res); if(res=chu(i,j) printf(RIGHT!n); z+=1; else printf(ERROR!n); break; printf(你答对了%d道题n,z); return 0; 运行结果:题目 2:自定义一个求 n 的阶乘的函数。在主函数中调用该函数,当用户输入非负数的时候,程序输出该数的阶乘;当用户输入负数的时候,程序退出。 流程图:代码:#includeint main()int a,s;int

9、 jiecheng(int b);printf(please input a number: );scanf(%d,&a);if(a=0)s=jiecheng(a);printf(%d!=%ldn,a,s);elseprintf(Input error!n);int jiecheng(int b)int i,s=1;if(b=0) s=0;elsefor(i=1;i=b;i+)s*=i;return s;实验结果:题目 3:自定义一个函数,判断字符是数字、小写字母、大写字母还是其他,返回值为 0 时,表示数字;为 1 时,表示小写字母;为 2 时,表示大写字母;为 3 时表示其他。在主函数中调

10、用该函数,判断用户输入的字符是哪一种,并输入“是数字”、 “是小写字母”、“是大写字母”、“其他”;当用户输入“#”的时候,程序退出流程图:代码:#includeint main()int fun(char a);char a;doprintf(please input a char: );scanf(%c,&a);getchar();if(fun(a)=0)printf(是数字n);else if(fun(a)=1)printf(是小写字母n);else if(fun(a)=2)printf(是大写字母n);else if(fun(a)=3)printf(其他n);while(a!=#);int fun(char a)if(a=0&a=a&a=A&a=Z)return 2;else if(a!=#)return 3;运行结果:

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com