华中科技大学计算机科学与技术学院23Word格式文档下载.docx
- 文档编号:17993270
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:12
- 大小:176.12KB
华中科技大学计算机科学与技术学院23Word格式文档下载.docx
《华中科技大学计算机科学与技术学院23Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《华中科技大学计算机科学与技术学院23Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
单步执行、设置断点、观察变量值。
2、实验内容
1、源程序改错
下面是计算s=n!
的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子源程序进行调试修改,使之能够正确完成指定任务。
例如,8!
=40320.
源程序:
#include<
stdio.h>
intmain()
{inti,n,s=1;
printf("
Pleaseentern:
"
);
scanf("
%d"
n);
for(i=1,i<
=n,i++)
s=s*i;
%d!
=%d"
n,s);
}
return0;
2、源程序修改替换
(1)修改上述计算s=n!
的源程序,要求分别用while和do-while语句替换for语句。
(2)修改上述计算s=n!
的源程序,要求输入改为“整数s”,输出改为“满足n!
s的最小整数n”。
例如输入整数为40310,输出结果为n=8。
3、程序设计
编写并上机调试运行能实现以下功能的程序:
(1)假设工资税金按以下方法计算:
x<
1000元,不收取税金;
1000
2000,收取5%的税金;
2000
3000,收取10%的税金;
3000
4000,收取15%的税金;
4000
5000,收取20%的税金;
x>
5000,收取25%的税金。
编写一个程序,输入工资金额,输出应收取税金额度,要求分别用if语句和switch语句来实现。
(2)编写一个程序,将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格代替。
(3)编写一个程序,打印如下的杨辉三角形。
1/*第0行*/
11/*第1行*/
121/*第2行*/
1331
14641
15101051
1615201561
172135352171
18285670562881
193684126126843691
每个数据值可以由组合
计算(表示第i行第j列位置的值),而
的计算如下:
说明:
本程序为了打出金字塔效果,要注意空格数目。
一位数之间是3个空格,两位数之间有2个空格,三位数之间有1个空格,程序编写过程中要注意区分。
(4)编写一个程序,将用户输入的任意正整数逆转。
例如,输入1234,输出4321。
4、选做题
编写一个程序,用牛顿迭代法求方程f(x)=
=0满足精度e=
的一个近似根,并在屏幕上输出所求近似根。
牛顿迭代法求方程近似根的迭代公式为:
其中,f’(x)是函数f(x)的导函数。
牛顿迭代法首先任意设定的一个实数a来作为近似根的迭代初值
,然后用迭代公式计算下一个近似根
。
如此继续迭代计算
,直到
精度e,此时值
即为所求的近似根。
3、实验步骤及结果
源程序错误:
(1)scanf句法错误,n前面应该加上“&
”;
(2)for语句内部的表达式必须用分号隔开,而不是逗号;
(3)return0;
语句应该放在main函数主体内部。
正确程序:
{
inti,n,s=1;
&
n);
for(i=1;
i<
=n;
i++)
return0;
输出结果为:
(1)while源程序:
inti=1,n,s=1;
while(i<
=n)
{
i++;
}
=%d\n"
do-while源程序:
do{
s*=i;
}while(i<
=n);
(2)源程序:
intn=1,s,m=1;
Pleaseenteranintegers:
s);
while(m<
s)
n++;
m*=n;
theminn=%d\n"
(1)if源程序
intmain(void)
floatx,fee;
inputx:
%f"
x);
if(x<
1000)
fee=x*0/100;
fee=%.2f\n"
fee);
if(x>
=1000&
&
2000)
fee=x*5/100;
=2000&
3000)
fee=x*10/100;
=3000&
4000)
fee=x*15/100;
=4000&
5000)
fee=x*20/100;
fee=x*25/100;
switch源程序:
switch((int)(x/1000))
case0:
fee=x*0/100);
break;
case1:
fee=x*5/100);
case2:
fee=x*10/100);
case3:
fee=x*15/100);
case4:
fee=x*20/100);
default:
fee=x*25/100);
#defineIN1
#defineOUT0
intstate=OUT;
charc;
inputatextendwithctrl+z:
\n"
while((c=getchar())!
=EOF)
if(state==OUT)
putchar(c);
if(c=='
'
)state=IN;
if(state==IN&
c!
='
)
state=OUT;
(3)源程序:
#include<
//#defineN10
intf(intx)
inty;
if(x==1||x==0)
y=1;
else
y=x*f(x-1);
returny;
inti,j,m,N;
inputN:
N);
杨辉三角形前%d行:
N);
for(i=0;
N;
for(j=0;
j<
N-i+1;
j++)
"
for(m=0;
m<
i+1;
m++)
%3d"
f(i)/f(m)/f(i-m));
(4)源程序:
intx;
inputaninteger:
do
putchar(x%10+'
0'
while((x/=10)!
=0);
math.h>
#defineEPS1e-6
doublex,d;
inputinitialroot:
%lf"
d=-(((3*x-4)*x-5)*x+13)/((9*x-8)*x-5);
x+=d;
}while(fabs(d)>
EPS);
x=%lf\n"
x);
四、实验体会
C语言程序的流程控制确实有难度。
首先,在编写程序之前必须清楚的知道程序所要实现的功能是什么,要有清晰的逻辑结构;
其次,还要有清楚的设计思路,要寻找到一个好的算法,这样,在编写程序时就可以节省大量的时间,少走弯路。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 计算机 科学 技术学院 23