1、河南工业大学实验报告(20142015 学年-第 1 学期)课程名称:程序设计基础 实验课程编号:51610057 开课实验室:6313专业班级 计科 1401 学号 201416010119 姓名 张岩实验项目名称 实验一:函数与程序结构 实验日期 2015/3成绩评定教师签名:张玉宏日 期:一、 实验目的:1. 了解结构化程序设计的基本思想;2. 掌握使用工程组织多个程序文件的方法。3. 掌握函数嵌套的使用方法。4.掌握递归函数的编程方法。二编程环境Windows8.1Codeblock三实验要求及内容:1.编写一个函数,利用参数传入一个 3 位数 number,找出 101number之
2、间所有满足下列两个条件的数:它是完全平方数,又有两位数字相同,如144、676 等,函数返回找出这样的数据的个数,并编写主函数。输入输出示例:Enter a number :150count = 2 源代码 测试用例Enter a number :150Count = 2;实验结果2. 用递归函数计算 xn 的值。输入输出示例:Enter x:2Enter n:3Root = 8.00 源代码 测试用例Enter x:2Enter n:3Root = 8.00 实验结果3. 用递归方法编写求斐波那契数列项的函数,返回值为整型,并写出相应的主函数。斐波那契数列的定义为:f( 0)= 0,f(1)
3、=1f( n)= f(n-2 )+ f(n-1) (n 1 )输入输出示例:Enter n:6fib(6 ):8 源代码 实验用例输入 10输出 55 实验结果如下图4. 输入两个整数 m 和 n(m0 且 n0),输出函数 Ack(m,n)的值。Ack(0,n) = n+1Ack(m,0) = Ack(m-1,1)Ack(m,n) = Ack(m-1,Ack(m,n-1) (m0 且 n0)输入输出示例:Enter x:2Enter y:3Ackerman(2,3) = 9 源代码如下图 测试用例输入 x : 2输入 y: 3输出 Ackerman (2,3) = 9 实验结果如下图5*(选
4、做):输入一个正整数 n,将其转换为二进制后输出。要求定义并调用函数 dectobin(n),它的功能是输出 n 的二进制。例如,调用dectobin(10),输出 1010。输入输出示例:Enter n:1001100100 源代码 测试用例输入 20输出 10100 实验结果如下图6. 输入 n(n10)个整数,统计其中素数的个数。要求程序由两个文件组成,一个文件中编写 main 函数,另一个文件中编写素数判断的函数。使用文件包含的方式实现。输入输出示例:Enter n:5Enter 5 number:3 6 7 9 11count = 3说明:文件包含方式的实现,参见 C 语言程序设计实
5、验与习题指导 P126 页 “实现方式 1 文件包含方式 ”。源代码2.测试用例Enter n:5Enter 5 number:3 6 7 9 11count = 33.实验结果7. 编写一个简单加减运算的计算器,输入计算式子的格式为:整数常量+运算符+整数常量。输入输出示例:5+105+10 = 15要求:程序由两个文件组成,把加减运算写成函数:int ADD(int a,int b)int Sub(int a,int b),并单独写成一个源程序文件 cal.c,分别使用文件包含和工程文件与主函数的源程序进行连接。说明:工程文件方式的实现,参见 C 语言程序设计实验与习题指导 P127 页 “实现方式 2 工程文件方式 ”。 源代码 测试用例输入输出示例:5+105+10 = 15 实验结果四、实验结果&总结:本次实验,已经很少出现语法错误,但也遇到不少问题,具体是头文件上#ifndef XXX 本来并不理解,但是经过上课时听讲后已经解决,另外还有一点不理解,就是第六个实验用来实现的函数,其中我如果在 if 下边加上 else 然后把 return 1;放在里边就显示错误很是疑惑,希望老师能指点一二。