当前位置:首页 > 全国计算机二级C语言上机练习题及答案(三)
(2) 改错题
给定程序modi.c中函数fun的功能是:求两个形参的乘积和商数,并通过形参返回调用程序。 例如输入:61.82 和 12.65,输出为: c = 782.023000 d = 4.886957。 请改正 fun 函数中的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
#include
/**********found**********/
void fun(double a,b,double x,y)
{
/**********found**********/
x=a*b; y=a/b;
}
main ( )
{ double a, b, c, d; system(\
printf ( \ a , b : \ scanf ( \ fun ( a , b, &c, &d ) ;
printf (\ d = %f\\n \ }
第1 处:void fun(double a,b,double x,y) 改为void fun ( double a, double b, double *x, double *y )
第2 处:x=a*b; y=a/b; 改为 *x=a*b;*y=a/b;
(3) 程序设计
请编制函数void Mtrx(int n),输出一个如下的n阶方阵。变量n从文件c9670503.in中读取。 例如,若读入4,则输出 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13
注意:此程序存贮在prog.c中。
请勿改动主程序main中的任何内容,仅在函数Mtrx的横线处填入适当的内容并删除横线。
#include
/* 本程序中的fopen、fprintf和fclose与考生无关 */ void Mtrx( int n ) {
int a[M]={0},d=0, i, j, k;
FILE *fp ;
fp=fopen(\ for( i = 1 ; i <= n; i++ ) { for( j=0; j for( k=0; k < n ; k++ ) { printf( \ else for( k=n-1;k>=0;k-- ) { printf( \ a[k] ); fprintf(fp, \ printf(\ fprintf(fp, \ } fclose(fp) ; } main() { int n; FILE *fp ; system(\ fp=fopen(\ fscanf(fp, \ fclose(fp); Mtrx( n ); } 第九套 (1) 填空题 给定程序的功能是根据形参m(2≤m≤9),在二维数组中存放一张m行m列的表格,由main()函数输出。 例如,若输入2 | 若输入4 则输出: | 则输出: 1 2 | 1 2 3 4 2 4 | 2 4 6 8 | 3 6 9 12 | 4 8 12 16 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include int a[M][M] = {0} ; fun(int a[][M], int m) { int j, k ; for (j = 0 ; j < m ; j++ ) for (k = 0 ; k < m ; k++ ) /**************found**************/ ___1___ = (k+1)*(j+1); } main ( ) { int i, j, n ; printf ( \ scanf (\/**************found**************/ fun ( ___2___ ) ; for ( i = 0 ; i < n ; i++) { for (j = 0 ; j < n ; j++) /**************found**************/ printf ( \ printf ( \ } } 第1 处:a[j][k] = (k+1)*(j+1); 第2 处:fun ( a, n ); 第3 处:printf ( \ (2) 改错题 给定程序modi.c中函数fun的功能是:计算并输出high以内最大的10个素数之和。high由主函数传给fun函数。 若high的值为100,则函数的值为732。 请改正函数fun中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include { int sum = 0, n=0, j, yes; /************found************/ while ((high >= 2) && (n < 10) { yes = 1; for (j=2; j<=high/2; j++ ) /************found************/ if (high % j ==0 ){yes=0; break } if (yes) { sum +=high; n++; } high--; } return sum ; } main ( ) { system(\ printf(\} 第1 处:while ((high >= 2) && (n < 10) 改为 while((high>=2)&&(n<10)) 第2 处:if (high % j ==0 ){yes=0; break } 改为 if(high % j==0){yes=0;break;} (3) 程序设计 请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如:若有5门课程的成绩是:90.5, 72, 80, 61.5, 55则函数的值为:71.80。 注意: 部分源程序存在文件prog.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include float fun ( float *a , int n ) { float ave=0; int i; for(i=0;i main() { float score[30]={90.5, 72, 80, 61.5, 55}, aver; aver = fun( score, 5 ); printf( \ is: %5.2f\\n\}
共分享92篇相关文档