《高级语言程序设计》课程实验指导书doc.docx
- 文档编号:10294873
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:17
- 大小:24.58KB
《高级语言程序设计》课程实验指导书doc.docx
《《高级语言程序设计》课程实验指导书doc.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计》课程实验指导书doc.docx(17页珍藏版)》请在冰豆网上搜索。
《高级语言程序设计》课程实验指导书doc
《高级语言程序设计》课程实验指导书
第一部分上机实验的指导思想和要求
1,上机实验的目的
学习C程序设计课程不能满足于“憧得了”,满足于能看憧书上的程序,而应当熟练地掌握程序设计的全过程,即独立编写源程序、独立上机调试、独立运行程序和分析结果。
上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证日己所编写的程序的正确与否。
学习程序设计,上机实验的bl的是:
(1)加深对讲授内容的理解,尤其是一些语法规定。
通过上机来掌握语法规则是行之有效的方法。
(2)熟悉所用的操作系统。
(3)学会上机调试程序。
通过反夏上机掌握根据出错信息修改程序的方法。
2,上机实验前的准备工作。
(1)了解所用的计算机系统(包括C编译系统)的性能和使用方法。
(2)复习和掌握与本实验有关的教学内容。
(3)准备好上机所需的程序,切忌不编程序或抄别人的程序去上机。
(4)对程序中出现的问题应事先估计,对程序中白己有疑问的地方应先作上记号,以便上机时给予注意。
(5)准备好调试程序和运行程序所需的数据。
3,上机实验的步骤
上机实验应一人一组,独立实验。
上机过程中出现的问题,除了是系统的问题以外,不要轻易举手问老师。
尤其对“出错信息”,应善于分析判断。
上机实验上般应包括以下几个步骤:
(1)双击桌面TC图标进行TurboC集成环境。
(2)输入自己编好的程序。
(3)按Ctrl+F9编译并运行程序。
(4)若程序有错,则根据出错信息修改程序。
(5)若程序没有语法错误,则通过按Alt+F5查看运行结果是否正确,用不同的数据反复检查。
4,写好实验报告
实验报告应包括以下内容:
(1)实验目的。
(2)实验内容。
(3)程序清单。
(4)运行结果。
(5)对运行结果的分析,以及木次调试程序所取得的经验。
第二部分、实验内容
说明:
每次实验可根据需要选择一个实验的一部分。
补充实验Windows的基木操作
一、实验目的:
掌握“开始”菜单中启动应用程序的方法,学会利用任务栏切换应用程序,
掌握窗口的基本操作。
二、实验内容:
1,程序的使用及切换
⑴打开“开始”菜单,选择“程序”菜单中的“附件”,再选择“计算器”启动计算器程序,进入计算器窗口
(2)计算3*27/9+10-15
(3)从“查看”菜单中选择“科学型”,再把193和32767转换成十六进制数和二进制数
(4)按照上述
(1)的方法再打开“记事木”和“写字板”两个应用程序(打开后均不关闭)
(5)在任务栏上单击其中任一个任务按钮,实现当前窗曰的切换
⑹排列窗口,使这三个应用程序窗口分别按层叠方式和横向平铺方式排列。
(4)关闭三个窗口
2,窗口的基木操作
(1)在桌面上双击“我的电脑”图标
⑵对“我的电脑”窗口进行如下操作:
最大化、还原、移动、改变窗口大小,最小化、关闭
3,用“全能打字教室”进行指法练习
三、实验要求:
先完成1,2,然后再进行指法练习并在实验报告中写出你的操作内容及操作要点.
实验一C程序的运行环境和运行一个C程序的方法
一,实验目的
1,了解所用的计算机系统
2,了解在该系统上如何进行编辑、编译、连接和运行一个C程序
3,通过运行简单的C程序了解C程序的特点。
二,实验内容和步骤
1,熟悉所用的系统
了解Windows资源管理器的使用方法:
文件的查看、复制、运行等方法,tc.exe所在目录,文木文件的建立方法。
2,进入TurboC
双击桌面的tc2.0快捷方式,或单击“开始/运行”,然后输入c:
\tc20\tc.exe然后确定
3,熟悉TurboC的集成环境
(1)了解和熟悉编辑(Edit)窗口和信息(Message)窗口的作用。
试一下能否向信息窗口输入程序。
按功能键F5,观察它有什么作用,再按一下功能键F5,再观察它有什么作用,按功能键F6,观察它有什么作用,再按一下功能键F6,再观察它有什么作用。
(2)按功能键F10,并按回车键,观察“File”菜单,了解它的内容,反复按键盘上的一键和I键,观察各菜单的内容。
(3)选择File菜单中的New并按网车键,在编辑窗口中输入几行字符,观察窗曰顶部左端的line和col后面的数字的变化,将插入点移动到第1行第1歹U,按Insert键,随意输入一些文字并按回车键,观察编辑窗口的变化情况,再次按Insert键,随意输入一些文字并按|门|车键,再观察编辑窗曰的变化情况,反复按Insert键,观察窗口顶部状态栏的变化情况。
4,输入并运行一个简单的程序
(1)按Alt+F,选择New,按N(不保存原文件),建立一个新文档.
(2)然后输入下面的程序(教材中的例1.1),注意区分大小写。
mainO
printf(''ThisisaCprogram.\n");
}
(3)按功能键F9,观察屏幕上的编译信息,若有出错信息,则找出错误并改正
(4)按Ctrl+F9运行程序,然后按Alt+F5杏看运行结果。
5,对教材中的例1.2重复4中的操作(即只将程序改为例1.2中的程序,其它操作步骤相同)
6,输入并运行一个需要在运行时输入数据的程序
(1)清空编辑窗曰,输入下面的程序
mainO
(inta,b,c;
printf(''inputaandb:
〃);
scanf(〃%d,%d〃,&a,&b);
c二max(a,b);
printf(〃\nmax二%d〃,c);
}
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
(2)按CtrHF9,若程序有错,则修改错误后继续运行程序,当没有错误信息时输入:
2,5IE车,最后按Alt+F5杏看运行结果。
(3)将程序的第二行改为:
inta;b;c;然后按F9看结果如何,将其修改为inta,b,c;将了程序max的第3,4行合并为一行,运行程序,看结果是否相同
7,运行一个自己编写的程序
题目是输出两行文字。
实验二数据类型、运算符和表达式
一、实验目的
1,掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
2,掌握不同数据类型之间赋值的规律。
3,学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和白减(一一)运算符的使用。
4,进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容和步骤
1,输入并运行下面的程序
mainO
(charcl,c2;
cl=a';
c2='b';
printf(/?
%c%c”,cl,c2);
(1)运行此程序
(2)加入下面的一个语句作为最后一个语旬:
printf(/z%d,%d\n”,cl,c2);
(3)将第二行改为:
intcl,c2;
然后再运行程序,并观察结果是否相同
(4)将第2行改为intcl,c2;将第3,4行依次改为:
cl=a;c2=b;
cl=〃a〃;c2="b〃
c1=300;c2=400;
每改为一次后运行程序,观察结果
2,分析教材第3章习题3.6中的程序析运行结果,然后输入该程序并运行,将运行结果与前面分析的结果对比。
3,输入并运行下面的程序
main()
{inta,b;
unsignedc,cl;
longe,f;
a=100;
b=-100;
e二50000;
f=32767;
d=b;
printf(,z%d,%d\n〃,a,b);
printf(/z%u,%u\n〃,a,b);
printf(z,%u,%u\n〃,c,cl);
c=a=e;
d=b=f;
printf(,z%d,%d\n",a,b);
printf(/z%u,%u\n〃,c,cl);
)
请对照程序和运行结果分析:
(1)将一个负整数赋给一个无符号的变量,会得到什么结果。
tai出它们在内存中的表示形式。
(2)将一个大于32767的长整数赋给一个整型变量,会得到什么结果。
画出它们在内存中的表示形式。
(3)将一个长整数赋给无符号的变量,会得到什么结果。
画出它们在内存中的表示形式。
4,输入习题3.10
(1)运行程序,注意i,j,m,n的值,分别作以下改动并运行。
(2)将第4,5行改为:
m=i++;
n=++j;
再E仃。
(3)将程序改为:
mainO
(inti,j;
i=8;j=10;
printf(〃%d,%d\n”,++i,++j);
i=8;j=10;
printf(z,%d,%d\n〃,i++,j++);
i=8;j=10;
printf(z,%d,%d\rT,++i,i);
i=8;j=10;
printf("%d,%d\n〃,i++,i);
getchO;
)
运行程序并分析运行结果
5,按习题3.7的要求编程并上机运行
实验三最简单的C程序设计
一、实验目的
1,掌握C语言中使用最多的一种语句一一赋值语旬的使用方法。
2,掌握各种类型数据的输入输出方法,能正确使用各种格式输出符。
二、实验内容和步骤
1,掌握各种格式输出符的使用方法。
mainO
(inta,b;
floatd,e;
charcl,c2;
doublef,g;
longn,in;
unsignedp,q;
a=61;b=62;
cl=,a';c2='b,;
d=3.56;e=-6.87;
f=3157.890121;g=0.123456789;
m=50000;n=-60000;
p=32768;q=40000;
printf(/za=%d,b=%d\ncl=%c,c2二%c\nd二%6.2f,e二%6.2f\n〃,a,b,cl,c2,d,e);
printf(〃f二%15.6f,g二%15.12f\nm=%ld,n=%ld\np=%u,q二%u\n〃,f,g,m,n,p,q);
)
(2),运行此程序并分析运行结果
(3),在此基础上,修改程序的第8-13行:
a=61;b=62;
cl=a;c2=b;
f=3157.890121;g=0.123456789;
d=f;e=g;
p=a=m=50000;q二b二n二-60000;
运行程序,分析运行结果。
(4)将8-13行改为以下的scanf语句,即用scanf函数接收从键盘输入的数据:
scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%i】",&a,&b,&cl,&c2,&d,&c,&f,&g,&【n,&n,&P,&q);
按Ctrl+F9运行后(无错误的情况下)输入数据如下:
61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,32768,40000
2,按习题4.8的要求编写程序并运行。
3,编写程序,用getchar函数读入两个字符给cl,c2,然后分别用putchar函数和printf函数输出这两个字符。
实验四选择结构程序设计
一、实验目的
1,了解C语言表示逻辑值的方法。
2,学会正确使用逻辑运算符和逻辑表达式的方法。
3,熟悉掌握if语句和switch语句。
4,结合程序掌握一些简单的算法。
5,学习调试程序。
二、实验内容
木实验要求编程解决以下问题,然后上机调试运行程序。
xx<1
1,y=<2x-\1 3x-11x>10 用scanf函数输入x的值,求y的值(习题5.5) 2,给出一个百分制的成绩,要求输出成绩等级A,B,C,D,E。 90分以上为A, 80—89为B,70—79为C,60—69为D,60分以下为£(习题5.6)。 要求从键盘输入成绩,然后输出相应等级,分别用if语句和switch语旬实现 3,上机完成习题5.7: 给一个不多于5位的正整数,要求: (1)输出它是几位数, (2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。 应准备以下测试数据 要处理的数为1位正整数; 要处理的数为2位正整数; 要处理的数为3位正整数; 要处理的数为4位正整数; 要处理的数为5位正整数; 除此之外,程序还应当对不合法的输出作必要的处理。 例如: 输入负数 输入的数超过5位 4,上机完成习题5.9: 输入4个整数,要求按由小到大的顺序输出。 得到正确结果后,修改程序使之按由大到小的顺序输出。 实验五循环控制 —、实验目的 熟悉掌握使用while语句,do-while语句和for语句实现循环的方法。 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、逆推等)。 二、实验内容 1,上机完成习题6.1: 输入两个正整数m和n,求出它们的最大公约数和最小公倍数。 输入时,使nKn,观察结果是否正确。 再输入时使m>n,观察结果是否正确。 修改程序使对任何的整数都能得到正确的结果 2,上机完成习题6.2: 输入一行字符,统计其中英文字母、空格、数字和其它字符的个数。 在得到正确的结果后,请修改程序,使之能分别统计其中大小英文字母、空格、数字和其它字符的个数。 3,上机完成习题6.12: 用牛顿迭代法求方程2x3-4x2+3x-6=o在1.5附近的根。 在得到正确结果后,请修改程序使所设的x的初值由1.5改变为100,1000,10000,再运行,观察结果,分析不同的X初值对结果有没有影响,为什么? 4,上机完成习题6.10: 猴了吃桃问题。 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,双多吃了一个。 第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少桃子。 在得到正确结果后,修改题目,改为每天早上都吃了前一天剩下的一半加二个,请修改程序,并运行,检查运行结果是否正确。 实验六数组 一、实验目的 1,掌握一维数组与二维数组的定义、赋值及输入输出方法。 2,掌握字符数组和字符串函数的使用。 3,掌握与数组有关的算法(特别是排序算法) 二、实验内容 1,用选择法对10个整数排序。 10个整数用scanf函数输入。 (习题7.2) 2,有15个数存放在一个数组中,输入一个数要求用折半查找法找出该数是数组中的第儿个元素的值,如果该数不在数组中,则输出无此数,以15个数赋初值的方法在程序中给出,要找的数用scanf函数输入。 3,将两个串连接起来,不要用strcat函数。 4,找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。 也可能没有鞍点。 应当至少准备两组测试数据: (1) 二维数组有鞍点 9 80205 40 90 -6096 1 210 -3101 89 (2) 二维数组没有鞍点 9 80 205 40 90 -60 96 1 210 -3 101 89 45541567 用scanf函数从键盘输入数组的各元素的值,检查结果是否正确,题目未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。 实验七函数 一、实验目的 1,掌握定义函数的方法。 2,掌握函数实参及形参的对应关系以及“值传逆”方式。 3,掌握函数的嵌套调用和递归调用的方法。 4,掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法。 5,学会对多文件程序的编译和运行。 二、实验内容 1,写出一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息(习题8.3)木程序应准备以下测试数据: 17,34,2,1,0分别输入数据,运行程序并检查结果是否正确。 2,用一个函数来实现将一行字符串中最长的单词输出。 此行字符从主函数传递给该函数。 (习题8.10) (1)把两个函数放在同一个程序文件中。 (2)将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。 3,用递归法将一个整数n转换成字符串。 例如输入483,应输出字符串“483”。 n的位数不确定,可以是任意的整数。 (习题8.17) 4,求两个整数的最大公约数和最小公倍数。 用一个函数求最大公约数用另一个函数根据求出的最大公约数求最小公倍数(习题8.1) 分别用下面的两神方法编程。 (1)不用全局变量,在主函数中输入两个数和输出结果 (2)用全部变量的方法,数据的传递通过全部变量的方法。 5,写一个函数,输入一个十六进制数,输出相应的十进制数。 (习题8.16) 实验八编译预处理 一、实验目的 1,掌握宏定义的方法。 2,掌握文件包含处理方法。 3,掌握条件编译的方法。 二、实验内容 1,定义一个带参数的宏,使两个参数的值互换。 在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。 (习题9.1) 2,设计输出实数的格式,包括: (1)一行输出一个实数, (2)一行内输出两个实数,(3)一行内输出三个实数。 实数用%6.2f格式输出。 (习题9.6) 用一个文件printf_format.h包含以上用^define命令定义的格式,编写一人程序,将printf_format.h包含到程序中,在程序中用scanf函数读入三个实数给fl,f2,f3,然后用上面定义的三格式分别输出: f2;fl,f2,f30 实验九指针 一、实验目的 1,通过实验进一步掌握指针的概念,会定义和使用指针变量。 2,能正确使用数组的指针和指向数组的指针变量。 3,能正确使用字符串的指针和指向字符串的指针变量。 4,能正确使用指向函数的指针变量。 5,了解指向指针的指针的概念及其使用方法。 二、实验内容 以下程序要求使用指针处理。 1,输入三个整数,按由小到大的顺序输出。 运行无错后改为: 输入三个字符串,按由小到大的顺序输出。 (习题10.1,10.2) 2,将一个3X3的矩阵转置,用一函数实现。 (习题10.9) 在一主函数中用scanf函数输入以下矩阵元素: 135 7911 131517 将数组名作为函数参数,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出转置后的矩阵。 3,有n人围成一个圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 (习题10.5) 4,用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数的原型为: intstrcmp(char*pl,char*p2); 设pl指向字符串si,p2指向字符串s2,要求当两个字符相同时返HO,若两个字符串不相等,则返1门1返回它们二者第一个不同字符的ASCII码的差值。 两个字符串si,s2由主函数输入,strcmp函数的返回值也由主函数输出。 5,写一个用矩形法求定积分的通用函数,分别求: AAA sinxdxcosdxexdx J)J-iJ) 说明: 积分中用到的三个函数已在系统的数学函数库中,程序开头要加 #include 调用格式为sin(x),cos(x),exp(x)(习题10.13) 6,用指向指针的指针的方法对n个整数排序并输出。 要求将排序单独写成一个函数,n和各整数在主函数中输入,最后在主函数中输出。 (习题10.21) 实验十结构体和共用体 一、实验目的 1,掌握结构体类型变量的定义和使用。 2,掌握结构体类型数组的概念和使用。 3,掌握链表的概念,初步学会对链表进行操作,学会在函数之间传送链表的方法。 4,掌握共用体的概念与使用。 二、实验内容 1,有10个学生,每个学生的数据包括学号、姓名和3门课的成绩,从键盘输入10个学生的的数据,要求输出3门课的平均成绩,以及最高分的学生数据(包括学号、姓名、3门课的成绩和平均分数)(习题11.5)。 要求定义一个函数input用于输入10个学生的数据,定义一个函数average求各门课的平均分,定义一个函数max找出最高分的学生,在主函数中输出各门课运算的平均成绩和最高分的学生数据。 2,定义一个函数create用于建立一个链表,每个结点包括: 学号、姓名、性别、年龄。 定义一个函数delete用于按年龄删除结点,年龄通过参数传递。 定义一个函数insert用于在链表尾部插入一个结点。 定义一个函数print用于输出链表内容。 在主函数中输入年龄,依次调用create,print,delete,print,insert,print函数。 实验十一位运算 一、实验目的 1,掌握按位的概念和方法,学会使用位运算符。 2,学会通过位运算实现对某些位的操作。 二、实验内容 1,编写一个程序,检查所用的计算机系统的C编译在执行右移时是按照逻辑右移的原则,还是按照算术右移的原则进行操作。 如果是逻辑右移,则请编写一个函数实现算术右移,若是算术右移,则请编写一个函数实现逻辑右移。 2,编写一个函数getbits,从一个16位的单元中取出某儿位(即这儿位保留原值,其余位为0),函数调用形式为: getbits(value,nl,n2) value为该16位数的值,nl为欲取出的起始位,n2为欲取出的结束位。 要求用八进制数输出这几位。 注意,应先将这几位右移到最右端,然后用八进制形式输出。 3,设计一个函数,使给出一个函数的原码,输出该数的补码。 实验十二文件 一、实验目的 1,掌握文件、缓冲文件系统、文件指针的概念。 2,学会使用文件的打开、关闭、读、写等文件操作函数。 3,学会用缓冲文件系统对文件进行简单的操作。 二、实验内容 1,建立一个程序,用于产生200组算式,每组算式包括一个两位数的加法、减法(要求被减数要大于减数)、乘法和两位数除以一位数的除法算式,每一组为一行,将所有的算式保存到文本文件d: \temp\a.txt中 2,打开由1建立的文本文件,并分屏显示(每24行为一屏)。 3,向d: \temp\a.txt文件追加100组算式,每组算式包括一个一位数的加法、减法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 高级 语言程序设计 课程 实验 指导书 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)