ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:569.99KB ,
资源ID:7308055      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7308055.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《高级语言程序设计》实验指导书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《高级语言程序设计》实验指导书.docx

1、高级语言程序设计实验指导书高级语言程序设计实验指导书浙江农林大学数学实验室前言一、实验的目的学习C程序设计课程不能满足于能看懂书上的程序,而应当熟练地掌握程序设计的全过程,即独立编写源程序、独立上机调试、独立运行程序和分析结果。上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,以及自己编写的程序的正确与否。程序设计课程上机实验的目的是:1. 加深对讲授内容的理解,尤其是一些语法规定。通过实验来掌握语法规则是行之有效的方法。2. 学会上机调试程序。通过反复调试程序掌握根据出错信息修改程序的方法。3. 通过调试完善程序。二、实验前的准备工作1. 了解所用的计算机系统(包括C编译系统)的性能和使用

2、方法。2. 复习和掌握与本实验有关的教学内容。3. 准备好上机所需的程序,切忌不编程或抄别人的程序去上机。4. 对程序中出现的问题应事先估计,对程序中自己有疑问的地方应先作上记号,以便上机时给予注意。5. 准备好调试程序和运行程序所需的数据。三、实验任务与时间安排实验序号实验内容拟实验时间实验形式1熟悉开发环境1验证性2数据类型、运算符和表达式2验证性3顺序结构程序设计3验证性4选择结构程序设计3验证性5循环结构程序设计4验证性6数组程序设计5验证性7函数程序设计(一)3验证性8函数程序设计(二)3验证性9指针程序设计(一)3验证性10指针程序设计(二)3验证性11结构体与共用体2验证性12文

3、件操作1验证性13综合实验3设计性四、完成实验报告完成实验后,需撰写实验报告。实验报告中应包含以下内容:1. 实验目的。2. 实验内容。3. 程序清单。4. 运行结果。5. 对运行结果的分析,以及本次调试程序所取得的经验。实验一 熟悉开发环境(验证性)(上机实验1学时)一、实验目的1. 了解Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。2. 了解在该系统上如何编辑、编译、连接和运行一个C源程序。3. 通过运行简单的C源程序,初步了解C源程序的特点。二、实验内容1. 检查自己所用的计算机系统。(1) 了解Windows资源管理器的使用方法,查找Vi

4、sual C+6.0所在目录。(2) 启动“记事本”程序,掌握文本文件(后缀名为.txt)的建立方法。2. 学习进入并熟悉VC+6.0集成环境。(1) 在桌面上找到名为“Microsoft Visual C+ 6.0”的图标,或通过“开始”菜单进入Visual C+6.0,新建一个名为“实验一”的工程。(2) 熟悉VC+6.0的集成环境,了解各菜单项有哪些子菜单。3. 练习在工程“实验一”中编辑并运行简单的C源程序。(1) 新建一个C源文件Exercise1_1.c(程序见教材例1.1),注意区分大小写,在英文模式输入代码。(2) 编译、连接并运行程序,并熟悉Ctrl+F7、F7、Ctrl+F

5、5等快捷键的作用。(3) 新建一个C源文件Exercise1_2.c (程序见教材例1.3)。运行程序,若程序有错(出现error(s),则修改后继续运行程序。当没有错误信息时,输入:2,5并按Enter键,查看运行结果。4. 新建一个C源文件Exercise1_3.c,编辑并运行一个自己编写的程序,程序的功能是求两个整数的最小者,要求如下(譬如输入:6,11):(1) 在输入两个整数之前,有语句提示“请输入两个数:”。(2) 最终输出结果为“较小数为6”。三、实验步骤1. 启动Visual C+ 6.0 单击“开始/程序/Microsoft Visual Studio6.0/Microsof

6、t Visual C+ 6.0”,得到Visual C+ 6.0启动后的用户界面,如图1-1所示。*2. 创建新工程(1) 单击菜单“文件/新建”,显示“新建”对话框,如图1-2所示。(2) 在此对话框的列表栏中,选择“Win32 Console Application”(Win32控制台应用程序)。在“工程名称”栏中输入一个工程名,如“实验一”。在“位置”栏选择(或输入)工程所在的路径,如图中所示“D:C实验实验一”。单击“确定”按钮。(3) 再单击的“Win32 Console Application-步骤1 共1步” 对话框中选择一个空工程(An empty project)单选项。然后

7、单击“完成(Finish)”按钮,如图1-3所示。(4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。图1-1 Visual C+ 6.0用户界面图1-2 “新建”对话框3. 创建C源程序文件(1)选择“文件”菜单项,出现一个下拉式菜单,再选择该菜单中的“新建”选项(热键为Ctrl+N),打开“新建”窗口。(2) 选择“文件”,在它的下拉列表框中选择“C+ Source File”,如图1-4所示。在右边的“文件名”栏中输入你要创建的C源程序名字,譬如“eg1_1.c”,再单击“确定”,出现编辑屏幕,如图1-5所示。点左边窗口下方的“FileView”,可以看到“实验一File

8、s”下有3个文件夹:“Source Files”、“Header Files”和“Resource Files”。其中“Source Files”文件夹下面可以找到新创建的文件“eg1_1.c”。(3) 在“C源程序编辑”窗口下编辑C源程序。在编辑窗口键入C源程序。如图图1-3 “Win32 Console Application-Step 1 of 1” 对话框 图1-4 “新建C源文件”对话框1-6所示。4. 对源程序进行编译按热键“Ctrl+F7”或通过“组建”菜单中的“编译”命令,或使用工具栏中的“编译”工具进行编译(如图1-7所示),生成目标程序(eg1_1.obj)。在编译过程中发

9、现的错误显示在屏幕下方的“编译”窗口中。上述程序的“编译”窗口,如图1-8所示。5. 将目标程序进行连接 编译无错误后,按热键“F7”或执行“组建”菜单中的“组建”命令或通过工具栏中的“连接”工具,连接成功后,生成可执行文件实验一.exe(如果刚开始没有新建工程“实验一”,只是新建一个源程序,得到的将是eg1_1.exe),见图1-9。图1-5 编辑C源程序窗口图1-6 编辑C源程序 编译 连接 运行图1-7 工具栏中的“编译”、“连接”、“运行”命令图1-8 “编译”窗口图1-9 “连接”窗口6. 执行程序按热键“Ctrl+F5”,或通过“组建”菜单中的“执行”命令,或通过工具栏中的“!”工

10、具运行程序。这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中,如图1-10所示。图1-10 控制台窗口7. 退出VC+6.0环境单击菜单“文件/退出”,可以退出VC+6.0环境,回到Windows环境。如何关闭/打开工作空间单击菜单“文件/关闭工作空间”,关闭工作空间。再单击菜单“文件/打开工作空间”,在弹出的对话框中选定“D:C实验实验一实验一.dsw”,单击“打开”按钮,则可打开工作空间,对已建立的工程文件进行修改。*如果只要求建立一个C源程序,可以跳过步骤2。若要求同时建立几个源文件,必须先完成步骤2。四、实验要求1. 复习教材有关内容。2. 掌握C控制台程序的

11、开发、调试步骤。3. 完成实验报告。实验二 数据类型、运算符和表达式(验证性)(上机实验2学时)一、实验目的1. 掌握C语言的基本数据类型。2. 理解常量、变量的意义与区别。3. 理解不同类型的数据在内存中的存储形式(注意区别字符常量与字符串常量)。4. 掌握运算符的规则。5. 掌握不同数值类型的混合运算规则。二、实验内容与步骤1. 新建源文件Exercise2_1.c,比较整型数据、字符型数据以及字符串型数据的区别与联系。/*Exercise2_1.c*/#includeint main( )char c1,c2; /第3行c1=a;c2=b; /第4行printf(%c %cn,c1,c2

12、);printf(%d,%dn,c1,c2);return 0;(1) 运行此程序。(2) 将第3行改为:int c1,c2;然后再运行程序,并观察结果是否相同。说明整型数据与字符型数据有什么关系?(3) 将第4行依次改为:c1=a;c2=b;c1=a;c2=b;每改一次后,都运行程序,观察结果。说明单引号“”能去掉吗?能改成双引号“”吗?(4) 请修改程序,使输出结果为一个笑脸符号和一个百分比符号“%”。2. 新建源文件Exercise2_2.c,体会C编译系统自动的数据类型转换,问a与a有什么区别?/*Exercise2_2.c*/#includeint main( )int a=2;fl

13、oat b=1.0;double c=2.5;printf(%fn,a%3+a+b-c);return 0;3. 将习题编程并上机运行。(1) 源文件如下,源文件名Exercise2_3.c/*Exercise2_3.c*/#includeint main( )int i,j,m,n;i=8;j=10;m=+i; /第7行n=j+;printf(%d,%d,%d,%dn,i,j,m,n);return 0; 运行程序,注意i,j,m,n的值,分析赋值运算符“=”与自增运算符“+”的优先级和结合性。能否找到等价的两个语句可以替代第7行的语句“m=+i;”? 将第7,8行改为:m=i+;n=+j;

14、再次运行程序,并分析运行结果。(2) 按第3章习题6的要求编程并上机运行,源文件名Exercise2_4.c。要将“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. 复习教材有关内容。2. 完成

15、实验报告。实验三 顺序结构程序设计(验证性) (上机实验3学时)一、实验目的1. 掌握C语言的语句。2. 掌握输入输出函数的格式。3. 掌握顺序结构的程序设计方法。二、实验内容与步骤1. 掌握各种格式转换符的正确使用方法,源文件名Exercise3_1.c。/*Exercise3_1.c*/#include int main() char c1,c2;int i1,i2;float f1,f2;double d;unsigned short u1,u2;c1=a;c2=b; /*第7行*/i1=48;i2=49; /*第8行*/f1=3.56f; f2=-6.87f; /*第9行*/d=55.

16、5555; /*第10行*/u1=1;u2=-1;printf(c1=%c,c2=%cn,c1,c2);printf(i1=%d,i2=%dn,i1,i2);printf( 123456n);printf(f1=%6.2fnf2=%6.2fn,f1,f2);printf( 123456789ABCDEFn);printf(d1=%15.8fn,d);printf(u1=%u,u2=%un,u1,u2);return 0; (1) 运行程序并分析运行结果,特别要注意u2的输出结果。(2) 分析程序第9行为什么加字母“f”,加上有什么意义?在此基础上,修改程序的第7行:c1=a;c2=b; 分析运

17、行结果。(3) 依次修改程序第8-10行语句,采用scanf函数接收从键盘输入的数据,特别注意double型数据的输入:scanf(%d,%d”,&i1,&i2); /输入int型数据用%?scanf(%f,%f ,&f1,&f2); /输入float型数据用%?scanf(%lf,&d); /输入double型数据用%?运行程序,输入数据如下(注意每组数据间的空格,相邻的两个用“,”隔开的数据为一组):48,49 3.56,-6.87 55.55552. 编写程序,练习小数的输出用法,源文件名Exercise3_2.c。按第3章习题7的要求编写程序并运行:设圆半径r=1.5,圆柱高h=3,求

18、圆周长、圆面积,圆球表面积、圆球体积、圆柱体体积。用scanf输入数据,输出计算结果,输出时要有文字说明,取小数后2位数字。程序中的用PI代替。程序提示:/*Exercise3_2.c*/#define PI 3.14159 定义变量; /*变量应该定义成何种类型?*/输入; /*输入格式?*/求解; /*程序中的语句和数学公式的区别?*/输出; /*输出格式?*/3. 参考例3.9,用getchar函数读入两个字符给变量c1和c2,然后分别用putchar函数和printf函数输出这两个字符。源文件名Exercise3_3.c。 程序提示: /*Exercise3_3.c*/定义变量; /*

19、变量应该定义成何种类型?*/输入; /*用getchar函数怎么输入两个字符?*/输出; 注意:输入两个字符时必须是连续的,两个字符之间不能有分隔字符,否则系统会把分隔字符作为第二个字符读入。(1) 变量c1,c2应定义为字符型还是整型?还是两者皆可。(2) 如想读入字符a和b给变量c1和c2,用getchar函数和scanf函数分别应该怎么读入数据?两个函数各有什么特点?(3) 要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?4.(项目拓展题)使用printf函数编写学生成绩管理系统的用户界面。源文件名Exercise3_4.c。运行结果如下:三、实

20、验要求1. 复习教材有关内容。2. 完成实验报告。 实验四 选择结构程序设计(验证性) (上机实验3学时)一、实验目的1. 掌握关系运算符和逻辑运算符。2. 掌握 if 语句。3. 掌握 switch 语句。4. 掌握选择结构程序设计。二、实验内容与步骤 1. 求下列分段函数的输出值,程序运行中动态输入x的值,根据x所在范围决定输出值。用scanf函数输入x的值,求y的值,并用“%.2f”的格式输出。源文件名Exercise4_1.c。程序提示:/*Exercise4_1.c*/定义变量; /*变量应该定义成何种类型?*/输入; /*输入格式?*/求解; /*采用什么结构?*/输出; /*输出

21、格式?*/2. 输入一个百分制成绩,输出成绩等级A、B、C、D、E和成绩(保留2位小数)。90分及以上为A,8089为B,7079为C,6069为D,60分以下为E。要求从键盘输入成绩,然后输出相应等级,分别用if语句和switch语句实现,参考例5.7。源文件名Exercise4_2.c和Exercise4_3.c。程序提示:(1) 使用if语句的main函数结构如下:/*Exercise4_2.c*/定义变量; /*变量应该定义成何种类型?*/ 输入; /*输入格式?*/根据不同的成绩段,得到相应的等级; /*采用if语句*/输出; /*输出格式?*/(2) 使用switch语句的main

22、函数结构如下:(参考例4.6)/*Exercise4_3.c*/定义变量; 输入; 根据不同的成绩段,得到相应的等级; /*采用switch语句*/问:如何将一个分数段的分数转化成一个确定值?break语句是否可加可不加,将break语句去掉再试一下。输出; 3. 输入4个整数,按由小到大顺序输出。得到正确结果后,修改程序使之按由大到小的顺序输出,输出格式“%3d”。参考例4.3,源文件名Exercise4_4.c。程序提示:/*Exercise4_4.c*/定义变量; /*变量应该定义成何种类型?*/输入; /*输入格式?*/将4个整数从小到大排列; /*可以采用switch语句吗?*/输出

23、; 4. 输入一个不多于3位的正整数,要求输出它是几位数。源文件名Exercise4_5.c。应准备以下测试数据: 要处理的数为1位正整数; 要处理的数为2位正整数; 要处理的数为3位正整数;除此之外,程序还应当对不合法的输入作必要的处理,并给出中文提示。例如: 输入负数或零; 输入的数超过3位程序提示:/*Exercise4_5.c*/定义变量; /*变量应该定义成何种类型?*/输入; /*输入格式?*/ 判断是几位数以及不合法输入的处理; /*如何判断*/输出;5.(项目拓展题)在学生成绩管理系统中,使用getchar函数输入用户选择的编号,并显示结果。输入数字字符15,显示“你正使用学生

24、成绩*子系统”,输入6,显示“你已退出系统”,输入其他数字字符,显示“输入有误,请重新输入!”。源文件名Exercise4_6.c。运行结果如下:三、实验要求1. 复习教材有关内容。2. 完成实验报告。实验五 循环结构程序设计(验证性) (上机实验4学时)一、实验目的1. 掌握“当型”和“直到型”循环结构。2. 掌握while语句和 do-while 语句并区分二者的异同。3. 掌握 for 语句。4. 掌握循环结构程序设计。二、实验内容与步骤1. 输入两个正整数m和n,求它们的最大公约数和最小公倍数。采用两种方法,辗转相除法和连续整数检测法。源文件名Exercise5_1.c和Exercis

25、e5_2.c,要求:程序提示:(1) 辗转相除法的主要算法/*Exercise5_1.c*/定义变量; /*变量应该定义成何种类型?*/输入; /*输入格式?*/ 求出最大公约数和最小公倍数; 将m,n的值分别存储在两个变量tm,tn中;若m小于n,则交换m和n的值; /*保证m大于n*/r=m%n; /*m是被除数,n是除数,r是m除以n的余数*/ while(r) /*r不为0时,将原来的除数作为新的被除数,原来的余数作为新的除数,并做求余操作得到新的r值*/m=n;n=r;r=m%n;n即为最大公约数;tm*tn/n即为最小公倍数; /*为什么要借助tm,tn?为何不能直接用m*n/n

26、?*/输出; (2) 连续整数检测法的主要算法/*Exercise5_2.c*/定义变量; 输入; 求出最大公约数和最小公倍数;从m和n中的大的数开始往下检测,直到第一个能被两个数整除的数r为止,则r即为两个数的最大公约数; /*如何求最小公倍数?*/输出; 2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。源文件名Exercise5_3.c。程序提示:/*Exercise5_3.c*/定义变量; /*变量应该定义几个,对应何种类型?*/输入并统计个数; /*判断输入字符未结束,用(x=getchar()!=n*/*采取什么结构?*/*如何判断数字字符?*/输出; 3.

27、 编程求1到n中能被3或7整除的数之和,参考例5.3。分别用for循环语句和while循环语句完成本题。源文件名Exercise5_4.c和Exercise5_5.c。4. 在正整数中找出被3,5,7除余数分别为1,1,5的最小正整数。源文件名Exercise5_6.c。5. (百钱百鸡问题)100元钱买100只鸡。其中公鸡5元/只,母鸡3元/只,小鸡1元3只,问公鸡,母鸡和小鸡各多少只?要求用二重循环和三重循环实现。源文件名Exercise5_7.c和Exercise5_8.c。程序提示:公鸡,母鸡和小鸡最多为多少只?三种鸡的数量有什么关系?6. (素质拓展题)1、2、3这3个数字,能组成多

28、少个互不相同且无重复数字的三位正整数?输出符合条件的所有3位数和个数。源文件名Exercise5_9.c。程序提示:定义变量i,j,k分别表示百位,十位,个位,则i,j,k应该定义成何种数据类型,取值范围为?i,j,k互不相同如何表示?运行结果如下:7. (素质拓展题)打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。源文件名Exercise5_10.c。程序提示:定义变量n,i,j,k分别表示三位数及对应的百位,十位,个位,则i=n/100,j=?,k=?各位数字立方和等于该数本

29、身如何表示?运行结果如下:三、实验要求1. 复习教材有关内容。2. 完成实验报告。实验六 数组程序设计(验证性) (上机实验5学时)一、实验目的1. 掌握一维数组和多维数组的定义。2. 掌握对数组的引用规则。3. 理解多维数组的特殊性。4. 掌握字符数组和字符串。二、实验内容与步骤1. 用选择法对5个整数从小到大排序,5个整数用scanf函数输入,并将排序后的结果采用“%3d”的格式输出。参考例6.3,源文件名Exercise6_1.c。.程序提示:定义变量和数组; /*数组长度有什么要求?*/输入5个整数放到数组中; /*如何输入?*/输出5个整数;选择排序;for(i=1;i5;i+) /*对应数组声明int a6的情况*/ min=i; /*min是最小数所在位置的下标*/for(j=i+1;jaj) min=j; /*扫描后面的元素,若有更小的数,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1