C语言-实验五

上传人:M****1 文档编号:486444294 上传时间:2023-05-01 格式:DOC 页数:16 大小:187KB
返回 下载 相关 举报
C语言-实验五_第1页
第1页 / 共16页
C语言-实验五_第2页
第2页 / 共16页
C语言-实验五_第3页
第3页 / 共16页
C语言-实验五_第4页
第4页 / 共16页
C语言-实验五_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C语言-实验五》由会员分享,可在线阅读,更多相关《C语言-实验五(16页珍藏版)》请在金锄头文库上搜索。

1、真诚为您提供优质参考资料,若有不当之处,请指正。实 验 报 告课程名称程序设计基础(C语言)实验项目实验五 函数的简单应用学院 系别 班级/学号 学生姓名 实验日期 成绩 指导教师 一、实验目的 1掌握函数的定义、函数的说明和调用。 2掌握函数的参数及其传递方式,函数值的正确返回。 二、实验内容 题目 1:编写一个自动出题程序,该程序可以给出任意两个数的、/运算式子,当用户输入运算结果时,程序可以判断正误。当用户做完十道题目之后,程序给出最终的统计结果。 提示: 1 系统函数 srand,是随机数发生器的初始化函数,这个函数在头文件 stdlib.h 中。 原型:void srand(unsi

2、gned 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 配合使用产生伪随机数序列。 2 rand

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

4、的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); else printf(Error

5、!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(int x,int y) in

6、t 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=,x,i,j); sca

7、nf(%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); z+=1; else

8、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 jiecheng(in

9、t 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;运行结果: /

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

当前位置:首页 > 高等教育 > 其它相关文档

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