}
46、给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include
void fun(char *s, int a, double f) {
/**********found**********/ __1__ fp;
char str[100], str1[100], str2[100]; int a1; double f1; fp = fopen(\
fprintf(fp, \ %d %f\\n\/**********found**********/ __2__ ;
fp = fopen(\/**********found**********/
fscanf(__3__,\ fclose(fp); a1 = atoi(str1); f1 = atof(str2);
printf(\}
main()
{ char a[10]=\ int b=12345; double c= 98.76; fun(a,b,c); } 47、
例如:若形参e的值为1e-3,函数的返回值为0.551690。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include
{ int i, k; double s, t, x; s=0; k=1; i=2;
/**********found**********/ x=__1__/4;
/**********found**********/ while(x __2__ e) { s=s+k*x; k=k* (-1); t=2*i;
/**********found**********/ x=__3__/(t*t); i++; }
return s; }
main()
{ double e=1e-3;
printf(\} 26
48、给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是\幻方\,若是,函数返回值为1; 不是,函数返回值为0。\幻方\的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个\幻方\: 4 9 2 3 5 7 8 1 6
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include
{ int i,j,m1,m2,row,colum; m1=m2=0;
for(i=0; i { j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; } if(m1!=m2) return 0; for(i=0; i /**********found**********/ row=colum= __1__; for(j=0; j { row+=a[i][j]; colum+=a[j][i]; } /**********found**********/ if( (row!=colum) __2__ (row!=m1) ) return 0; } /**********found**********/ return __3__; } main() { int x[N][N],i,j; printf(\ for(i=0; i for(j=0; j { for(j=0; j if(fun(x)) printf(\ else printf(\} 49、给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include struct node *next; } NODE; void fun(NODE *h) { NODE *p, *q; int t; p = h; while (p) { /**********found**********/ q = __1__ ; /**********found**********/ while (__2__) { if (p->data > q->data) { t = p->data; p->data = q->data; q->data = t; } q = q->next; } 27 /**********found**********/ p = __3__ ; } } NODE *creatlist(int a[]) { NODE *h,*p,*q; int i; h=NULL; for(i=0; i { q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL; if (h == NULL) h = p = q; else { p->next = q; p = q; } } return h; } void outlist(NODE *h) { NODE *p; p=h; if (p==NULL) printf(\ else { printf(\ \ do { printf(\ } while(p!=NULL); printf(\ } } main() { NODE *head; int a[N]= {0, 10, 4, 2, 8, 6 }; head=creatlist(a); printf(\ outlist(head); fun(head); printf(\ outlist(head); } 50、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 例如,当形参n的值为10时,函数返回:-0.204491。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include { int i, k; double s, t; s=0; /**********found**********/ k=__1__; for(i=1; i<=n; i++) { /**********found**********/ t=__2__; s=s+k*(2*i-1)*(2*i+1)/(t*t); /**********found**********/ k=k*__3__; } return s; } main() { int n=-1; while(n<0) 28 { printf(\ scanf(\ } printf(\} 二、改错题 考试做题要求: 1、在/**********found**********/的下一行改正错误。 2、将题目做完之后一定要保存。 3、不能删除/**********found**********/,也不能多行或少行。 1、给定程序MODI1.C中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。 例如,若主函数中a字符串为:aBCDeFgH, 主函数中b字符串为:ABcd, 则c中的字符串应为:aBcdeFgH。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include void fun(char *p ,char *q, char *c) { /************found************/ int k = 1; /************found************/ while( *p != *q ) { if( *p<*q ) c[k]=*q; else c[k]=*p; if(*p) p++; if(*q) q++; k++; } } main() { char a[10]=\ fun(a,b,c); printf(\ \ puts(a); printf(\ \ puts(b); printf(\ : \ puts(c); } 2、给定程序MODI1.C中函数fun的功能是: 交换主函数中两个变量的值。例如: 若变量a中的值原为8,b中的值为3。程序运行后a中的值为3, b中的值为8。 请改正程序中的错误, 使它能计算出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构! #include /*********found**********/ int fun(int x,int y) { int t; /*********found**********/ t=x;x=y;y=t; } main() { int a,b; a=8;b=3; fun(&a,&b); printf(\ %d\\n\} 3、给定程序MODI1.C中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include { int m=0, mc=0, j ; 29 while ((k >= 2) && (mc < 10)) { /************found************/ if ((k = 0) || (k = 0)) { m = m+ k; mc++; } k--; } return m; /************found************/ _____ main ( ) { printf(\} 4、给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:7654321时,t中的数为:642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include /************found************/ void fun (long s, long t) { long sl=10; s /= 10; *t = s % 10; /************found************/ while ( s < 0) { s = s/100; *t = s*sl + *t; sl = sl * 10; } } main() { long s, t; printf(\ fun(s, &t); printf(\} 5、给定程序MODI1.C中函数 fun 的功能是: 将十进制正整数m转换成k(2≤k≤9)进制数, 并按高位到低位顺序输出。 例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请改正 fun 函数中的错误,使它能得出正确的结果。 注意:不要改动 main 函数。不得增行或删行,也不得更改程序的结构! #include int aa[20], i; for( i = 0; m; i++ ) { /**********found**********/ aa[i] = m/k; m /= k; } for( ; i; i-- ) /**********found**********/ printf( \} main() { int b, n; printf( \ scanf( \ fun( n, b ); 30