/************found************/
s+=(x[j]-xa)*(x[j]-xa)/___3___;
returns;
}
main()
{floatx[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};
printf("%f\n",fun(x,8));
}
答案;第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[s=0;]
实际操作结果:
内容为[s=;]
第3处内容填写有误
第[3]处操作错误
题面要求操作:
内容为[s+=(x[j]-xa)*(x[j]-xa)/n;]
实际操作结果:
内容为[s+=(x[j]-xa)*(x[j]-xa)/___3___;]
2.在考生文件夹下的给定程序modi57.c中,函数fun的功能是:
将字符串tt中的小写字母改为对应的大写字母,其它字符不变。
例如,若输入"Ab,cD",则输出"AB,CD"。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
#include
char*fun(chartt[])
{
inti;
for(i=0;tt[i];i++)
/************found************/
if(('a'<=tt[i])&&(tt[i]<='z'))
/************found************/
tt[i]=+32;
return(tt);
}
main()
{
inti;
chartt[81];
system("cls");
printf("\nPleaseenterastring:
");
gets(tt);
printf("\nTheresultstringis:
\n%s",fun(tt));
}
答案;第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[tt[i]-=32;]
实际操作结果:
内容为[tt[i]=+32;]
3.请编写一个函数,用来删除字符串中的所有空格。
例如,输入"asdafaaz67",则输出为"asdafaaz67"。
注意:
部分源程序存在考生文件夹下的文件prog174.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#include
#include
intfun(char*str)
{
}
main()
{
charstr[81];
intn;
system("cls");
printf("Inputastring:
");
gets(str);
puts(str);
fun(str);
printf("***str:
%s\n",str);
NONO();
}
NONO()
{
/*请在此函数内打开文件,输入调试数据,调用fun函数,
输出数据,关闭文件。
*/
charstr[81];
intn=0;
FILE*rf,*wf;
inti;
rf=fopen("b0803.in","r");
wf=fopen("b0803.out","w");
while(n<10){
fgets(str,80,rf);
for(i=0;*(str+i);i++);
fun(str);
fprintf(wf,"%s",str);
n++;
}
fclose(rf);
fclose(wf);
}
答案;本题的考核点是字符数组、循环语句。
解题思路:
通过for循环语句以及if语句,判断当前位置上的字符是否为空格(空格的ASCII码值为32),若是空格,再判断下一个字符是否为空格,若下一个字符不是空格,则将当前位置上的字符赋给上一个字符位置上;若下一个字符还是空格,则继续判断该字符的下一个字符,直至其下一个字符为非空格时重复上述赋值操作,最终以字符串结束标志"\0"结束循环。
intfun(char*str)
{inti,j;
for(i=0;*(str+i);i++)
if(*(str+i)==32)/*判断当前位置上的字符是否为空格(空格的ASCII码值为32)*/
{for(j=i+1;*(str+j);j++)
*(str+j-1)=*(str+j);/*删除空格*/
*(str+j-1)=0;/*以字符串结束标志"\0"结束循环*/
i=0;
}
}
4.给定程序的功能是计算scroe中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。
例如,当score={10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40}。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的blank30.c中。
不得增行或删行,也不得更改程序的结构!
答案;第1处内容填写有误
第[1]处操作错误
题面要求操作:
内容为[if(score[i]实际操作结果:
内容为[if(score[i]第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[n=fun(score,9,below);]
实际操作结果:
内容为[n=fun(score,9,___2___);]
第3处内容填写有误
第[3]处操作错误
题面要求操作:
内容为[for(i=0;i实际操作结果:
内容为[for(i=0;i题目;#include
#include
intfun(intscore[],intm,intbelow[])
{
inti,j=0;
floataver=0.0;
for(i=0;iaver/=(float)m;
for(i=0;i/**************found**************/
if(score[i]returnj;
}
main()
{inti,n,below[9];
intscore[9]={10,20,30,40,50,60,70,80,90};
/**************found**************/
n=fun(score,9,___2___);
printf("\nBelowtheaveragescoreare:
");
/**************found**************/
for(i=0;i}
5.在考生文件夹下的给定程序modi80.c中,函数fun的功能是:
计算正整数num的各位上的数字之积,例如,若输入:
252,则输出应该是:
20。
若输入:
202,则输出应该是:
0。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
longfun(longnum)
{
/************found************/
longk;
do
{k*=num%10;
/************found************/
num\=10;
}while(num);
return(k);
}
main()
{longn;
system("cls");
printf("\Pleaseenteranumber:
");scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
答案;第1处内容填写有误
第[1]处操作错误
题面要求操作:
内容为[longk=1;]
实际操作结果:
内容为[longk;]
第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[num/=10;]
实际操作结果:
内容为[num\=10;]
6.给定程序的功能是计算scroe中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。
例如,当score={10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40}。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的blank30.c中。
不得增行或删行,也不得更改程序的结构!
#include
#include
intfun(intscore[],intm,intbelow[])
{
inti,j=0;
floataver=0.0;
for(i=0;iaver/=(float)m;
for(i=0;i/**************found**************/
if(score[i]returnj;
}
main()
{inti,n,below[9];
intscore[9]={10,20,30,40,50,60,70,80,90};
/**************found**************/
n=fun(score,9,___2___);
printf("\nBelowtheaveragescoreare:
");
/**************found**************/
for(i=0;i}
答案:
第1处内容填写有误
第[1]处操作错误
题面要求操作:
内容为[if(score[i]实际操作结果:
内容为[if(score[i]第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[n=fun(score,9,below);]
实际操作结果:
内容为[n=fun(score,9,___2___);]
第3处内容填写有误
第[3]处操作错误
题面要求操作:
内容为[for(i=0;i实际操作结果:
内容为[for(i=0;i7.在考生文件夹下的给定程序modi80.c中,函数fun的功能是:
计算正整数num的各位上的数字之积,例如,若输入:
252,则输出应该是:
20。
若输入:
202,则输出应该是:
0。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
longfun(longnum)
{
/************found************/
longk;
do
{k*=num%10;
/************found************/
num\=10;
}while(num);
return(k);
}
main()
{longn;
system("cls");
printf("\Pleaseenteranumber:
");scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
答案:
第1处内容填写有误
第[1]处操作错误
题面要求操作:
内容为[longk=1;]
实际操作结果:
内容为[longk;]
第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[num/=10;]
实际操作结果:
内容为[num\=10;]
8.给定程序的功能是:
根据整型形参n,计算如下公式的值。
111
A1=1,A2=───,A3=───,……,An=────
1+A11+A21+An-1
例如,若n=10,则应输出:
0.618056。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的blank22.c中。
不得增行或删行,也不得更改程序的结构!
#include
floatfun(intn)
{
/************found************/
floatA=___1___;inti;
/************found************/
for(i=1;i<=___2___;i++)
A=1.0/(1+A);
/************found************/
___3___;
}
main()
{intn;
printf("\nPleaseentern:
");
scanf("%d",&n);
printf("A%d=%f\n",n,fun(n));
}#include
floatfun(intn)
{
/************found************/
floatA=___1___;inti;
/************found************/
for(i=1;i<=___2___;i++)
A=1.0/(1+A);
/************found************/
___3___;
}
main()
{intn;
printf("\nPleaseentern:
");
scanf("%d",&n);
printf("A%d=%f\n",n,fun(n));
}#include
floatfun(intn)
{
/************found************/
floatA=___1___;inti;
/************found************/
for(i=1;i<=___2___;i++)
A=1.0/(1+A);
/************found************/
___3___;
}
main()
{intn;
printf("\nPleaseentern:
");
scanf("%d",&n);
printf("A%d=%f\n",n,fun(n));
}
答案:
第1处内容填写有误
第[1]处操作错误
题面要求操作:
内容为[floatA=1;inti;]
实际操作结果:
内容为[floatA=___1___;inti;]
第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[for(i=1;i<=n;i++)]
实际操作结果:
内容为[for(i=1;i<=___2___;i++)]
第3处内容填写有误
第[3]处操作错误
题面要求操作:
内容为[returnA;]
实际操作结果:
内容为[___3___;]
9.函数fun的功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12。
调用该函数后,c=2415。
注意:
部分源程序存在考生文件夹下的文件prog92.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#include
intfun(inta,intb)
{
}
main()
{inta,b;longc;
system("cls");
printf("Inputa,b:
");
scanf("%d%d",&a,&b);
c=fun(a,b);
printf("Theresultis:
%ld\n",c);
NONO();
}
NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*rf,*wf;
inti,a,b;longc;
rf=fopen("in6.dat","r");
wf=fopen("bd04.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%d,%d",&a,&b);
c=fun(a,b);
fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);
}
fclose(rf);
fclose(wf);
}
答案:
本题的考核点是求取整数相应位上的数值的算法。
解题思路:
可用整除和求余的运算求取整数各位上的数值。
方法是整除相应位上的位权值,再对其求余,余数即为相应位上的数值。
本评析仅供参考。
voidfun(inta,intb,long*c)
{
inta_up,a_low,b_up,b_low;
a_up=a/10;/*求正整数a的十位数*/
a_low=a%10;/*求正整数a的个位数*/
b_up=b/10;/*求正整数b的十位数*/
b_low=b%10;/*求正整数b的个位数*/
*c=b_low*1000+a_up*100+b_up*10+a_low;/*将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上*/
}
10.给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:
圆面积公式为:
S=πr2,在程序中定义的变量名要与公式的变量相同)。
例如输入圆的半径值:
19.527输出为:
s=598.950017。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的blank13.c中。
不得增行或删行,也不得更改程序的结构!
#include
/**********found**********/
floatfun(float___1___)
{
/**********found**********/
return3.14159*___2___/2.0;
}
main()
{floatx;
printf("Enterx:
");
/**********found**********/
scanf("%f",___3___);
printf("s=%f\n",fun(x));
}
答案:
第1处内容填写有误
第[1]处操作错误
题面要求操作:
内容为[floatfun(floatr)]
实际操作结果:
内容为[floatfun(float___1___)]
第2处内容填写有误
第[2]处操作错误
题面要求操作:
内容为[return3.14159*r*r/2.0;]
实际操作结果:
内容为[return3.14159*___2___/2.0;]
第3处内容填写有误
第[3]处操作错误
题面要求操作:
内容为[scanf("%f",&x);]
实际操作结果:
内容为[scanf("%f",___3___);]
11.给定程序的功能是分别统计字符串中大写字母和小写字母的个数。
例如,给字符串ss输入:
AaaaBBb123CCccccd,
则输出结果应为:
upper=5,lower=9
请在程