实验和实验程序设计的三种基本结构第次实验第周文档格式.docx
- 文档编号:18600477
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:15
- 大小:37.50KB
实验和实验程序设计的三种基本结构第次实验第周文档格式.docx
《实验和实验程序设计的三种基本结构第次实验第周文档格式.docx》由会员分享,可在线阅读,更多相关《实验和实验程序设计的三种基本结构第次实验第周文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
cout<
<
"
输入三个边长:
"
;
cin>
>
a>
b>
c;
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
area="
<
area<
endl;
return0;
}
⑸运行结果截图:
思考题及问题:
将程序中的“s=1.0/2*(a+b+c;
”语句改为“s=1/2*(a+b+c);
”,再进行编译、链接、运行,看结果如何。
将程序中的“area=sqrt(s*(s-a)*(s-b)*(s-c));
”语句改为“area=sqrt(s(s-a)(s-b)(s-c));
③分析题目中,若输入(3、6、10)运行时有什么样的缺陷?
修改程序保证任意输入的a,b,c的3个值均能代表三角形的三条边,求三角形的面积。
④在③的基础上,若想求10个这样三角形的面积,怎么修改程序。
2.P150-练习题3
⑴编程序,计算下面分段函数的值。
2x+10(x<
0)
y=8x+5(0≤x≤10)
4x-10(x>
10)
⑵要求
①用键盘输入x的值。
②运行程序时,分别按x的值小于0、x的值在0到10之间、x的值大于10三种情况输入数据,检查输出的y值是否正确。
该程序根据输入数据x的值不同,计算不同的函数表达式,并输出计算结果,显然需要采用分支结构实现,由于此分段函数只有3种情况,故可以采用if~elseif~else多分支语句实现。
如果情况比较多,如5种以上的情况,建议采用switch语句实现。
intx,y;
输入x的值:
x;
if(x<
0)
y=x+10;
elseif(x<
=10)
y=8*x+5;
else
y=4*x-10;
cout<
x="
x<
y="
y<
return0;
判断x的值在0~10之间可否使用表达式“0<
=x<
=10”?
为什么?
正确的表示方法是什么?
3.P150-练习题4
⑴输入并运行以下程序,分析程序的运行结果。
floatx,y;
x=2.2;
y=x/2.0;
y=y*2.0;
if(y==2.2)
x==y"
if(x=y)
这是一个逻辑错误!
⑵运行结果截图:
为什么该程序的运行结果是输出“这是一个逻辑错误!
”?
将“if(y==2.2)”改为“if(fabs(y-2.2)<
1e-6)”,然后运行程序,查看结果,结果如下:
该程序中的“if(x=y)”到底要表达何意?
请改成正确的形式。
修改后的程序代码及运行结果如下:
4.P153-练习题6
运行结果截图:
本程序所给代码中的switch语句没有default语句可以吗?
default语句应该在switch语句的什么位置?
本程序所给代码中,最后一个case语句中没有break正确吗?
请解释。
5.P155-练习题1
读程序、分析程序的结果:
答案:
①将程序中的“sum=0;
”语句去掉可以吗?
②将while循环语句改为do-while循环语句。
6.P156-练习题2
测试数据184和36
将
if(m<
n)
{r=m;
m=n;
n=r;
去掉,分别按m的值小于n的值情况输入数据,程序运行结果如下:
分别输入m或n的值为负数,程序运行结果如下:
为什么在用辗转相除法求最大公约数时,输出结果是m,而不是r。
试将辗转相除法中的do-while循环语句,改为while循环语句实现。
程序如下:
7.P153-练习题4
①如果输出10行的图形,应如何修改程序?
程序代码如下:
②如果输出图形向右平移25个字符位置,程序应该如何实现?
如果需将输出的两个图形并排打印,程序应如何实现?
以输出图
和图
为例,应输出以下图形。
(此题选做!
)
二、自测练习
(P154:
1、2、3、6必做,4、5选做;
P160:
1、2、3、4必做,5选做)
注意:
解决问题的思路可以用文字描述,把解决问题的过程、步骤写出来即可,培养大家思考的习惯,逐步锻炼编程能力。
1.自测练习一
计算机完成一项复杂的数学计算需要40,000s,编写程序,将其转换成几小时几分几秒的表示形式。
源程序文本:
2.自测练习二
输入三个边长,判断它们是否能构成三角形,如果不能,输出提示信息;
否则判断它是直角、等边、等腰或普通三角形
提示:
1)构成三角形的条件是:
任意两边之和大于第三边。
设三边为a、b和c,则条件为:
(a+b)>
c&
&
(a+c)>
b&
(b+c)>
a
2)直角三角形条件:
a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a
3)等边三角形条件:
a==b&
b==c
4)等腰三角形条件:
a==b||a==c||b==c
3.自测练习三
编写一个程序,从键盘输入圆锥体的半径r和高度h,计算其体积。
(可参考练习题2)
4.自测练习四
从键盘输入一个小于六位的正整数,判断它是几位数,并按照相反的顺序输出各位上的数字,例如输入2468,输出为8642。
利用/和%运算符依次获取各位上的数字。
设正整数为x,则个位上的数字为:
x%10,而十位上的数字为:
x/10%10,而百位上的数字为:
x/100%10,而千位上的数字为:
x/1000%10,…..
5.自测练习五
设整型变量a、b、c、d分别存放从键盘输入的4个整数。
编写C++程序,按从大到小排列这4个数,使a成为最大值,d成为最小值,并且按序输出这4个数。
1)首先使a成为最大值。
依次将a与b、c、d进行比较,若a小于它们,则交换它们的值。
2)使b成为第二大值。
依次将b与c、d进行比较,若b小于它们,则交换它们的值。
3)使c成为第三大值。
将c与d进行比较,若c小于d,则交换它们的值。
按序输出a,b,c,d。
6.自测练习六
输入某学生的考试成绩,如果在90分以上,输出“优秀”;
80~89分输出“良好”;
70~79分输出“中等”;
60~69分输出“及格”;
60分以下输出“不及格”。
1)方法一,利用if-else语句
2)方法二,利用switch语句,需注意switch语句中的case只能是常整型。
因此若假设考试成绩grade一定为整型,可使用语句:
switch(grade/10)
{case9:
…
case8:
……
7.自测练习7
P147的自测练习题1:
输入并运行以下程序,分析程序的运行结果。
{
inta=5;
doublex=0.0;
floatf=10;
charc=’\141’;
sizeof(char)<
,"
sizeof(c)<
\n"
sizeof(int)<
sizeof(a)<
sizeof(float)<
sizeof(f)<
sizeof(double)<
sizeof(x)<
return0;
8.自测练习8
P147的自测练习题2:
{
inta=6,b=6;
cout<
a<
++a<
b<
b++<
9.p160-自测练习一
编写一个程序,统计输出各位数之和为9,且能被5整除的五位数的个数。
表述“n能被5整除”的条件表达式唯一吗?
试写出2种以上。
解决问题的思路:
方法1:
方法2:
10.p160-自测练习二
编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
11.p160-自测练习三
编写一个程序,求s=4!
+6!
+8!
。
12.p160-自测练习四
编写一个程序,求出1~1000之间的所有完全数。
所谓完全数是指:
该数的各因子之和正好等于该数本身,如6=1+2+3。
13.p160-自测练习五
计算π的近似值,π的计算公式为:
要求:
精度为10-5,并输出n的大小
四、程序调试练习
以下程序存在错误。
有的是逻辑错误,有的是语法错误。
利用VC编程环境对程序进行调试,找到错误并改正。
程序1:
程序功能:
编写程序,求100个自然数的和。
即:
s=1+2+3+…+100;
运行下列程序后,能否得到正确结果。
(提示:
利用VC的调试功能跟踪运行定位运行错误!
intmain()
intn,sum;
n=1;
sum=0;
while(n<
=100);
sum=sum+n;
n++;
sum="
sum<
分析错误原因,改正:
程序2:
对任意的10个正整数求和,并输出结果。
for(n=1,s=0;
n<
10;
n++)
{cin>
x;
if(x<
0)break;
s+=x;
}
cout<
”10个正整数之和为:
”<
sum;
不能出正常结果,分析错误原因,并改正:
程序3:
判断任意输入的三个数,判断它们是否能构成三角形,如果不能,输出提示信息;
{
inta,b,c;
请输入三个数:
cin>
a>
b>
c;
if((a+b)>
a)
能构成三角形"
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
它是直角三角形"
elseif(a==b&
b==c)
它是等腰三角形"
elseif(a==b||a==c||b==c)
它是等边三角形"
else
不能构成三角形"
⏹∙∙改正后代码如下:
运行后的截图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 程序设计 基本 结构