程序改错填空
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1程序改错
上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面。
下面的程序企图计算由键盘输入的任意两个整数的平均值:
#include
void main( )
{ int x,y,a;
————>float x,y,a;
scanf(“%x,%y”,&x,&y);————> scanf(“%f,%f”,&x,&y);
a=(x+y)/2;
printf(“The average is:%d\n”,a);
————>“The average is:%f\n”
}
运行结果:输入3,5输出4.000000
结果分析:若a定义为整型,可能出现3,4的平均值为3,自动取整
2上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面。
(1)输入三角形三边长,求三角形面积。
#include “math.h”
void main()
{
float a,b,c,area;
————> float a,b,c,area,s; scanf(“%f ,%f,%f”,a,b,c); ————> scanf(“%f ,%f,%f”,&a,&b,& c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c) ; ————>
area=sqrt(s*(s-a)*(s-b)*(s-c)
);
printf(“area=%d”,area)
————>
printf(“area=%f”,area)
}
运行结果:输入3,4,5输出
area=6.000000
结果分析:sqrt是库函数,
表示开方。
上机调试下面的程序,记录
系统给出的出错信息,改正
后写在对应错误代码行后
面。
(1)输入三角形三边长,
求三角形面积。
#include “math.h”
void main()
{
float a,b,c,area;
————> float a,b,c,area,s;
scanf(“%f ,%f,%f”,a,b,c);
————>
scanf(“%f ,%f,%f”,&a,&b,&
c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c)
;
————>
area=sqrt(s*(s-a)*(s-b)*(s-c)
);
printf(“area=%d”,area)
————>
printf(“area=%f”,area)
}
运行结果:输入3,4,5输出
area=6.000000
结果分析:sqrt是库函数,
表示开方。
(2)下面的C程序,目的
是想计算由键盘输入的任
意两个整数的积。
#include (stdio.h);
————>#include
“stdio.h”
void main();
————> void main()
scanf(“%x,%y”,&x,%y)
————>
scanf(“%d,%d”,&x,&y) ;
int c,x,y;
c=x*y
————> c=x*y;
printf(“c=%f”,c)
————>
printf(“c=%d”,c) ;
}
运行结果:输入2,3输出6
结果分析:注意有些地方需
要加分号,有些地方不需要
上机调试下面的程序,记录
系统给出的出错信息,改正
后写在对应错误代码行后
面。
下述程序按公式:求
①main()
②{ float s=0;
③int k;
④for(k=1;k<=10;k++;)
————>
for(k=1;k<=10;k++)
⑤s+=1/k;
————> s+=1.0/k;
⑥printf(“sum=%f\n”,s);
⑦}
运行结果:sum=2.928968
结果分析:for的第三个表
达式后无“;”
1为整数1/k为整数
上机调试下面的程序,记录
系统给出的出错信息,改正
后写在对应错误代码行后
面。
(1)已知二维数组形式如
下:求主对角线上元素之
和。
①main()
②{int a[i][j];
————> int a[4][4];
③int i,j,sum;
————> int i,j,sum=0;
④for(i=0;i<4;i++)
⑤for(j=0;j<4;j++)
⑥scanf(“%d”,a[i][j]);
————>
scanf(“%d”,&a[i][j]);
⑦for(i=0;i<4;i++)
⑧sum=sum+a[i][j];
————>
sum=sum+a[i][i];
⑨
printf(“SUM=%d”,sum);
⑩}
运行结果:sum=45
结果分析:一条对角线
(2)从键盘输入一个字符
串“how are you”,并将
字符串原样输出。
①main()
②{char f[ ];
————> char f[20 ];
③scanf(“%s”,f)
————>gets(f);
④printf(“%s”,f);
⑤}
运行结果:输入how are you
输出how are you
结果分析:gets字符串输入
函数
(3)比较两个字符串的大
小,如果相等输出equal,如
果不相等输出unequal.
①main()
②{char s1[10],s2[10];
③gets(s1);get2(s2);