第一篇:C语言实验程序、总结 实验六 函数
一 实验目的 掌握定义函数的方法;
实验六 函数 掌握函数实参与形参的对应关系以及“值传递”的方式; 3 掌握函数递归调用的方法;
二 实验内容 编写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数由键盘输入。
【提示】设有两个正整数m和n ⑴ 实验四介绍了求最大公约数的算法,也可以用递归的方法求最大公约数。设hcf(int m,int n)是用来求m和n的最大公约数h函数,k=m%n,则:
hcf(n,k)hnk0k0⑵ 若最大公约数为h,则最小公倍数为:m*n/h。
实验时,完成以下两个函数的定义,使之和主程序构成完整的程序,实现题目的要求。#include
完整程序如下: #include int lcd(int m,int n,int h)/* 求最小公倍数的函数 */ { return(m*n/h);} main(){ int m,n,h,l;printf(“请输入两个正整数m、n:”);scanf(“%d,%d”,&m,&n);h=hcf(m,n);printf(“%d和%d的最大公约数是:%dn”,m,n,h);l=lcd(m,n,h);printf(“%d和%d的最小公倍数是:%dn”,m,n,l);} 运行结果如下图: 编写求n!的函数f(int n),在主函数中输入两个整数m、n,然后调用函数求: Cnmm!n!(m-n)!【注意】函数f的类型应用long或double。 程序如下: #include void main(){ long m,n,c;printf(“请输入两个整数”); scanf(“%d,%d”,&m,&n);c=f(c);m=m*(m-1)n=n*(n-1)c=m/(n*c)printf(“组合为%dn”,c); } 有一个字符串,输入一个字符,编写函数dstr将输入的指定字符从字符串中删去。#include 完整程序如下: #include 实验总结:本次实验主要掌握定义函数的方法,掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;通过本次实验对函数和函数的调用有了更深的了解,加深对函数的认识。 计算机科学与工程学院 天津理工大学 计算机 科学 与工程 学院 实验报告 2018 至 2019 学年 第 一 学期 课程名称 程序设计(C 语言) 学号 学生姓名 班级 级 专业 计算机科学与技术(合作) 实验地点 7-21 实验项目 函数 实验 时间 批改意见 成绩 教师签字: 实验(一)) 实验名称 函数 开发 环境 PC 机,windows7 操作系统 开发工具 VC6.0 实验目的(1 1)掌握函数的定义与调用的方法 ; (2 2) 参数传递机制、函数的嵌套调用和递归调用 (3 3)学会利用自定义函数进行模块化程序设计的方法 ;的 多文件结构的 C++ 程序的编译、调试和运行 实验 要求 认真完成实验内容,编写程序代码; 要求程序正确无误,并输出合理的实验结果; 书写并提交实验报告。 实验 内容(应包括实验题目、代码实现、编译、运行结果等,也可给出程序的算法描述、重点程序语句的 注释 等。 。)) 1.一个素数,当它的数字位置对换以后仍为素数,这样的数称为绝对素数。编写一个程序,求出所有的两位绝对素数。 2.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数, 并输出结果,两个整数由键盘输入。 3.求阶乘问题。要求定义函数 fact(n)计算 n!,主函数中输入一个正整数 n,输出 n!,要求函数 数 fact(n)分别采用递归和非递归两种形式实现。 (1)递归版:主要利用递推公式 fact(n)= n * fact(n-1),并注意终止条件。 (2)非递归版: 主要利用单重循环实现。 心得体会: 求方程 0 ax2+bx+c=0 的根,用三个函数分别求当 b b2 2--c4ac 大于 0 0、等于 0 0 和小于 0 0 时的根,并输出结果。 在做这道题的时候 我遇到了问题,通过自己的思考以及与老师的交流,改正了错误。函数。 这部分,一开始我学的不清楚,通过不断练习,思考,改错,我越发理解函数,熟悉函数。 实验六 数组 实验目的: 1、通过实验掌握数组在内存中的存放形式; 2、掌握一维数组和二维数组的定义和数组元素的引用; 3、掌握各种字符串库函数的用法。 实验内容: 1、教材P138页第4题。 2、教材P138页第10题。 3、输入10个整数,将这10个整数按升序排列输出,并且奇数在前,偶数在后。 实验原理、步骤与分析: 【要求】每个实验内容都要先写出其实现的基本原理,再写出实验步骤,最后根据每个实验内容的实验结果进行分析说明。 实 验 报 告 课程名称: SQL Server 数据库基础 任课教师: 池宗琳 实验名称: 视图、规则和索引的使用 年级、专业: 2018级电子信息工程 学 号: 20181060199 姓 名: 苟诚 日期: 2019 年 月 日 云南大学 信息学院 一、实验目的1、掌握视图的创建、修改和删除操作 2、掌握规则的创建、绑定、解除和删除操作 3、掌握索引的创建、修改和删除操作 二、实验内容、方法、步骤和实验结果与分析 (一)视图 1.创建视图view1,使该视图中包含HrSystem数据库中一个员工的明细信息(视图中的列名全部使用中文)。 use HrSystem go create view view1 as select e.Emp_id as 员工编号,e.Emp_name as 员工姓名,e.Sex as 性别,e.Title as 职务,e.Wage as 工资,e.IdCard as 身份证,d.Dep_id as 部门编号 from Employees e inner join Departments d on e.Dep_id =d.Dep_id 2.显示第1题创建的视图view1的所有数据。 use HrSystem go select all * from view1 go 3.利用第1题创建的视图view1,列出视图中所有姓李的员工的所有信息。 use HrSystem go select all * from view1 where 员工姓名='李%' go 4.使用ALTER VIEW修改第1题创建的视图view1,使其只包含所有员工的姓名、职务和部门三列(视图中的列名全部使用中文)。 use HrSystem go alter view view1 as select e.Emp_name as 员工姓名,e.Title as 职务,d.Dep_name as 部门名字 from Employees e inner join Departments d on e.Dep_id =d.Dep_id go 5.删除以上创建的视图view1。 use HrSystem go drop view view1 go (一)规则 以下操作均针对数据库HrSystem。 1.使用CREATE RULE语句创建规则SexRule,指定变量@sex的取值只能为‘男’或‘女’。 use HrSystem go create rule SexRule as @sex in ('男','女') go 2.完成后,在对象资源管理器中展开数据库HrSystem->“可编程性”->“规则”,确认可以看到规则SexRule。 3.使用存储过程sp_bindrule可以将规则SexRule绑定到表Employees的列Sex上。 use Hrsystem go exec sp_bindrule 'SexRule','Employees.Sex' go 4.执行下面的INSERT语句,向表Employees中插入一条记录。 use Hrsystem go insert into Employees(Emp_name,Sex,Title,Wage,IdCard,Dep_id) values('小李','无','职员',10000,'110123xxxx',1) go 确认是否可以成功执行INSERT语句,为什么? 答:不可以,因为插入的记录中Sex的值与创建的规则发生冲突。 5.使用存储过程sp_unbindrule取消表Employees的列Sex上绑定的规则。成功后再执行第4步中的INSERT语句,确认是否可以成功执行INSERT语句,为什么? use Hrsystem go exec sp_unbindrule 'Employees.Sex' go use Hrsystem go insert into Employees(Emp_name,Sex,Title,Wage,IdCard,Dep_id) values('小李','无','职员',10000,'110123xxxx',1) go 可以,因为表列与规则之间的绑定已经解除,列Sex与规则SexRule就不会发生冲突 6.使用DROP RULE删除规则SexRule。完成后,在对象资源管理器中展开数据库HrSystem->“可编程性”->“规则”,确认是否可以看到规则SexRule。 USE HrSystem go DROP RULE SexRule go (二)索引 执行以下语句,利用数据库HrSystem的表Employees产生一个新表emp,该新表包含了表Employees中的所有记录。 use Hrsystem select * into emp from Employees 1.在新表emp上建立一个唯一聚集索引,索引名称为name_ind,索引字段为Emp_name。 use Hrsystem go create unique nonclustered index [name_ind] on [dbo].[emp](Emp_name) go 2.使用SQL Server Management Studio查看索引name_ind的属性信息。 3.使用DROP INDEX语句删除第1题创建的索引name_ind。 use Hrsystem drop index emp.name_ind 三、实验小结【对自己而言,通过实验学到的关键技术方法】 通过这次实验,我学会使用和建立视图,规则和索引,也学会了检查建立查询时候的一些错误和修改方法。通过了这次实验,我又进一步学会了对于SQL数据库的一些基本操作,下来课后,我也要进一步完善自己对于SQL语句的熟练程度,更有助于自己对SQL的学习。 一 实验目的 实验七 指针 了解指针的概念,学会定义和使用指针变量。2 掌握指针、变量和数组的关系及使用方法。3 学会使用指向函数的指针变量。 二 实验内容 编写函数fun(float *sn,int n),其功能是:根据以下公式计算s,计算结果通过形参sn传回;n通过实参传入,n的值大于等于0。上机运行并记录输入输出(主函数已给出)。 s11111 3572n1fun(float *sn,int n){ 定义变量:和s,通项w,符号f,循环控制变量i; /* 其中s、f要初始化 */ 循环求累加和s { 改变符号;/* 由负变正或由正变负 */ 求通项w;累加:s+=w;} 形参指针变量sn赋值;/* 通过形参sn传回累加和s */ } main(){ float s;int n;printf(“n=”);scanf(“%d”,&n);fun(&s,n);printf(“s=%fn”,s);} 完整程序如下: #include 输出结果如下图: 想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的? swap(int *p1,int *p2){ int *p;p=p1;p1=p2;p2=p } main(){ int a,b;int *pt1,*pt2;scanf(“%d,%d”,&a,&b);pt1=&a;pt2=&b;if(a 上机调试此程序。如果不能实现题目要求,指出原因并修改之。 子函数swap改成下面程序方可实现目的,主函数不变: swap(int *p1,int *p2){ int p;p=*p1;*p1=*p2;*p2=p;} 下面的程序用来实现将一个3×3的矩阵转置。#include 程序修改如下: #include 应改为: printf(“%cn”,*pt++); 实验总结:本次实验主要掌握指针的概念,学会定义和使用指针变量,掌握指针、变量和数组的关系及使用方法,学会使用指向函数的指针变量,通过本次实验,很好的了解了指针的使用,加深了对指针的认识。第二篇:实验六函数实验报告
第三篇:C语言实验六 数组
第四篇:实验六
第五篇:C语言实验程序、总结 实验七 指针