高程实验指导书.docx
- 文档编号:2610964
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:40
- 大小:31.91KB
高程实验指导书.docx
《高程实验指导书.docx》由会员分享,可在线阅读,更多相关《高程实验指导书.docx(40页珍藏版)》请在冰点文库上搜索。
高程实验指导书
数学与计算机科学学院
《高级语言程序设计》实验指导书
2011年2月20日
目录
实验一熟悉TurboC的上机过程1
实验二数据类型、运算符和表达式5
实验三最简单的C程序设计8
实验四选择结构程序设计11
实验五循环结构程序设计13
实验六数组16
实验七函数23
实验八指针28
实验九结构体与共用体32
实验十文件33
附件:
《高级语言程序设计》实验报告34
实验一熟悉TurboC的上机过程
一、实验目的
1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2.熟悉TurboC的运行环境,了解在该系统上如何编辑、编译、链接和运行一个C程序。
3.通过运行简单的C程序,初步了解C程序的特点。
二、实验类型:
演示
三、实验环境
多媒体计算机、WINDOWSXP系统或纯DOS系统、turboc2.0以上或VisualC++编译平台。
四、实验内容
(1)检查所用的计算机系统
是否已安装了C编译系统并确定它所在的子目录。
如果使用的是Windows和TurboC,可以按以下步骤进行操作:
单击Windows桌面上的“开始”按钮,从菜单中选中并单击“查找(F)”,在其右面的下拉菜单中选择“文件或文件夹(F)”,屏幕上出现“查找”窗口,在“名称”栏中输入文件名“tc.exe”,然后单击“开始查找”按钮,系统会自动在指定的范围内导找所需的文件,如如果找到,就会显示出文件路径(例如,C:
\tc),应当使“搜索”栏中的内容为“C:
\”,表示从根目录开始寻找,即搜索整个C盘。
(2)进入C的工作环境
①单击桌面上的“开始”按钮,从菜单中选择“程序”,单击它然后在其下拉菜单中选择“MS-DOS”,屏幕上出现窗口。
②用DOS命令cd,使当前目录改变为用户专用的子目录(例如C:
\tc\ZHANG)。
③用dir命令,检查用户目录中已有哪些文件。
④调用Turboc,一般情况下Turboc所有的目录为C:
\tc。
调用TurboC的命令一般为,C:
\tc\tc。
此时屏幕上出现TurboC的工作环境。
(3)熟悉TurboC集成环境
①了解和熟悉编辑(Edit)窗口和信息(Message)窗口的作用。
试一下能否向信息窗口输入程序。
按功能键F5,观察它有什么作用,再按一次F5,再观察它有什么作用。
按F6,观察它有什么作用;再按一次F6,再观察它有什么作用。
②按功能键F10,并按回车键,观察“File”菜单,了解它们的作用和用法。
用键盘上的“→”键,分别选中Edit、Run、Compile、Project、Option、Break/watch,观察它们的菜单,大致上了解它们的作用(但不必要求全部深入了解,以后用 到时再深入了解)。
③选择File菜单中的New并按回车键,在编辑窗口中随意输入几行字符,观察窗口顶部左端line和col后面数字的变化。
(4)输入并运行一个简单的程序
①再选择File菜单中的New并按回车键,使编辑窗口变成空白。
②输入下面的程序(教材第1章1.1例)。
main( )
{
printf(“ThisisaCprogram.\n”);
}
③按功能键F9进行编译和连接,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译。
④如果编译无错误,按Ctrl和F9键使程序运行,按Alt和F5键,切换到用户屏,观察分析运行结果。
(5)输入并编辑一个C程序
①再选择File→New,使编辑窗口变成空白。
②输入以下程序(教材第1章1.2例,但故意漏打或打错几个字符)。
main( )
{
inta,b,sum;
a=123;b=456;
sum=a+b;
print("sumis%d\n",sum);
}
③按F9进行编译,仔细分析编译信息窗口和Message窗口,可能显示有多个错误,逐个修改,直到不出现错误。
请与教材上的程序对照。
④运行程序,分析运行结果。
(6)输入并运行一个需要在运行时输入数据的程序
①清空编辑窗口,输入下面的程序。
main( )
{
inta,b,c;
printf("inputa&b:
");
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d",c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
else z=y;
return(z);
}
②编译并运行,在运行时从键盘输入整数2和5,然后按回车键,按Alt和F5键,观察运行结果。
③将程序中的第2行改为:
inta;b;c;
再进行编译,观察其结果。
④将子程序max的第3,4两行合并为一行,即
if(x>y)z=x;else z=y;进行编译和运行,分析结果。
五、实验总结
1.结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。
2.整理上机步骤,总结经验和体会。
3.完成实验报告和上交程序。
实验二数据类型、运算符和表达式
一、实验目的
1,掌握C语言数据类型,熟悉如何定义整型、字符型、实型变量,以及对它们赋值的方法,了解以上数据类型输出时所使用的格式转换符号。
2,学会使用C的有关运算符,以及包含这些运算符号的表达式,特别是自加(++)和自减(——)运算符的使用。
3,进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验类型:
验证
三、实验环境
多媒体计算机、WINDOWSXP系统或纯DOS系统、turboc2.0以上或VisualC++编译平台。
四、实验内容
1.输入以下程序,并编译、运行,分析运行结果:
main()
{charc1,c2;
c1=97;c2=98;
printf(″%c,%c″,c1,c2);
printf(″%d,%d″,c1,c2);
}
(1)运行以上程序,分析为什么会输出这些信息。
(2)再将第二行改为:
intc1,c2;
再运行程序。
看运行时输出什么信息,为什么?
(1)再将第三行改为:
c1=197;c2=198;
再运行,并分析结果。
2.输入并运行以下程序:
main()
{inti,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf(″%d,%d,%d,%d″,i,j,m,n);
}
编译和运行程序,注意i,j,m,n各变量的值。
分别作以下改动并运行:
(1)将第四行改为:
m=i++;n=++j;
编译和运行程序,分析结果
(2)程序改为:
main()
{inti,j;
i=8;j=10;
printf(″%d,%d″,i++,j++);
}
编译和运行程序,分析结果
(3)在
(2)的基础上,将printf语句改为:
printf(″%d,%d″,++i,++j);
编译和运行程序,分析结果
(4)再将printf语句改为:
printf(″%d,%d,%d,%d″,i,j,i++,j++);
编译和运行程序,分析结果
(5)程序改为:
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);
}
3.先判断以下程序的输出结果,在运行验证。
main()
{inta=110,b=017;
printf(″%x,%d\n″,a++,++b);
}
4.补充完整以下程序,将从键盘输入的任意大写字母转换为小写字母,将小写字母转换为大写字母。
main()
{charc;
scanf(″%c″,&c);
.......
printf(″%c″,c);
}
五、实验总结
1.结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。
2.整理上机步骤,总结经验和体会。
3.完成实验报告和上交程序。
实验三最简单的C程序设计
一、实验目的
1、掌握C语言程序输入、输出的方法和格式。
2、本实验可在学习教材第三章后进行。
二、实验类型:
验证
三、实验环境
多媒体计算机、WINDOWSXP系统或纯DOS系统、turboc2.0以上或VisualC++编译平台。
四、实验内容
1.写出下列程序的输出结果。
要求:
先写出输出结果,然后利用程序验证。
#include"stdio.h"
main()
{inta=65,b=67,c=67;
floatx=67.8564,y=-789.124;
charC='A';
longn=1234567;
unsignedu=65535;
putchar('\n');
putchar('\t');
putchar(C+32);
putchar(a);
putchar('\n');
printf("%d%d\n",a,b);
printf("%c%c\n",a,b);
printf("%3d%3d\n",a,b);
printf("%f,%f\n",x,y);
printf("%-10f,%-10f\n",x,y);
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
printf("%e,%10.2e\n",x,y);
printf("%c,%d,%o,%x\n",c,c,c,c);
printf("%ld,%lo,%lx\n",n,n,n);
printf("%u,%o,%x,%d\n",u,u,u,u);
printf("%s,%5.3s\n","COMPUTER","COMPUTER");
}
2.根据输入,写出下列程序的输出结果。
要求:
先写出输出结果,然后利用程序验证。
#include"stdio.h"
main()
{chara;
intb;
floatc;
a=getchar();
putchar(a);
putchar('\t');
putchar(a>='a'&&a<='z'?
a-32:
a);
putchar('\n');
getchar();
scanf("%c%d%f",&a,&b,&c);
printf("a=%cb=%dc=%.2f\n",a,b,c);
getchar();
scanf("a=%cb=%dc=%f",&a,&b,&c);
printf("a=%db=%cc=%.2f\n",a,b,c);
}
输入:
a↙
输出:
输入:
b□65□3.1234↙
输出:
输入:
a=b□b=65□c=3.1234↙
输出:
3、输入并编辑下面的程序
main()
{
inta,b;
floatc,d;
longe,f;
unsignedintu,v;
charc1,c2;
scanf(“%d,%d”,a,b);
scanf(“%f,%f”,c,d);
scanf(“%ld,%ld”,e,f);
scanf(“%o,%o”,u,v);
scanf(“%c,%c”,c1,c2);
printf(“\n”);
printf(“a=%7d,b=%7d\n”,&a,&b);
printf(“c=%10.2f,d=%10.2f\n”,&c,&d);
printf(“e=17ld,f=%17ld\n”,&e,&f);
printf(“u=%o,d=%o\n”,&u,&v);
printf(“c1=%c,d=%c\n”,&c1,&c2);
这个程序有语法错误吗?
为什么?
2、调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:
a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c1=’a’,c2=’b’
分析运行结果。
特别注意输入c1,c2的值是什么?
什么原因?
3、将输入e和f的语句改为:
scanf(“%d,%d”,&e,&f);
再用上述测试数据测试并分析结果。
4、将输入u、v的语句改为:
scanf(“%d,%d”,&u,&v);
再用上述测试数据测试并分析结果。
5、将输出e ,f 的语句改为:
printf(“e=%17d,f=%17d\n”,e,f);
再用上述测试数据测试并分析结果。
6、将输出u、v的语句改为:
printf(“u=%u,v=%u\n”,u,v);
或
printf(“u=%d,v=%d\n”,u,v);
再用上述测试数据测试并分析结果。
7、请读者自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出。
8、在scanf(“%c,%c”,&c1,&c2);语句之前加一个语句:
getchar();
9、验证转义字符\n与\r的意义有何不同。
五、实验总结
1、总结在printf函数中可以使用的各种格式指定符,并给出样例。
2、总结在printf函数中可以使用的各转义字符及其功能。
实验四选择结构程序设计
一、实验目的
1、了解条件与程序流程的关系.
2、了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。
3、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
4、学会正确使用逻辑运算符和逻辑表达式;
5、熟练掌握if语句和switch语句。
二、实验类型:
验证
三、实验环境
多媒体计算机、WINDOWSXP系统或纯DOS系统、turboc2.0以上或VisualC++编译平台。
四、实验内容
1、题目
已知三个数a,b,c,找出最大值放于max中。
分析:
由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。
第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else形式。
第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。
Max即为a,b,c中的最大值。
(2)、实验步骤
若输入下列数据,分析程序的执行顺序并写出运行结果
(1)a=1,b=2,c=3
(2)a=2,b=1,c=3
(3)a=3,b=2,c=1
(4)a=3,b=1,c=2
(5)a=3,b=3,c=2
(6)a=2,b=1,c=2
2.运输公司对用户计算运费。
距离越远,每公里运费越低,标准如下:
s<250km无折扣
250<=s<5002%折扣
500<=s<10005%折扣
1000<=s<20008%折扣
2000<=s<300010%折扣
3000<=s15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费计算公式为:
f=p*w*s*(1-d),编写程序计算运费。
要求:
(1)使用switch/case语句。
3、题目
输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
90分以上(包括90):
A
80至90分(包括80):
B
70至80分(包括70):
C
60至70分(包括60):
D
60分以下:
E
方法一:
(用if嵌套`)
分析:
由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。
因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。
输入测试数据,调试程序。
测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。
方法二:
用switch语句
分析:
switch语句是用于处理多分支的语句。
注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。
所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。
则由此可得把score除十取整,化为相应的常数。
输入测试数据,同方法一一样调试程序并写出结果。
五、实验总结
1.整理上机步骤,总结经验和体会。
2.完成实验报告和上交程序。
实验五循环结构程序设计
一、实验目的
1.熟悉用while语句,do-while语句和for语句实现循环的方法。
2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
二、实验类型:
验证
三、实验环境
多媒体计算机、WINDOWSXP系统或纯DOS系统、turboc2.0以上或VisualC++编译平台。
四、实验内容
编写程序并上机调试运行。
(代码先不给出)
1,输入两个正整数,求其中最大公约数和最小共倍数。
#include"stdio.h"
voidmain()
{intx,y,n,z;
scanf("%d%d",&x,&y);
z=x*y;
if(x>y){n=x;x=y;y=n;}
while(y%x!
=0)
{n=y%x;
y=x;
x=n;
}
printf("最大公约数是%d",x);
printf("最小公倍数是%d",z/x);
}
2,输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
#include"stdio.h"
voidmain()
{charc;
intyw=0,sz=0,kg=0,qt=0;
scanf("%c",&c);
while(c!
='\n')
{{if(c>='A'&&c<='Z'||c>='a'&&c<='z')
yw++;
elseif(c>='0'&&c<='9')
sz++;
elseif(c=='')
kg++;
elseqt++;}
scanf("%c",&c);}
printf("字母个数为%d,数字个数为%d,空格个数为%d,其他字符为%d",yw,sz,kg,qt);
}
3,输出九九表。
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
2
4
6
8
10
12
14
16
18
3
6
9
12
15
18
21
24
27
4
8
12
16
20
24
28
32
36
5
10
15
20
25
30
35
40
45
6
12
18
24
30
36
42
48
54
7
14
21
28
35
42
49
56
63
8
16
24
32
40
48
56
64
72
9
18
27
36
45
54
63
72
81
#include"stdio.h"
voidmain()
{inti,j;
for(i=1;i<10;i++)
printf("%5d",i);
printf("\n");
for(i=1;i<10;i++)
{for(j=1;j<10;j++)
printf("%5d",i*j);
printf("\n");
}
}
4,求输入的十个整数中正数的个数及其平均值。
5,两个乒乓球队进行比赛,各出三人。
甲队为A、B、C3人,乙队为X、Y、Z3人。
已抽签决定比赛名单。
有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编写找出3对赛手的名单。
(提示:
用循环和判断实现)
五、实验总结
1.整理上机步骤,总结经验和体会。
2.完成实验报告和上交程序。
实验六数组
一、实验目的
1、掌握数组定义的规则。
2、掌握C语言数组的基本用法。
3、掌握一维数组的定义、赋值和输入输出的方法;
4、掌握字符数组的使用;
5、掌握与数组有关的算法(例如排序算法);
6、掌握二维数组的定义、赋值和输入输出的方法;
7、掌握字符数组的使用;
8、掌握与数组有关的算法(例如排序算法)。
二、实验类型:
验证
三、实验环境
多媒体计算机、WINDOWSXP系统或纯DOS系统、turboc2.0以上或VisualC++编译平台。
四、实验内容(5之后的题目作为阅读程序要求)
1、编写程序,测试下列数组的定义方式是否正确
(1)main()
{
intn;
scanf(“%d”,&n);
inta[n];
……
}
(2)main()
{
constintn=10;
inta[n];
}
(3)#include
#defineM10
main()
{
inta[M];
}
(4)main()
{
inta[2+2*4];
}
(5) #include
#defineM2
#defineN8
main()
{inta[M+N];
}
通过这一实验,可以说明什么问题?
2、运行下面的C程序,根据运行结果,可以说明什么?
main()
{intnum[5]={1,2,3,4,5};
intii;
for(i=0;i<=5;i++)
pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高程 实验 指导书
![提示](https://static.bingdoc.com/images/bang_tan.gif)