2015年计算机二级C语言上机操作题及答案(88)
发布时间:2011/7/28 15:39:02 来源:城市学习网 编辑:ziteng
一、补充fun函数,该函数的功能是:返回字符数组中指定字符的个数,指定字符从键盘输入。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干#include
#define N 80
int fun(char s[], char ch)
{
int i = 0, n = 0;
while (___1___)
{
if (___2___)
n++;
i++;
}
___3___;
}
main()
{
int n;
char str[N], ch;
printf("\nInput a string:\n");
gets(str);
printf("\nInput a character:\n");
scanf("%c", &ch);
n=fun(str, ch);
printf("\nnumber of %c: %d", ch, n);
}表达式或语句。 [NextPage] 二、下列给定程序中,函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出,在每组中,可以没有黑球,但必须要有红球和白球,组合数作为函数值返回,正确的组合应该是15。程序中的值代表红球数,j的值代表白球数,k的值代表黑球数。
请改正正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不等更改程序的结构!
#include
int fun()
{
int i, j, k, sum = 0;
printf("\nThe result :\n\n");
/********found********/
for (i=0; i<=3; i++)
for (j=1; j<=5; j++)
{
k = 8-i-j;
/********found********/
if (k>=1 && k<=6)
{
sum = sum+1;
printf("red:M white:M black:M\n", i, j, k);
}
}
return sum;
}
main()
{
int sum;
sum = fun();
printf("sum=M\n\n", sum);
} [NextPage] 二、假定输入的字符中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除,。在编写函数时,不得使用c语言提供的字符串函数。
例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****ABCDEFG。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
void fun(char *a)
{
}
main()
{
char s[81];
FILE *out;
printf("Enter a string :\n");
gets(s);
fun( s );
printf("The string after deleted:\n");
puts(s);
out=fopen ("out.dat", "w");
strcpy(s, "****A*BC*DEF*G*******");
fun(s);
fprintf(out, "%s", s);
fclose (out );
}
答案:
一:1、s[i]或s[i]!=0 2、s[i]==ch或ch==s[i] 3、return n
二:1、应改为for(i=1;i<=3;i++) 2、应改为if(k>=0&&k<=6)