《算法设计综合实验》教案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“实验设计方法教案”。
《算法设计综合实验》教案
统计与应用数学学院
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、c4、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、有一函数
(x1)xy2x1(1x10)3x11(x10)
用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、求方程axbxc0的解。2实验四 循环结构程序设计
实验目的:
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。回文是指顺读和倒读都是一样的字符串。
ncm2、编程实现由主函数输入m,n并输出最终结果,按下述公式计算的值:
ncmm!nn!(mn)!,其中函数f的功能是计算阶乘,函数g的功能是求cm的值。要求三个函数分别存在三个不同的文件中。
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函数输入以下矩阵元素:
1357911131519
将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。
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
1、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、编程序:建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。
心得体会作为一种笔记形式,有助于我们更好地记录和保留自己的思考和感悟。打造一篇完美的心得体会需要我们深入思考和总结。总结是对过去的回顾和反思,以下是一些总结的心得体......
通过写心得体会,我们可以更好地总结自己的经验,发现并纠正自己的不足,提高自己的能力水平。8.写一篇完美的心得体会需要我们抓住重点,突出自己的观点和感悟。这些心得体会范文来......
计算机科学与技术学院算法分析与设计实验指导书于洪 编写 2011年8月目 录实验一实验二实验三实验四附录1 附录2 排序问题求解…………………………..…..………3 背包问题求......
实验八概率算法(2学时)一、实验目的与要求 熟悉快速排序算法; 通过本实验加深对概率算法的理解。二、实验内容:利用随机序列选取枢轴值,改进快速排序算法。三、实验步骤 理解算法......
金陵科技学院实验报告学 生 实 验 报 告 册课程名称:学生学号:所属院部:(理工类)算法与数据结构 专业班级: 13网络工程 1305106009 学生姓名: 陈韬 网络与通信工程学院 指导教师: 沈......