c语言上机改错题.docx
- 文档编号:8110885
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:9
- 大小:17.32KB
c语言上机改错题.docx
《c语言上机改错题.docx》由会员分享,可在线阅读,更多相关《c语言上机改错题.docx(9页珍藏版)》请在冰豆网上搜索。
c语言上机改错题
1、给定程序MODI1.C中,fun函数的功能是:
删除b所指数组中小于10的数据。
主函数中输出删除后数组中余下的数据。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 20
int fun(int*b)
{
/**********found**********/
int t[N],i,num
(1)intt[N],i,num=0;
for(i=0;i
if(b[i]>=10)
/**********found**********/
t[++num]=b[i];
(2)t[num++]=b[i];
/**********found**********/
for(i=0;i(3)for(i=0;i
b[i]=t[i];
return(num);
}
main()
{ int a[N],i,num;
printf("a数组中的数据:
\n");
for(i=0;i
printf("\n");
num=fun(a);
for(i=0;i
printf("\n");
}
1、
(1)intt[N],i,num=0;
(2)t[num++]=b[i];(3)for(i=0;i
2、给定程序MODI1.C中函数fun的功能是:
将十进制正整数m转换成k(2≤k≤9)进制数,并按高位到低位顺序输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
请改正fun函数中的错误,使它能得出正确的结果。
注意:
不要改动main函数。
不得增行或删行,也不得更改程序的结构!
#include
#include
voidfun(intm,intk)
{
intaa[20],i;
for(i=0;m;i++)
{
/**********found**********/
aa[i]= m/k;
(1)aa[i]=m%k;(
m/=k;
}
for(;i;i--)
/**********found**********/
printf("%d",aa[i]);
(2)printf("%d",aa[i-1]);
}
main()
{
intb,n;
printf("\nPleaseenteranumberandabase:
\n");
scanf( "%d%d",&n,&b);
fun(n,b);
printf("\n");
}
(1)aa[i]=m%k;
(2)printf("%d",aa[i-1]);
3、给定程序MODI1.C中函数fun的功能是:
用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#defineMAXLINE20
fun(char*pstr[6])
{ int i,j;
char*p;
for(i=0;i<5;i++){
/**************found**************/
for(j=i+1,j<6,j++)
(1)for(j=i+1;j<6;j++)
{
if(strcmp(*(pstr+i),*(pstr+j))>0)
{
p=*(pstr+i);
/**************found**************/
*(pstr+i)=pstr+j;2)*(pstr+i)=*(pstr+j);
*(pstr+j)=p;
}
}
}
}
main()
{ inti;
char*pstr[6],str[6][MAXLINE];
for(i=0;i<6;i++)pstr[i]=str[i];
printf("\nEnter6string(1stringateachline):
\n");
for(i=0;i<6;i++)scanf("%s",pstr[i]);
fun(pstr);
printf("Thestringsaftersorting:
\n");
for(i=0;i<6;i++)printf("%s\n",pstr[i]);
}
3、
(1)for(j=i+1;j<6;j++)
(2)*(pstr+i)=*(pstr+j);
4、给定程序MODI1.C中函数fun的功能是:
计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
其中x和y的值不等,z和y的值不等。
例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#include
#include
/************found************/
#define FU(m,n) (m/n)
(1)#defineFU(m,n)((m)/(n))
floatfun(floata,floatb,floatc)
{ float value;
value=FU(a+b,a-b)+FU(c+b,c-b);
/************found************/
Return(Value);
(2)return(value);
}
main()
{ float x,y,z,sum;
printf("Input x y z:
");
scanf("%f%f%f",&x,&y,&z);
printf("x=%f,y=%f,z=%f\n",x,y,z);
if(x==y||y==z){printf("Dataerror!
\n");exit(0);}
sum=fun(x,y,z);
printf("Theresultis:
%5.2f\n",sum);
}
4、
(1)#defineFU(m,n)((m)/(n))
(2)return(value);
5、给定程序MODI1.C中函数fun的功能是:
用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
π 1 1 1
┄┄≈1-┄┄+┄┄-┄┄+...
4 3 5 7
例如,程序运行后,输入0.0001,则程序输出3.1414。
请改正程序中的错误,使它能输出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
floatfun(floatnum)
{ ints;
floatn,t,pi;
t=1;pi=0;n=1; s=1;
/**************found**************/
while(t>=num)、
(1)while((fabs(t))>=num)
{
pi=pi+t;
n=n+2;
s=-s;
/**************found**************/
t=s%n;
(2)t=s/n;
}
pi=pi*4;
returnpi;
}
main()
{ floatn1,n2;
printf("Enterafloatnumber:
");
scanf("%f",&n1);
n2=fun(n1);
printf("%6.4f\n",n2);
}
5、
(1)while((fabs(t))>=num)
(2)t=s/n;
6、给定程序MODI1.C中函数fun的功能是:
求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define N 20
void fun(int *a,int n)
{ inti,m,t,k;
for(i=0;i<2;i++){
/**********found**********/
m=0;6、
(1)m=i;
for(k=i+1;k
/**********found**********/
if(a[k]>a[m])k=m;
(2)if(a[k]>a[m])m=k;
t=a[i];a[i]=a[m];a[m]=t;
}
}
main()
{ int b[N]={11,5,12,0,3,6,9,7,10,8},n=10,i;
for(i=0;i
fun(b,n);
for(i=0;i
}
6、
(1)m=i;
(2)if(a[k]>a[m])m=k;
7、例如,若给m输入-100,给n输入90,则函数求得的一个根值为2.000。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#include
doublefunx(double x)
{ return(2*x*x*x-4*x*x+3*x-6); }
doublefun(double m,double n)
{
/************found************/
int r;
(1)doubler;
r=(m+n)/2;
/************found************/
while(fabs(n-m)<0.001)
(2)while(fabs(m-n)>0.001)
{ if(funx(r)*funx(n)<0) m=r;
else n=r;
r=(m+n)/2;
}
return r;
}
main()
{ double m,n,root;
printf("Enter m n:
\n");scanf("%lf%lf",&m,&n);
root=fun(m,n);
printf("root=%6.3f\n",root);
}
7、
(1)doubler;
(2)while(fabs(m-n)>0.001)
8、给定程序MODI1.C中函数fun的功能是:
根据整型形参m,计算如下公式的值。
1 1 1 1
y=-------+---------+---------+……+-------
100*100 200*200 300*300 m*m
例如,若m=2000,则应输出:
0.000160。
请改正程序中的语法错误,使它能计算出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/************found************/
fun(int m)
(1)doublefun(intm)
{ doubley=0,d;
int i;
/************found************/
for(i=100,i<=m,i+=100)
(2)for(i=100;i<=m;i~1+=0)
{ d=(double)i*(double)i;
y+=1.0/d;
}
return(y);
}
main()
{ int n=2000;
printf("\nTheresultis%lf\n",fun(n));
}
(1)doublefun(intm)
(2)for(i=100;i<=m;i~1+=0)
答案!
!
!
!
!
程序修改题参考答案
1、
(1)intt[N],i,num=0;
(2)t[num++]=b[i];(3)for(i=0;i
2、
(1)aa[i]=m%k;
(2)printf("%d",aa[i-1]);
3、
(1)for(j=i+1;j<6;j++)
(2)*(pstr+i)=*(pstr+j);
4、
(1)#defineFU(m,n)((m)/(n))
(2)return(value);
5、
(1)while((fabs(t))>=num)
(2)t=s/n;
6、
(1)m=i;
(2)if(a[k]>a[m])m=k;
7、
(1)doubler;
(2)while(fabs(m-n)>0.001)
8、
(1)doublefun(intm)
(2)for(i=100;i<=m;i~1+=0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 改错