例如,s所指字符串为:baacda,c中的字符为:a,
执行后s所指字符串为:baaaacdaa。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(char *s, char c)
{int i, j, n;
/**********found**********/
for(i=0; s[i]!=___1___ ; i++)
if(s[i]==c)
{
/**********found**********/
n=___2___ ;
while(s[i+1+n]!='\0') n++;
for(j=i+n+1; j>i; j--) s[j+1]=s[j];
/**********found**********/
s[j+1]=___3___ ;
i=i+1;
}
}
main()
{char s[80]="baacda", c;
printf("\nThe string: %s\n",s);
printf("\nInput a character: "); scanf("%c",&c);
fun(s,c);
printf("\nThe result is: %s\n",s);
}
解题答案:
/**********第一空**********/
for(i=0; s[i]!=0 ; i++)
/**********第二空**********/
n=0 ;
/**********第三空**********/
s[j+1]=c ;
****************************************** [NextPage] 二、改错题:在主函数中从键盘输入若干个数放入数组中, 用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。
例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,
则程序的运行结果为:19.250000。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun (int x[])
{
/************found************/
int sum = 0.0;
int c=0, i=0;
while (x[i] != 0)
{if (x[i] > 0) {
sum += x[i]; c++;}
i++;
}
/************found************/
sum \= c;
return sum;
}
main()
{int x[1000]; int i=0;
printf("\nPlease enter some data (end with 0): ");
do
{scanf("%d", &x[i]);}
while (x[i++] != 0);
printf("%f\n", fun (x));
}
解题答案:
/************found************/
double sum=0.0;
/************found************/
sum /=c;
******************************************
[NextPage] 三、程序题:编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
1 1 1
S=1 + ── + ─── + ... + ──────
1+2 1+2+3 1+2+3+...+n
例如:若n的值为11时,函数的值为:1.833333
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
double fun(int n)
{
}
main()
{int n; double s;
void NONO ();
printf("\nPlease enter N:"); scanf("%d", &n);
s = fun(n);
printf("the result is: %f\n", s);
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, n ;
double s;
fp = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d", &n);
s = fun(n);
fprintf(wf, "%f\n", s);
}
fclose(fp);
fclose(wf);
}
参考答案:
float fun(int n)
{
int i,j,t;
float s=0;
for(i=1;i<=n;i++) {
t=0;
for(j=1;j<=i;j++) t+=j;
s=s+1./t;
}
return s;
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|