2015年计算机二级C语言上机操作题及答案(66)
发布时间:2011/7/20 13:13:50 来源:城市学习网 编辑:ziteng
填空题
请补充main函数,该函数的功能是:把一个整数插入到一个已经按从小到大顺序排列的数组中.插入后,数组仍然有序.
例如,在数组bb[N]={11,21,31,41,51,61,71,79,81,95,}中插入99,结果为bb[N]={11,21,31,41,51,61,71,79,81,95,99}
注意:部分源程序给出如下.
仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容.
#include
#define N 10
main()
{
int i, j;
int n;
int bb[N] = {11, 21, 31, 41, 51, 61, 71, 79, 81, 95};
printf("\nInput n \n");
scanf("%d", &n);
printf("\nn=%d ", n);
printf("\n****** original list ******* \n");
for (i=0; i printf("M ", bb[i]);
for (i=0; i if (n <= bb[i])
{
for (j=N; ___1___; j--)
___2___;
bb[j] = n;
___3___;
}
if (i == N)
bb[i] = n;
printf("\n****** new list ******* \n");
for (i=0; i printf("M ", bb[i]);
} [NextPage] 改错题
下列给定程序中,fun函数的功能是:求出以下分数序列的前n项之和.
和值通过函数值返回main()函数.例如,若n=5,则应输出8.391667.
请改正程序中的错误,使它能得出正确的结果.
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
/********found********/
fun (int n)
{
int a = 2, b = 1, c, k;
double s = 0.0 ;
for (k=1; k<=n; k++)
{
s = s + 1.0*a/b;
/********found********/
c = a;
a += b;
b += c;
}
return s;
}
main()
{
int n = 5;
printf("\nThe value of function is :%lf\n", fun(n));
}[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*D*EF**G*******");
fun(s);
fprintf(out, "%s", s);
fclose (out );
}