《算法设计综合实验》教案课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《算法设计综合实验》教案
统计与应用数学学院
2012年5月11日制
实验一数据类型、运算符和表达式
实验目的:
1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法;
2、掌握不同的数据类型之间赋值的规律;
3、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用;
4、学会使用赋值运算符及复合赋值运算符;
5、进一步熟悉C程序的编辑、编译、连接和运行的过程。

实验环境:
Windows操作系统、Visual C++6.0
实验学时:2学时;
实验内容:
1、整型变量实型变量、字符型变量的定义与输出,赋整型常量值时的情形,以及给整型变量赋字符常量值时的情形;
2、各类数值型数据间的混合运算;
3、要将“China”译成密码,密码规律是:用原来的字母后面第4各字母代替原来的字母。

例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。

因此,“China”应译成“Glmre”。

请编一程序,用赋初值的方法使c1、c2、c3、c
4、c5这5个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

实验二顺序结构程序设计
实验目的:
1、掌握C语言中赋值语句的使用方法;
2、掌握各种类型数据的输入输出方法,能正确使用各种格式转换符;
3、学习调试程序。

实验环境:
Windows 操作系统、Visual C++6.0
实验学时:2学时;
实验内容:
1、掌握各种格式转换符的正确使用方法;
2、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf 输入数据,输出计算结果。

输出时要有文字说明,取小数点后两位数字。

3、编程序:用getchar 函数读入两个字符给c1、c2,然后分别用putchar 函数和printf 函数输出这两个字符。

上机运行程序,比较用printf 和putchar 函数输出字符的特点。

实验三 选择结构程序设计
实验目的:
1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。

2、 学会正确使用逻辑运算符和逻辑表达式。

3、熟练掌握if 语句和switch 语句。

4、学习调试程序。

实验环境:
Windows 操作系统、Visual C++6.0
实验学时:2学时;
实验内容:
1、有一函数
⎪⎩⎪⎨⎧≥<≤<--=)10()
101()1(11312x x x x x x y
用scanf 函数输入x 的值,求y 值(运行程序,输入x 的值,检查输出的y 值是否正确)。

2、给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E ,90分以上为A ,80~89分为B ,70~79分为C ,60~69分为D ,60分以下为E 。

要求:(1)事先编好程序,要求用switch 语句来实现,运行程序,并检查输出结果是否正确。

(2)修改程序,当输入分数为负值,或大于100时,通知用户“输入数据错误”,程序结束。

(3)修改程序,要求用if 结构来实现,运行程序,并检查输出结果是否正确。

3、给一个不多于5位的正整数,要求求出它是几位数,打印出每一位数字,并按逆序打印出各位数字。

4、输入4个整数,要求按由小到大的顺序输出。

5、求方程02
=++c bx ax 的解。

实验四 循环结构程序设计
实验目的:
1、熟练掌握用while 语句,do-while 语句;
2、掌握for 语句实现循环的方法,掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等);
3、掌握break 语句和continue 语句的使用;
4、掌握循环结构程序中典型的算法;
5、进一步学习调试程序;
实验环境:
Windows 操作系统、Visual C++6.0
实验学时:3学时;
实验内容:
1、编程计算1!+2!+3!+……n!的值,其中,n 值由键盘输入。

2、输入一行字符,分别统计出其中的大小写字母、空格、数字和其他字符的个数。

3、输入两个正整数m 和n ,求它们的最大公约数和最小公倍数;
4、猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上再吃时,见只剩下一个桃子了。

求第一天共摘了多少桃子。

5、求s=a+aa+aaa+…+aa …a 之值,其中a 是一个数字,n 表示a 的位数;
6、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13……,求出这个数列的前20项之和。

实验五数组
实验目的:
1、掌握一维数组和多维数组的定义、赋值和输入输出的方法;
2、掌握两种排序算法:冒泡法排序和选择法排序;
3、掌握字符数组和字符串的使用;
4、掌握字符串处理函数的应用;
实验环境:
Windows操作系统、Visual C++6.0
实验学时:5学时;
实验内容:
1、求两个2×3和3×2的矩阵之积,并把结果显示出来。

2、10个人的成绩存放在score数组中,编写程序,将不及格的人数,最低分和最高分显示出来。

3、任意给定三个字符串,编写程序:用两种方法给出最大的一个。

4、编写程序,实现矩阵(5行6列)的转置(即行列互换)。

5、输出杨辉三角(要求输出10行)。

6、编程:将一个十进制整数转换成二进制数。

7、将两个字符串连接起来,用strcat函数和不用strcat函数两种情形;
实验六函数
实验目的:
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系,以及“值传递”的方式。

3、掌握函数的嵌套调用和递归调用的方法;
4、掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法;
实验环境:
Windows操作系统、Visual C++6.0
实验学时:6学时;
实验内容:
1、编程序:通过一个函数判断字符串是否为回文?若是则函数返回1,主函数中输出yes ,否则返回0,主函数中输出no 。

回文是指顺读和倒读都是一样的字符串。

2、编程实现由主函数输入m ,n 并输出最终结果,按下述公式计算n m c 的值:
)!(!!
n m n m c n m -=,其中函数f 的功能是计算阶乘,函数g 的功能是求n m c 的值。

要求
三个函数分别存在三个不同的文件中。

3、编写一个函数fun ,它的功能是:将字符串a 中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

主函数只能用来输入输出字符串。

4、小软件。

功能是:输入1,测试姓名的得分;输入2,测试两个名字的缘分;输入3,测试某一天的幸运度。

要求:三个功能要用三个独立的函数编写,主函数只能用来输入输出结果。

5、写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。

本程序应当准备以下测试数据:17、34、2、1、0。

分别运行并检查结果是否正确。

6、编程序:用递归法将一个整数n 转换成字符串。

例如,输入483,应输出”483”。

n 的位数不确定,可以是任意的整数。

7、编程序:求两个函数的最大公约数和最小公倍数,用一个函数求最大公约数。

用另一个函数根据求出的最大公约数求最小公倍数。

(要求:不用全局变量,分别用两个函数求最大公约数和最小公倍数。

两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。


8、编程序:用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。

将最大公约数和最小公倍数设为全局变量,在主函数中输出它们的值。

实验七 指针
实验目的:
1、通过实验进一步掌握指针的概念,会定义和使用指针变量;
2、能正确使用数组的指针和指向数组的指针变量;
3、能正确使用字符串指针和只想字符串的指针变量;
4、了解指向指针的指针的概念及使用方法。

实验环境:
Windows 操作系统、Visual C++6.0
实验学时:6学时;
实验内容:
1、编程序:用指针方法编写程序,输入3个整数,将它们按由小到大的顺序排列输出。

然后将程序改为:输入3个字符串,按由小到大的顺序输出。

2、编程序:将一个3×3的矩阵转置,用一函数实现之。

在主函数中用scanf 函数输入以下矩阵元素:
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1915131197531
将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。

3、编程序:用一个函数实现两个字符串的比较,即自己写一个strcmp 函数,函数的原型为:int strcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2,要求s1=s2时,函数返回值为0;如果s1≠s2,返回它们二者第一个不相同字符的ASCII 码差值(如 “BOY ”与 “BAD ”,第二个字母不相同,“O ”与“A ”之差为79-65=14);如果s1>s2,则输出正值;如s1<s2则输出负值。

(要求:两个字符串s1、s2由main 函数输入,strcmp 函数的返回值也由main 函数输出。


4、编程序:用指向指针的指针的方法对n 个整数排序并输出。

要求将排序单独写成一个函数。

n 和各整数在主函数中输入。

最后在主函数中输出。

实验八 综合训练
实验目的:
综合运用C 语言知识,设计实用的一个小系统。

实验环境:
Windows操作系统、Visual C++6.0
实验学时:6学时;
实验内容:
请编写完成如下功能的程序:
在主函数main()中输出如下形式的菜单:
Management System of Scores
Input the data
Out the data
Sort the data
Search one data
Exit the System
然后,输出:
Please input your choice:
接收键盘上输入的选择,分别完成输入数据、输出数据、排序数据、查找数据以及结束程序运行的功能。

其中前4个功能分别编写函数 input ( ), output ( ), sort ( ), search ( )实现,第5个功能可以通过调用系统函数 exit(0)实现。

实验九结构体与共用体
实验目的:
1、掌握结构体类型变量的定义和使用;
2、掌握结构体类型数组的概念和使用;
3、掌握链表的概念,初步学会对链表的操作;
4、掌握共用体的概念与使用。

实验环境:
Windows操作系统、Visual C++6.0
实验学时:4学时;
实验内容:
1、编程序:有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生的数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。

要求用一个Input函数输入5个学生数据:用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据在主函数中输出。

2、编程序:13个人围成一圈,从第1个人开始顺序报号1、2、3。

凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。

3、编程序:建立一个链表,每个结点包括:学号、姓名、性别、年龄。

输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

相关文档
最新文档