/**********FOUND**********/
get("%d",a[i]);scanf("%d",a[i]);
/**********FOUND**********/
m=fun(a,p,N);max=fun(a,p,N);
printf("max=%d,position=%d",max,p);}
29.【程序改错】(未定)
题目:
fun函数的功能是:
实现两个字符串的连接。
例如:
输入dfdfqe和12345时,则输出dfdfqe12345.
请改正程序中的错误,使它能得出正确的结果。
#include"stdio.h"
main()
{chars1[80],s2[80];
voidscat(chars1[],chars2[]);
gets(s1);
gets(s2);
scat(s1,s2);
puts(s1);}
voidscat(chars1[],chars2[])
{inti=0,j=0;
/**********FOUND**********/
while(s1[i]=='\0')i++;while(s1[i]!
='\0')i++;
/**********FOUND**********/
while(s2[j]=='\0')while(s2[i]!
='\0')
{/**********FOUND**********/
s2[j]=s1[i];s1[i]=s2[j];
i++;
j++;}
/**********FOUND**********/
s2[j]='\0';s1[i]='\0';}
124.【程序改错】
题目:
输入一行字符,分别统计出其中英文字母、空
格、数字和其它字符的个数。
#include"stdio.h"
main()
{charc;
intletters=0,space=0,digit=0,others=0;
printf("pleaseinputsomecharacters\n");
/**********FOUND**********/
while((c=getchar())=='\n')while((c=getchar())!
='\n')
{/**********FOUND**********/
if(c>='a'&&c<='z'&&c>='A'&&c<='Z')
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
/**********FOUND**********/
elseif(c=!
'')elseif(c=='')
space++;
elseif(c>='0'&&c<='9')
digit++;
else
others++;}
printf("allinall:
char=%dspace=%ddigit=%dothers=%d\n",letters,
space,digit,others);}
364.【程序改错】(未定)
题目:
给定程序MODI1.C中函数fun的功能是:
计算正整数num的
各位上的数字之积。
例如,若输入:
252,则输出应该是:
20。
若
输入:
202,则输出应该是:
0。
#include
#include
longfun(longnum)
/**********FOUND**********/
{longk=1{longk=1;
do
{k*=num%10;
/**********FOUND**********/
num\=10;num/=10;
/**********FOUND**********/
}while(!
num);}while(num);
return(k);}
main()
{longn;
clrscr();
printf("\Pleaseenteranumber:
");scanf("%ld",&n);
printf("\n%ld\n",fun(n));
getch();}
433.【程序改错】
题目:
编写一个函数,输入n为偶数时,调用函数求
1/2+1/4+...+1/n,当输入n为奇数时,调用函
数1/1+1/3+...+1/n(利用指针函数)
#include"stdio.h"
main()
{floatpeven(),podd(),dcall();
floatsum;
intn;
while
(1)
{/**********FOUND**********/
scanf("%d",n);scanf("%d",&n);
if(n>1)
break;}
if(n%2==0)
{printf("Even=");
sum=dcall(peven,n);}
else
{printf("Odd=");
sum=dcall(podd,n);}
printf("%f",sum);
getch();}
floatpeven(intn)
{floats;
inti;
s=0;
for(i=2;i<=n;i+=2)
/**********FOUND**********/
s+=1%(float)i;s+=1/(float)i;
return(s);}
floatpodd(n)
intn;
{floats;
inti;
/**********FOUND**********/
s=1;s=0;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);}
floatdcall(fp,n)
float(*fp)();
intn;
{floats;
s=(*fp)(n);
return(s);}
115(116).【程序改错】
题目:
下列程序中,函数fun的功能是:
在字符串str
中找出ASCII码值最大的字符,将其放在第一个
位置上,并将该字符前面的字符向后顺序移动。
例如:
调用fun函数之前给字符串输入:
ABCDeFGH,
调用后字符串中的内容为:
eABCDFGH。
#include
fun(char*p)
{charmax,*q;inti=0;
max=p[i];
while(p[i]!
=0)
{if(max
{max=p[i];
/**********FOUND**********/
p=q+i;q=p+i;}
i++;}
/**********FOUND**********/
while(q
p)
/**********FOUND**********/
{q=*(q-1);{*q=*(q-1);
q--;}
p[0]=max;}
main()
{charstr[80];
printf("Enterastring:
");gets(str);
printf("\nTheoriginalstring:
");puts(str);
fun(str);
printf("\nThestringaftermoving:
");puts(str);
getch();}
123.【程序改错】
题目:
有1、2、3、4个数字,能组成多少个互不相同
且无重复数字的三位数?
都是多少?
main()
{inti,j,k;
/**********FOUND**********/
printf("\n")printf("\n");
/**********FOUND**********/
for(i=1;i<=5;i++)for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{/**********FOUND**********/
if(i!
=k||i!
=j||j!
=k)if(i!
=k&&i!
=j&&j!
=k)
printf("%d,%d,%d\n",i,j,k);}}
107.【程序改错】
题目:
以下程序的功能是求如下表达式:
111
S=1+——+———+......+———————
1+21+2+31+2+3+......+n
请改正程序中的错误,使程序能得到正确的运行结果。
#include
main()
{intn;
floatfun();
printf("Pleaseinputanumber:
");
/**********FOUND**********/
print("%d",n);scanf("%d",&n);
printf("%10.6f\n",fun(n));}
/**********FOUND**********/
fun(intn)floatfun(intn)
{inti,j,t;
floats;
s=0;
/**********FOUND**********/
while(i=1;i<=n;i++);for(i=1;i<=n;i++)
{t=0;
for(j=1;j<=i;j++)
t=t+j;
/**********FOUND**********/
s=+1/t;s+=1.0/t}
returns;}
26.【程序改错】(未定)
题目:
fun函数的功能是:
找出大于m的最小素数,并将其作为
函数值返回。
请改正程序中的错误,使它能得出正确的结果。
#include
intfun(intm)
{inti,k;
for(i=m+1;;i++)
{/**********FOUND**********/
for(k=1;k
/**********FOUND**********/
if(i%k!
=0)break;if(i%k==0)break;
/**********FOUND**********/
if(k
/**********FOUND**********/
returnk;returni;}}
main()
{intn;
scanf("%d",&n);
printf("%d\n",fun(n));}
381.【程序改错】
题目:
给定程序MODI1.C的功能是:
删除w所指数组中下标
为k的元素中的值。
程序中,调用了getindex、arrout
和arrdel三个函数,getindex用以输入所删元素的下标,
函数中对输入的下标进行检查,若越界,则要求重新输入,
直到正确为止。
arrout用以输出数组中的数据,arrdel进
行所要求的删除操作。
#include"conio.h"
#include"stdio.h"
#defineNUM10
/**********FOUND**********/
arrout(intw,intm)arrout(intw[],intm)
{intk;
/**********FOUND**********/
for(k=1;k/**********FOUND**********/
printf("%d"w[k]);printf("%d",w[k]);
printf("\n");}
arrdel(int*w,intn,intk)
{inti;
for(i=k;in--;
returnn;}
getindex(intn)
{inti;
do
{printf("\nEntertheindex[0<=i<%d]:
",n);
scanf("%d",&i);
}while(i<0||i>n-1);
returni;}
main()
{intn,d,a[NUM]={21,22,23,24,25,26,27,28,29,30};
n=NUM;
clrscr();
printf("Outputprimarydata:
\n");arrout(a,n);
d=getindex(n);n=arrdel(a,n,d);
printf("Outputthedataafterdelete:
\n");arrout(a,n);}
122.【程序改错】
题目:
编写函数fun其功能是:
输入两个实数,按代数值由小到大输出它们,并在fun()
函数中输出。
(输出的数据都保留2位小数)
#include"stdio.h"
main()
{fun();
getch();}
fun()
{/**********FOUND**********/
floattfloatt;
floata,b;
scanf("%f%f",&a,&b);
/**********FOUND**********/
if(ab)
{t=a;a=b;b=t;}
/**********FOUND**********/
printf("%5.2f,%5.2f\n",&a,&b);printf("%5.2f,%5.2f\n",a,b);}
113.【程序改错】
题目:
请编写一个函数intfun(intx),它的功能
是:
判断整数x是否是同构数。
若是同购数,
函数返回1;否则返回0。
所谓“同构数”是指这个数出现在它的平方数
的右边。
例如:
输入整数25,25的平方数是
625,25是625中右侧的数,所以25是同构数。
x的值由主函数从键盘读入,要求不大于1000。
#include"stdio.h"
intfun(intx)
{/**********FOUND**********/
intkintk;
/**********FOUND**********/
k=x;k=x*x;
/**********FOUND**********/
if((k%10==x)&&(k%100==x)&&(k%1000==x))if((k%10==x)||(k%100==x)||”(k%1000==x))
return1;
else
return0;}
main()
{intx,y;
clrscr();
printf("\nPleaseenteraintegernumbers:
");
scanf("%d",&x);
if(x>1000){printf("dataerror!
\n");exit(0);}
y=fun(x);
if(y)printf("%dYES\n",x);
elseprintf("%dNO\n",x);
getch();}
121.【程序改错】
题目:
编写程序,求矩阵(3行3列)与5的乘积
例如,输入下面的矩阵:
100200300
400500600
700800900
程序输出:
50010001500
200025003000
350040004500
#include"stdio.h"
intfun(intarray[3][3])
{/**********FOUND**********/
inti;j;inti,j;
/**********FOUND**********/
for(i=1;i<3;i++)for(i=0;i<3;i++)
for(j=0;j<3;j++)
/**********FOUND**********/
array[i][j]=array[i][j]/5;arrau[i][j]=array[i][j]*5}
main()
{inti,j;
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
clrscr();
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");}
fun(array);
printf("Convertedarray:
\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");}
getch();}
108.【程序改错】
题目:
将若干学生的档案存放在一个文件中,并显示其内容。
structstudent
{intnum;
charname[10];
intage;};
structstudentstu[3]={{001,"LiMei",18},{002,"JiHua",19},{003,"SunHao",18}};
#include
main()
/**********FOUND**********/
{structstudentp;{structstudent*p;
/**********FOUND**********/
cfilefp;FILE*fp
inti;
if((fp=fopen("stu_list","wb"))==NULL)
{printf("cannotopenfile\n");
return;}
/**********FOUND**********/
for(*p=stu;pfwrite(p,sizeof(structstudent),1,fp);
fclose(fp);
fp=fopen("stu_list","rb");
printf("No.Nameage\n");
for(i=1;i<=3;i++)
{fread(p,sizeof(structstudent),1,fp);
/**********FOUND**********/
scanf("%4d%-10s%4d\n",*p.num,p->name,(*p).age);
printf("%4d%-10s%4d\n",*p.num,p->name,(*p).age);
}
fclose(fp);}
109.【程序改错】
题目:
已知一个数列从第0项开始的前三项分别为0、0、1,以
后的各项都是其相邻的前三项的和。
下列给定程序中,
函数fun的功能是:
计算并输出该数列的前n项的平方根
之和sum,n的值通过形参传入。
例如,当n=10时,程序的输出结果应为23.197745。
请更改程序中的错误,使它能得出正确的结果。
#include"math.h"
/**********FOUND**********/
fun(intn)doublefun(intn)
{doublesum,s0,s1,s2,s;
intk;
/**********FOUND**********/
sum=0.0;sum=1.0;
if(n<=2)sum=0.0;
s0=0.0;
s1=0.0;
/**********FOUND**********/
s2=0.0;s2=1.0;
/**********FOUND**********/
for(k=4;k>n;k++)for(k=4;k<=n;k++)
{s=s0+s1+s2;
sum+=sqrt(s);
s0=s1;s1=s2;s2=s;}
returnsum;}
main()
{intn;
scanf("%d",&n);
printf("%lf\n",fun(n));
}
387.【程序改错】(未定)
题目:
给定程序MODI1.C中函数fun的功能是:
统计字符串中各元音字母(即:
A、E、I、
O、U)的个数。
注意:
字母不分大、小写。
例如:
若输入:
THIsisaboot,则输
出应该是:
1、0、2、2、0。
#include
#include
fun(char*s,intnum[5])
{intk,i=5;
for(k=0;k
/**********FOUND**********/
num[i]=0;num[k]=0;
for(;*s;s++)
{i=-1;
/**********FOUND**********/
switch(s)switch(*s)
{case'a':
case'A':
{i=0;break;}
case'e':
case'E':
{i=1;break;}
case'i':
case'I':
{i=2;break;}
case'o':
case'O':
{i=3;break;}
case'u':
case'U':
{i=4;break;}
}
/**********FOUND**********/
if(i<0)if(i>=0)
num[i]++;}}
main()
{chars1[81];intnum1[5],i;
clrscr();