例如,形参s所指的字符串为:Abc@1x56*,程序执行后t所指字符数组中的字符串应为:A@156*。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun(char *s, char *t)
{int n=0;
while(*s)
{if(*s < 97) {
/**********found**********/
*(t+n)= __1__ ; n++;}
/**********found**********/
__2__ ;
}
*(t+n)=0;
/**********found**********/
return __3__ ;
}
main()
{char s[81],t[81]; int n;
printf("\nEnter a string:\n"); gets(s);
n=fun(s,t);
printf("\nThere are %d letter which ASCII code is less than 97: %s\n",n,t);
}
解题答案:
/*********第一空*********/
*(t+n)= *s ; n++;}
/**********第二空**********/
s++ ;
/**********第三空**********/
return n ;
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数 fun 的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。
例如,n=8时,输入:193.199,195.673,195.757,196.051,196.092,196.596,
196.579,196.763
所得平均值为:195.838745,在平均值以上的实数个数应为:5
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun(double x[], int n)
{
/************found************/
int j, c=0, double xa=0.0;
for (j=0; j xa += x[j]/n; printf("ave =%f\n",xa); for (j=0; j /************found************/ if (x[j] => xa) c++; return c; } main () {double x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763}; printf("%d\n", fun (x, 8)); } 解题答案: /************found************/ int j, c=0; double xa=0.0; /************found************/ if (x[j]>=xa) ****************************************** [NextPage] 三、程序题:编写函数fun,其功能是:根据以下公式求P的值,结果由函数值带回。m与n 为两个正整数且要求m > n。 m! P = ─── n!(m-n)! 例如:m=12,n=8时,运行结果为495.000000。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: #include float fun(int m, int n) { } main() /* 主函数 */ {void NONO (); printf("P=%f\n", fun (12,8)); NONO(); } void NONO () {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, m, n ; float s; fp = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%d,%d", &m, &n); s = fun(m, n); fprintf(wf, "%f\n", s); } fclose(fp); fclose(wf); } 参考答案: #include long jc(int m) { long s=1; int i ; for(i=1;i<=m;i++) s=s*i ; return s; } float fun(int m, int n) { float p; p=1.0*jc(m)/jc(n)/jc(m-n) ; return p; }
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|