当前位置:文档之家› 实验9函数基本应用

实验9函数基本应用

实验9函数基本应用
实验9函数基本应用

填空1

#include

void main()

{int k;

int sele(int n);

for(k=100;k<=1000;k++) if(sele(k))

printf("%5d",k);

printf("\n");

getch();

}

int sele(int n)

{ if(n%3==0&&n%7==0) return (1);

return 0 ;

}

填空2

#include

#include

void main()

{

int number;

int prime(int number);

printf("请输入一个正整数:\n");

scanf("%d",&number);

if (prime(number))

printf("\n %d是素数. ",number);

else

printf("\n %d不是素数. ",number);

getch();

}

int prime(int num) /*此函数用于判别素数*/ { int flag=1,n;

for(n=2;n

if (num%n==0)

flag=0;

return(flag);

}

#include unsigned f(unsigned num) {unsigned k=1;

do

{k*=num%10;

num/=10;

}while(num!=0);

return k;

}

void main()

{int x;

printf("input x=:\n"); scanf("%d",&x);

printf("%d",f(x));

getch();

}

#include

int flower(int n)

{ int x=0,i,j,k;

i=(n%10);

j= (n/10%10);

k=(n/100);

x=i*i*i+j*j*j+k*k*k;

if(x==n) return 0;

else return 1;

}

void main()

{ int n;

printf("Please intput n: ");

scanf("%d",&n);

if(n>999||n<100)

printf("Input error!!!");

else

{if(!flower(n))

printf("%d is a flower nubmer!\n",n);

else

printf("%d isn't a flower nubmer!\n",n);

getch();

}

程序设计1

#include

int leapyear(int year)

{

if((year%4==0&&year%100!=0)||(year%400==0)) return 1;

else

return 0;

}

void main()

{

int year;

scanf("%d",&year);

if(leapyear(year))

printf("%d is a leap year.\n",year);

else

printf("%d is not a leap year.\n",year); getch();

}

程序设计2

#include

int max(int x,int y)

{

int temp;

if(x

{

temp=x;

x=y;

y=temp;

}

while(y!=0)

{

temp=x%y;

x=y;

y=temp;

}

return(x);

}

int min(int x,int y)

{

int max(int x,int y);

int temp;

temp=max(x,y);

return(x*y/temp);

}

main()

{

int a,b,m,n;

printf("请输入两个整数a和b:\n"); scanf("%d,%d",&a,&b);

m=max(a,b);

n=min(a,b);

printf("最大公约数是%d\n",m); printf("最小公倍数是%d\n",n); return 0;

getch();

}

实验九 Servlet应用

实验九 Servlet应用 1.实验目标 1.掌握Servlet的编写与配置 2.理解Servlet的生命周期 3.理解Servlet与JSP的区别 2.实验内容与要求 1.主要通过实践掌握对servlet的使用、编写 2.创建一个简单的servlet程序并在tomcat中进行配置 3.创建一个可以接收客户端提交参数,处理后返回给客户端的servlet程序。 4.使用request.getParameterValues(“”)获取复选框数据,实现用户注册功能 3.实验步骤 1. 实现一个简单的HelloServlet,要求在IE中显示“Hello XXX”字符串。 1)通过继承HttpServlet类创建自己的servlet类 2)在servlet类的doGet()方法中输出自己的信息 3)将生成的HelloServlet.java类编译成HelloServlet.class类,注意编译的时候要用到servlet-api.jar文件。

2.创建和部署Servlet 1)在Tomcat\webapps\目录下创建自己的项目名称myExample 2)在Tomcat\webapps\myExample目录下创建WEB-INF目录,并在该目录下创建一个classes目录,将编译后的HelloServlet.class文件拷贝到这里。 3)在Tomcat\webapps\myExample目录下创建WEB-INF目录并创建一个web.xml文件。 内容为 HelloServlet是我们自己定义的servlet-name,指定HelloServlet类(如果有报名要包含包名) 中指定的是我们在IE中所用的地址。 3.启动tomcat,测试运行 输入:http://localhost:8080\myExample\HelloServlet 2.编写一个处理登录请求的Servlet 1.编写Servlet,并接收从http中传递过来的参数 说明: 1、response.setContentType("text/html;charset=GB2312"); 和request.setCharacterEncoding("GB2312");两个方法主要是设置从客户端接收的字符编码和从服务器端返回的信息的编码,以防止中文出现乱码的的情况。 2、通过request.getParameter(" ") 方法分别得到从客户端传递过来的name和 password。 3、最后用out.println()方法输出显示给客户的信息。 4、编译LoginServlet.java,注意编译的时候使用到servlet-api.jar文件,将编译生成 的LoginServlet.class 文件拷贝到tomcat\webapps\myproject\WEB-INF\classes目录 下。

实验九 函数的重载和变量的作用域

实验九函数的重载和变量的作用域 一、实验目的 1、了解内联函数、重载函数、带默认参数函数的定义及使用方法。 2、掌握作用域的概念、变量的存储类型及它们之间的差别。 3、掌握程序的多文件组织。 二、实验内容 1、重载函数允许不同的函数使用相同的名字,这使得完成类似的任务时可以使用相同的函数名。 范例:编写几个计算面积的函数,分别计算圆、矩形、梯形和三角形的面积,计算边长为1的正方形及其内切圆、内接等腰三角形和等腰梯形面积。 函数原型如下: double area(double radius=0); //圆面积,参数为半径,默认参数为0,表示点面积 double area(double a, double b); // 计算矩形面积,参数为长和宽 double area(double a, double b, double h); //计算梯形面积,参数为两底和高 double area(double a, double b, double c, int); //计算三角形面积,参数为三边长,int 型参数起标示作用,以区别于梯形,不参加计算。 #include #include using namespace std; const double PI=3.14159; double area(double radius=0); double area(double a,double b); double area(double a,double b,double h); double area(double a,double b,double c,int); int main(){ cout<<"Area of point is"<

实验9 使用T-SQL编写程序

实验9 使用T-SQL编写程序 【实验目的】 1)掌握常用函数的使用方法。 2)掌握流程控制语句的使用方法。 【实验环境】 Sql server 2005 【实验重点及难点】 1)启动SQL Server 2005查询编辑器。 2)应用转换函数。 3)应用聚合函数。 4)应用字符串函数。 5)应用IF〃〃〃ELSE语句。 6)应用WHILE语句。 【实验内容】 (1)应用转换函数 1)打开“SQL Server Manageement Studio”窗口。 2)单击“标准”工具栏上的“新建查询”按钮,打开“查询编辑器”窗口。 3)在窗口内直接输入以下语句,求Course表中课程号为“7”的课程名称的长度,并输入结果。 declare @课程名称长度int select @课程名称长度=len(Cname) from course where Cno ='7' print'课程名称长度为'+str(@课程名称长度); 4)单击“SQL编辑器”工具栏上的“分析”按钮,检查输入的T-SQL语句是否有语法错误。如果有语法错误,则进行修改,直到没有语法错误为止。 5)确保无语法错误后,单击“SQL编辑器”工具栏上的“执行”按钮。将执行结果记录下来。 (2)应用聚合函数 1)在“查询编辑器”窗口内输入以下语句,统计Student表中的学生人数,并输出结果。 declare @学生人数int select @学生人数=count(*) from Student print'学生人数为'+str(@学生人数); 2 )单击“SQL编辑器”工具栏上的“执行”按钮。将执行结果记录下来。

实验九 数组

实验九数组 一、实验目的 ①掌握数组的声明、数组元素的引用。 ②掌握静态数组和动态数组的使用差别。 ③掌握用数组解决与数组有关的常用算法,如:求最大(最小)值、求和、求平均值、排序(冒泡法排序、选择法排序和插入法排序)和查找等。 二、实验任务 实验内容1: 设有如下两组数据:A:2,8,7,6,4,26,24B:79,27,32,40,57,66,82 编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,…,24+82,并把相应的结果放入第三个数组中,最后输出第三个数组的值。分别以姓名1.frm 和姓名1.vbp为窗体名和工程名保存在计算机上。 【分析】 两个一维数组中下标相同的元素相加之和是第三个一维数组中对应下标的元素。 实验内容2: 使用Array函数给数组进行初始化为:6,2,5,8,9,15,26,18,然后计算数组各元素的和,并在窗体上输出数组各元素的值和数组元素的和。分别以姓名 2.frm 和姓名2.vbp为窗体名和工程名保存在计算机上。 【分析】 ?Array函数只能给variant类型的数组变量进行初始化,只能给一位数组进行初始化 ?数组的元素类型必须相同,单如果数组类型是variant时,可以包含不同类型的元 素 ?数组的下界缺省为0,也可用option语句将数组的下界设置为1.数组的上界可通过 ubound函数获得。 实验内容3: 从键盘上输入10个整数,并放入一个一维数组中, 然后将其前5个元素与后5个元素对换,即:第1个 元素与第10个元素互换,第2个元素与第9个元素互 换……第5个元素与第6个元素互换。分别输出数组 原来各元素的值和对换后各元素的值。 【分析】 同一数组中元素的互换与变量交换值是类同的, 需要借助与第三个变量来作为中转的对象。

Excel实验2表格格式设置及公式和函数的应用

表格格式设置及公式和函数的应用 实验目的:1、熟练掌握公式和函数的应用 2、熟练掌握数据的填充、复制和移动 3、熟练掌握对表格的格式设置以及格式刷的使用 实验内容共包括四项,总分100分。 实验内容一:以自己的学号和姓名建立一个电子表格,如在工作薄“050123456789张三.xls”中的sheet1工作表中完成下列操作,其中职员工资一览表如下:(25分) 操作要求: 1.输入正确数据,按要求设置单元格和表头文字。表格标题:黑色、黑体、 加粗、合并、居中。(5分) 2.在“税收”列计算税收,当月收入超过1600元,征收5%的个人所得税,保 留2位小数。(5分) 3.在“实发金额”列计算实际发放金额,保留2位小数。(4分) 4.合计“工资”、“奖金”、“税收”、“实发金额”列,保留2位小数。(5分) 5.在表格中将工资少于1600元的职工工资用红色标出(4分) 6.将工作表的名字“sheet1”改为“职工工资一览表”(2分)

说明。(共计15分) 1.标题设为20磅红色行文行楷。把第一行设置为合并居中。(2分) 2.在“姓名”前插入一列,标题为“学号”,数据从2005001开始,按步长为3 的等差数列有上至下填充。(3分) 3.所有数据都设置对齐方式为水平和垂直居中。将表的外边框设置为蓝色双线, 内部为蓝色单线,表格底纹为浅青绿色。如下图所示(5分) 4.正确计算各位同学的总分。(2分)

(共计40分) 1、第一行字体要求16磅、黑体、合并及居中;(3分) 2、第一行和第二行分别加上底纹,如下图所示;(3分) 3、第二行8磅、华文细黑,自动换行,调整列宽如下图所示;(5分) 4、取消08普本通信内部的边框线,前6列合并单元格,第7、8、9列要求 左对齐,缩小字体填充,其余居中对齐,自动换行;(5分) 5、“07普本通信工程”的格式设置如“08普本通信工程”;(5分) 6、第一列加上虚线、绿色边框;(3分) 7、工作表名称“sheet3”修改为“开课计划”;(1分) 8、“合计”项使用求和函数,分别求出各年级“学分”,“课程总学时”, “理论学时”,“实践学时”的总和,并设置格式为蓝色加粗。(9分)

C++实验九类和对象的使用实验报告

实验九类和对象的使用实验报告 一实验目的 1、学会用构造函数对类对象进行初始化 2、掌握析构函数,并了解构造函数和析构函数的调用顺序 3、了解对象数组和对象指针的用法 4、学会共用数据的保护,了解常对象、常成员函数等的使用限制 二实验内容和要求 1.回顾课本知识,掌握重点和难点,认真分析例题熟悉本章内容。 2.完成本章课后习题2、6、7题,认真分析每一题的代码。 三实验环境 Visual C++6.0开发环境 四源程序 2、 #include using namespace std; class Date { public: Date(int,int,int); Date(int,int); Date(int); Date(); void display(); private: int month; int day; int year; }; Date::Date(intm,intd,int y):month(m),day(d),year(y) {} Date::Date(intm,int d):month(m),day(d) {year=2005;} Date::Date(int m):month(m) { day=1; year=2005; }

Date::Date() { month=1; day=1; year=2005; } void Date::display() { cout< using namespace std; class Student { public: Student(intn,float s):num(n),score(s) {}; void change(intn,float s) { num=n; score=s; } void display() { cout<

实验九-可逆计数器的功能测试及应用电路

实验九可逆计数器的功能测试及应用电路 实验目的: (1)掌握可逆计数器74LS191、74LS191、74LS192、74LS193的逻辑功能及使用方法。 (2)熟悉可逆计数器实现任意进制的数码倒计时电路的工作原理。 实验仪器与器件: 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 74LS191、74LS191、74LS191或74HC48、74LS00和74LS04。 实验内容: 1测试74LS190和74LS191的逻辑功能,并用数码管显示,验证是否与表2-9-4一致,分别画出各单元的电路图,写出各自的状态 实验原理:单时钟74LS191二进制同步加/减计数器的功能表如下: 表2-9-4 单时钟74LS191二进制同步加/减计数器的功能表 单时钟74LS191二进制同步加/减计数器是十进制的,其他功能与74LS191一样。它的有效状态为0000~1001. 实验电路: 如图所示是减计数时当计数器的状态变为0时的电路状态:RCO=0,MAX/=1; MIN

实验现象与结果: 该结果是当CTEN =0,D L =1,D U /=1时,A B C D Q Q Q Q 的 波形图; 该结果是当CTEN =0,D L =1,D U /=1时, RCO 与MIN MAX /的波形图

需要说明的是:当CTEN= D L=1时,电路保持原来的状态。 2测试74LS192和74LS193的逻辑功能,并用数码管显示,验证是否与表2-9-3及2-9-5一致。画出测试电路图。 实验原理: 双时钟74LS192同步十进制可逆计数器的功能表如下表所示,74LS192是十进制计数器。 表2-9-3双时钟74LS192同步十进制可逆计数器的功能表 输入输出工作 状态 U CP UP D CP DOW N CLR D L DCBA A B C D Q Q Q Q U TC D TC **H H ****0000 H H 异步 清零**L L 1001 1001 H H 异步 置数 H ↑L H ****1001→ 0001→ 0000H H H L 减法 计数 ↑H L H ****0000→ 1000→ 1001H L H H 加法 计数 双时钟74LS193二进制同步加/减法计数器的功能表如下表所示,74LS193是一个十六进制的计数器。

实验报告9答案

实验报告 课程名称:高级语言程序设计 实验九:函数与数组 班级: 学生姓名: 学号: 专业: 指导教师: 学期:2010-2011学年上学期 云南大学信息学院

一、实验目的 1、掌握数组作为参数的函数编写与调用方法 2、掌握数组作为参数的特殊性 3、掌握字符串作为参数的函数编写与调用方法 二、知识要点 1、地址传递的概念及使用 2、数组元素和数组名作为函数参数的特点与区别 3、字符串作为参数的特点:‘\0’字符的使用 三、实验预习(要求做实验前完成) 1、数组作为函数参数时,其特殊性是 2、定义作为参数的函数时,通常需要提供长度作为参数;而定义 作为参数的函数时,通常不需要提供长度参数 3、写出满足如下要求函数的函数首部: ①函数名为fmax,求一个实型数组的最大元素值: ②函数名为scount,求一个字符串中大写字母的个数: ③函数名为delf,删除一个字符串的第一个字符: 四、实验内容 1、编写一个函数,其功能是将字符串中的大写字母改为小写字母,其他字 符不变。 2、编写一个函数,求出给定的二维数组中每一行最大的元素,并显示出来。 3、在主函数中输入N个人的某门课程的成绩,分别用函数求:①平均分、最 高分和最低分;②分别统计90~100分的人数、80~89分的人数、70~ 79分的人数、60~69分的人数及59分以下的人数。结果在主函数中输出。 五、实验结果(要求写出运行界面及输出的运行结果) 六、实验小结

1.#include #include void change(char a[]) {int i; for(i=0;i='A'&&a[i]<='Z') a[i]+=32; } void main() {char c[30],k; printf("请输入一个包含大写字母的字符串:\n"); gets(c); change(c); puts(c); } 2.#include void max(int b[3][3]) {int i,j,max[3]; for(i=0;i<3;i++) max[i]=b[i][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(b[i][j]>max[i]) max[i]=b[i][j]; for(i=0;i<3;i++) printf("第%d行最大值为:%d\n",i+1,max[i]); printf("\n"); } void main() {int i,j,a[3][3]; printf("输入3行3列的数组:"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("数组元素为:\n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } max(a); } 3. #include

Excel 实验指导——函数的使用

实验八学生成绩表------数学函数、统计函数 一、实验目的 1、掌握数组公式、Sum()函数 2、掌握Averageif()和Sumif() 3、掌握COUNT()、COUNTA()、COUNTIF()、Countblank() 4、RANK.EQ 5、数据库函数的使用 二、实验内容 1、利用数组公式或Sum()函数来统计每个同学上学期的总分。 2、利用Averageif()和Sumif()统计平均分和总分。 3、利用统计函数统计班级人数,每门课程不及格人数,缺考科目数。 4、对班级同学的考试情况进行排名。 5、选择合适的数据库函数统计信息 三、实验任务 小王是班级学习委员,现正值新学期评优时期,班主任委托小王统计班级同学上学期的考试成绩情况。小王要应用函数分析学生信息、计算考试成绩,分析每科成绩的最高分、最低分和平均分,统计每个学生的总分排名,并统计不同寝室的学习情况。 本例效果图如图9- 1所示,小王需要完成的工作包括: (1)统计每个同学各门课程的总分并排名。 (2)统计每个寝室的平均分。 (3)统计每门课程的不及格人数和缺考人数。 (4)统计符合特定条件的学生信息。 图9- 1 学生成绩表效果图

9. 3 案例实现 9.3.1统计班级每个学生的考试总分 1.使用一般公式方法 公式是Excel工作表中进行数值计算的等式,公式输入是以“=”开始的,简单的公式有加、减、乘、除等计算。 我们可以在I3单元格中编辑公式,输入“=D3+E3+F3+G3+H3”,回车后即可,其他同学的总分可以通过填充柄拖动来求得。 2.数组公式计算总分 Excel中数组公式非常有用,尤其在不能使用工作表函数直接得到结果时,数组公式显得特别重要,它可建立产生多值或对一组值而不是单个值进行操作的公式。 输入数组公式首先必须选择用来存放结果的单元格区域(可以是一个单元格),在编辑栏输入公式,然后按Ctrl+Shift+Enter组合键锁定数组公式,Excel将在公式两边自动加上花括号“{}”。注意:不要自己键入花括号,否则,Excel认为输入的是一个正文标签。 利用数组公式计算I3:I32单元格的总分。选中I3:I32单元格,然后按下“=”键编辑加法公式计算总分,因为数组公式是对一组值进行操作,所以直接用鼠标选择D3:D32,按下“+”号,再用鼠标选择其余科目成绩依次累加,然后按Ctrl+Shift+Enter组合键完成数组公式的编辑,如图9- 2所示。 图9- 2 数组公式 在数组公式的编辑过程中,第一步选中I3:I32单元格尤为关键。绝不能开始只选中I3单元格,在最后用填充柄填充其他单元格,那样其他单元格的左上角将会出现绿色小三角,是错误的方法。 3.使用Sum()函数计算总分 Sum()求和函数,可以用来计算总分列。选择I3单元格,使用“公式”→“插入函数”或“自动求和”按钮,可选择Sum()函数,选中求和区域D3:H3,如图9- 3所示,按Enter 键,求和结果显示在单元格中。 通过填充操作完成其余各行总分的计算。

实验十函数应用答案

实验十函数应用 一?实验目的 1.掌握函数的定义和调用; 2.理解形参和实参的使用和传值调用; 3.理解函数声明的使用; 4.掌握函数的嵌套调用; 5.了解函数的嵌套与递归调用,掌握递归函数的编写规律; 6.了解数组元素、数组名作函数参数。 二?实验学时数 2学时 三?实验步骤 (一)阅读程序 1.#include int fun (int x, int y, int z) { z=x * x + y * y; } main() { int a=38; fun(7,3,a); printf("%d",a); 2.#include void fun (int x,int y ); main() {int x=5,y=3; fun(x,y); printf("%d,%d\n",x,y); } void fun (int x,int y ) { x=x+y; y=x-y;

x=x-y; printf("%d,%d\n",x,y); 3.#include int f (int a); main() { int s[ 8 ] = {1,2,3,4,5,6} ,i, d=0; for (i=0; f( s[i] ) ; i++) d+=s[i]; printf("%d\n",d); } int f(int a) { return a%2; } 4.#include long f( int g) { switch(g) { case 0:return 0; case 1: case 2: return 1; } return ( f(g-1)+ f(g-2)); } main ( ) { long int k; k = f(7); printf("\nk= %d\n",k); }

实验九 利用函数电路实现波形变换

实验九利用函数电路实现波形变换 —、实验目的 1 、利用二极管非线性特性 , 实现三角波→正弦波的变换。 2 、利用差分对管的饱和与截止特性,实现三角波→正弦波变换。 二、预习要求 1 、预习方波产生电路和方波→三角波的变换电路工作原理。 2 、预习三角波→正弦波的变换电路和工作原理。 三、实验仪器设备 1 、双踪示波器 2 、万用表 3 、高频电路实验装置 四、实验电路和工作原理 1 、二极管波形变换电路工作原理 从三角波和正弦波的波形上看 , 二者主要的差别在波形的峰值附近 , 其余部 分都很相似 . 因此只要设法将三角波的幅度按照一定的规律逐段衰减 , 就能 将其转换为近似正弦波 . 见图 9.1 所示 . 用二极管将三角波近似转换为正弦波的实验电路见图 9.2 。图中 , R4 ~ R7,D1 ~ D3 负责波形的正半周, R8 ~ R11,D4 ~ D6 负责波形的的下半周, R2 和 R3 为正负半周共用电阻, R1 对输入的三角波进行降压。在正半周的变换过程中,设 R4 ~ R7 都取值为 1.2K Ω, 在正半周 , 当 D1 ~ D3 都不导通时, C 、 B 、 A 点的电压分别为 1.25V,2.5V,3.75V 。在波形变换的过程中 , 由于二极管的非线性特性,加上输入函数的时间关联性 , 不同时刻二极管上所承受的电压是不同的。为了分析的方便 , 我们假设二极管的正向导通电压为 0.5V, 则当输入电压高于 1.75V 时 , 二极管 D3 导通,输出电压高于 1.75V ;当输入电压高于 3V 后 , 二极管 D2 导通 , 输出电压高于 3V; 当输入电压高于 4.25V 后 , 二极管 D1 导通 , 输出高于 4.25V. 以此类推 , 便可近似得到正弦波形 . 若增大电阻 R4 的值 , 可以降低波峰时的电压降 , 以适应不同输入电压的变换要求 . 负半周的变换原理与此相类似 , 读者可以自行分析。

C语言:函数的应用实验报告

课程名称:结构化程序设计与C语言开课实验室:年月日 一、实验目的 用C语言编写和调试函数的程序。从而对函数的定义、调用、全局变量的灵活运用有比较深入的了解。 二、内容及结果 1、程序一素数函数 1)程序要求:写一个判断是否是素数的函数,在主函数输入一个整数,调用它后输出结果。2)代码: #include #include int prime(int n) { int i,k; k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) break; if(i<=k) return 0; else

return 1; } int main() { int prime(int n); int n; printf("Please enter n:"); scanf("%d\n",&n); if(prime(n)==1) printf("%d is a prime number",int(n)); else printf("%d is not a prime number",int(n)); } 3)运行截图: 2、程序二用递归方法求n阶勒让德多项式的值 1)程序要求: 递归公式为: 当n=0,= ) (x P n 1 当n=1, = ) (x P n x; 当n>=1, = ) (x P n((2n-1)x-P n-1(x)-(n-1)P n-2 )x))/n 2)代码: #include

#include int p(int n,int x); void main() { int n,x; scanf("%d",&x); for(n=0;n<=10;n++) printf("p(%d,%d)=%d\n",n,x,p(n,x)); } int p(int n,int x) { if(n==0) return 1; else if(n==1) return x; else return((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n; } 3)运行截图:

C语言实验9-函数

湖北工程学院 学生实验报告书 实验课程名称C语言 开课专业经济学大类 指导教师姓名邹晶、郭道猛 学生姓名 学生班级 2016学年-2017学年第1学期

long fun(int m, int n); void main ( ) { int m, n; long c; printf ("Input m and n(m>=n): "); scanf ("%d%d", &m, &n); c = fun (m, n); printf ("c = %ld\n", c); } long fun(int m, int n) { if (m == n || n == 0) return (1L); else return (m * fun(m-1, n) / (m-n)); } 结果截图: 3.输入代码: /* c9-3.c 利用函数实现级数求和*/ #include "stdio.h" int fun(int m) { int aa[20],i; for(i=0;m;i++) { aa[i]=m%2; m=m/2; } printf("\n"); for(;i;i--) printf("%d",aa[i-1]); return 0; } void main() { int n; printf("\nPlease input number n:\n"); scanf("%d",&n);

fun(n); } 结果截图: 4.输入代码: /* c9-4.c 通过函数调用实现数制转换*/ #include void fun(int m) {int aa[20],i,k=2; for(i=0;m;i++) {aa[i]=m%k; m=m/k; } printf("\n"); for(;i;i--) printf("%d",aa[i]); } void main() {int n; printf("\n请输入一个十进制整数:\n"); scanf("%d",&n); fun(n); } 结果截图: 5.输入代码: /* c9-5.c 判别一个整数数组中各元素的值*/ #include int main() { int i,a[6];

实验三 函数的应用

实验三 函数的应用(2学时) 一、实验目的 1.掌握函数的定义和调用方法。 2.练习重载函数的使用。 3.练习函数模板的使用。 4.练习使用系统函数。 5.学习使用VC++的debug调试功能,使用step into追踪到函数内部。 二、实验任务 1.编写一个函数把华氏温度转换为摄氏温度,转换公式为..C=(F一32)*5/9。 2.编写重载函数Maxl可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。 3.使用重载函数模板重新实现上小题中的函数Maxl。 4.使用系统函数pow(X,y)计算芷的值,注意包含头文件math·h。 5.用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。 三、实验步骤 1.编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法C=(F一32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。 2.分别编写四个同名函数maxl,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp。 3.使用函数模板实现求任意类型数的最大值,针对不同的参数个数,编写两个同名 函数模板maxl,其参数个数不同,实现函数重载,在main()函数中测试函数功能。程序名:lab3_3.cpp。 4.在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用 pow(x,y)函数计算x的Y次幂的结果,再显示出来。程序名.1ab3_4.cpp。 5.编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算 Fibonacci级数。公式为fib(n)=fib(n一1)+fib(n一2),n>2;fib(1)=fib(2)=1。 使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名: lab3_5.cpp。 6.使用debug中的Step Into追踪到函数内部,观察函数的调用过程,参考程序 如下: //lab3_5 #include int fib(int n); int main() { int n,answer; cout<<”Enter number”;

C++实验九继承

实验九继承1、实验目的 1)掌握继承的实现方法; 2)继承中常见问题的处理方法。 2、实验内容 2.1派生类----单继承 1.分析下面的程序,指出程序运行的结果 #include class CBase {public: void fn1(); }; void CBase::fn1() {cout<<"调用基类类的函数fn1()\n"; } class CDerived:public CBase { public: void fn1(); }; void CDerived::fn1() {cout<<"调用派生类的函数fn1()\n"; } void main() { CDerived d1; CBase *pb=&d1; CBase &pd=d1; d1.fn1(); pb->fn1(); pd.fn1(); } 运行结果: 2.2编写并调试程序: 1)p158 4.10

2)定义一个图形类,其中有保护类型的成员数据:高度和宽度,一个公有的构造函数。由该图形类建立两个派生类:矩形类和等腰三角形类。在每个派生类中都包含一个函数area(),分别用来计算矩形和等腰三角形的面积。 1.程序设计如下: #include class picture { protected: double h,w; public: picture (double i,double j){h=i;w=j;} }; class jpicture:public picture {double mi; public: }; class sanjiaoxing:public picture { double mi; public: }; void main() { jpicture a(1,2); sanjiaoxing b(3,4); a.area(); b.area(); } 2.实验结果: 2.3多继承和虚基类 1)分析下面的程序,指出程序运行的结果: #include class CBase1

实验九 函数与预处理

实验九函数和预处理 实验时间:2010年12月3日 【实验目的】 1、掌握函数的定义、说明、调用方法,理解函数的返回值; 2、掌握函数实参、形参的对应关系和传递规则; 3、掌握函数的嵌套调用和递归调用的方法和结构形式; 4、掌握全局变量、局部变量、动态变量、静态变量的区别和用法; 5、理解内部函数和外部函数的含义,掌握内部函数和外部函数的定义和声明; 6、掌握宏定义的方法,掌握文件包含处理的方法,掌握条件编译的方法。【实验内容】 1、函数的定义和调用; 2、函数的递归调用和嵌套调用; 3、变量的作用域和存储类型、内部函数和外部函数; 4、编译预处理。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、上机验证与分析题: 1、分析以下源程序中,函数的定义与说明格式,并上机运行验证结果: /*文件名:ex9_1.c*/ /*功能:定义一个求两个整数的和的函数,并在主函数中调用*/ #include #include void main() { float sum(float a,float b); /*函数说明*/ float x,y; printf("请输入两个数\n"); scanf("%f%f",&x,&y); printf("两个数的和是:%f\n",sum(x,y)); getch(); /*使程序暂停,按任一键继续*/ } float sum(float a,float b)/*定义一个函数sum()*/ { float c; c=a+b; return(c); } 2、程序的调试,常见错误分析:

上题中,sum函数的功能是求两个参数的和,并将求和的结果返回到主函数。 试进行下面的调试,观察所出现的错误。 ①将main()函数中的函数声明去掉,编译时出现什么信息,产生的原因是什么? ②将main()函数最后的“}”去掉,编译时出现什么信息,产生原因是什么? ③将sum()函数的参数改为“float a ,b ”,编译时出现什么信息,产生原因是什么? ④将main()函数中的函数声明语句末尾的“;”去掉,编译时出现什么信息,产生原因是什么? ⑤、若将函数调用语句中的参数y去掉,编译时出现什么信息;产生原因是什么? 3、跟踪调试以下源程,注意函数调用的过程中形参、实参的关系。记录并分析结果;将形参a, b对应改为x,y,使得与实参变量同名,记录并分析结果。 /*文件名:ex9_2.c*/ int a ,b; #include void main() { int x=2,y=5; int swap(int,int); printf("(1) in main: x=%d,y=%d\n",x,y); swap(x,y); printf("(4) in main: x=%d,y=%d\n",x,y); printf("(5) a=%d,b=%d\n",a,b); } swap(int a,int b) { int t; printf("(2) in swap: a=%d,b=%d\n",a,b); t=a; a=b; b=t; printf("(3) in swap: a=%d,b=%d\n",a,b); } 4、分析以下源程,并上机验证。此程序是输入长方体的长、宽、高l、w、h。求长方体的体积及三个面的面积。 /*文件名:ex9_3.c*/ #include int s1,s2,s3;

实验七 函数的应用

实验七函数的应用 一、实验目的 1. 掌握函数的定义和调用方法。 2.. 掌握函数实参与形参的参数传递关系。 二、实验任务 1.阅读、调试、运行程序,比较阅读的结果和运行的结果。 1) #include "stdio.h" void main() { int func(int a, int b); int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); } int func(int a, int b) {int m=0,i=2; i+=m+1; m=i+a+b; return m; } 2) #include "stdio.h" void fun(int x, int y, int z) { z=x*x+y*y; } void main() { int a=31; fun(5,2,a); printf("%d\n",a); } 3) #include "stdio.h" int fun(int a, int b) { if(a>b) return(a); else return(b); } void main()

{ int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf("%d\n", r); } 4) #include "stdio.h" void main() { void fun(int i,int j); int i=2,x=5,j=7; fun(j,6); printf("i=%d,j=%d,x=%d\n",i,j,x); } void fun(int i,int j) { int x=7; printf("i=%d,j=%d,x=%d\n",i,j,x); } 5) #include void main() {int f(int a,int b); int i=2, p; p=f(i, i+1); printf("%d\n", p); } int f(int a,int b) {int c; c=a; if(a>b) c=1; else if (a==b) c=0; else c=-1; return (c); } 6) #include int func(int a, int b) { int c; c = a + b; return c; } void main() { int x = 6, y = 7, z = 8, r; r = func((x--,y++,x+y),z--);

计算机基础上机实验精华版九

实验九 Excel公式和函数的使用 一、实验目的: 1.掌握Excel公式的应用。 2.掌握Exc1e常用函数的应用。 3.掌握三大地址的区别与应用。 二、实验设备和软件: 1、硬件设备:Pentium Ⅳ以上微型计算机。 2、软件设备:Windows XP、Excel 2002或以上版本。 三、实验原理和预备知识: 公式是利用单元格的引用地址对存放在其中的数据进行计算的等式。一个公式由三部分组成:等号、运算数据和运算符。运算数据可以是常量数据(包括数值常量和字符常量)、单元格地址引用、区域引用和Excel提供的函数。运算符可以是算术运算符(+、-、*、/、^、%)、比较运算符(>、>=、<、<=、=、<>)、文本运算符(&)和引用运算符(:)。创建公式的步骤如下: 1、选定输入公式的单元格; 2、输入等号“=”; 3、输入公式具体内容(可以直接在单元格中输入,也可以在编辑栏中输入); 4、按下Enter键,完成公式创建。 函数是Excel自带的一些已经定义好的公式。函数处理数据的方式与直接创建的公式处理数据的方式是相同的。使用函数既可以减少输入的工作量,也可以减小输入时出错的概率。 所有函数都是由函数名和位于其后的一系列用括号括起来的参数组成的,即:函数名(参数1,参数2,……)。函数名代表了该函数具有的功能。不同类型的函数要求的参数类型不尽相同,可以是数字、文本、逻辑值、单元格地址、区域地址和另一个函数(函数嵌套),给定的参数必须能产生有效数值。 函数可以有两种方法输入,一种是直接输入法,如果能记住函数名的拼写以及正确的参数类型,可以直接通过键盘在编辑栏或单元格中输入函数,这是一种效率较高的输入方式;另一种是粘贴函数法,通过Excel提供的函数输入指南,逐步完成函数的输入。 在Excel公式中,单元格是作为变量参与运算的,运算中指定的是存放数据的单元格地址,而不是数据本身,公式运算的结果总是采用单元格中的当前数据。如果改变单元格中的数据内容,则计算结果也会发生变化。引用单元格的公式的复制操作,可节省大量重复公式的输入。在这类公式复制过程中,可根据不同的位置或情况变换不同的单元格地址引用方式。单元格地址引用分为相对引用、绝对引用和混合引用。 1、相对引用相对引用是指单元格引用会随公式所在单元格的位置变更(公式复制时)而改变。相对引用地址由列号行号表示。 2、绝对引用绝对引用单元格地址将不随公式位置的变化而改变。绝对引用地址的表示方法是在相对地址的列号和行号前分别加上一个美元符号“$”。

相关主题
文本预览
相关文档 最新文档