2015年计算机二级C语言上机操作题及答案(80)
发布时间:2011/7/22 10:16:10 来源:城市学习网 编辑:ziteng
一、填空题
请补充main函数,该函数的功能是:把一维数组中的元素逆置。结果仍然保存在原数组中。
仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。
#include
#define N 10
main()
{
int i, j, t;
int bb[N];
for (i=0; i bb[i] = i;
printf("\n****** original list *******\n");
for (i=0; i printf("M", bb[i]);
for (j=0, ___1___; j<=i; j++, i--)
{
t = bb[j];
___2___;
bb[i] = t;
}
printf("\n****** new list *******\n");
for (i=0; i printf("M", bb[i]);
}
答案:
1、--i 或 i—或 i-=1 或 i=i-1
2、bb[j]=bb[i] [NextPage] 二、改错题
下列给定程序中函数fun的功能是:求出以下分数的前n项之和。
和值通过函数值返回main函数。例如,若n=5,则应输出8.391667。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
/********found********/
fun(int n)
{
int a, b, c, k;
double s;
s = 0.0;
a = 2;
b = 1;
for (k=1; k<=n; k++)
{
/********found********/
s = s + (Double)a/b;
c = a;
a = a+b;
b = c;
}
return s;
}
main()
{
int n = 5;
printf("\nThe value of function is :%lf\n", fun(n));
}
答案:
1、fun(int n) 应改为 double fun(int n)
2、s=s+(Double)a/b; 应改为 s=s+(double)a/b; [NextPage] 三、编程题
程序定义了NⅹN的二维数组,并在主函数中自动赋值。请编写函数
fun(int a[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。
例如:若n的值为3,a数组中的值为
则返回主程序后a数组中值应为
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写
若干语句。
#include
#include
#include
#define N 5
void fun ( int a[][N], int n )
{
}
main()
{
int a[N][N], n, i, j;
FILE *out;
printf("***** The array *****\n");
for ( i=0; i {
for(j=0; j {
a[i][j]=rand();
printf("M",a[i][j]);
}
printf("\n");
}
n = rand()%4;
printf("n = M\n", n);
fun ( a, n );
printf("***** THE RESULT *****\n");
for(i=0;i {
for ( j=0; j printf( "M", a[i][j] );
printf("\n");
}
out=fopen ("out.dat", "w");
for ( i=0; i for(j=0; j a[i][j]=i*j+1;
fun(a, 9);
for(i=0;i {
for ( j=0; j fprintf(out, "M", a[i][j] );
fprintf(out, "\n");
}
fclose (out );
}
答案:
fun(int a[][N],int n)
{
int i,j,;
for(i=0;ifor(j=0;ja[i][j]=a[i][j]*n;
}