例如,形参s所指的字符串为:This is a C language program.,函数的返回值为6。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun(char *s)
{int n=0, flag=0;
while(*s!='\0')
{if(*s!=' ' && flag==0) {
/**********found**********/
__1__ ; flag=1;}
/**********found**********/
if (*s==' ') flag= __2__ ;
/**********found**********/
__3__ ;
}
return n;
}
main()
{char str[81]; int n;
printf("\nEnter a line text:\n"); gets(str);
n=fun(str);
printf("\nThere are %d words in this text.\n\n",n);
}
解题答案:
/*********第一空**********/
n++ ; flag=1;}
/**********第二空**********/
if (*s==' ') flag= 0 ;
/**********第三空**********/
s++ ;
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数 fun 的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入 8 名学生的成绩:80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为: 4 (平均分为:75.5625 )。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 20
int fun (float *s, int n, float *aver)
{float ave, t = 0.0 ;
int count = 0, k, i ;
for (k = 0 ; k < n ; k++)
/**************found**************/
t = s[k] ;
ave = t / n ;
for (i = 0 ; i < n ; i++)
if (s[i] < ave) count++ ;
/**************found**************/
*aver = Ave ;
return count ;
}
main()
{float s[30], aver ;
int m, i ;
printf ("\nPlease enter m: "); scanf ("%d", &m);
printf ("\nPlease enter %d mark :\n ", m);
for(i = 0 ; i < m ; i++) scanf ("%f", s + i);
printf("\nThe number of students : %d \n" , fun (s, m, &aver));
printf("Ave = %f\n", aver);
}
解题答案:
/**************found**************/
t+=s[k];
/**************found**************/
*aver=ave;
******************************************
[NextPage] 二、改错题:给定程序MODI1.C中函数 fun 的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入 8 名学生的成绩:80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为: 4 (平均分为:75.5625 )。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 20
int fun (float *s, int n, float *aver)
{float ave, t = 0.0 ;
int count = 0, k, i ;
for (k = 0 ; k < n ; k++)
/**************found**************/
t = s[k] ;
ave = t / n ;
for (i = 0 ; i < n ; i++)
if (s[i] < ave) count++ ;
/**************found**************/
*aver = Ave ;
return count ;
}
main()
{float s[30], aver ;
int m, i ;
printf ("\nPlease enter m: "); scanf ("%d", &m);
printf ("\nPlease enter %d mark :\n ", m);
for(i = 0 ; i < m ; i++) scanf ("%f", s + i);
printf("\nThe number of students : %d \n" , fun (s, m, &aver));
printf("Ave = %f\n", aver);
}
解题答案:
/**************found**************/
t+=s[k];
/**************found**************/
*aver=ave;
******************************************
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|