已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级语言程序设计实 验 指 导 书东北林业大学信息与计算机工程学院计算机科学与技术目 录1 实验目的与要求 12 实验环境 13 Turbo C环境的程序开发步骤 24 实验一般步骤35 实验时数46 实验内容和要 求4实验一 数据及顺序结构程序设计4实验二 选择结构程序设计5实验三 循环程序设计6 实验四 数组的应用7实验五 函数的应用8实验六 指针、位运算的应用9实验七 结构体和简单链表的使用10实验八 文件的应用1211 实验目的与要求 上机操作是本课程必不可少的实践环节,主要目的是锻炼和培养学生实际操作技能和解决实际问题的能力。要求学生掌握C语言程序的设计、调试和运行方法,悉用C语言进行程序设计和调试的全过程,获得用高级语言解题的实际体会,加深对C语言本身的理解,得到程序设计方法和技巧的实际训练,从而使学生能真正利用C语言解决编程问题。 (1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们都很重要。通过多次上机,就能自然地、熟练地掌握。通过上机来掌握语法规则是行之有效的方法。 (2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件。使用者应该了解为了运行一个C程序,需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自已开发程序。每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一、二种计算机系统的使用,再遇到其它的系统时便会触类旁通,很快地学会。 (3)学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。经验丰富的人,当编译时出现出错信息时,能很快地判断出错误所在,并改正之。而缺乏经验的人即便在明确的出错提示下也往往找不出错误而求救于别人。计算机技术是实践性很强的技术,要求从事这一领域的人不仅能了解和熟悉有关理论和方法,还要求自己动手实现。对程序设计来说,要求会编程序并上机调试通过。因此调试程序本身是程序设计课程的一个重要的内容和基本要求,应给予充分的重湘。调试程序的经验固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积,而且有些经验是只能会意难以言传。因此,在实验时干万不要在程序通过后就认为万事大吉、完成任务了,而应当在已通过的程序基础上作一些改动(例如修改一些参数、增加程序一些功能、改变输入数据的方法等),再进行编译、连接和运行。甚至于自设障碍。,即把正确的程序改为有错的(例如用scanf函数输入变量时,漏写&符号;使数组下标出界;使整数溢出等),观察和分析所出现的情况。这样的学习才会有真正的收获,是灵活主动地学习而不是呆板被动的学习。2 实验环境(1)计算机的硬件配置PC系列微机,包括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 命令行菜单用键盘上的“”和“”键来移动屏幕上的光标,光标指到哪一个命令字时,按回车键就表示执行该命令。开始时,光标指向“FILE”,表示对文件进行输入输出。按回车键,屏幕上“FILE”下面出现一个窗口,见图2所示。它是一个子菜单,提供多项选择。用“”键或“”将光标移到“LOAD”或“New”处,按回车键。表示要输入源程序。屏幕又出现一个小窗口,见图3。 Load F3 Pick Alt-F3 New Save F2 Write to Directory Change dir OS shell Quit Alt-x 图2文件操作菜单 Load File Namef.c 图3输入编辑文件名窗口若指定文件名,可输入: file1.c 如果原来不存在此文件名,则表示建立一个新文件。如果已存在此文件,则将此文件调入并显示在屏幕上。此时自动转为编辑(EDIT)状态。 (2)编辑源程序。根据需要输入或修改源程序。 (3)编译源程序。按“F9”键即可进行编译、连接,并在屏幕上显示有无错误和有几个错误。当按任何一个键后,屏幕显示源程序,光标停留在出错之处。在屏幕的下半部分显示出有错误的行和错误原因。根据此信息修改源程序。再按“F9”编译,如此反复进行到不出现错误为止。 (4) 执行程序。按“FlO”键,屏幕又出现命令行菜单,如图1所示。用“”和“”键将光标移到“RUN”,按回车键,便执行已编译好的目标文件。此时,屏幕上会显示出程序应输出的运行结果。如果程序需要输入数据,则应在此时输入所需数据,然后接着执行程序,输出结果。 如果发现运行结果不对,要重新修改源程序,可以再按“FlO”键,并用“”和“”键使光标指到“EDIT”处,按回车键,即进入编辑状态,可以根据需要修改源程序,并重复上述2、3、4步,直到得到正确结果为止。(5)可以用“Alt”和“X”键(同时按此二键),退出Turbo C。4 实验一般步骤 (1)准备好实验所需的程序。手编程序应书写整齐,并经人工检查无误后才能实验,以提高实验效率。对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意。初学者切忌不编程序或抄别人程序去上机,应从一开始就养成严谨的科学作风。 (2)上机输入和调试自己所编的程序。应该一人一组,独立实验。上机过程中出现的问题,除了是系统的问题以外,一般应自已独立处理,不要轻易举手问教师。尤其对“出错信息”,应善于自己分析判断。这是学习调试程序的良好机会。 在使用键盘时,最好采用正确的指法击键,为今后正确使用键盘打下基础。 在程序调试通过后,打印输出程序清单和运行结果,在运行时要注意在输入不同数据时所得到的不同结果。此时应运行几次,分别检查在不同情况下程序是否正确。 (3)实验结束后,提交实验报告,实验报告应包括以下内容: 实验目的; 实验内容; 程序清单(手写或计算机打印出的程序清单); 运行结果(必须是上面程序清单所对应打印输出的结果); 结果分析:对运行情况所作的分析以及本次调试程序所取得的经验。如果程序未能通过,应分析其原因。5 实验时数 总实验时数不得少于16学时。6 实验内容和要求目的要求: 本实验是计算机专业及理工科专业的C语言程序设计的配套实验指导书。C语言程序设计上机实验不仅可以加强学生对理论知识的快速吸收,还有助于提高学生对实际问题抽象描述的理解能力;补充习题的安排遵循深入浅出、循序渐进的原则,从而突出C语言的实用性和灵活性。实验一 数据及顺序结构程序设计一、目的要求:1掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;2了解在该系统上如何编辑、编译、连接和运行一个C程序;3通过运行简单的C程序,初步了解C源程序的特点。 4学会使用C的有关算术运算符,以及包含这些运算符的表达式;特别是自加(+)和自减(-)运算符的使用; 5掌握C语言中使用最多的一种语句-赋值语句的使用; 6掌握数据的输入输出的方法,能正确使用各种格式转换符。二、实验内容:选作以下题目,编程序,然后上机调试运行,分析运行结果。1编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。2编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。3编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。4编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。 5设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后二位数字。请编程序。 6编程序,用getchar函数读入两个字符给cl、c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题,(l)变量cl、c2应定义为字符型或整型?二者皆可?(2)要求输出cl和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符变量是否在任何情况下都可以互相代替?如: char c1, c2;与 int cl, c2;是否无条件地等价?编程序,输入输出现在的时间、今天的日期及星期几。实验二 选择结构程序设计一、 目的要求1了解C语言表示逻辑量的方法(以代表假,以l代表真);2学会正确使用关系运算符和关系表达式,逻辑运算符和逻辑表达式;3熟练掌握if语句和switch语句;二、 实验内容选作以下题目,编程序,然后上机调试运行,分析运行结果。1 输入三个整数,打印出它是奇数还是偶数。2 输入三个数,打印出最大者。3 输入四个数,按降序打印输出。4 编程,输入一位学生的生日和当前的日期,输出该生的实足年龄。5 设计一个判断输入年份是否为闰年的C程序。闰年的条件是: (1)年数能被4整除而不能被100整除,则是闰年。 (2)年数能被400整除,也是闰年。6 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。7 编程实现以下函数,输入x的值,输出计算结果y。实验三 循环结构程序设计一、目的要求1熟悉用while语句,do一while语句和for语句实现循环的方法; 2掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。三、 实验内容1. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。2 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米? 第10次反弹多高?3 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘多少桃子。4两个乒乓球队进行比赛,各出三人。甲队为A、B、C三人,乙队为X、Y、Z三人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编程序找出三对赛手的名单。编程求1-3+5-7+-99+101的值。5编程求以下分数序列的前20项之和。6 编程求的值。7编程打印以下图形: * * * * * * *8. 编程求解下列问题:用1元纸币兑换1分、2分和5分的硬币,要求兑换硬币的总数为50枚,问共有多少种换法?每种换法中各种硬币分别是多少?实验四 数 组一、目的要求 1掌握一维数组和二维数组的定义、初始化、赋值和输入输出的方法; 2掌握字符数组和字符串函数的使用; 3掌握与数组有关的算法(特别是排序算法)。二、实验内容选作以下题目,编程序,然后上机调试运行。1用冒泡法对10个数排序(由小到大)。10个整数用scanf函数输入。2用选择法对10个整数排序。3打印出以下的杨辉三角形(要求打印10行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 14有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。 5 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格、以及其它字符的个数。 6打印以下图案 * * * * * * * * * * * * * * * * * * * * * * * * * 7将两个字符串连接起来,不要用strcat函数。 8找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该刊上最小。也可能没有鞍点。 实验五 函数一、目的要求 1掌握函数的定义和调用方法; 2掌握函数实参与形参的对应关系,以及值传递的方式; 3掌握函数的嵌套调用和递归调用的方法;4掌握全局变量和局部变量动态变量、静态变量的概念和使用方法;5掌握宏定义的方法;6掌握文件包含处理方法;7掌握条件编译的方法。二、实验内容 选作以下题目,编程序,然后上机调试运行,分析运行结果。 1写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。 2用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。 3用递归法将一个整数转换成字符串。例如,输入483,应输出字符串483。n的位数不确定,可以是任意的整数。 4求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。 5用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。 6不用全局变量,两个整数在主函数中输入,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数扒以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。 7写一函数,输入一个十六进制数,输出相应的十进制数。 8定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。 说明:在程序主函数使用宏时只能用两个实参,如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用条件编译方法实现以下功能: 输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如a变成b,z变成a。其它字符不变)。用#defjne命令来控制是否要译成密码。例如: #define CHANGE l则输出密码。若 #define CHANGE O则不译成密码,按原码输出。 用条件编译方法来处理。 实验六 指针、位运算一、目的要求 1掌握指针的概念,会定义和使用指针变量; 2学会使用数组的指针和指向数组的指针变量; 3学会使用字符串的指针和指向字符串的指针变量; 4学会使用指向函数的指针变量;5了解指向指针的指针的概念及其使用方法; 6掌握按位运算的概念和方法,学会使用位运算符17学会通过位运算实现对某些位的操作。二、实验内容 选作以下题目,编程序,然后上机调试运行,分析运行结果。 1输入三个整数,按由小到大的顺序输出。2输入三个字符串,按由小到大的顺序输出。3输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。 写三个函数:a.输入10个整数;b.进行处理;c.输出10个整数。4有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。5编写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。6输入一行文字,找出其中大写字母、小写字母、空格、数字以及其它字符各有多少?7编写一函数,将一个3X3的矩阵抟置。8编写一函数,实现两个字符串的比较。即自已写一个strcmp函数。9编写一函数,对传送过来的三个数选出最大和最小数,并通过形参传回调用函数。10编写一个strlen函数,测出字符串的长度,函数返回值就是字符串的长度。11编写一个函数atoi,作用是将一个整型字符串转换成一个整数。12编写一个函数itoa,作用是将一个整数转换成一个字符串。13编写一个函数ftoa,作用是将一个实型数转换成一个字符串。14编写一个函数,找出一个大小为mn的二维数组中最大值所在的行和列,以及该最大值。15有n个数,使前面的各数顺序向后移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,表示要右移4位;n=-3,为要左移3位。19设计一个函数,使给出一个数的原码,能得到该数的补码。实验七 结构体和简单链表的使用一、目的要求 1. 掌握结构体类型变量的定义和使用; 2掌握结构体类型数组的概念和应用; 3掌握链表的概念,初步学会对链表进行操作; 4掌握共用体的概念与使用。二、实验内容 选作以下题目,编程序,然后上机调试运行,分析运行结果。1定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几日。2编写一个函数days,实现上面的计算。由主函数将年、月、日传递给主函数输出。3已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。4有两个链表a和b,设结点中包含学号、姓名。从a链表中删去与b链表中有相同学号的那些结点。5将一个链表按逆序排列,即将链头当链尾,链尾当链头。6设有以下结构类型说明:struct studchar num5, name10; int s4; double ave;请编写:(1)函数readrec把30名学生的学号、姓名、四项成绩以及平均分放在一个结构体数组中,学生的学号、姓名和四项成绩由键盘输入,然后计算出平均分放在结构体对应的域中。(2)函数writerec输出30名学生的记录。 (3)main函数调用 readrec函数和writerec函数,实现全部程序功能 (注:不允许使用全局变量,函数之间的数据全部使用参数传递)。 7已知head指向一个带头结点的单向链表,链表中每个结点包含
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 函数的零点与方程的解课件2025-2026学年高一上学期数学人教A版必修第一册
- 德阳经济技术开发区管理委员会德阳经开区所属事业单位公开选调工作人员(22人)笔试考试参考题库及答案解析
- 2025云南玉溪市江川区农业农村局招聘公益性岗位工作人员2人笔试考试参考题库及答案解析
- 2026广州南方投资集团有限公司校园招聘考试笔试备考题库及答案解析
- 2026中储粮油脂有限公司招聘考试笔试参考题库附答案解析
- 2025安徽安庆市潜山市中医院招聘周转池编制卫生专业技术人员4人考试笔试模拟试题及答案解析
- 2025云南曲靖市马龙区部分事业单位面向区外选调工作人员15人(含选调计划)笔试考试参考试题及答案解析
- 2025江西上饶职业技术学院高层次人才招聘3人笔试考试备考试题及答案解析
- 2025年度七台河勃利县人民医院公开招聘编外人员26人考试笔试备考试题及答案解析
- 2025年下半年四川省第十一地质大队考核招聘10人笔试考试参考题库及答案解析
- 军品应急采购管理办法
- 保安安全检查记录表范本
- 慈善会救助管理制度
- 高压工作票管理制度
- 劳动技术课插座安装课件
- 退役军人参加培训协议书
- T/CIQA 2-2019检验鉴定从业人员行为规范
- 《医疗风险与法规》课件
- GB/T 13460-2025再生橡胶通用规范
- 2025陕西金融资产管理股份有限公司员工招聘(26人)笔试参考题库附带答案详解
- 2025年部编版小学语文3-6年级单元“语文要素”+“习作表达要求”
评论
0/150
提交评论