2015年计算机二级C语言上机操作题及答案(13)
发布时间:2011/7/4 10:54:33 来源:城市学习网 编辑:ziteng
第13套
填空题
请补充fun函数,该函数的功能是判断一个数是否为素数.该数是素数时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出.
注意:部分源程序给出如下。
仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。
试题程序:#include
#include
___1___
{
int i, m;
m = 1;
for (i=___2___; i if (___3___)
{
m=0;
break;
}
if (m==1 && n>1)
return("yes!");
else
return("no!");
}
main()
{
int k = 0;
printf("Input:");
scanf("%d", &k);
printf("%s\n", fun(k));
}
第1处填空:char*fun(int n)
第2处填空:2
第3处填空:n%i==或!(n%i)或0==n%i [NextPage] 改错题
下列给定程序中,FUN函数的功能是:根据形参M,计算如下公式的值。
例如,若输入5,则应输出2.283333.
请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。
注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!
试题程序:#include
#include
double fun(int m)
{
double t = 1.0;
int i;
/********found********/
for (i=2; i<=m; i++)
t += 1.0/k;
/********found********/
___ì???___
}
main()
{
int m;
printf("\nplease enter 1 integer numbers:\n");
scanf("%d", &m);
printf("\n\nthe result is %lf\n", fun(m));
}
第1处:t += 1.0/k;应改为t+=1.0/i;
第2处:应填return t; [NextPage] 编程题
请编写一个函数void fun(int tt[M][N]),tt提向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中赋予。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#define M 3
#define N 4
void fun ( int tt[M][N],int pp[N] )
{
}
main( )
{
int t [ M ][ N ]={{22,45, 56,30},
{19,33, 45,38},
{20,22, 66,40}};
int p [ N ], i, j, k;
FILE *out;
printf ( "The original data is : \n" );
for( i=0; i for( j=0; j printf ( "m", t[i][j] );
printf("\n");
}
fun ( t, p );
printf( "\nThe result is:\n" );
for ( k = 0; k < N; k++ )
printf ( " M ", p[ k ] );
printf("\n");
out = fopen("out.dat", "w");
for ( k = 0; k < N; k++ )
fprintf (out, "%d\n", p[ k ] );
fclose(out);
}
答案是:
vid fun(int tt[M][N] ,int pp[N])
{
int i,j,min;
for(j=0;j{
min=tt[0][j];
for(i=0;i{
if(tt[i][j]min=tt[i][j];
}
pp[j]=min;
}
}