




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实 验 报 告课程名称程序设计基础(C语言)实验项目实验五 函数的简单应用学院 系别 班级/学号 学生姓名 实验日期 成绩 指导教师 一、实验目的 1掌握函数的定义、函数的说明和调用。 2掌握函数的参数及其传递方式,函数值的正确返回。 二、实验内容 题目 1:编写一个自动出题程序,该程序可以给出任意两个数的、×、/运算式子,当用户输入运算结果时,程序可以判断正误。当用户做完十道题目之后,程序给出最终的统计结果。 提示: 1 系统函数 srand,是随机数发生器的初始化函数,这个函数在头文件 stdlib.h 中。 原型:void srand(unsigned seed) 2 系统函数
2、 rand,产生随机数的函数, 原型:int rand(void) 3 系统函数 time,可以获取系统时间,这个函数在 time.h 中。 大家可以试用下面的程序体会随机数的生成。 #include <stdio.h> #include <stdlib.h> #include <time.h> void main() int i,j; srand(unsigned) time(NULL); for(i=0;i<10;i+) j=(int)(10*rand()/(RAND_MAX+1.0); printf("%5d",j); get
3、char(); 说明: 1 srand 和 rand 配合使用产生伪随机数序列。 2 rand 函数在产生随机数前,需要系统提供生成伪随机数序列的种子,rand 根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用 rand 函数生成的伪随机数序列都是一样的。 3 srand(unsigned seed)通过参数seed 改变系统提供的种子值,从而可以使得每次调用 rand 函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。 4 通常可以利用系统时间来改变系统的种子值,即srand(time(NULL),可以为 rand 函数提供不同的种子值,进而产生不同的随机数序列
4、 5 “j=(int)(10*rand()/(RAND_MAX+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);
5、scanf("%d",&ans); if(ans=add(a,b) printf("Right!n"); else printf("Error!n"); break; case 2: /*做减法*/ break; case 3: /*做乘法*/ break; case 4: /*做除法*/ break; = 上面的程序片段中 add 为用户自定义函数,实现两个数的加法计算,并返回结果。 类似的还需要编写减法、乘法、除法三个自定义函数。不过这几个自定义函数的 内部实现都特别简单。大家请将注意力放在高层的函数定义、声明、调用三个环
6、节上。流程图:代码:#include<stdio.h>#include<stdlib.h> #include<time.h> int add(int x,int y) int z; z=x+y; return(z); int jian(int 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; in
7、t res; int z=0; srand(unsigned)(time(NULL); for(x=0;x<10;x+) j=rand()%101; i=rand()%101; op=rand()%5; switch(op) case 1: printf("nNO%d:%d+%d=",x,i,j); scanf("%d",&res); if(res=add(i,j) printf("RIGHT!n"); z+=1; else printf("ERROR!n"); break; case 2: prin
8、tf("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 p
9、rintf("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 的阶乘的函数。在主函数中调用该函数,当用户输入非负数的时候,
10、程序输出该数的阶乘;当用户输入负数的时候,程序退出。 流程图:代码:#include<stdio.h>int main()int a,s;int 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)
11、 s=0;elsefor(i=1;i<=b;i+)s*=i;return s;实验结果:题目 3:自定义一个函数,判断字符是数字、小写字母、大写字母还是其他,返回值为 0 时,表示数字;为 1 时,表示小写字母;为 2 时,表示大写字母;为 3 时表示其他。在主函数中调用该函数,判断用户输入的字符是哪一种,并输入“是数字”、 “是小写字母”、“是大写字母”、“其他”;当用户输入“#”的时候,程序退出流程图:代码:#include<stdio.h>int 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'&&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 等级测评项目实施监督补充合同(公共安全)
- 婚姻忠诚协议中家庭医疗决策权重约定书
- 商务楼宇外立面清洗维护与节能减排服务协议
- 环保文化节策划与执行合作协议
- 汽车共享平台新能源汽车调度租赁专项协议
- 离职人员保密协议与竞业禁止合同(物流配送业)
- 治疗案例临床解析与经验分享
- 护理术后宣教事件案例
- 酒店大堂照明设施合同(2篇)
- 新噪声管理条例解读
- GB/T 5195.6-2006萤石磷含量的测定
- GB/T 24218.1-2009纺织品非织造布试验方法第1部分:单位面积质量的测定
- GB/T 16895.6-2014低压电气装置第5-52部分:电气设备的选择和安装布线系统
- GB/T 11032-2020交流无间隙金属氧化物避雷器
- 初三中考古诗文理解性默写题
- 三年级数学《认识分数》
- 深度解剖华为虚拟股权激励方案最全版含持股比例
- 医学康复治疗技术作业治疗课件
- 儿科品管圈成果汇报提高手腕带佩戴率课件
- 住院患者健康教育计划执行单
- 容重器测量结果的不确定度评定
评论
0/150
提交评论