C语言程序设计实验报告(实验名称:函数)
1 实验目的
(1) 掌握函数的定义方法、调用方法、参数说明以及返回值;
(2) 掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;
(3) 掌握函数的嵌套调用及递归调用的用的设计方法;
(4) 在编程过程中加深理解函数调用的程序设计思想。
2 实验内容
(1) 编写一个函数primeNum(int x),功能是判别一个数是否为素数。
要求:
① 在主函数中输入一个整数x(直接赋值或从键盘输入);
② 函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not a prime number”;
③ 分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。
(2) 编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。
要求:
① 在主函数中从键盘输入一对整型数据a和b;
② 调用函数后,根据返回值对a和b的关系进行说明。例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”;
③ 分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。
3 算法描述流程图
(1) primeNum(int x)(判别一个数是否是素数)函数流程图
①主函数流程图:
②判断素数函数流程图:
(2)mulNum(int a,int b)(确定 a和b是否是整数倍的关系)函数流程图
①主函数流程图:
②判断倍数流程图:
4 源程序
(1) 判断某个数是否是素数
#include <stdio.h>
int primNum(int x) /*编写函数判断某个数是否是素数*/
{
int i;
if (x==0||x==1) /*当x等于1或等于0时判断是否为素数 */
return 0;
for (i=2;i<x;i++) /* 当x大于2时判断不为素数的数 */
{
if (x%i==0)
return 0;
}
if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数 */
return 1;
}
void main()
{
int n ;
printf("Please input an integer:"); /* 提示从键盘输入一个数x */
scanf("%d",&n);
if (primNum(n)==1) /* 调用定义的函数 */
printf("%d is a prime number\n",n); /* 由函数得出结论判断是否为素数 */
else
printf("%d is not a prime number\n",n);
}
(2)个数是否是整数倍关系
#include <stdio.h>
int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/
{
if (a%b==0) /* 判断出a是b的整数*/
return 1;
else /* 判断出a不是b的整数*/
return 0;
}
void main ()
{
int m,n;
printf ("please input tow integers:\n"); /*提示从键盘输入两个数 */
scanf ("%d%d",&m,&n); /*从键盘输入两个数的值 */
if(mulNum(m,n)==1) /*调用定义的函数并判断输出相应的结果*/
printf("%d is a multiple of %d\n",m,n);
else
printf("%d is not a multiple of %d\n",m,n);
}
5 测试数据
(1)实验(1)测试数据为0,1,2,5,9,13,59,121
运行结果
当测试数据0时
当测试数据1时
当测试数据2时
当测试数据5时
当测试数据9时
当测试数据13时
当测试数据59时
当测试数据121时
(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。
运行结果
当测试1与5时
当测试5与5时
当测试6与2时
当测试6与4时
当测试20与4时
当测试37与9时
6出现问题及解决方法
1)在判断某个数是否是素数的本实验中,我在使用循环遍历判断x是否为素数的时候循环体的内容错误地编写为:
for (i=2;i<x;i++)
{
if (x%i==0)
return 0;
else
return 1;
}
导致程序不能正确地按照设想的结果运行,在判断清循环体的执行过程后将程序正确地改为了:
for (i=2;i<x;i++)
{
if (x%i==0)
return 0;
}
2)在判断确定两个数是否是整数倍关系的本实验中,我在定义两个形参时错误地编写成了(int a ,b),经检查后改为正确格式(int a ,int b)。
3)此外,在编写程序的时候,在标点符号上还有一些细节上的疏漏,如:标点没有在英文的状态下使用,还有一条语句结束后遗漏了分号“ ; ”。
7实验心得
本次实验,我掌握了一些具体函数的定义和调用方法,函数形参以及返回值的使用。在操作的过程中深刻地体会到函数调用的便捷。通过对循环和条件选择的使用,我亲自感受并实践了程序设计的思想,同时对C程序设计也有了总体的认识。此外,编写程序的严谨思想也令我深深地感受一丝不苟地工作的重要性。
第二篇:C语言程序设计实验报告-1
贵阳学院
机电系实验报告 课程名称: 指导教师: 年 级: 专 业: 学生姓名: 学 号:
20 ——20 学年第 学期
填 写 要 求
一、对于演示性实验,要写出心得体会(字数不少于800字)。
二、对于验证性实验(操作型,不属于程序设计型),要收集数据,对数据进行处理,并绘制曲线和写出实验总结(不少于50字)。
三、对于设计性实验,(操作型,不属于程序设计型),要给设计思路,完成“二”中的任务,分析设计的规范性和合理性。
四、对于程序设计型实验,要写出源程序,运行结果和实验总结(不少于50字)。
实验一(预备实验)
一、 实验项目名称: C语言的运行环境和运行C程序的方法
二、 实验时间:
三、 实验地点:
四、 实验目的:
1. 了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2. 了解在该系统上如何编辑、编译、连接和运行一个C程序。
3. 通过运行简单的C程序,初步了解C源程序的特点。
五、 主要的实验所需仪器、设备:PC机。
六、 实验内容与步骤:
1.
2.
3.
4. 检查所用的计算机系统是否已安装了C编译系统并确定它所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。
i. 输入下面的程序
#include<stdio.h>
void main( )
{
printf(“This is a program.\n”);
}
ii. 编译源程序,观察编译信息,如出现错误,找出原因,继续编译,
如无错,进行连接。
iii. 如连接无误,运行程序,分析运行结果。
5. 输入并编辑一个有错误的C程序。
i. 输入以下程序
#include<stdio.h>
void main( )
{
int a,b,sum;
a=123;
b=456;
sum=a+b
print(“sum si %d\n”,sum);
}
ii. 编译程序,错误信息有:
iii. 编译成功,连接程序,错误信息有:
将调试好的程序保存在自己的用户目录中,文件名自定。
关闭文件,再将文件读入,检查窗口中的内容是否是刚才存盘的程
序。
viii. 关闭所有的集成环境,用Windows中的“我的电脑”找到刚才使用
的用户子目录,浏览其中文件,看有无刚才保存的后缀为.c和.exe
的文件。
6. 上机运行本章例题1.3。
七、 本次上机实验的心得。
八、 理论支撑:《C语言程序设计》第一章
本次实验成绩
iv. v. vi. vii. 连接成功,使程序运行,运行结果: 分析结果正误: