程序设计实验大纲 下载本文

换。

请将字符串“I love you”译成密码。。

5.实验项目名称:函数的声明、定义和调用 实验目的:

(1)掌握函数定义及函数调用;

(2)掌握函数间参数传递方式(值方式和引用方式); (3)掌握库函数的使用。 实验内容提要:

(1)编写字符串反转函数mystrrev( ),该函数的功能为将指定字符串中的字符顺序颠倒排列。然后再编写主函数验证之。

(2)编写一组求数组中最大最小元素的函数。

(3)编写函数isprime(int a)用来判断变量a是否为素数,若是素数,函数返回1,否则返回0。调用该函数找出任意给定的n个整数中的素数。

(4)打印出以下的杨辉三角形(要求打印出10行) 1 1 1 1 1 1

(5)用弦截法求一元方程f(x)?0在区间?x0,x1?之间的一个根。 (6)编写字符串查找函数。

(7)编写一组函数来实现词频统计功能。 6.实验项目名称:指针的声明和使用 实验目的:

(1)掌握指针的概念,学会定义指针变量和使用指针变量进行间接引用; (2)掌握数组的指针和指向数组的指针变量; (3)掌握二维数组中行指针的概念和使用。 实验内容提要:

(1)使用指针编写一个对整型数组进行排序的函数,排序方法使用例4-6的交换排序法(冒泡排序法)。

(2)编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。

1 2 3 4 5

1 3 6

1 4

1

10 10 5 1

… …

(3)编写程序,把10个整数1、2、…、10赋予某个int型数组,然后用int型指针输出该数组元素的值。

(4)用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能分别指出其中大、小写字母、数字以及其他字符的个数。

(5)编写一个函数, 用于将一个字符串转换为整型数值。其原型为: int atoi(char *string);

其中参数string为待转换的字符串(其中包括正、负号和数字),返回值为转换结果。

(6)编写一个函数,用于生成一个空白字符串,其原型为: char *mystrspc(char *string, int n);

其中参数string为字符串,n为空白字符串的长度 (空格符的个数)。返回值为指向string的指针。

7.实验项目名称:函数和指针程序设计 实验目的:

(1)掌握函数调用的方法; (2)掌握函数的递归调用方法;

(3)掌握函数调用中参数的值传递和地址传递方法和含义。 实验内容提要:

(1)使用递归算法编写如下程序:对于任意给定的实数X和整数k>0,计算Xk。

(2)Ackermann函数ack(m,n)由以下递归定义:

ack(0, n)=n+1 ack(m, 0)=ack(m-1, 1)

ack(m, n)=ack(m-1, ack(m, n-1)) 编写一个计算此函数的递归程序。

(3)使用递归算法编写求斐波那契数列的第n项的函数,并编出主函数进行验证。

(4)编写一个求立方的函数cube,并重载它,使之可以对输入的整型量和实型量数值求立方。

(5)重载判断两个数值大小的函数max,这些数值可能是整型数、实型数和字符型,函数的返回值为两个数值中的最大值。

(6)编写一个函数,用于去掉字符串尾部的空格符,其原型为:

char *mytrim(char *string);

其中参数string为字符串,返回值为指向string的指针。

其中m>0, n>0

(7)编写一个函数,用于去掉字符串前面的空格,其原型为:

char *myltrim(char *string);

其中参数string为字符串,返回值为指向string的指针。

(8)编写一个程序,当输入一个整数以后,可以转换成相应的英文单词输出。如:123转换成one hundred twenty three.

(9)用牛顿法或者二分法编写一个求方程f(x)=0在区间[a,b]中的实根的函数, 其原型为:

double equation(double (*func)(double), double a, double b, double eps); 其中参数func, a和b分别为求根函数和区间两端点, eps为精度。。 8.实验项目名称:结构体的使用 实验目的:

(1)掌握结构体、枚举等自定义数据类型的定义与使用方法。 (2)理解并应用“自顶向下,逐步求精”的结构化程序设计方法来解决复杂问题。

实验内容提要:

(1)输入某小组7个人的姓名、性别、出生年份等信息,统计男女人数以及1988年以后(含1988年)出生的人数。

(2)定义一个名为Circle(圆)的结构体,其数据成员是圆的外接矩形的左上角和右下角两点的坐标,计算该圆的面积。

(3)读入5个用户的姓名和电话号码,按姓名的字典顺序排列后,输出每个用户的姓名和电话号码。

(4)口袋中有红、黄、蓝、白、黑五种颜色的小球若干个。如果每次都从口袋中取出3个不同颜色的小球。问有多少种取法?要求使用枚举类型来表示小球的颜色。

(5)用自顶向下、逐步求精的程序设计方法找出2~10000之内的所有完全数。

9.实验项目名称:类的基本定义方法和使用 实验目的:

(1)掌握类的定义和使用。 实验内容提要:

(1)定义一个Dog类,包含name、age、sex、weight等属性以及对这些属性操作的方法。实现并测试这个类。

(2)设计并测试一个名为Ellipse的椭圆类,其属性为外接矩形的左上角与右下角两个点的坐标,并能计算出椭圆的面积。

(3)仿照Date类设计一个Time类,可以设置时间、进行时间的加减运算、

按各种可能的格式输出时间。

(4)合并Date类和Time类为一个DateAndTime类,修改相应的成员函数,当时间递增到新的一天时,应能够修改日期值。

10.实验项目名称:构造函数和数据成员的初始化 实验目的:

(1)掌握构造函数的使用。 (2)掌握指向对象的指针的使用。 (3)了解析构函数。 实验内容提要:

(1)定义一个Dog类,包含name、age、sex、weight等属性,设计一个构造函数,可以对这些属性进行初始化。实现并测试这个类。

(2)设计并测试一个名为Ellipse的椭圆类,其属性为其圆心坐标以及半长轴和半短轴的长度。设计一个构造函数对这些属性进行初始化,并通过成员函数计算出椭圆的面积。

(3)仿照Date类设计一个Time类,设计多个重载的构造函数,可以设置时间、进行时间的加减运算、按各种可能的格式输出时间。

(4)合并Date类和Time类为一个DateAndTime类,修改相应的成员函数,当时间递增到新的一天时,应能够修改日期值。

11.实验项目名称:从一个类派生另一个类 实验目的:

(1)掌握不同继承方式下对基类的成员的访问的控制。 实验内容提要:

(1)从类Person中派生出一个教师类,新增的属性有:专业、职称和主讲课程(一门),并为这些属性定义相应的方法。

(2)许多研究生既有学生的属性,又有教师的属性。试通过多重继承说明一个研究生类。

(3)修改例11-5,从Point类中派生出一个Line类。Line类增加一个数据成员EndPoint,计算线的长度。试比较一下与直接使用Point类来构造Line类的不同之处。

(4)从Date类和Time类派生一个DateAndTime类,修改相应的成员函数,当时间递增到新的一天时,应能够修改日期值。

12.实验项目名称:虚函数的定义和运算符的重载 实验目的:

(1)掌握使用虚函数实现多态性; (2)掌握运算符重载的方法。