c语言与数据结构实验指导完整版.docx
- 文档编号:11260702
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:49
- 大小:199.13KB
c语言与数据结构实验指导完整版.docx
《c语言与数据结构实验指导完整版.docx》由会员分享,可在线阅读,更多相关《c语言与数据结构实验指导完整版.docx(49页珍藏版)》请在冰豆网上搜索。
c语言与数据结构实验指导完整版
HarbinInstituteofTechnology
C语言与数据结构
实验指导书
刘梅索莹田文龙
哈工大电子与信息工程学院
电子工程系
实验1实验平台
一、实验目的
1.掌握MicrosoftVisualC++集成环境的使用方法。
2.掌握C程序在MicrosoftVisualC++开发环境中的编辑、编译、链接和运行
全过程
二、实验内容
1)启动MicrosoftVisualC++开发环境
双击桌面应用程序图标或云兄“开始”菜单程序组中的MicrosoftVisual
C++应用程序,启动VC++如图所示
图VC++初始界面
2)建立C源程序文件
方法1:
单机工具栏的“新建文本文件”按钮四,打开文本文件编辑界面如下图所示
•mTtTAvu«l
c+*
1
TFfx!
km-«act
JU0ill?
+•⑴H"1'MJ
N1(*U0
ji«l
J
ifji
p、•金巴#
l利■
1-lrLiatf土:
:
卅;中訓e・siiM;亠Tbll
詁芍.严i".i
图文本文件编辑界面
方法2:
执行“文件”->“新建”命令,在“文件”选项卡下选择C++Source
File文件类型,然后输入C源程序文件名和保存文职,如图所示,然后单击
“确定”按钮,打开源程序文件编辑界面,如图所示。
注意:
输入C源程序文件名时必须带上扩展“.c”,否则默认创建的是扩展名为“.cpp”的C++文件。
3)编辑源文件
方法1:
在如图所示的文本文件编辑界面中输入源程序代码,如图所示。
方法2:
在如图所示的C源程序文件编辑界面中编辑源程序代码,如图所示。
图新建文件
对©aMq.tMv
I爭|訂■串叩XHT・njiII*年
|$站■l
BPV•「
*>
[
JI
一d一
(fid丄週圧>.左亠力申营桥,主女斗:
甘否址】羽甲;:
丘i^irzrH
Mtf[行W
图C源程序文件编辑界面
图文本文件编辑界面编辑源文件
图C源程序编辑界面编辑源文件
4)
保存源文件
界面中编辑的源文件保存时必须在文件名后加上扩展名“.C”,否则保存的是扩
展名为txt的文本文件,不能编译运行。
5)组件文件
执行“组建”->“组建”命令或直接按F7功能键或单机工具栏Build按钮,可以对源文件进行编译、链接而不运行改程序。
当然也可以先执行“组建”->“编译”(快捷键Ctrl+F7)命令编译文件,再执行“组建”->“组建”(快捷键F7)命令链接文件。
由于VC+有工作区的要求,所以组建时,系统提示需要建立工作区,如图所示。
单机“是”按钮,系统会自动建立工作区,组建后的结果如图所示。
图提示建立工作区
trx
匚畀宅$
<]|AHqloMh
-
llphl^g・■■
uq,iLe.u
■ImcliM-r<.LE.dlv!
.fi>)
'»11
d:
Jn扭xwTra-iX*皿毎宅上TH13"SOr(:
IFH®
實鶯心191・・IMFBvrrDr(E)a■wrninf(i)
■blM・鼻试k星乂样i甲瞅h妙刑甲置罠i.ta餌二孤JIW
图组建源程序结果
注意:
图下方的“组建”信息窗口中的内容说明了组建的结果,必须保证错误(error(s))数为0才能运行程序。
6)运行文件
执行“组建”->“执行”命令或直接按Ctrl+F5键或单机工具栏
BuildExecute按钮,可以运行程序,结果显示在用户输出窗口中,如图所示
图用户输出窗口
注意:
如果要编辑下一个C源程序,由于新建的文件不会自动加入工作区,
因此需要先关闭当前工作区。
方法是执行“文件”->“关闭工作空间”命令,或者关闭后重新启动VC++再按照上述方法建立、编辑新的C源文件,让VC+自动建立工作区。
7)运行“加法”程序
在VC+环境中建立并编辑实现加法运算的源程序,然后组建该文件,结果如图所示。
运行该文件,并按要求输入数据,得到运行结果。
图VC++环境下组建“加法”程序后的界面
实验2顺序结构程序设计
一、实验目的
1.掌握上机运行C程序的全过程。
2.掌握各种格式说明符的使用方法。
3.掌握格式输入输出函数scanf()和printf()的用法。
4.熟悉字符输入输出函数getchar()和putchar()的用法
二、实验内容
1.格式说明符的使用。
创建并编辑输入输出各个类型数据的程序,分析各个格式说明符的作用。
2.编写“输入输出字符”程序,功能如下:
使用getchar()函数接收一个字符,
用printf()函数显示;使用scanf()函数接收一个字符,用putchar()函数显示。
3.编写“求三角形面积”程序,功能如下:
输入三角形三边长,求三角形的面积。
已知三角形的三边长a、b、c,则该三角形的面积公式为:
09okm
其中,s(abc)/2。
4.编写“圆柱体”程序,功能如下:
设圆柱体的半径r=,圆柱高h=,求出该圆
柱体的表面积和体积。
要求:
用scanf()函数输入数据,输出时要求有文字说明,取小数点后两位数字。
三、实验指导
1.格式说明符的使用
(参考教材)
2.“输入输出字符”程序
1)编程分析
(1)需要定义字符型变量存放输入的数据;
⑵用scanf()函数输入字符时,要注意不要接收缓冲区中已有的字符。
2)参考程序
#include""
main()
{
chara,b,c;
printf("acharacter:
'n");
a=getchar();c=getchar();
printf("Thecharacteris:
%c\n\n",a);
printf("acharacter:
'n");
scanf("%c",&b);
printf("Thecharacteris:
");
putchar(b);
putchar('\n');
}
3.“求三角形面积”程序
1)编程分析
(1)该问题的解决过程如下:
定义变量
—J输入三角形三边边长
计算面积
—*
输岀结果
⑵需要定义实型(float或double)变量存放相应的数据;
(3)计算面积需要用到开平方函数sqrt(),该函数原型包含在头文件中,因此需要在程序开始将头文件包含进来;
(4)根据实际情况确定各个变量在输出时的宽度和小数位数。
2)参考程序
#include“”
#include“”
main()
{
floata,b,c,s,area;
printf(“Inputa,b,c:
\n”);
scanf(“%f,%f,%f”,&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*s(s-a)*(s-b)*(s-c));
printf(“a=%,b=%,c=%\n,a,b,c);
printf(“area=%\n”,area);
}
3.“圆柱体”程序
1)编程分析
(1)该问题的解决过程如下:
定义变量
J输入半径和高
计算表面积和体积
输岀结果
⑵需要定义实型(float或double)变量存放相应的数据;
(3)计算过程中需要用到常数,为使用方便,在程序开始用宏定义命令define
将常数(即)用PI表示;
(4)输出数据时根据要求确定各个变量的宽度和小数位数(本例采用)。
2)参考程序
#include“”
#definePI
main()
{
floatr,h;
doubles,v;
printf(“Inputthevalueofrandh:
\n”);
scanf(“%f,%f”,&r,&h);
s=2*PI*r*r+2*PI*r*h;
v=PI*r*r*h;
printf(“Thevalueofsis:
%\n”,s);printf(“Thevalueofvis:
%\n”,v);
}
实验3选择结构程序设计
一、实验目的
1.学会使用逻辑表达式表示条件的方法。
2.掌握switch语句的用法。
二、实验内容语句的应用编写计算器程序。
要求从键盘任意输入两个数值,然后输入一个四则运算符,自动完成运算后输出结果。
三、实验指导语句的应用
1)编程分析
(1)四则运算共有加(+)、减(-)、乘(*)、除(/)4种运算,要做出判断需使用switch语句。
(2)当输入符号为四则运算之外的符号时,不进行任何运算,但应给出相应的提示信息。
当使用提示信息时,switch语句应含有default子句。
2)参考程序
#include“”
voidmain()
{
floatx,y;charp;scanf(“%f,%f”,&x,&y);p=getchar();switch(p){
case'+
case
printf(
%f*%f=%f\n
x,y,x*y);break;
case
printf(“%f/%f=%f\n”,x,y,x/y);break;
default:
printf(“Inputiserror!
\n”);
}
}
3)程序调试
调试程序时,+、-、*、/及非四则运算符的情况都应予以调试
实验4循环结构程序设计
一、实验目的
1.通过本实验,加深对循环控制结构有关概念的理解。
2.掌握二重循环结构程序的设计方法。
二、实验内容
1.阶乘累加冋题。
编写程序,求1!
+2!
+3!
+…+n!
的值。
2.取彩球问题。
有12个彩球:
3个白色,5个红色,4个黄色,从中任意取n个球(2n12),求出所有不同的取法。
三、实验指导
1.阶乘累加问题
1)编程分析
(1)本实验内容为求解阶乘问题。
(2)求n!
用一个循环即可实现。
⑶求1!
+2!
+3!
+…+n!
的值,需要在求阶乘程序之外增加一个外重循环。
2)参考程序
#include“”
voidmain()
{
longints=1,t;
inti,j,n;
printf(“n=”);
scanf(“%d”,&n);
for(i=2;i<=n;i++)
{
for(t=1,j=1;j<=i;j++)
t*=j;
s+=t;
}
printf(“s=%ld\n”,s);
}
3)程序调试
(1)输入一个不大的正整数,分析程序执行结果。
(2)输入一个零或者负数,分析程序执行结果。
(3)输入一个很大的正整数,分析程序执行结果。
(4)当程序结果不符合要求时,修改程序,直到对任何输入数据都能输出正确的执行结果,或者给出一个明确的提示信息。
例如,当输入数据非法时,给出一个错误的提示信息。
2.取彩球问题
1)编程分析本题用到“穷举”算法。
穷举的基本思想是对问题的所有可能性一一测试,直到找到解或将全部可能状态都测试过为止。
“穷举”的核心是依次测试循环体。
循环控制有两种办法:
计数法和标志法。
计数法要先确定循环次数,然后逐次测试,完成测试次数后循环结束;标志法是达到某一目标后循环结束。
2)参考程序
#incude“”
voidmain()
{
intn,white,red,yellow,count=0;
printf(“Input”);
scanf(“%d”,&n);
printf(“whiteredyellow\n”);for(white=1;white<=3;white++)for(red=1;red<=5;red++){
yellow=n-white-red;
if(yellow>=1&&yellow<=4)
{
printf(“%5d%5d%5d”\n,white,red,yellow);
count++;
}
}
printf(“Total:
%d\n”,count);
}
3)程序调试
(1)输入不小于2并且不大于12的整数值,查看并分析程序结果。
(2)输入小于2或者大于12的整数值,查看并分析程序结果。
(3)修改程序,使得程序运行时只接受(2n12)的输入值,并能获得正确结果
实验5数组
一、实验目的
1.了解数组的特点,掌握一维数组的定义、初始化及其使用方法。
2.掌握二维数组的定义、初始化及其使用方法。
3.能用一维数组和二维数组解决简单的实际问题。
二、实验内容
1.鞍点问题
在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的鞍点。
要求从键盘输入一个二维数组,当鞍点存在时,把鞍点找出来。
2.选择法排序问题将存储在一维数组中的10个整数用选择法进行排序。
三、实验指导
1.鞍点问题
1)编程分析
(1)对二维数组按行处理。
(2)对每一行首先找出它的最大值元素,然后看它在该列上是否为最小值,若是,则找到一个鞍点。
(3)找到鞍点后输出元素值及其所在的行列值。
2)参考程序
#defineM3
#defineN4
voidmain()
{
inta[M][N],i,j,k;
printf(“请输入二维数组的数据:
n”);for(i=0;i for(j=0;j scanf(“%d”,&a[i][j]); for(i=0;i { k=0;for(j=1;j if(a[i][j]>a[i][k]) k=j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据结构 实验 指导 完整版