版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一C++开发情况与步伐设计步调
一、目的和要求
1.学习VisualC++6,0集成情况,掌握源步伐编辑要领;
2,掌握在VisualC++6.0集成开发情况中编译、调试与运行步伐的要领:
3.通过运行简单的C++步伐,开端了解C++源步伐的特点。
二、实验设备及分组
1.Windows2000以上操纵系统;
2.VisualC++6.0语言情况;
3.每人一台PC机。
三、内容和步调
(-)C++步伐设计步调
一个C++步伐的设计可分成5个步调:
1.阐发问题。凭据实际问题,阐发需求,确定解决要领。
2.编辑源步伐。编写C++源步伐,并利用一个编辑器将源步伐输入到盘算机中的某一个文件中。C++源文件的扩
展名为“.cpp”。
3编译步伐。编译源步伐,查抄语法错误,生成目标代码文件。目标代码文件的扩展名为“.obj”。
4.连接步伐。将一个或多个目标步伐与库函数进行连接后,生成一个可执行文件。可执行文件的才展名为“.exe”。
5.运行步伐。执行可执行文件、阐发运行结果。若有算法错误,可进一步进行修改、编译、调试。
在编译、连接和运行步伐的历程中,都有可能出现各式百般的错误,要不绝地修改源步伐,重复以上历程,直到
得到正确的结果为止。
(二)VisualC++6O上机操纵要领
VisualC++6.0系统包罗了许多独立的组件,如编辑器、编译器、调试器以及种种百般为开发Windows情况下的C++
步伐而设计的东西。其中最重要的是一个名为DeveloperStudio的集成开发情况(IDE)。DeveloperSiudic把所有的Visual
C++东西结合在一起,集成为一个由窗口、对话框、菜单、东西栏、快捷键及宏组成的调和系统,通过该集成情况,步
伐员匕以视察和控制整个开发进程。
使用VisualC++6.0调试C++步伐要经过以下几个步调:
1.后动VisualC++6.。系统
启动VisualC++6O系统有许多种要领,最常见的是通过鼠标单击“开始”菜单,选择“步伐”,选择“MicrosofiVisual
Studio6.0",选择wMicrosoftVisualC++6.0w启动VisualC++6.0。如果已经在桌面上创建了uMicrosoftVisualC++6.0M
图标,则也可用鼠标双击该图标启动VisualC++6.0。VisualC++6.0启动乐成后,就产生如图1.1所示的VisualC++集成
情况。
标题栏,
菜单栏
工具栏
状态栏
图1.1典范的DeveloperStudio窗口
图1.1显示了一个典范的DeveloperStudio主窗口。它分为几个部分:窗口顶部是菜单和东西栏,其中包罗“File
(文件)"、“Edit(编辑”'、"View(视图)"、“Insert(插入)"、“Project(项目)"、“Build(编译、连接和运行)”、“Tools
(东西)"、“Windows(窗口”'、"Help(资助)”等菜单,分别对应一个下拉子菜单。左面的一个子窗口是事情区窗口,
事情区的右面是编辑子窗口。最下面是输出子窗口。
除了种种对话框外,DcvcQpsSludi“显示两种类型的窗口,即文档窗口和停靠窗口。文档窗口是般的带边框了
窗口,其中含有源代码文本或图形文档。Window子菜单中列出了在屏幕上以平铺方法照旧以层叠方法显示文档窗口的
命令。所有其他的DeveloperSludio窗口,包罗东西栏和菜单栏,都是停靠式窗口。
开发情况有两个主要的停靠窗口---Workspace(事情区)窗口和Output(输出)窗口。另外另有一个Debugger
(调试器)停靠窗口,只在调试历程中显示。
停靠窗口可以牢固在DeveloperStudio用户区的顶端、底端或侧面,大概浮动在屏幕上任何地方。停靠窗口,岂论
是浮动着的或是牢固着的,总是出现在文档窗口的上面。这样,就包管了当核心从一个窗口移到另一个时,浮动的东
西栏一直都是可见的。但这也意味着,文档窗口偶尔会看起来像消失了似的。例如,如果你正在文本编辑器中编辑源
代码,此时打开一个占据整个DeveloperStudio用户区的停靠窗口,源代码文档就会消失,它隐藏在新窗口之下。解决
要领是要么关了笼罩的窗口,要么把它拖到不挡眼的地方去。
值得注意的是,上述种种部件,包罗子窗口、菜单栏和东西栏的位置不是一成稳定的,可以凭据小我私家的喜好
重新摆设。
2.创建项目文件
通常都是使用项目的形式来控制和治理C++步伐文件的,C++的项目中存放特定步伐的全部信息,包罗源步伐文件、
库文件、创建步伐所用的编译器和其他东西的清单。C++的项目以项目文件的形式存储在磁盘上。
图1.2新建项目对话框
图1.3新建项目向导对话框
生成项目的操纵步调为:
(I)选择集成情况中的“File”菜单中的“New”命令,产生“New”对话框,如图1.2所示。
(2)选择对话框中的“Projects”标签,以便生成新的项目。在产生新项目时,系统自动生成•个项目事情区,并
将新的项目参加到该项目事情区中。
(3)在项目类型清单中,选择“Win32c51smeAWicalisi”项目,体现要生成个Windows32位控制台应用步
伐的项目。
(4)在“Location”文本框中输入存放项目文件的文件夹路径,如"C:\DOCUMENTSANDSETTINGS\YUYONG
YAN\桌面'新建文件夹二
(5)在“ProjectName”文本框中输入项目名。例如:Exel-K
(6)查抄“Platforms”文件框中是否已显示“Win32",体现要开发32位的应用步伐。
(7)单击“New”对话框中的“OK”按钮。产生一个对话框向导,如图1.3所示。
选“Ancmpiyproject”,按下“Finish”按钮,显示验证对话框,直接按“OK”按钮,这时就产生了一个项目文件。
系统自动加上文件扩展名“.dsw”。
3.创建C++源步伐文件并将其参加到项目文件
(I)选择“File”菜单中的“New”命令,则产生“New”对话框,如图1.4所示。
图1.4新建文件对话框
(2)选择对话框中的“Files”标签。
(3)在文件类型清单中,选择“C++SourceFile”项目,体现要生成一个C++源步伐。
(4)在“File”文本框中输入C++源步伐文件名.系统自动加上文件扩展名\cpp\例如:Exel_l_l.Cppo
(5)若“Addtoproject”复选框没有选中,则单击该复选框使其选中,体现系统要将指定的源步伐文件参加到当
前的项目文件中。
(6)单击“0K”按钮。这时就创建了一个新的C++源步伐文件,并已参加到了当前的项目文件中。产生如图1.5
所示的窗口。
该窗口有三个子窗口,左边的子窗口为项目事情区窗口:右边的子窗口为源步伐编辑窗口,用于输入或编辑源步
伐:下边的窗口为信息输出窗口,用来显示堕落信息或调试步伐的信息。
4.输入和编辑源步伐
在源步伐编辑窗口输入例1.1中生源步伐代码,如图1.5所示。
5.生存源步伐文件
选择“File”菜单中的“Save”命令,将源步伐生存到相应的文件中。
6.编译和连接
图1.5VisualC++6.0事情窗口
选择“Build”菜单中的“Compile”或“Build”命令,将源步伐编译或编译连接,产生可执行文件。系统自动加上
文件扩展名“.exe”。例如:Exel_l_l.exe。
在编译和连接期间,若出现错误,则在信息输出窗口给堕落误或警告信息。纠正错误后,重新编译或编译连接源
步伐,直到没有错误为止。
7.运行
选择“Build”菜单中的“Execute”命令,则在VC++集成情况的控制下运行步伐。被启动的步伐在控制台窗口下
运行,与Windows中运行DOS步伐的窗口类似。见下图。
图1.6运行结果
注意:也可以单击东西栏中的“!”按钮(BuildExecuie)大概按快捷键"CtH+F5”,直接编译与运行源步伐。
8.打开已存在的项目文件
可用两种要领打开已存在的项目文件:
(1)选择“File”菜单中的“Openworkspace”命令,然后在弹出的对话框中选择要打开的项目文件。
(2)选择"File"菜单中的"Recentworkspaces”命令,然后再选择相应的项目文件。
特别提醒:在调试一个应用步伐时,VisualC++集成情况一次只能打开一个项目文件。当一个步伐调试完成后,
要开始输入另•个步伐时,必须先封闭当前的项目文件,然后为新源步伐创建一个新的项目文件。不然将出现不可预
测的错误。
封闭当前的项目文件的要领是:选择“File”菜单中的“Closeworkspace”命令。
9.退出VisualC++集成情况
选择“File”菜单中的“Exit”命令,可以退出集成情况。
(三)验证阐发步伐
1.设计一个C++步伐,输出以下信息:
***************
Hello!
***************
解:
#include<iostream.h>
voidmain()
(
cout«H***************"<<、]'•
cout«"Hello!"«'\n';
cout«H木木木木木木木**太木木木木木“
}
运行结果:
***************
Hello!
*东东****水火火火****
2.设计一个步伐,从键盘输入一个圆的半径,求其周长和面积。
解:
#include<iostream.h>
voidmain()
(
floats,r;
cout«”请输入圆的半径:"《endl;
cin»r;
s=3.14159*r*r;
cout«"圆的面积为:"《$vVendl;
)
运行结果:请输入圆的半径:5
圆的面积为:78.5397
(四)完成实验项目
1.设计一个步伐,从键盘输入一个小写字母,将它转换成大写字母输出。
2.输入一个球的半径,求其外貌积和体积。
四、课后作业
撰写实验陈诉。
五、实验机时
2个标准学时。
实验二数据类型、表达式和输入输出
一、目的和要求
1.掌握C++语言数据类型,熟悉如何界说一个整型、字符型、实型变量,以及对它们赋值的要领,了解以上类型
数据输出时所用的格式转换符:
2.学会使用C++的有关算术运算符,以及包罗这些运算符的表达式,特别是自加(++)和自减-)运算符
的使用:
3,进一步熟悉C++步伐的编辑、编译、连接和运行的历程:
4,掌握数据的输入输出要领。
二、实验设备及分组
1.Windows2000以上操纵系统;
2.VisualC++6.0语言情况;
3,每人一台PC机。
三、内容和步调
(-)验证阐发步伐
1.编写步伐完成变量x和变量y值的互换,调试步伐并视察运行结果。
要互换变量x和变量y的值,可以借用临时变量z进行互换。
一个完整的参考步伐如下:
#include<iostreani.h>
voidmain()
(
intx,y,z;//A
cout«"x,y=
cin»x»y;
coutvv"输入的x="«x«"y="«y«endl;
z=x:
x=y;
y=z;
coutvv"输出的x="«x«"y="«y«endl;
)
思考.
•在犍盘上分别按如下格式输入两组数据,并视察步伐运行结果:
5,3(回车)
53(回车)
•将步伐中的x,y,z命名为auto,break,case,视察是否堕落?阐发原因。
•只将步伐A行x改为大写X,视察是否堕落?阐发原因。
•修改步伐,用条件运算符输匕两个数中的较大数。
2,编步伐输入x、y和z的值,盘算x+z的值。
表达式X+Z的值不一定为整数,故步伐中变量的类型应采取实型。
参考步伐如下:
#include<iostream.h>
voidniain()
floatx.y.z.e.f.w://A
cout«"x,y,z="«endl;
cin»x»y»z;
e=(x+l)*(y-l);//B
f=x+y;//C
w=e/f;//D
cout«"w="«w«endl;
思考:
•输入x=5.4,y=3.1,z=2.7,视察步伐运行结果。
■将步伐中A行改为“intx,y,z,,,f,w;",输入x=5.4,y=3.I,z=2.7,视察步伐运行结果。
•将步伐中A行改为“floatx,yzw;",B、C、D行改为“w=(x+l)*(y-l)/x+y;”,视察步伐运行结果。
3.编写步伐,从键盘输入一个三位正整数,将其倒序输出。例如:输入861,输出为168。
输入的三位数为整数,变量类型按整型进行处理惩罚。可采取求余数的要领盘算列位上的数,然后逆序输出。参
考步伐如下:
#include<iostream.h>
voidmain()
{
intn,i,j,k;
coutvv"输入一个三位正整数n:";
cin»n;
i=n%10;存放个位数
n=(n-i)/10;〃去掉个位数
j=n%IO;//j存放十位数
n=(n-j)/10;〃去掉十位数
k=n;〃k存放百位数
n=i*100+j*10+k;
coutvv”逆转数为:"vvn«endl;
}
思考:
•修改步伐,使其先取百位数,再取十位数,最后取个位数。
4.本例测试了差别数据类型之间的数据转换。阐发下列步伐的运行结果。
#includc<iostrcam.h>
voidmain()
{
inta=32.b;
doublec=2.7,d;
chare='D',f;
b=a+c;//A
d=a+c;
f=a+e;
cou(«"b="«b«endl;
cout«"d="«d«endl;
cou(«"f="«f«cndl;//B
cout«b+d+f«endl://C
)
思考.
•修改步伐A行,对b的输出值四舍五入。
•修改步伐B行,按整型值输出f。
•阐发C行数据的值的类型。
(-)完成实验项目
I.输入二整数a、b,实现二个数的互换(不借用第三变量)。
2.从键盘输入二角形的二边长,输出二角形的周长和面积(此处假设可以组成二角形)。
3.编写步伐输入两个整数,输出它们的商和余数。
四、课后作业
1.从键盘输入一个三位整数n=abc,从左到右用a、b、c体现列位的数字,现要求依次输出从右到左的列位数
字,即输出另一个三位数m=cba,例如:输入123,输出321。(不得采取实验中已使用过的要领)
2.撰写实验陈诉。
五、实验机时
2个标准学时。
实验三选择结构的步伐设计
一、目的和要求
I.掌握VisualC++6.0集成情况中的单步执行;
2.熟悉if与switch语句的格式、执行历程、使用要领及典范案例:
3.学会使用选择结构解决一般的实际问题,能编写简单的应用步伐。
二、实验设备及分组
1.Windows2000以上操纵系统:
2.VisualC++6.0语言情况:
3,每人一台PC机。
三、内容和步调
(一)验证阐发步伐
1.由键盘输入三个数,判断能否组成三角形。
阐发:
判断b+c>a是否创建,若不创建贝J一定不能组成三角形;若创建则有可能组成三角形,再判断beca是否创建。因
b-c有可能小于0,用b-cva时不能准确描述两边之差小于第三边,需取绝对值进行阐发。
参考步伐如下:
#include<iostream.h>
voidmain()
doublea,b,c,t;
coutvv"请输入a的值"《endl;
cin»a;
couivv”请输入b的值"V<endl;
cin»b;
coui<<”请输入c的值”《cndl;
cin»c;
t=b-c;
if(t<0)
t=-t;
if(b+c>a)
if(t<a)
coui<<"能组成三角形"<<endl;
else
coutv<"不能组成三角形""endl:
else
cout<<"不能组成三角形"《endl:
思考:
•将步伐改为非嵌套的if语句实现。
•在步伐中增加语句,使其在能组成三角形的情况下进一步判断三角形的类型(直角、钝角、锐角三角形)。
提示:三角形的类型由最长边所对的角决定。假定三角形最长边为c,其所对的角为0。其他两边为a、b。盘算公
式如下:
cos^c=-cr-+-b-~--c-
lab
例如,
当c2=a2+b2时,为直角三角形:
当c2>a2+b2时,为钝角三角形;
当c2<a2+b?时,为锐角三角形。
2,某商店“五•一'长假期间购物打折。规矩如下:
若每位主顾一次购物,
①满1000元,打九折:
②满2000元,打八折:
③满3000元,打七折;
④满4000元,打六折:
⑤5000元,打五折:
编写步伐,输入购物款,输出实收款。
解:本例使用了if-elseif语句进行多重判断。参考步伐如下:
#include<i()streani.h>
voidmain()
(
doublem.p;
cout<<"输入购物款:”;
cin»m;
if(m<IOOO)p=m;
elseif(tn<2()00)p=0.9*m;
elseif(m<3000)p=0.8*m;
elseif(m<4000)p=0.7*m;
elseif(m<5000)p=0.6*m;
elsep=0.5*m;
cout«"实收款:"«p«endl;
)
3.有下列分段函数:
zX+1x<0
y=.x2-5
x3x^lO
编一步伐,输入x,输出y的值。
解:步伐如下:
include<iostreani.h>
voidmain()
(
floatx,y;
cout«"Inputx:";
cin»x;
if(x>=0)
if(x>=10)
y=x*x*x;
else
y=x*x-5;
else
y=x+l;
cout<<"y="«y«endl;
}
运行结果:
Inputx:-3
y=-2
(二)虎成实验项目
I.设计一个步伐,判断从键盘输入的整数的正负性和奇偶性。
2.编写步伐,实现下列函数成果:
—x+2.5(x<2)
2—1.5(x—3)2(2Wx<4)
(—1.5(x>4)
3.已知奖金税率如下:(a代表奖金,r代表税率)
a<500(>c)r=0%
500^a<1000r=3%
1000^a<2000r=5%
2000^a<5000r=8%
a25000r=12%
输入一个奖金数,求税率、应交税款及实得奖金数。
3.输入某一年的年份和月份,盘算该月的天数。
提示
(1)一年中的大月(1月、3月、5月、7月、8月、10月、12月),每月的天数为31天;
(2)一年中的小月(4月、6月、9月、11月),每月的天数为30天;
(3)对付2月,则要判断该年是平年照旧闰年,平年的2月为28天,闰年的2月为29天。
某年切合下面两个条件之一就是闰年:
①年份能被400整除;
②年份能被4整除,但不能被100整除。
4.输入平面直角坐标系中一点的坐标值(x,y),判断该点是在那一个象限中或那一条坐标轴上。
四、课后作业
I.设计一个盘算器,可以实现新单的四则运算:
2.撰写实验陈诉。
五、实验机时
2个标准学时。
实验四循环结构的步伐设计
、目的和要求
1.掌握循环结构while、do-whik,for等语句格式、执行历程、使用要领及典范案例。
2,学习循环结构的嵌套使用。
3.掌握分支与循环综合步伐的编写要领;
4.学习并熟悉break、continue的区别与使用。
5.学会常用数值与图形的编程要领。
二、实验设备及分组
1.Windows2000以上操纵系统:
2.VisualC++6.0语言情况:
3,每人一台PC机。
三、内容和步调
(-)验证实验步伐
1.盘算:S=l+2+3+4+-+n0
(开始/解trr.•
步伐流程图如图4.1所示,步伐如下:
/输入n#includc<iostreain.h>
voidinain()
in(i.n,sum;
cou:«"Inputaninteger:";
cin»n;
surr.=0;
i=l;
while(i<=n)
sum=sum+i;
i++;
)
cou:«"sum=',«sum«endl;
图4.1求累加和流程图
运行结果:
Inputaninteger:5
sum=15
2,裴波那契数列的前几个数为1,1,2,3,5,8,……,其规律为:
Fi=l(n=l)
F2=l(n=2)
Fn=Fn-l+Fn-2(仑3)
编写步伐求此数列的前面40个数。
阐发:可设两个变量fl和f2,它们的初值为fl=l,即数列的第1项,f2=l,即数列的第2项,用一个循环结构来
求数列的前40项,每次处理惩罚两项,所以共循环20次,进入循环后,首先输出fl、f2,然后令n=fl+f2,即可求得
第3项,再令f2=f2+fl,注意此时的fl已经是第3项了,所以可求得第4项;进入下一次循环时,首先输出第3、4项,
然后按上述要领求得第5、6项,以此类推即可求得前40项。
解:
#include<iostream.h>
#include<ionianip.h>
voidniain()
{
longint
inti;
H=l;f2=l;
for(i=l;i<=20;i++)
cout«setw(12)«fl«setw(l2)«f2;
if(i%2==0)
cout«cndl;
fl=fl+f2;
R=f2+fl;
例中“if”语句的作用是使在一行中输出4个数。
运行结果:
1123
581321
345589144
233377610987
1597258441816765
10946177112865746368
75025121393196418317811
51422983204013462692178309
35245785702887922746514930352
241578173908816963245986102334155
3.求出100〜200之间的所有素数,输出时•行打印五个素数。
阐发:判断一个数a是否为素数,只需将它整除以2〜6(取整)即可,如果都不能整除,则a就是素数。
解:
#include<iostream.h>
#include<niath.h>
#include<iomanip.h>
voidmain(void)
(
inta.k.i.n;
n=0;
for(a=100;a<=200;a++)
(
k=sqrt(a);
for(i=2:i<=k;i++)
if(a%i==0)
break;
if(i>k)〃若i>k,则i为素数
cout«setw(12)«a;〃输出素数
n=n+1;〃对素数统计个数
if(n%5==0)
cout«cndl;
)
)
cout«endl;
)
步伐运行后,输出,:
101103107109113
127131137139149
151157163167173
179181191193197
199
4.编写步伐用公式盘算c「的近似值。直到最后一项小于给定精度。
阐发:这是•个累加求和的问题,仔细阐发各项,可以发明从第二项开始,各项的值为前•项除以序号n:
X”=&
n
解:
#include<iostream.h>
voidmain()
{
doublee=1.0,x=1.0,y,z;
intn=l;
cout«"input精度:”;
cin»z;
y=l/x;
while(y>=z)
(
x*=n;
y=l/x;
e+=y;
++n;
)
cout«c«cndl;
)
思考:
•将步伐中while结构改写为do-while,视察步伐的运行结果。
•增加“continue”或“break”语句,使步伐在输入数据大于0.01时,显示“精度要求太低,请重新输入”的
提示。
5.有一对兔子,从第3个月起每个月生一对兔子,小兔子从第3个月起每个月又生一对兔子。假设所有兔子都不
死,编步伐盘算每个月的兔子是多少对?(求20个月)。
阐发:从第3个月开始,下个月兔子的对数为本月兔子的对数与二月免子对数之和。这样可得出该序列的规律是:
从笫3项开始,该项的值为前两项之和。
兔子数目的规律是:
1、1、2、3、5、8、13、21............
解:
#includc<iostrcani.h>
voidmaiii()
(
int
inti;
fl=f2=l;
for(i=3;i<=20;i++)
{//A
f3=fl+t2;
coutvvivv”月兔子对数为:"«f3«endl;
fl=f2;
f2=f3;
思考:
•将步伐A行中改写为“fbr(i=2O;i>=3;i--)”后,视察步伐运行结果;
•画出本例的流程图。
6.编写步伐打印如图4-2所示蝶形图形。
阐发:此图形为上下对称结构,用・3〜3的整数标识行号i,则每行字符“B”的个数可体现为每行字符“B”
前空格的个数随着|i|的增大而淘汰,空格的个数要大于0。
解:
#include<iostreaFn.r>
BBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBvoidmain()
BBBBBBBBB{
BBB
inti,j,k,d;
BBBBBBBBB
BBBBBBBBBBBBBBBfor(i=-3;i<=3;i++)
BBBBBBBBBBBBBBBBBBBBB{
图4-2蝶形cout«endl;
d=i;
if(i<0)d=-i;
for(j=l;j<=10-3*d;j++)
cout«"
for(k=1;k<=6*d+3;k++)
cout«"B";
)
cout«endl;
)
思考:
•将步伐中的“for(j=l;jv=10-3*d;j++)”用“for(j=l;j<=30-3*d;j++)”改写后,视察步伐运行结果。
•将步伐中的“R)r(i=-3;iv=3;i++)”用“for(i=-10;iv=IO;i++)”改写后,视察步伐运行结果。
•将步伐中的“for(k=l;k<=6*d+3:k++)”用“for(k=l;k<=10*d+3;k++)”改写后,视察步伐运行结果。
7.将下列do-while结构修改为while结构,分别视察输出结果。
#include<iostreani.h>
voidniain()
(
inta=0;//A
do
(
a++;
cout«"a="«a«endl;
}while(a>1);
思考:
•将条件while(a>l)改为while(a),分别视察输出结果。
•将A语句改为a=-10,while(a>l)改为whilc(a),盘算循环执行的次数。
8.从键盘输入任意多个整数(-999为结束标记),盘算其中正数之和。
闸发:采取转向语句break和continue实现。break在循环体中用于退出本层循环;continue用于结束本次循环。
解:
#include<iostream.h>
voidmain()
(
intx,s=0;
while(l)
{
cin»x;
if(x==-999)break;//A
if(x<0)coniinue;//B
s=s+x;
)
cout«"s="«s«endl;
}
思考:
•互换A行和B行的位置,视察步伐运行结果。
•修改步伐”输入任意多个整数(-999为结束标记)”为“直到包罗20个正数时”,盘算正数之和。
(二)完成实验项目
1.编步伐打印一个如图4-3所示的数字金字塔;
1
121
12321
1234321
12345678987654321
图4-3数字金字塔
2.输入一行字符,分别统计出其中英文字母、空格、数字字符、其它字符及单词的个数。
3.设有一个数列,它的前四项为0、0、2、5,以后每项分别是其前四项之和,编程求此数列的前20项。
4.求n近似值的公式为:
工——,2-x—X-X-X***——x——...
2—1X3X3X5X272-1X2〃+1
其中,n=l、2、3…设计一个步伐,求出当n=1000时的丸的近似值。
5.求出1〜599中能被3整除,且至少有一位数字为5的所有整数。如15、51、513均是满足条件的整数。
四、课后作业
I.设用100元钱买100支笔,其中钢笔每支3元,圆珠笔每支2元,铅笔每支0.5元,问钢笔、圆珠笔和铅笔
可以各买多少支(每种笔至少买】支)?
2.撰写实验陈诉。
五、实验机时
2个标准学时。
实验五数组
一、目的和要求
I.掌握一维数组、二维数组、字符数组的界说、初始化赋值、数组元素的引用要领;
2.掌握求最大、小值、平均值、排序的要领以及有序数组的查找、增加、删除的编程要领:
3.开端掌握字符串处理惩罚函数的使用要领以及字符串复制、连接、测长等步伐的编写要领;
4.掌握数组的典范应用。
二、实验设备及分组
1.Windows2000以上操纵系统;
2.VisualC++6.0语言情况;
3,每人一台PC机。
三内容和步调
(一)验证实验步伐
1.应用一维数组,对10个数进行冒泡排序,使其凭据从大到小的顺序输出。
阐发:n个数冒泡排序的要领是将第一个数与其背面的数逐个进行比力,发明大者进行互换,完成后最大的数就放
到了第•个的位置;第二个数与其背面的数逐个进行比力,发明大者进行互换,完成后次大的数就放到了第二个的位
置:如此循环,直到第n-1个数与第n个数进行比力,发明大者进行互换。
解:
#includc<iostrcam.h>
voidmain()
(
inta[10];//A
inti,j,t;
coutvv”输入数据:"v<endl;
for(i=0;i<10;i++)//B
(
cout«"a["«i+l«"]=";
cin»a[i];
}
for(i=0;i<=8;i++)
|
for(j=i+1;j<=9;j++)
(
if(a[i]<a[j])
(
t=a[i];
aliJ=aUl;
aU]=t;
coutvv"排序结果为:"«endl;
for(i=0;i<=9;i++)cout«"a[',«i+1<<"]="«a[i]«""«cndl;
)
思考:
•将A行改为下列步伐段:
intn;
cin»n;
inta[n『
视察运行结果?阐发原因。
•将B行改为“fbr(i=l;i<=10;i++)”,视察现象。
2,应用二维数组打印如图5-1所示杨辉三角形。
阐发:由杨辉三角形可以看出每行数存在以下规律:每行数据的个数与行序相同;每行的第一个数和最后一个数
均为I;中间的数为上一行同一列的数和其前一列的数之和。
解:
1
#include<iostrcam.h>
11
voidniain()
121
{
1331
inty[5][5];
14641
inti,j,n=5;
图5-1杨辉三角形
for(i=0;i<n;i++)
ylil[i|=l;
y[i][O]=i;
1for(i=2;i<n;i++)
11(
121for(j=l;j<i;j++)
1331y|illjl=yli-i||j-i|+yli-ilUl.
I4641)
y5-2杨辉三角形cont<v"杨辉三角形:"wendl;
for(i=0;i<n;i++)
cout«"
fbr(j=O;j<=i;j++)cout«y[i][j]«"
cout«endl;
)
)
思考:
•添加语句输出如图5-2所示杨辉三角形。
3.从键盘输入两个字符串,将它们连接成一个字符串。
闸发:创建两个变量i、j,先使i指向字符数组strl的第一个元素,然后移动i使其指向sirl的末尾,即指向strl
的最后一个元素'\0';再使j指向字符数组slr2的第一个元素,然后将str2中的元素分别赋给sirl中相应位置的元素,
直到str2结束为止,即j指向str2的最后一个元素'\0';最后在strl的末尾添加一个结束标记'\0'。
步伐如下:
解:
#include<iostream.h>
voidmain(void)
charstrl[40],str2[20];〃界说字符数组strl、str2
inti,j;
COUtVV”输入二个字符串:
cin.getline(strl,20);〃输入字符串1到sirl中
cin.getline(str2,2O);〃输入字符串2到str2中
i=0;〃使i指向strl的第•个元素
while(strl[”!=、()')〃判断strl是否结束
i++;//strl没有结束,使i指向下一个元素
j=o;〃使j指向str2的第一个元素
while(str2[j]!=V)')〃判断str2是否结束
i
strl[i)=str2|j|;〃str2没有结束,将str2m赋给;s有[i]
i++:〃使i指向strl的下一个元素
j++;〃使j指向str2的下一个元素
)
strl|i|=^';〃在strl末尾添加结束标记'\0'
cout«strl«cndl;//输出strl
4.编步伐将输入的字符串删去空格后输出。
阐发:逐个读取每个字符,若为空格将其背面的字符和字符串结束标记前移一位,再从该位置开始,重复上述操
纵,直到字符串结束。
解:
#include<iostream.h>
voidinain()
charstr|]="Thisisabook!";//A
inti=O,j;
while(str[i]!=NULL)
|
if(str[i]=='')
{//B
j=i;
while(str[j]!=NULL)
(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景观土方开挖施工方案
- 加油站加油机安装施工方案
- 2025重庆市中考数学试题(原卷版)
- 高温作业职业性家庭关怀
- 幼儿园户外活动时间保障政策执行研究-基于全国幼儿园户外活动监测数据分析研究
- 2026年湖北省武汉市2026届高三下学期4月供题 生物 含答案新版
- 江西省三新协同教研共同体2025-2026学年高二上学期12月联考语文试题
- 剑桥英语三级口语考试模拟训练指南
- 二年级下册数学辅导课课程计划
- 物业服务合同范本
- 2026年少先队考核模拟试题及答案详解(全优)
- 中国金谷国际信托有限责任公司招聘笔试备考试题及答案解析
- 湖南 2026 政府采购评审专家续聘考试(3) 真题
- 2026天津富凯建设集团有限公司招聘工作人员招聘4人考试参考题库及答案解析
- 2025年芯片测试岗笔试题目及答案
- 预应力混凝土空心方桩08SG360
- 安宁疗护病区工作制度
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- ktv食品安全管理制度
- (高清版)JGJ340-2015建筑地基检测技术规范
- 无线电调试工中级考试试卷试题库
评论
0/150
提交评论