9专科实验任务书供参考.docx
- 文档编号:13011742
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:21
- 大小:29.60KB
9专科实验任务书供参考.docx
《9专科实验任务书供参考.docx》由会员分享,可在线阅读,更多相关《9专科实验任务书供参考.docx(21页珍藏版)》请在冰点文库上搜索。
9专科实验任务书供参考
教案
2008~2009学年第1学期
《高级语言程序设计》实验教案
教案院<部)计算机学院
教研室基础教研室
授课班级08交通
授课教师刘志远
教材名称《C程序设计》谭浩强主编
2018年2月28日
实验安排表
周次
日期
实验课题
学时
实验报告次数
4
3.31
实验一数据类型、运算符和表达式
2
5
3.31
实验一数据类型、运算符和表达式
2
1
6
4.21
实验二顺序结构程序设计
2
1
7
5.5
实验三选择结构程序设计
2
1
9
实验四循环与数组
2
10
实验四循环与数组
2
1
12
实验五函数
2
13
实验五函数
2
1
15
实验六指针
2
1
16
实验七结构体和共用体
2
1
检查日期
检查人
一式三份:
一份交教务处,一份存教案系部,一份由本人保存.
实验一数据类型,运算符和表达式
一、实验目的及要求
1.了解TURBOC系统上如何编辑,编译,连接和运行一个C程序.
2.掌握C语言数据类型,熟悉如何定义一个整型,字型和实型的变量,以及对它们赋值的方法。
3.掌握不同的类型数据之间赋值的规律。
4.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加<++)和自减<--)运算符的使用。
5.进一步熟悉C程序逻辑的编辑、编译、连接和运行的过程。
二、实验学时
4学时
三、实验任务
1、熟悉TrbuoC集成环境
了解和熟悉编辑(Edit>窗口和信息窗口(Message>作用.试一下能否向信息窗口输入程序,按功能键F5,观察它有什么作用,再按一次F6,再观察它有什么作用。
按功能键F10,并按回车键,观察File菜单,了解它们的作用和用法.用键盘上的键,分别选中Edit,Run,Compile,Project,Debug,Break/watch,观察它们的菜单,大致上了解它们的作用.
选择File菜单中的New并按回车键,在编辑窗口中随意输入几行字符,观察窗口顶端line和col后面数字的变化。
再选择File菜单中的New并按回键,使编辑窗口变成空白。
输入下面的程序
main(>
{
printf(“ThisisaCprogram.\n”>;
}
按功能键F9进行编译和连接,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译。
如果编译无错误,按ctrl和F9键使程序运行,按Alt和F5键,切换到用户屏幕,观察分析运行结果。
2、输入并运行下面的程序
main(>
{charc1,c2。
c1=’a’。
c2=’b’。
printf(“%c,%c\n”,c1,c2>。
}
a.运行此程序。
b.在此基础上增加一个语句:
printf<“%d%d\n”)。
再运行,并观察结果。
c.将第二行改为C1=a;C2=b;再运行,分析其运行结果。
d.第3行和第4行改为:
c=“a“;c2=”b“;再便之运行,分析其结果。
e.再将第3、4行改为c=300;c2=400;再使之运行,分析其运行结果。
3、输入并运行教材第3章习题3.6给出的程序
main(>
{charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’。
printf(“a%cb%c\tc%ctabc\n”,c1,c2,c3>。
printf(“\t\b%c%c”,c4,c5>。
}
在上机前先用人工分析程序,写出应得结果,上机后将二者对照。
4、输入并运行下面的程序
main(>
{inta,b。
unsignedc,d。
longe,f。
a=100。
b=-100。
e=50000。
f=62767。
c=a。
d=b。
printf(“%d,%d\n”,a,b>。
printf(“%u,%u\n”,a,b>。
printf(“%u,%u\n”,c,d>。
c=a=e。
d=b=f。
printf(“%d,%d\n”,a,b>。
printf(“%u,%u\n”,c,d>。
}
请对照程序和运行结果分析:
一个负整数赋给一个无符号的变量,会得什么结果。
画出它们在内存中表示形式。
将一个大于32767的长整数赋给整型变量,会得到什么结果。
画出它们在内存中的表示形式。
将一个长整数赋给无符号变量,会得到什么结果。
画出它们在内存中的表示形式。
学生可以改变程序中各变量的值,经便比较。
例如:
a=65880,b=-40000,e=65535,f=65580。
5、输入习题3.10
main(>
{inti,j,m,n
i=8。
j=10。
m=++i。
n=j++。
printf(“%d,%d,%d,%d”,i,j,m,n>。
}
a.运行程序,注意i,j,m,n各变量的值,分别作出以下改动并运行。
第4、5行改为:
m=i++。
n=j++。
再运行。
b.将程序改为:
main(>
{inti,j。
i=8。
j=10。
printf(“%d,%d”,i++,j++>。
}
c.在a的基础上,将printf语句改为:
main(>
{printf(“%d,%d”,++i,++j>。
再将printf语句改为:
printf(“%d,%d,%d,%d”i,j,i++,j++>。
将程序改为
main(>
{intI,j,m=0,n=0。
i=8。
j=10。
m+=i++。
n-=--j。
printf(i=%d,j=%d,m=%d,n=%d”,i,j,m,n>。
}
四、实验重点、难点
1.整型、实型、字符型数据
2.运算符和表达式的运用
五、操作要点
按Alt+E可进入编辑菜单,若再回车,则光标出现在编辑窗口, 此时用户可以 进行文本编辑。
六、注意事项
C的几种基本数据类型及标识符的概念,注意变量和符号常量先定义后使用特点。
实验二顺序结构程序设计
一、实验目的及要求
1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
二、实验学时
2学时
三、实验任务
1、掌握各种格式转换符的正确使用方法
a.输入程序
main(>
{inta,b。
floatd,e。
charc1,c2。
doublef,g。
longm,n。
unsignedintp,q。
a=61。
b=62。
f=3157.8901121。
g=0.123456789。
m=50000。
n=-60000。
p=32768。
q=40000。
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n”,a,b,c1,c2d,e>。
printf(“f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u,q=%u\n”,f,q,m,n,p,q>。
}
b.运行此程序并分析结果。
c.在此基础上,修改程序的第8—13行:
a=61。
b=62。
c1=a。
c2=b。
f=3157.890121。
g=0.123456789。
d=f。
c2=b。
p=a=m=50000。
q=b=n=-60000。
运行程序,分析结果。
d.改用scanf函数输入数据而不用赋值语句,scanf函数如下:
scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&f,&g,&m,&n,&p,&q>。
输入的数据如下:
61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000
(说明:
lf和ld格式符分别用于输入double型和long型数据>分析运行结果。
e.在d的基础上将printf语句改为:
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n”,ab.c1,c2,d,e>。
printf(“f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n”,f,g,m,n,p,q>。
运行程序。
f..将p,q改用%o格式符输入。
g.将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。
2、按习题4.8要求编写程序
题目为:
设圆半为1.5,圆柱高为3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
用scanf输入数据,输出计算结果。
输出时要有文字说明,取小数点后两位数字。
3、编写程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf输出p这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
四、实验重点、难点
1.符数据输入输出函数
2.格式输入输出函数
五、操作要点
按Alt+R可进入Run菜单,其中Run:
运行由Project/Projectname项指定的文件名或当前编辑区的文件。
如果对上次编译后的源代码未做过修改,则直接运行到下一个断点(没有断点则运行到结束>。
否则先进行编译、连接后才运行,其热键为Ctrl+F9。
Userscreen:
显示程序运行时在屏幕上显示的结果。
其热键为Alt+F5。
六、注意事项
1.输入输出的数据类型与所用格式说明符不一致
2.输入变量时忘记使用地址符号
实验三选择结构程序设计
一、实验目的及要求
1.了解C语言表示逻辑量的方法<以0代表“假”,以非代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达。
3.熟练掌握if语句和switch语句.
4.学习调试程序。
二、实验学时
2学时
三、实验任务
1、本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
有一函数:
x(x<1>
y=2x-1(1<=x<10>
3x-11(x.>=10>
用scanf函数输入x的值,求y的值。
<习题5.5)
运行程序,输入x的值<分别用上面三种情况),检查输出的y值是否正确。
2、给出一个百分成绩,要求输出成绩的等级A、B、C、D、E。
90分以上的为A,81—89分的为B,70—79的为C,60—69分的为D,60分以下的为E。
<习题6.6)
事先编好一个程序,要求分别用if语句和switch语句实现。
运行程序,并检查结果是否正确。
再运行一次程序,输入分数为负值,这显然是输入时出错,不应给出等级。
修改程序,使之能正确处理任何数据。
当输入数据大于100或小于0时通知用户“输入数据错”,程序结束。
3、一个不多于5位的整数,要求:
a.求出它是几位数。
b.分别打印每一位数字。
c.按逆序打印出各位数字,例如原数为321,应输出123.(习题5.7>
应准备以下测试数据:
要处理的数为1位正整数。
要处理的数为2位正整数。
要处理的数为3位正整数。
要处理的数为4位正整数。
要处理的数为5位正整数。
除此之外,程序还应当对不合法的输入作必要的处理.例如:
输入负数。
输入的数超过5位(如123456>.
4、输入4个整数,要求按由小到大顺序输出.
得到正确结果后,修改程序使之按由大到小的顺序输出。
<习题5.5)
四、实验重点、难点
1.表达式
2.选择型程序设计语句
3.逻辑表达式
五、操作要点
按Alt+C可进入Compile菜单,Buildall:
重新编译工程里的所有文件,并进行装配生成.EXE文件。
该命令不作过时检查 。
六、注意事项
1.误把“=”作为关系运算符“等于”
2.没有注意大写字母和小写字母代表不同的标识符
3.当一个复合语句中使用多层括号时,常出现大括号不配对的现象。
实验四循环与数组
一、实验目的及要求
1.熟悉掌握用语句,语句和语句实现循环的方法。
2.掌握在程序设计中用循环的方法实现一些常用算法<如穷举、迭代、递推等)。
3.掌握一维数组和二维数组的定义、赋值和输入输出的方法;
4.掌握字符数组和字符串函数的使用;
5.掌握与数组有关的算法<特别是排序算法)。
二、实验学时
4学时
三、实验任务
1、编程序并上机调试运行。
输入两个正整数m和n,求它们的最大公约数和最小公倍数。
(习题6.1>
在运行时,输入的值m>n,观察结果是否正确。
再输入时,使m 修改程序,不论m和n为何值<包括负整数),都能得到正确的结果。 2、输入一行字符,分别统计出其中的英文、空格、数字和其他字符的个数<习题6.2)。 在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。 3、用选择法对10个整数排序。 10个整数用scanf函数输入。 <习题7.2) 4、将两个字符串。 连接起来,不要用strcat函数。 5、找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小(注: 也可能没有鞍点>。 <习题7.8) 应当至少准备两组测试数据: 请学生修改程序以实现之。 二维数组有鞍点 90-60961 98020540 210–310189 二维数组无鞍点 98020540 90-601961 210-310189 45541567 用scanf函数从键盘输入数组各元素的值,检查结果是否正确。 题目并未指 定二维数组的行数和列数,程序应能处理任意行数和列数的数组。 因此,从 理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量 太大,一般来说不需要这样做,只需准备典型的数据即可。 如果已指定了数 组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。 四、实验重点、难点 1.循环语句 2.循环的嵌套 3.break和continue语句 4.一维数组 5.二维数组和多维数组 6.字符数组 五、操作要点 Run菜单中Gotocursor: : 调试程序时使用,选择该项可使程序运行到光标所在行。 光标所在行必须为一条可执行语句,否则提示错误。 其热键为F4。 Traceinto: 在执行一条调用其它用户定义的子函数时,若用Traceinto项,则执行长条将跟踪到该子函数内部去执行,其热键为F7。 六、注意事项 1.对应该有花括号的复合语句,忘记加花括号 2.在不该加分号的地方加了分号 3.引用数组元素时误用圆括号 4.引用数组元素超界 5.对二维或多维数组定义和引用的方式不对 6.误以为数组名代表整个数组 7.混淆字符数组与字符指针的区别 实验五函数 一、实验目的及要求 1.掌握函数定义的方法; 2.掌握函数实参与形参的对应关系以及“值传递”的方式; 3.掌握函数的嵌调用和递归调用的方法; 4.掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。 5.学习对多文件程序的编译和运行。 二、实验学时 4学时 三、实验任务 编程序并上机调试运行。 1、一个判别素数的函数,在主函数输入一个整数,在主函数输入一个整数,输出是否素数主信息<习题7.2)。 本程序应当准备以下测试数据: 17、34、2、1、0。 分别输入数据,运行程序并检查结果是否正确。 2、用一个函数来实现将一行字符串中最长的单词输出。 此行字符串从主函数传给该函数。 把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。 把两个函数分别放在两个程序文件中,作为两个文件进行编译,连接和运行。 3、用递归法将一个整数n转换成字符串。 例如,输入483,应输出字符串“483”,N的位数不确定,可以是任意的整数。 <习题8.17) 4、求两个整数的最大公约数和最小公倍数。 用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。 <习题8.1) 不用全局变量,分别用两个函数求最大公约数和最小公倍数。 两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。 用全局变量的方法,分别用两个函数求最大公约数和最公倍数,但其值不由函数返回。 将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值, 5、写一个函数,输入一个十六进制数,输出相应的十进制数。 <习题8.16) 四、实验重点、难点 1.函数的定义 2.函数的参数及返回值 3.函数的调用 4.数组作为函数参数 5.局部变量和全局变量 6.变量的存储类别 五、操作要点 按Alt+D可选择Debug菜单,该菜单主要用于查错,它包括以下内容 1.Evaluate 1)Expression要计算结果的表达式。 2)Result显示表达式的计算结果。 3)Newvalue赋给新值。 2.Callstack: 该项不可接触。 而在TurboCdebuger时用于检查堆栈情况。 3.Findfunction在运行TurboCdebugger时用于显示规定的函数。 4.Refreshdisplay如果编辑窗口偶然被用户窗口重写了可用此恢复编辑窗口的内容 六、注意事项 1.所调用的函数在调用语句之后定义,但在调用之前没有说明 2.误认为形参值的改变会影响实参的值 3.函数的实参和形参类型不致。 实验六指针 一、实验目的及要求 5.通用实验进一步掌握指针的概念,会定义和使用指针变量。 6.能正确使用数组的指针和指向数组的指针变量。 7.能正确使用字符串的指针和指向字符串的指针变量。 8.能正确使用指向函数的指针变量。 9.了解指向指针的指针的概念及其使用方法。 二、实验学时 2学时 三、实验任务 编程序并上机调试运行程序<都要求用指针处理)。 1、输入三个整数,按由小到大的顺序输出,然后将程序改为: 输入三个字符串按由小到大顺序输出。 <习题10.1、10.2) 2、将一个3*3的矩阵转置,用一函数实现之。 <习题10.9) 在主函数中用scanf函数输入以下矩阵元素: 135 7911 131519 将数组名作为函数实数实参,在执行函数过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。 3、有n个人围成一圈,顺序排号。 从第1个人开始报数<从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 <习题10.5) 4、用一个函数实现两个字符串的比较的比较,即自已写一个strcmp函数,函数原型为: intstrcmp(char*p1,char*p2>。 设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;如果s1不等于s2则返回它们二者第一个不相同字符的ASC11码差值<如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差79-65=14);如果s1>s2,则输出正值;如果s1 <习题10.17) 两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。 5、用指向指针的指针的方法对n外整数排序并输出。 要求将排序单独写成一个函数。 N和各整数在主函数中输入,最后在主函数中输出。 <习题10.21) 四、实验重点、难点 1.指针的定义、引用 2.指针与变量 3.指针与数组 4.指针与函数 五、操作要点 按Alt+B可进入Break/watch菜单,该菜单有以下内容: 7.Addwatch: 向监视窗口插入一监视表达式。 8.Deletewatch: 从监视窗口中删除当前的监视表达式。 9.Editwatch: 在监视窗口中编辑一个监视表达式。 10.Removeall: watches从监视窗口中删除所有的监视表达式。 11.Togglebreakpoint: 对光标所在的行设置或清除断点。 12.Clearallbreakpoints: 清除所有断点。 13.Viewnextbreakpoint: 将光标移动到下一个断点处 六、注意事项 5.不同类型的指针混用 6.混淆数组与指针变量的区别 实验七结构体和共用体 一、实验目的及要求 1.掌握结构体类型变量的定义和使用。 2.掌握结构体类型数组的概念和使用。 3.掌握链表的概念,初步学会对链表进行操作。 4.掌握共用体的概念与使用。 二、实验学时 2学时 三、实验任务 编程序,然后上机调试运行。 1、有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及及最高分的学生的数据<包括学号、姓名、3门课的成绩、平均分数)。 <习题11.5) 要求有input函数输入10个学生数据;用average函数求总平均分;有max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。 2、13个人围成一圈,从第1个人开始顺序报号1、2、3。 凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。 <习题11.9) 本题要求用链表实现。 3、建立一个链表,每个结点包括: 学号、姓名、性别、年龄。 输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删除。 <习题11.11) 4、输入和运行以下程序 uniondata {intI[2]。 floata。 longb。 charc[4]。 }u。 main(> {scanf(“%d,%d”,&u.i[1]>。 printf(I[0]=%d,I[1]=%da=%fb=%ldc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c, u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]>。 } 输入两个整数10000、20000给u.i[0]和u.i[1],分析运行结果。 然后将scanf语句改为: scanf(“%ld”,&u.b>。 输入60000给b,分析运行结果。 四、实验重点、难点 结构体变量的定义和引用;结构体变量与指针 五、操作要点 TurboC2.0的配置文件,所谓配置文件是包含TurboC2.0有关信息的文件,其中存有编译、连接的选择和路径等信息。 可以用下述方法建立TurboC2.0的配置: 1.建立用户自命名的配置文件: 可以从Options菜单中选择Options/Saveoptions命令, 将当前集成开发环境的所有配置存入一个由用户命名的配置文件中。 下次启动TC时只要在DOS下键入: tc/c<用户命名的配置文件名> 就会按这个配置文件中的内容作为TurboC2.0的选择。 2.若设置Options/Envi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专科 实验 任务书 参考