高级语言程序设计实验指导

上传人:仙*** 文档编号:125512286 上传时间:2022-07-27 格式:DOC 页数:19 大小:101.02KB
收藏 版权申诉 举报 下载
高级语言程序设计实验指导_第1页
第1页 / 共19页
高级语言程序设计实验指导_第2页
第2页 / 共19页
高级语言程序设计实验指导_第3页
第3页 / 共19页
资源描述:

《高级语言程序设计实验指导》由会员分享,可在线阅读,更多相关《高级语言程序设计实验指导(19页珍藏版)》请在装配图网上搜索。

1、高级语言程序设计实验指导书前 言高级语言程序设计是计算机专业的必修课程。课程的任务是通过对C语言程序设计的语法规则及相关的基本概念的学习,使学生掌握分析问题、解决问题的方法,结合上机实践,使学生学会程序设计的基本方法和技巧,为培养和提高学生的动手实践能力和综合编程的能力打下基础。高级语言程序设计是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解程序设计的基本思想,锻炼学生的动手能力,提高学生的综合应用知识的能力。本课程实验要求学生在学习了计算机导论前导课程后,学习高级语言程序设计的对应章节,作好预习,独立或合作进行实验,并在实验后完成实验报告和实验小结。为帮助老师和学生开展实

2、验,我们特编了这本指导书,希望能对我校的高级语言程序设计教学工作有所帮助。目 录实验1 C语言的编程环境36实验2 数据类型、运算符和表达式38实验3 控制语句40实验4 函 数42实验5 数 组44实验6 指 针47实验7 结构体与公用体49实验8 文 件51实验1 C语言的编程环境一实验目的1初步了解C程序的编译、连接和运行的过程。2掌握和理解C程序的结构。二实验内容1使用TC2运行一个简单的C程序三实验环境PC微机;DOS操作系统或 Windows 操作系统;Turbo C 程序集成环境。四实验步骤1启动Turbo C如果用户计算机系统已经安装了Turbo C编译系统,则在DOS命令状态

3、下键入命令tc。进入Turbo C集成环境后,首先在屏幕上显示Turbo C主菜单窗口。 在该窗口,有8个菜单条目。每一个菜单的意义如下:File 处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列表、改变工作目录),退出系统及调用DOS 。Edit 建立、编辑源文件。Run 控制运行程序。如果程序已经编译连接好,且Debug/Source Debugging以及Option/Compiler/Code generation/OBJ Debug Information开关置为On,则可以用此菜单初始化调试阶段。Compile 编译并生成目标程序与可执行文件。Project 允许

4、说明程序中包含哪些文件的管理条目。Options 可以选择集成环境任选项(如存储模式、编译时的任选项、诊断及连接任选项)及定义宏;也可以记录Include Output及Library文件目录,保存编译任选项和从配置文件加载任选。Debug 检查、改变变量的值,查找函数,程序运行时查看调用栈。选择程序编译时是否在执行行代码中插入调试信息。Break/Watch 增加、删除、编辑监视表达式,及设置、清除、执行至断点。特别要指出的是,除了Edit项外,每一个菜单又有对应的子菜单。而选择Edit项目后,只是进入编辑器。为了从主菜单中选择所需要的功能,可以用以下两种方式之一:(1)按F10键后,可以看

5、到屏幕上部主菜单中有反白显示,此时,利用左、右光标移动键(与)选择需要的菜单,然后按回车(Enter)键。(2)直接按Alt+主菜单条目中的首字母(分别为F,E,R,C,P,O,D,B),此时就会出现相应的子菜单。例如,按Alt+F表示选择文件子菜单(File)。当出现子菜单时,其中某个条目是高亮度的,此时可以利用上、下光标移动键(与)来移动该高亮度线,从而选择所需要的功能。在菜单调用时,按Esc键后将直接返回到活动窗口。2输入程序 输入以下程序main()printf(“How are you!”);3运行程序按Ctrl+F9运行程序,如果没有报错,可以按Alt+F5查看运行结果,再按空格键

6、回到编辑窗口。4保存文件按F2键,弹出一个对话框,在对话框中输入文件名,如:exam1c。5退出TC程序按Alt+X键,弹出对话框,提示是否真的要退出TC,如果输入Y就会退出TC。6打开已经存在的文件(1)首选启动TC。(2)按F3,弹出对话框。(3)在该对话框中,输入文件名即可。五思考题总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。实验2 数据类型、运算符和表达式一实验目的1了解语言中数据类型的意义;2掌握不同数据类型之间的赋值的规律;3学会有关C语言的有关运算符,以及包含这些运算符的表达式,特别是是+和运算符的使用。4进一步熟悉C程序的编辑环境。二实验内容1用printf函

7、数来输入表达式运行结果2观察实验步骤中表达式的结果三实验环境PC微机DOS操作系统或 Windows 操作系统Turbo C 程序集成环境四实验步骤1当x=5,y=6,z=7时xxx!=yx=z-2x=x-2x=zxn、mn、mn和m=n 的情况各取一组数据进行测试,检查程序的正确性。 (3)修改程序,把两个函数分别放在两个程序文件中,作为两个文件进行编译、链接和运行。 5整数a,b的最大公约数是指既能被a整除又能被b整除的最大整数。整数a,b的最小公倍数是指既是a的倍数又是b的倍数的最小整数。编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整

8、数的最小公倍数。 要求:(1)两个整数在主函数中输入,并在主函数中输出求得的最大公约数和最小公倍数。 (2)首先将两个整数a和b作为实参传递给函数gcd(),求出的最大公约数后,由函数gcd()带值返回主函数,然后将最大公约数与两个整数a、b一起作为实参传递给函数mul(),以此求出最小公倍数,再由函数mul()带值返回主函数。 (3)修改函数gcd(),函数gcd()采用递归调用的编写方法,两个整数a和b的最大公约数的递归公式是:如果b=0,那么gcd(a,b)=x,否则gcd(a,b)= gcd(b,a%b)。 然后将最大公约数与两个整数a、b一起传递给函数mul(),求出最小公倍数,再由

9、函数mul()将最小公倍数返回主函数。 (4)修改程序,采用全局变量的处理方法,将最大公约数和最小公倍数都设为全局变量,分别用函数gcd()和函数mul()求最大公约数和最小公倍数,但其值不是由函数返回,而是通过全局变量在函数之间传递的特性将结果反映在主函数中。五思考题1 小结函数的定义及调用方法;2 小结函数中形参和实参的结合规则;3 编写和调试包含多模块的程序时,容易出现什么样的错误?根据自己的实践总结一 下。实验5 数 组一实验目的1掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。 2掌握字符数组

10、与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。 3掌握与数组相关的算法,包括排序算法和查找算法等。 二实验内容有关数组的程序设计三实验环境PC微机DOS操作系统或 Windows 操作系统Turbo C 程序集成环境四实验步骤1编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。 要求:(1)数组为整型数组(10个元素)。(2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在

11、数组中的位置。 (4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序? 2编程实现:在给定的字符串中查找满足条件的第一个字符。要求:(1)字符串采用初始化的方式处理。(2)通过scanf函数读入一个任意字符。(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。3编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n n),形成n n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定

12、义)。 例如:原始数据: n=4 结果数据:1 2 3 4 8 11 14 163 5 9 10 3 5 9 10 8 11 14 16 1 2 3 4 15 2 7 6 15 2 7 6 要求: (1)本题中所涉及到的循环都采用for语句。 (2)在输入/输出时进行必要的说明。(3)对输入的210之间的整数(例如4)以n=4的格式输出。(4)输入一个n n矩阵(假定最大值与最小值不在同一行上),输出原始矩阵数据(按上述矩阵形式)。(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。 (6)修改程序,对最大值与最小值可能出现在一行上的情况做出说明。

13、(7)对n为3,4,5时,输入数组元素是要注意哪些问题?执行程序,检查程序的正确性。4编程实现“折半查找”的过程。折半查找的处理过程是:在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。 要求: (1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。 (2)用scanf函数输入一个要找的数。 (3)对查找的结果给出相应的说明,如果找到该数,则给

14、出该数是数组中第几个元素。如果该数不在数组中,则输出“无此数”信息。 (4)任意输入一些数据,检查程序的正确性。 (5)修改程序,设定输入的数据是无序的,采用scanf函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找”。最后通过测试几组差别较大的数据检查程序的正确性。 (6)修改程序,改为函数调用的形式。编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。在主函数中输入数据(无序),调用上述函数,输出结果。5编程实现:三个学生、五门课程的成绩分别存放在46矩阵的前35列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。计算单科的成

15、绩总和存放在最后一行的对应列上,并输出单科成绩的平均分。输入/输出格式举例如下: Input(输入成绩): 65 87 68 56 78 83 94 67 85 91 71 75 69 84 89 Output(输出结果) : 65 87 68 56 78 705 83 94 67 85 91 840 71 75 69 84 89 775 2190 2560 2040 2580 2320 0 average: 730 853 680 860 773 要求: (1)数组类型为实型,输入成绩由scanf函数实现。(2)输出已输入的原始成绩数据(35)。 (3)计算每个学生的平均成绩以及单科的成绩总

16、和并按要求填入到数组中,输出填入结果后的数组(46)。(4)j计算单科平均成绩后输出。 6编写函数catStr(char str1,char str2)用于进行两个字符串的连接,编写函数lenStr()用于统计一个字符串的长度。编写函数cmpStr()用于判断两个字符串的大小。 要求: (1)不允许使用字符处理库函数。(2)在主函数以初始化的方式输入两个字符串str1、str2。调用函数lenStr()计算字符串的长度。 (3)调用函数cmpStr()判断两个字符串的大小,如果str1大于等于str2,调用函数catStr()进行两个字符串的连接,将str1连接在str2后,否则,将str2连

17、接在str1后,调用函数lenStr()统计连接后的字符串长度。 (4)在主函数中输出两个原始字符串和各自的长度以及处理后字符串及其长度。五思考题小结有关数组和字符串的程序设计方法。实验6 指 针一实验目的1掌握指针的基本概念和基本用法。包括:变量的地址和变量的值,指针变量的说明、指针变量的初始化、指针的内容与定义格式、指针的基本运算等;2掌握数组与指针的关系并能够利用指针解决数组的相关问题;3掌握字符串与指针的关系并能够利用指针处理字符串的问题;4掌握指针与函数的关系并能够利用指针处理函数问题;5了解指向指针的指针的概念及其使用方法;6能够使用指针进行程序设计。二实验内容有关指针的程序设计三

18、实验环境PC微机DOS操作系统或 Windows 操作系统Turbo C 程序集成环境四实验步骤1编程实现:任意输入的10个数,求其平均值。 要求: (1)10个数采用scanf语句读入。 (2)利用指针实现对这10个数的访问。 (3)要求平均值的精度为小数后面2位。 2编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。 要求: (1)整数数组由初始化方式输入。任意整数由scanf函数输入;(2)实现过程采用指针处理;(3)输出原始数组数据以及插入数据后的数组数据并加以相应说明。3编写函数newcopy(char *new,char *old),它的功能是删除

19、old所指向的字符串中的小写字母,并将所得到的新串存入new中。 要求: (1)在主函数中以初始化方式输入一个字符串;(2)调用newcopy()函数;(3)在主函数中输出处理后的结果。4编程实现:输入三个整数,按由大到小的顺序输出。 要求: (1)通过scanf函数输入三个数据并存入三个变量中;(2)利用指针实现从大到小输出;(3)修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出;(4)修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出;(5)体会指针对不同数据处理的特点。 五思考题小结函数指针、数组指针、字符串指针的使用。实验7 结构体与

20、公用体一实验目的1理解结构体类型的含义;掌握结构体类型变量的定义方法和使用;结构体类型变量的说明以及初始化方法。2理解结构体与数组的区别;掌握结构体类型数组的概念、定义和使用方法。 3掌握链表的概念,初步学会对链表进行操作,包括建立链表、输出链表。 4掌握共用体的概念与使用。 二实验内容有关结构与共同体的程序设计三实验环境PC微机DOS操作系统或 Windows 操作系统Turbo C 程序集成环境四实验步骤1编写程序,输入今天的日期,计算今天在本年中是第几天。 要求: (1)建立结构体变量;(2)利用scanf函数输入年、月、日; (3)输出格式是:The day is the ?day;(

21、4)修改程序,判断某天是某年的第几天。(提示:需要对闰年做判定) 2编程实现:在一个结构数组中,存有三个人的姓名和年龄,输出三人中年龄居中者的姓名和年龄。 要求: (1)利用指针实现处理过程。 (2)三个人的数据采用初始化方式输入。 (3)修改程序,将(2)改为采用scanf函数读入方式。 3编写一个函数inGrade(),其功能是输入学生数据;编写函数aveGrade(),其功能是计算学生的平均成绩;编写函数maxGrade(),其功能是查找平均成绩最高的学生的数据;编写函数out Grade(),其功能是输出学生的成绩数据。现有15名学生的数据信息,每个学生的数据信息包括学号、姓名、4门课

22、程(programmer、database、network、operat-system)的成绩。 要求: (1)首先在主函数中调用函数inGrade()从键盘输入15个学生数据;(2)其次在主函数中调用函数aveGrade()计算15名学生的4门课程的平均成绩。 (3)然后在主函数中调用maxGrade()查找平均成绩最高的学生的数据(包括学号、姓名、4门课的成绩、平均分)。 (4)最后在主函数中调用函数out Grade(),输出该学生的数据信息。 (5)修改程序,将函数maxGrade()的功能改为对所有学生按平均成绩进行排序。并在主函数中调用它,之后输出所有学生的已排序的数据表。4编写程

23、序:建立一个学生数据链表,每个结点信息包括如下内容:学号、姓名、性别、年龄和专业。对该链表作如下处理:(1)输入一个学号,如果链表中的结点中包含该学号,则将此结点删去(最多只有一个节点)。(2)输入一个专业,如果链表中的结点包含该专业,则将此结点删去(可能有多个节点)。五思考题叙述链表的概念,小结对链表的各种操作。实验8 文 件一实验目的1掌握文件的基本概念,包括:文件与文件输入/输出的基本概念、C语言中文件的组织形式、文件的一般操作步骤、文件的基本操作及其特点。2掌握常用文件操作函数的使用,如文件的打开/关闭、文件的读/写等操作。3掌握对文件的简单操作,应用文件系统进行程序设计。二实验内容有

24、关文件的程序设计三实验环境PC微机DOS操作系统或 Windows 操作系统Turbo C 程序集成环境四实验步骤1编程实现:将一个实数f=555678和一个整型数组a5的数据写到磁盘文件TEXTdat中,然后再读回到另一个实型变量ff及另一个整型数组b5中。 要求: (1)对整型数组a5采用初始化方式,对一个实数赋初值f=555678。 (2)建立一个磁盘文件TEXTdat。将上述初始化的数据写入该文件。 (3)重新打开文件TEXTdat,将该文件中的数据读入到一个实型变量ff和一个整型数组b5中。 (4)输出实型变量ff(精度为02)和数组b5的内容。 2编程实现:利用文件系统对数据信息的

25、处理。现有5名学生的数据信息,每个学生的数据信息包括学号、姓名、4门课程(programmer、database、network、operat-system)的成绩,数据信息见下表。Num Name programmer database operat-system network 0113 Zhang 89 82 90 75 0114 LI 67 78 80 58 0115 WANG 89 75 60 50 0116 ZHAO 90 70 70 72 要求: (1)将上述原始数据写入磁盘文件studata中;(2)输出studata文件中的数据。检查输入数据的正确性。如果有错误,需要重新输入

26、数据;(3)根据studata文件中的数据,计算每个学生的平均成绩并将学号、姓名以及对应的平均成绩写入文件avedata中;(4)检查avedata文件的数据的正确性;(5)根据avedata文件中的平均成绩进行排序,排序的结果存放于sortdata文件中;(6)检查sortdata文件数据的正确性,并输出第一名同学的学号、名字和平均成绩;(7)在sortdata文件内查找学号为n(n由scanf输入)的学生信息,如果找到,输出该信息之后删除该学生信息;(8)检查sortdata文件的数据正确性。 五思考题1 缓冲文件系统和非缓冲文件系统的区别?2文件打开和关闭的含义?为什么要打开和关闭文件?

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!