例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为: 22。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#include
int fun(char *s)
{int sum=0;
while(*s) {
/**********found**********/
if(isdigit(*s)) sum+= *s- __1__ ;
/**********found**********/
__2__;
}
/**********found**********/
return __3__ ;
}
main()
{char s[81]; int n;
printf("\nEnter a string:\n\n"); gets(s);
n=fun(s);
printf("\nThe result is: %d\n\n",n);
}
解题答案:
/**********第一空**********/
if(isdigit(*s)) sum+= *s- 48 ;
/**********第二空**********/
s++;
/**********第三空**********/
return sum ;
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun(int k)
{int m=0, mc=0 ;
while ((k >= 2) && (mc < 10))
{
/************found************/
if ((k = 0) || (k = 0))
{m = m+ k; mc++;}
k--;
}
return m;
/************found************/
_____
main ()
{
printf("%d\n", fun (500));
}
解题答案:
/************found************/
if((k==0)||(k==0))
/************found************/
}
******************************************
[NextPage] 三、程序题:编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如若n为1000时,程序输出应为:s = 153.909064。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
#include
double fun(int n)
{
}
main() /* 主函数 */
{void NONO ();
printf("s =%f\n", fun (1000));
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);
}
参考答案:
double fun( int n)
{
double sum=0.0;
int i;
for(i=21; i<=n; i++)
if((i % 3==0) && (i % 7==0)) sum+=i;
return sqrt(sum) ;
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|