收藏 分享(赏)

《高级语言程序设计32+16》实验指导书.doc

上传人:hwpkd79526 文档编号:4363693 上传时间:2018-12-25 格式:DOC 页数:14 大小:73.50KB
下载 相关 举报
《高级语言程序设计32+16》实验指导书.doc_第1页
第1页 / 共14页
《高级语言程序设计32+16》实验指导书.doc_第2页
第2页 / 共14页
《高级语言程序设计32+16》实验指导书.doc_第3页
第3页 / 共14页
《高级语言程序设计32+16》实验指导书.doc_第4页
第4页 / 共14页
《高级语言程序设计32+16》实验指导书.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1高级语言程序设计实 验 指 导 书东北林业大学信息与计算机工程学院计算机科学与技术目 录1 实验目的与要求 12 实验环境 13 Turbo C 环境的程序开发步骤 24 实验一般步骤35 实验时数46 实验内容和要 求4实验一 数据及顺序结构程序设计4实验二 选择结构程序设计5实验三 循环程序设计6 实验四 数组的应用7实验五 函数的应用8实验六 指针、位运算的应用9实验七 结构体和简单链表的使用10实验八 文件的应用1211 实验目的与要求上机操作是本课程必不可少的实践环节,主要目的是锻炼和培养学生实际操作技能和解决实际问题的能力。要求学生掌握 C 语言程序的设计、调试和运行方法,悉用

2、C 语言进行程序设计和调试的全过程,获得用高级语言解题的实际体会,加深对 C 语言本身的理解,得到程序设计方法和技巧的实际训练,从而使学生能真正利用 C 语言解决编程问题。(1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们都很重要。通过多次上机,就能自然地、熟练地掌握。通过上机来掌握语法规则是行之有效的方法。(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉 C 语言程序开发的环境。一个程序必须在一定的外部环境下才能运行,所谓“环境” ,就是指所用的计算机系统的硬件和软件条件。使用者应该了解为了运行一个 C 程序,需要哪些必要的外部条件(例如硬件配置

3、、软件配置),可以利用哪些系统的功能来帮助自已开发程序。每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一、二种计算机系统的使用,再遇到其它的系统时便会触类旁通,很快地学会。(3)学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。经验丰富的人,当编译时出现“出错信息“时,能很快地判断出错误所在,并改正之。而缺乏经验的人即便在明确的出错提示下也往往找不出错误而求救于别人。计算机技术是实践性很强的技术,要求从事这一领域的人不仅能了解和熟悉有关理论和方法,还要求自己动手实现。对程序设计来说,要求会编程序并上机调试通过。因此调试程序本身是程序设计课程的

4、一个重要的内容和基本要求,应给予充分的重湘。调试程序的经验固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积,而且有些经验是只能“会意“难以“言传“。因此,在实验时干万不要在程序通过后就认为万事大吉、完成任务了,而应当在已通过的程序基础上作一些改动(例如修改一些参数、增加程序一些功能、改变输入数据的方法等),再进行编译、连接和运行。甚至于“自设障碍。 ,即把正确的程序改为有错的(例如用 scanf 函数输入变量时,漏写“使数组下标出界;使整数溢出等),观察和分析所出现的情况。这样的学习才会有真正的收获,是灵活主动地学习而不是呆板被动的学习。2 实验环境(1)计算机的硬件配置2PC

5、 系列微机,包括 286、 386、486、奔腾及各种兼容机,要求内存为 64M以上,一个硬盘驱动器和一个软盘驱动器。80 列字符监视器。配备鼠标器。(2)计算机的软件配置DOS6.22 或 Windows 98、Windows xp、Windows 2000。C 语言的集成开发环境 TurboC V3.0。3 Turbo C 环境的程序开发步骤(1)调用 Turbo C 程序只需打入:tc 屏幕顶部出现一排“命令”行菜单, 如图 1 所示。FILE EdIT RUN COMPILE PROJECT OPTIONS DEBUG图 1 Turbo C 命令行菜单用键盘上的“”和“”键来移动屏幕上

6、的光标,光标指到哪一个命令字时,按回车键就表示执行该命令。开始时,光标指向“FILE” ,表示对文件进行输入输出。按回车键,屏幕上“FILE”下面出现一个窗口,见图 2 所示。它是一个子菜单,提供多项选择。用“”键或“”将光标移到“LOAD”或“New”处,按回车键。表示要输入源程序。屏幕又出现一个小窗口,见图 3。Load F3Pick Alt-F3NewSave F2Write toDirectoryChange dirOS shellQuit Alt-x图 2 文件操作菜单Load File Namef.c图 3 输入编辑文件名窗口若指定文件名,可输入: file1.c 如果原来不存在此

7、文件名,则表示建立一个新文件。如果已存在此文件,则将此文件调入并显示在屏幕上。此时自动转为编辑(EDIT)状态。(2)编辑源程序。根据需要输入或修改源程序。 3(3)编译源程序。按“F9”键即可进行编译、连接,并在屏幕上显示有无错误和有几个错误。当按任何一个键后,屏幕显示源程序,光标停留在出错之处。在屏幕的下半部分显示出有错误的行和错误原因。根据此信息修改源程序。再按“F9”编译,如此反复进行到不出现错误为止。(4) 执行程序。按“FlO”键,屏幕又出现命令行菜单,如图 1 所示。用“”和“”键将光标移到“RUN” ,按回车键,便执行已编译好的目标文件。此时,屏幕上会显示出程序应输出的运行结果

8、。如果程序需要输入数据,则应在此时输入所需数据,然后接着执行程序,输出结果。如果发现运行结果不对,要重新修改源程序,可以再按“FlO”键,并用“”和“”键使光标指到“EDIT”处,按回车键,即进入编辑状态,可以根据需要修改源程序,并重复上述 2、3、4 步,直到得到正确结果为止。(5)可以用“Alt”和“X”键(同时按此二键),退出 Turbo C。4 实验一般步骤(1)准备好实验所需的程序。手编程序应书写整齐,并经人工检查无误后才能实验,以提高实验效率。对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意。初学者切忌不编程序或抄别人程序去上机,应从一开始就养成严谨的科学作风。(2)上机

9、输入和调试自己所编的程序。应该一人一组,独立实验。上机过程中出现的问题,除了是系统的问题以外,一般应自已独立处理,不要轻易举手问教师。尤其对“出错信息” ,应善于自己分析判断。这是学习调试程序的良好机会。在使用键盘时,最好采用正确的指法击键,为今后正确使用键盘打下基础。在程序调试通过后,打印输出程序清单和运行结果,在运行时要注意在输入不同数据时所得到的不同结果。此时应运行几次,分别检查在不同情况下程序是否正确。(3)实验结束后,提交实验报告,实验报告应包括以下内容: 实验目的; 实验内容; 程序清单(手写或计算机打印出的程序清单); 运行结果(必须是上面程序清单所对应打印输出的结果); 结果分

10、析:对运行情况所作的分析以及本次调试程序所取得的经验。如4果程序未能通过,应分析其原因。5 实验时数总实验时数不得少于 16 学时。6 实验内容和要求目的要求:本实验是计算机专业及理工科专业的C 语言程序设计的配套实验指导书。C 语言程序设计上机实验不仅可以加强学生对理论知识的快速吸收,还有助于提高学生对实际问题抽象描述的理解能力;补充习题的安排遵循深入浅出、循序渐进的原则,从而突出 C 语言的实用性和灵活性。实验一 数据及顺序结构程序设计一、目的要求:1掌握 C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;2了解在该系统

11、上如何编辑、编译、连接和运行一个 C 程序;3通过运行简单的 C 程序,初步了解 C 源程序的特点。4学会使用 C 的有关算术运算符,以及包含这些运算符的表达式;特别是自加(+)和自减(-)运算符的使用;5掌握 C 语言中使用最多的一种语句-赋值语句的使用;6掌握数据的输入输出的方法,能正确使用各种格式转换符。二、实验内容:选作以下题目,编程序,然后上机调试运行,分析运行结果。1编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。2编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。3编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点

12、后第二位数进行四舍五入,最后输出结果。4编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。5设圆半径 r=1.5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用 scanf 输入数据,输出计算结果,输出时要求有文字说明,5取小数点后二位数字。请编程序。6编程序,用 getchar 函数读入两个字符给 cl、c2,然后分别用 putchar函数和 printf 函数输出这两个字符。并思考以下问题,(l)变量 cl、c2 应定义为字符型或整型?二者皆可?(2)要求输出 cl 和 c2 值的 ASCII 码,应如

13、何处理?用 putchar 函数还是 printf 函数?(3)整型变量与字符变量是否在任何情况下都可以互相代替?如:char c1, c2;与 int cl, c2;是否无条件地等价?编程序,输入输出现在的时间、今天的日期及星期几。实验二 选择结构程序设计一、 目的要求1了解 C 语言表示逻辑量的方法(以代表“假“,以 l 代表“真“);2学会正确使用关系运算符和关系表达式,逻辑运算符和逻辑表达式;3熟练掌握 if 语句和 switch 语句;二、 实验内容选作以下题目,编程序,然后上机调试运行,分析运行结果。1 输入三个整数,打印出它是奇数还是偶数。2 输入三个数,打印出最大者。3 输入四

14、个数,按降序打印输出。4 编程,输入一位学生的生日和当前的日期,输出该生的实足年龄。5 设计一个判断输入年份是否为闰年的 C 程序。闰年的条件是:(1)年数能被 4 整除而不能被 100 整除,则是闰年。(2)年数能被 400 整除,也是闰年。6 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。7 编程实现以下函数,输入 x 的值,输出计算结果 y。6实验三 循环结构程序设计一、目的要求1熟悉用 while 语句,do 一 while 语句和 for 语句实现循环的方法;2掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。三、 实验内容1. 打印出所有的“水仙

15、花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。2 一球从 100 米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第 10 次落地时,共经过多少米? 第 10 次反弹多高?3 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩一个桃子了。求第一天共摘多少桃子。4两个乒乓球队进行比赛,各出三人。甲队为 A、B、C 三人,乙队为X、Y、Z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单,A 说他不和X 比,

16、C 说他不和 X、Z 比,请编程序找出三对赛手的名单。编程求 1-3+5-7+-99+101 的值。5编程求以下分数序列的前 20 项之和。6 编程求 的值。7编程打印以下图形:*,1328,5,12 !1!4321!n)10(532xy7*8. 编程求解下列问题:用 1 元纸币兑换 1 分、2 分和 5 分的硬币,要求兑换硬币的总数为 50 枚,问共有多少种换法?每种换法中各种硬币分别是多少?实验四 数 组一、目的要求1掌握一维数组和二维数组的定义、初始化、赋值和输入输出的方法;2掌握字符数组和字符串函数的使用;3掌握与数组有关的算法(特别是排序算法)。二、实验内容选作以下题目,编程序,然后

17、上机调试运行。1用冒泡法对 10 个数排序(由小到大)。10 个整数用 scanf 函数输入。2用选择法对 10 个整数排序。3打印出以下的杨辉三角形(要求打印 10 行)11 11 2 11 3 3 11 4 6 4 14有 15 个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数” 。5 有一篇文章,共有 3 行文字,每行有 80 个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格、以及其它字符的个数。6打印以下图案* * * * * * * * * * * * * * * * *8* * * *

18、*7将两个字符串连接起来,不要用 strcat 函数。8找出一个二维数组的“鞍点“,即该位置上的元素在该行上最大,在该刊上最小。也可能没有鞍点。实验五 函 数一、目的要求1掌握函数的定义和调用方法;2掌握函数实参与形参的对应关系,以及“值传递“的方式;3掌握函数的嵌套调用和递归调用的方法;4掌握全局变量和局部变量动态变量、静态变量的概念和使用方法;5掌握宏定义的方法;6掌握文件包含处理方法;7掌握条件编译的方法。二、实验内容 选作以下题目,编程序,然后上机调试运行,分析运行结果。1写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。2用一个函数来实现将一行字符串中最长的单词输出。此行

19、字符串从主函数传递给该函数。3用递归法将一个整数转换成字符串。例如,输入 483,应输出字符串“483“。n 的位数不确定,可以是任意的整数。4求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。5用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。6不用全局变量,两个整数在主函数中输入,并传送给函数 l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数扒以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。7写一函数,输入一个十六进制数,输出相应的十进制数。8定义一个带参数的宏,使两个参数的值互换。在主

20、函数中输入两个数作9为使用宏的实参,输出已交换后的两个值。说明:在程序主函数使用宏时只能用两个实参,如 SWAP(a,b),不能用三个实参。9设计输出实数的格式,包括:(1)一行输出一个实数;(2)一行内输出两个实数;(3)一行内输出三个实数。实数用“%62f“格式输出。用一个文件“print-formath“包含以上用#define 命令定义的格式。在自己的文件(自己命名)中用村 include 命令将%print-format,h“文件包含进来。在程序中用 scanf 函数读入三个实数给 fl、f2、f3。然后用上面定义的三种格式分别输出fl;fl,f2;fl,f2,f3。10用条件编译方

21、法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如a变成b, z变成a。其它字符不变)。用#defjne 命令来控制是否要译成密码。例如:#define CHANGE l则输出密码。若#define CHANGE O则不译成密码,按原码输出。用条件编译方法来处理。实验六 指针、位运算一、目的要求1掌握指针的概念,会定义和使用指针变量;2学会使用数组的指针和指向数组的指针变量;3学会使用字符串的指针和指向字符串的指针变量;4学会使用指向函数的指针变量;5了解指向指针的指针的概念及其使用方法;6掌握按位运算的概念和方法,学会使用位运算符 17学会通过位运

22、算实现对某些位的操作。二、实验内容选作以下题目,编程序,然后上机调试运行,分析运行结果。1输入三个整数,按由小到大的顺序输出。102输入三个字符串,按由小到大的顺序输出。3输入 10 个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数:a.输入 10 个整数;b.进行处理;c.输出 10 个整数。4有 n 个人围成一圈,顺序排号。从第 1 个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,问最后留下的是原来第几号的那位。5编写一函数,求一个字符串的长度。在 main 函数中输入字符串,并输出其长度。6输入一行文字,找出其中大写字母、小写字母、空格、数字以

23、及其它字符各有多少?7编写一函数,将一个 3X3 的矩阵抟置。8编写一函数,实现两个字符串的比较。即自已写一个 strcmp 函数。9编写一函数,对传送过来的三个数选出最大和最小数,并通过形参传回调用函数。10编写一个 strlen 函数,测出字符串的长度,函数返回值就是字符串的长度。11编写一个函数 atoi,作用是将一个整型字符串转换成一个整数。12编写一个函数 itoa,作用是将一个整数转换成一个字符串。13编写一个函数 ftoa,作用是将一个实型数转换成一个字符串。14编写一个函数,找出一个大小为 mn 的二维数组中最大值所在的行和列,以及该最大值。15有 n 个数,使前面的各数顺序向

24、后移 m 个位置,最后 m 个数变成最前面 m 个数,编写一函数实现以上功能。16编写一个函数 getbits,从一个 16 位的单元中取出某几位(即该几位保留原值,其余位为 0)。函数调用形式为:getbits(value,nl,n2)value 为该 16 位(两个字节)中的数据值,nl 为欲取出的起始位,n2 为欲取出的结束位。17写一函数,对一个 16 位的二进制数取出它的奇数位(即从右边起第1、3、5、15 位)。18编一函数用来实现左右循环移位。函数名为 move,调用方法为move(value,n)其中 value 为要循环位移的数,n 为位移的位数。如 n0 为右移。如 n=4

25、,表示要右移 4 位;n=-3,为要左移 3 位。19设计一个函数,使给出一个数的原码,能得到该数的补码。11实验七 结构体和简单链表的使用一、目的要求1. 掌握结构体类型变量的定义和使用; 2掌握结构体类型数组的概念和应用;3掌握链表的概念,初步学会对链表进行操作; 4掌握共用体的概念与使用。二、实验内容选作以下题目,编程序,然后上机调试运行,分析运行结果。1定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几日。2编写一个函数 days,实现上面的计算。由主函数将年、月、日传递给主函数输出。3已有 a、b 两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列

26、。4有两个链表 a 和 b,设结点中包含学号、姓名。从 a 链表中删去与 b 链表中有相同学号的那些结点。5将一个链表按逆序排列,即将链头当链尾,链尾当链头。6设有以下结构类型说明:struct stud char num5, name10;int s4;double ave; 请编写:(1)函数 readrec 把 30 名学生的学号、姓名、四项成绩以及平均分放在一个结构体数组中,学生的学号、姓名和四项成绩由键盘输入,然后计算出平均分放在结构体对应的域中。(2)函数 writerec 输出 30 名学生的记录。(3)main 函数调用 readrec 函数和 writerec 函数,实现全部

27、程序功能 (注:不允许使用全局变量,函数之间的数据全部使用参数传递)。7已知 head 指向一个带头结点的单向链表,链表中每个结点包含数据域 (data)和指针域 (next),数据域为整型。请分别编写函数,在链表中查找数据域值最大的结点:12(1)由函数值返回找到的最大值(2)由函数值返回最大值所在结点的地址值8 建立一个结构体数组,存放一个学生的信息,包括学号、姓名、性别、出生日期、住址、邮编、电话号码。分别编写下列函数:(1)按学号顺序打印;(2)按性别分类打印;(3)打印同月出生的学生信息;(4)打印来自同省的学生信息。实验八 文件基本使用一、目的要求1掌握文件以及缓冲文件系统、文件指

28、针的概念2学会使用文件打开、关闭、读、写等文件操作函数。3学会用缓冲文件系统对文件进行简单的操作。二、实验内容 选作以下题目,编程序,然后上机调试运行,分析运行结果。1从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件中保存。输入的字符串以“!”结束。2编程将两个文件合并成一个新的文件。文件名由命令行给出。3编程实现文件的拷贝,文件名由命令行给出。4有 5 个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件中。5将上题文件中的学生数据,按平均分进行排序处理,将已排序的学

29、生数据存入一个新文中。6 将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩,程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。7上题结果仍存入原有的文件而不另建立新文件。8有一磁盘文件“emploee” ,内存放职工的数据。每个职工的数据包括:职工姓名、职工号、性别、年龄、住址、工资、健康状况、文化程度。今要求将职工姓名、工资的信息单独抽出来另建一个简明的职工工资文件。139从上题的“职工工资文件”中删去一个职工的数据,再存回原文件。10从键盘输入若干行字符(每行长度不等),输入后把它们存储到一磁盘文件中。再从该文件中读入这些数据,将其中小写字母转换成大写字母后在显示屏上输出。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报