/**********FOUND**********/
if(i%m=0)
/**********FOUND**********/
s=*i;
returns;
}
答案:
1).ints=1,i;
2).if(i%m==0)
3).s=s*i或s=i*s或s*=i
第5题(30.0分)题号:
448
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
编写函数fun计算下列分段函数的值:
x*20x<0且x≠-3
f(x)=sin(x)0≤x<10且x≠2及x≠3
x*x+x-1其它
------------------------------------------------------*/
#include
#include"stdio.h"
floatfun(floatx)
{
/**********FOUND**********/
floaty
/**********FOUND**********/
if(x<0||x!
=-3.0)
y=x*20;
elseif(x>=0&&x<10.0&&x!
=2.0&&x!
=3.0)
y=sin(x);
elsey=x*x+x-1;
/**********FOUND**********/
returnx;
}
main()
{
floatx,f;
printf("Inputx=");
scanf("%f",&x);
f=fun(x);
printf("x=%f,f(x)=%f\n",x,f);
getch();
}
答案:
1).floaty;
2).if(x<0&&x!
=-3.0)
3).returny;
第6题(30.0分)题号:
9
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
将一个字符串中的大写字母转换成小写字母。
例如:
输入aSdFG输出为asdfg。
------------------------------------------------------*/
#include
/**********FOUND**********/
boolfun(char*c)
{
if(*c<='Z'&&*c>='A')*c-='A'-'a';
/**********FOUND**********/
fun=c;
}
main()
{
/**********FOUND**********/
chars[81],p=s;
gets(s);
while(*p)
{
*p=fun(p);
/**********FOUND**********/
puts(*p);
p++;
}
putchar('\n');
}
答案:
1).charfun(char*c)
2).return*c;或return(*c);或return(*c);
3).chars[81],*p=s;
4).putchar(*p);或printf("%c",*p);
第7题(30.0分)题号:
253
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
输入10个数,要求输出这10个数的平均值
------------------------------------------------------*/
floataverage(floatarray[10])
{
inti;
floataver,sum=array[0];
/***********FOUND***********/
for(i=0;i<10;i++)
sum=sum+array[i];
aver=sum/10.0;
return(aver);
}
main()
{
/***********FOUND***********/
intscore[10],aver;
inti;
printf("input10scores:
\n");
for(i=0;i<10;i++)
/***********FOUND***********/
scanf("%f",score);
printf("\n");
/***********FOUND***********/
aver=average(score[10]);
printf("averagescoreis%5.2f",aver);
}
答案:
1).for(i=1;i<10;i++)或for(i=1;i<=9;i++)
2).floatscore[10],aver;或floataver,score[10];
3).scanf("%f",&score[i]);或scanf("%f",score+i);
4).aver=average(score);
第8题(30.0分)题号:
386
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
分别统计输入的字符串中各元音字母(即:
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;
for(;*s;s++)
{
i=-1;
/**********FOUND**********/
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)
num[i]++;
}
}
main()
{
chars1[81];intnum1[5],i;
clrscr();
printf("\nPleaseenterastring:
");gets(s1);
fun(s1,num1);
for(i=0;i<5;i++)
printf("%d",num1[i]);
printf("\n");
}
答案:
1).num[k]=0;
2).switch(*s)
3).if(i>=0)
第9题(30.0分)题号:
381
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
读入一个英文文本行,将其中每个单词的第一个字母改成
大写,然后输出此文本行(这里的“单词”是指由空格
隔开的字符串)。
例如:
若输入:
“Iamastudenttotaketheexamination.”,
则应输出:
“IAmAStudentToTakeTheExamination.”。
------------------------------------------------------*/
#include
#include
#include
/**********FOUND**********/
upfst(charp)
{
intk=0;
/**********FOUND**********/
for(;p;p++)
if(k)
{
if(*p=='')k=0;
}
/**********FOUND**********/
elseif(*p=='')
{
k=1;
*p=toupper(*p);
}
}
main()
{
charchrstr[81];
clrscr();
printf("\nPleaseenteranEnglishtextline:
");
gets(chrstr);
printf("\n\nBeforechanging:
\n%s",chrstr);
upfst(chrstr);
printf("\nAfterchanging:
\n%s\n",chrstr);
}
答案:
1).upfst(char*p)
2).for(;*p;p++)
3).elseif(*p!
='')
第10题(30.0分)题号:
431
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
编写input()和output()函数输入,输出5个学生的数据记录。
------------------------------------------------------*/
#include"stdio.h"
#defineN5
structstudent
{
charnum[6];
charname[8];
intscore[4];
}stu[N];
input(stu)
structstudentstu[];
{
/**********FOUND**********/
inti;j;
for(i=0;i{
printf("\npleaseinput%dof%d\n",i+1,N);
printf("num:
");
scanf("%s",&stu[i].num);
printf("name:
");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
/**********FOUND**********/
printf("score%d.",j);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}
print(stu)
structstudentstu[];
{
inti,j;
printf("\nNo.NameSco1Sco2Sco3\n");
/**********FOUND**********/
for(i=0;i<=N;i++)
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}
main()
{
input();
print();
getch();
}
答案:
1).inti,j;
2).printf("score%d.",j+1);
3).for(i=0;i