高级语言程序设计实验指导书
5.整数a,b的最大公约数是指既能被a整除又能被b整除的最大整数。整数a,b的最小公倍数是指既是a的倍数又是b的倍数的最小整数。编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。
要求:
(1)两个整数在主函数中输入,并在主函数中输出求得的最大公约数和最小公倍数。 (2)首先将两个整数a和b作为实参传递给函数gcd(),求出的最大公约数后,由函数gcd()带值返回主函数,然后将最大公约数与两个整数a、b一起作为实参传递给函数mul(),以此求出最小公倍数,再由函数mul()带值返回主函数。
(3)修改函数gcd(),函数gcd()采用递归调用的编写方法,两个整数a和b的最大公约数的递归公式是:
16
高级语言程序设计实验指导书
如果b=0,那么gcd(a,b)=x,否则gcd(a,b)= gcd(b,a%b)。 然后将最大公约数与两个整数a、b一起传递给函数mul(),求出最小公倍数,再由函数mul()将最小公倍数返回主函数。
(4)修改程序,采用全局变量的处理方法,将最大公约数和最小公倍数都设为全局变量,分别用函数gcd()和函数mul()求最大公约数和最小公倍数,但其值不是由函数返回,而是通过全局变量在函数之间传递的特性将结果反映在主函数中。
五.思考题
1. 小结函数的定义及调用方法;
函数的定义是指对函数功能的确立,包括指定函数名,函数值类型,形参及其类型。函数体等,它是一个完整的,独立的函数单位。函数的调用方式有函数语句,函数表达式,函数参数。
2. 小结函数中形参和实参的结合规则;
C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传给实参,这是和FORTRAN不同的。在内存中,实参单元与
17
高级语言程序设计实验指导书
形参单元是不同的单元。
南昌大学实验报告
--实验5 数 组
学生代号: 信 念 学号:5215201314 专业班级: 网络间谍088 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:
一.实验目的
1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。
2.掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。
3.掌握与数组相关的算法,包括排序算法和查找算法等。
二.实验内容
有关数组的程序设计
三.实验环境
PC微机
DOS操作系统或 Windows 操作系统 Turbo C 程序集成环境
四.实验步骤
1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。 要求:
(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序?
18
高级语言程序设计实验指导书
19
高级语言程序设计实验指导书
(4)如果现改为20个元素的数组,应该将10改为20。如果需要数组元素不断改
变,则应该重新输入。
2.编程实现:在给定的字符串中查找满足条件的第一个字符。 要求:
(1)字符串采用初始化的方式处理。 (2)通过scanf函数读入一个任意字符。
(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。
3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ? n),形成n ? n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。
例如:原始数据: n=4 结果数据: 1 2 3 4 8 11 14 16 3 5 9 10 3 5 9 10 8 11 14 16 1 2 3 4 15 2 7 6 15 2 7 6 要求:
(1)本题中所涉及到的循环都采用for语句。
20