首页资源分类其它科学普及 > 计算机二级考试C语言

计算机二级考试C语言

已有 451617个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:C语言

    分    享:

    文档简介

    计算机二级C语言资料。

    文档预览

    第 51 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:在形参 ss 所指字符 串数组中,将所有串长超过 k 的字符串中右边的字符删除, 只保留左边的 k 个字符。ss 所指字符串数组中共有 N 个字 符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 5 4 #define M 10 5 /**********found**********/ 6 void fun(char (*ss) __1__, int k) 7 { int i=0 ; 8 /**********found**********/ 9 while(i< __2__) { 10 /**********found**********/ 11 ss[i][k]=__3__; i++;} 12 } 13 main() 14 { char x[N][M]={"Create","Modify", "Sort","skip", "Delete"}; 15 int i; 16 printf("\nThe original string\n\n"); 17 for(i=0;i 2 #include 3 double fun(double eps) 4 { double s,t; int n=1; 5 s=0.0; 6 /************found************/ 7 t=0; 8 while(t>eps) 9 { s+=t; 10 t=t * n/(2*n+1); 11 n++; 12 } 13 /************found************/ 14 return(s); 15 } 16 main() 17 { double x; 18 printf("\nPlease enter a precision: "); scanf("%lf",&x); 19 printf("\neps=%lf, Pi=%lf\n\n",x,fun(x)); 20 } 三、程序设计题 假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:使字符串的前导*号不得多于 n 个;若多 于 n 个,则删除多余的*号:若少于或等于 n 个,则什么也不 做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G****, 若 n 的值为 4,删除后,字符串中的内容应当是: ****A*BC*DEF*G****;若 n 的值为 8,则字符串中的内容 仍为:*******A*BC*DEF*G****。n 的值在主函数中输入。 在编写函数时,不得使用 C 语言提供的字符串函数。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(char *a, int n) 3{ 4 5} 6 main() 7 { char s[81]; int n;void NONO (); 8 printf("Enter a string:\n"); gets(s); 9 printf("Enter n : ");scanf("%d", &n); 10 fun(s,n); 11 printf("The string after deleted: \n");puts(s); 12 NONO(); 13 } 14 void NONO () 15 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 16 FILE *in, *out ; 17 int i, n ; char s[81] ; 18 in = fopen("in.dat","r"); 19 out = fopen("out.dat","w"); 20 for(i = 0 ; i < 10 ; i++) { 1 21 fscanf(in, "%s", s); 22 fscanf(in, "%d", &n); 23 fun(s,n); 24 fprintf(out, "%s\n", s); 25 } 26 fclose(in); 27 fclose(out); 28 } 第 52 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:对形参 s 所指字符串 中下标为奇数的字符按 ASCII 码大小递增排序,并将排序 后下标为奇数的字符取出,存入形参 p 所指字符数组中,形 成一个新串。 例如,形参 s 所指的字符串为:baawrskjghzlicda,执行 后 p 所指字符数组中的字符串应为:aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 void fun(char *s, char *p) 3 { int i, j, n, x, t; 4 n=0; 5 for(i=0; s[i]!='\0'; i++) n++; 6 for(i=1; is[j]) t=j; 12 if(t!=i) 13 { x=s[i]; s[i]=s[t]; s[t]=x;} 14 } 15 for(i=1,j=0; i 2 #include 3 float fun (float num) 4 { int s ; 5 float n, t, pi ; 6 t = 1 ; pi = 0 ; n = 1 ; s = 1 ; 7 /*************found*************/ 8 while(t >= num) 9 { 10 pi = pi + t ; 11 n=n+2; 12 s = -s ; 13 /*************found*************/ 14 t=s%n; 15 } 16 pi = pi * 4 ; 17 return pi ; 18 } 19 main() 20 { float n1, n2 ; 21 printf("Enter a float number:"); 22 scanf("%f", &n1); 23 n2 = fun(n1); 24 printf("%6.4f\n", n2); 25 } 三、程序设计题 请编写一个函数 void fun (char a[],char b[],int n),其 功能是:删除一个字符串中指定下标的字符。其中,a 指向 原字符串,删除指定字符后的字符串存放在 b 所指的数组 中,n 中存放指定的下标。 例如,输入一个字符串:World,然后输入 3,则调用 该函数后的结果为:Word。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 #define LEN 20 4 void fun (char a[], char b[], int n) 5{ 6 7} 8 main() 9 { char str1[LEN], str2[LEN] ; 10 int n ; 11 void NONO (); 12 printf("Enter the string:\n"); 13 gets(str1); 14 printf("Enter the position of the string deleted:"); 15 scanf("%d", &n); 16 fun(str1, str2, n); 17 printf("The new string is: %s\n", str2); 18 NONO(); 19 } 20 void NONO () 21 {/* 本函数用于打开文件,输入测试数据,调 用 fun 函数,输出数据,关闭文件。*/ 22 char str1[LEN], str2[LEN] ; 23 int i, n ; 24 FILE *rf, *wf ; 25 rf = fopen("in.dat","r"); 26 wf = fopen("out.dat","w"); 27 for(i = 0 ; i < 10 ; i++) { 28 fscanf(rf, "%s %d", str1, &n); 29 fun(str1, str2, n); 30 fprintf(wf, "%s\n", str2); 31 } 32 fclose(rf); 33 fclose(wf); 34 } 第 53 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将形参 s 所指字符串 中所有 ASCII 码值小于 97 的字符存入形参 t 所指字符数组 中,形成一个新串,并统计出符合条件的字符个数作为函数 值返回。 例如,形参 s 所指的字符串为:Abc@1x56*,程序执行 后 t 所指字符数组中的字符串应为:A@156*。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 int fun(char *s, char *t) 3 { int n=0; 4 while(*s) 5 { if(*s < 97) { 6 /**********found**********/ 7 *(t+n)= __1__ ; n++;} 8 /**********found**********/ 9 __2__ ; 10 } 11 *(t+n)=0; 12 /**********found**********/ 13 return __3__ ; 14 } 15 main() 16 { char s[81],t[81]; int n; 17 printf("\nEnter a string:\n"); gets(s); 18 n=fun(s,t); 19 printf("\nThere are %d letter which ASCII code is less than 97: %s\n", n,t); 20 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:由形参给定 n 个实数,输出平均值,并统计在平均值以上(含平均值) 的实数个数。 例如,n=8 时,输入:193.199,195.673,195.757,196.051, 196.092,196.596,196.579,196.763 所得平均值为:195.838745,在平均值以上的实数个数 应为:5 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 int fun(double x[], int n) 3{ 4 /************found************/ 5 int j, c=0, double xa=0.0; 6 for (j=0; j xa) 12 c++; 13 return c; 14 } 15 main () 16 { double x[100] = {193.199,195.673, 195.757,196.051,196.092,196.596, 196.579,196.763}; 17 printf("%d\n", fun (x, 8)); 18 } 三、程序设计题 编写函数 fun,其功能是:根据以下公式求 P 的值,结 果由函数值带回。m 与 n 为两个正整数且要求 m > n。 P = m! n!(m − n)! 例如:m=12,n=8 时,运行结果为 495.000000。 3 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 float fun(int m, int n) 3{ 4 5} 6 main() /* 主函数 */ 7 { void NONO (); 8 printf("P=%f\n", fun (12,8)); 9 NONO(); 10 } 11 void NONO () 12 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 13 FILE *fp, *wf ; 14 int i, m, n ; 15 float s; 16 fp = fopen("in.dat","r"); 17 wf = fopen("out.dat","w"); 18 for(i = 0 ; i < 10 ; i++) { 19 fscanf(fp, "%d,%d", &m, &n); 20 s = fun(m, n); 21 fprintf(wf, "%f\n", s); 22 } 23 fclose(fp); 24 fclose(wf); 25 } 第 54 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:计算下式前 n 项的和 作为函数值返回。 s = 1× 3 22 − 3×5 42 + 5×7 62 −L + (−1)n−1 (2 × n −1) × (2 × (2 × n)2 n + 1) 例如,当形参 n 的值为 10 时,函数返回:-0.204491。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 double fun(int n) 3 { int i, k; double s, t; 4 s=0; 5 /**********found**********/ 6 k=__1__; 7 for(i=1; i<=n; i++) { 8 /**********found**********/ 9 t=__2__; 10 s=s+k*(2*i-1)*(2*i+1)/(t*t); 4 11 /**********found**********/ 12 k=k*__3__; 13 } 14 return s; 15 } 16 main() 17 { int n=-1; 18 while(n<0) 19 { printf("Please input(n>0):"); scanf("%d",&n);} 20 printf("\nThe result is: %f\n", fun(n)); 21 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:判断一个整 数是否是素数,若是返回 1,否则返回 0。 在 main()函数中,若 fun 返回 1 输出 YES,若 fun 返回 0 输出 NO!。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数。不得增行或删行,也不得 更改程序的结构! 1 #include 2 int fun (int m) 3 { int k = 2; 4 while (k <= m && (m%k)) 5 /************found************/ 6 k++ 7 /************found************/ 8 if (m = k) 9 return 1; 10 else return 0; 11 } 12 main() 13 { int n; 14 printf("\nPlease enter n: "); scanf("%d", &n); 15 if (fun (n)) printf("YES\n"); 16 else printf("NO!\n"); 17 } 三、程序设计题 请编写一个函数 fun,它的功能是:找出一维整型数组 元素中最大的值和它所在的下标,最大的值和它所在的下标 通过形参传回。数组元素中的值已在主函数中赋予。 主函数中 x 是数组名,n 是 x 中的数据个数,max 存放 最大值,index 存放最大值所在元素的下标。 注意:部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 void fun(int a[], int n , int *max, int *d) 4{ 5 6} 7 main() 8 { int i, x[20], max , index, n = 10; void NONO (); 9 for (i=0;i < n;i++) {x[i] = rand() %50; printf("%4d", x[i]);} 10 printf("\n"); 11 fun(x, n , &max, &index); 12 printf("Max =%5d , Index =%4d\n", max, index); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 17 FILE *fp, *wf ; 18 int i, x[20], max, index, n=10, j; 19 fp = fopen("in.dat","r"); 20 wf = fopen("out.dat","w"); 21 for(i = 0 ; i < 10 ; i++) { 22 for(j = 0 ; j < n ; j++) fscanf (fp, "%d,", &x[j]); 23 fun(x, n , &max, &index); 24 fprintf(wf, "Max=%d,Index=%d\n", max, index); 25 } 26 fclose(fp); 27 fclose(wf); 28 } 第 55 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:在形参 ss 所指字符 串数组中查找与形参 t 所指字符串相同的串,找到后返回该 串在字符串数组中的位置(下标值),未找到则返回-1。ss 所指字符串数组中共有 N 个内容不同的字符串,且串长小 于 M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 5 4 #define M 8 5 int fun(char (*ss)[M],char *t) 6 { int i; 7 /**********found**********/ 8 for(i=0; i< __1__ ; i++) 9 /**********found**********/ 10 if(strcmp(ss[i],t)==0) return __2__ ; 11 return -1; 12 } 13 main() 14 { char ch[N][M]={"if","while", "switch","int","for"}, t[M]; 15 int n,i; 16 printf("\nThe original string\n\n"); 17 for(i=0;i 2 int fun(int *b) 3 { int k,a1,a2,i=0; 4 for(k=10; k<=55; k++) { 5 /************found************/ 6 a2=k/10; 7 a1=k-a2*10; 8 if((k%3==0 && a2==5)||(k%3==0 && a1==5)) 9 { b[i]=k; i++;} 10 } 11 /************found************/ 12 return k; 13 } 14 main() 15 { int a[100],k,m; 16 m=fun(a); 17 printf("The result is :\n"); 18 for(k=0; k 2 void fun(char *a) 3{ 4 5} 6 main() 7 { char s[81];void NONO (); 8 printf("Enter a string:\n"); gets(s); 9 fun(s); 10 printf("The string after deleted: \n");puts(s); 11 NONO(); 12 } 13 void NONO () 14 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 15 FILE *in, *out ; 16 int i ; char s[81] ; 17 in = fopen("in.dat","r"); 18 out = fopen("out.dat","w"); 19 for(i = 0 ; i < 10 ; i++) { 20 fscanf(in, "%s", s); 21 fun(s); 22 fprintf(out, "%s\n", s) ; 23 } 24 fclose(in); 25 fclose(out); 26 } 第 56 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将形参 s 所指字符串 中的数字字符转换成对应的数值,计算出这些数值的累加和 作为函数值返回。 例如,形参 s 所指的字符串为:abs5def126jkm8,程序 执行后的输出结果为:22。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 6 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #include 4 int fun(char *s) 5 { int sum=0; 6 while(*s) { 7 /**********found**********/ 8 if(isdigit(*s)) sum+= *s- __1__ ; 9 /**********found**********/ 10 __2__; 11 } 12 /**********found**********/ 13 return __3__ ; 14 } 15 main() 16 { char s[81]; int n; 17 printf("\nEnter a string:\n\n"); gets(s); 18 n=fun(s); 19 printf("\nThe result is: %d\n\n",n); 20 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:计算小于形 参 k 的最大的 10 个能被 13 或 17 整除的自然数之和。k 的 值由主函数传入,若 k 的值为 500,则函数值为 4622。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 int fun(int k) 3 { int m=0, mc=0 ; 4 while ((k >= 2) && (mc < 10)) 5 { 6 /************found************/ 7 if ((k%13 = 0) || (k%17 = 0)) 8 { m = m+ k; mc++;} 9 k--; 10 } 11 return m; 12 /************found************/ 13 _____ 14 main () 15 { 16 printf("%d\n", fun (500)); 17 } 三、程序设计题 编写函数 fun,它的功能是:求小于形参 n 同时能被 3 与 7 整除的所有自然数之和的平方根,并作为函数值返回。 例如若 n 为 1000 时,程序输出应为:s = 153.909064。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 double fun(int n) 4{ 5 6} 7 main() /* 主函数 */ 8 { void NONO (); 9 printf("s =%f\n", fun (1000)); 10 NONO(); 11 } 12 void NONO () 13 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 14 FILE *fp, *wf ; 15 int i, n ; 16 double s; 17 fp = fopen("in.dat","r"); 18 wf = fopen("out.dat","w"); 19 for(i = 0 ; i < 10 ; i++) { 20 fscanf(fp, "%d", &n); 21 s = fun(n); 22 fprintf(wf, "%f\n", s); 23 } 24 fclose(fp); 25 fclose(wf); 26 } 第 57 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:在 3×4 的矩阵中找出 在行上最大、在列上最小的那个元素,若没有符合条件的元 素则输出相应信息。 例如,有下列矩阵: 1 2 13 4 7 8 10 6 3597 程序执行结果为:find:a[2][2]=9 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #define M 3 3 #define N 4 4 void fun(int (*a)[N]) 5 { int i=0,j,find=0,rmax,c,k; 6 while((i 2 double fun (int m) 3 { double y = 1.0 ; 4 int i ; 5 /*************found*************/ 6 for(i = 2 ; i < m ; i++) 7 /*************found*************/ 8 y -= 1 /(i * i); 7 9 return(y); 10 } 11 main() 12 { int n = 5 ; 13 printf("\nThe result is %lf\n", fun (n)); 14 } 三、程序设计题 m 个人的成绩存放在 score 数组中,请编写函数 fun, 它的功能是:将低于平均分的人数作为函数值返回,将低于 平均分的分数放在 below 所指的数组中。 例如,当 score 数组中的数据为:10、20、30、40、50、 60、70、80、90 时,函数返回的人数应该是 4,below 中的 数据应为:10、20、30、40。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 int fun(int score[], int m, int below[]) 4{ 5 6} 7 main() 8 { int i, n, below[9] ;void NONO (); 9 int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ; 10 n = fun(score, 9, below); 11 printf("\nBelow the average score are: "); 12 for (i = 0 ; i < n ; i++) printf("%d ", below[i]); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入测试数据,调 用 fun 函数,输出数据,关闭文件。*/ 17 int i, j, n, below[10], score[10] ; 18 FILE *rf, *wf ; 19 rf = fopen("in.dat","r"); 20 wf = fopen("out.dat","w"); 21 for(i = 0 ; i < 10 ; i++) { 22 for(j = 0 ; j < 10 ; j++) fscanf (rf, "%d", &score[j]); 23 n = fun(score, 10, below); 24 for(j = 0 ; j < n ; j++) fprintf (wf, "%d ", below[j]); 25 fprintf(wf, "\n"); 26 } 8 27 fclose(rf); 28 fclose(wf); 29 } 第 58 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:在形参 ss 所指字符串 数组中,查找含有形参 substr 所指子串的所有字符串并输出, 若没找到则输出相应信息。ss 所指字符串数组中共有 N 个字 符串,且串长小于 M。程序中库函数 strstr(s1,s2)的功能是 在 s1 串中查找 s2 子串,若没有,函数值为 0,若有,为非 0。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 5 4 #define M 15 5 void fun(char (*ss)[M], char *substr) 6 { int i,find=0; 7 /**********found**********/ 8 for(i=0; i< __1__ ; i++) 9 /**********found**********/ 10 if(strstr(ss[i],__2__)!=NULL) 11 { find=1;puts(ss[i]);printf ("\n");} 12 /**********found**********/ 13 if (find==__3__) printf("\nDon't found!\n"); 14 } 15 main() 16 { char x[N][M]={"BASIC","C langwage", "Java","QBASIC", "Access"},str[M]; 17 int i; 18 printf("\nThe original string\n\n"); 19 for(i=0;i 2 /************found************/ 3 fun(int x, y, z) 4 { int j,t ,n ,m; 5 j=1; 6 t=j%x; 7 m=j%y ; 8 n=j%z; 9 while(t!=0||m!=0||n!=0) 10 { j = j+1; 11 t=j%x; 12 m=j%y; 13 n=j%z; 14 } 15 /************found************/ 16 return i; 17 } 18 main() 19 { int x1,x2,x3,j ; 20 printf("Input x1 x2 x3: "); scanf("%d%d%d", &x1,&x2,&x3); 21 printf("x1=%d, x2=%d, x3=%d \n", x1,x2,x3); 22 j=fun(x1,x2,x3); 23 printf("The minimal common multiple is : %d\n",j); 24 } 三、程序设计题 假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:只删除字符串前导和尾部的*号,串中字 母之间的*号都不删除。形参 n 给出了字符串的长度,形参 h 给出了字符串中前导*号的个数,形参 e 给出了字符串中 最后*号的个数。在编写函数时,不得使用 C 语言提供的字 符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******, 删除后,字符串中的内容应当是:A*BC*DEF*G。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(char *a, int n,int h,int e) 3{ 4 5} 6 main() 7 { char s[81],*t,*f; int m=0, tn=0, fn=0;void NONO (); 8 printf("Enter a string:\n"); gets(s); 9 t=f=s; 10 while(*t){t++;m++;} 11 t--; 12 while(*t=='*'){t--;tn++;} 13 while(*f=='*'){f++;fn++;} 14 fun(s , m,fn,tn); 15 printf("The string after deleted: \n");puts(s); 16 NONO(); 17 } 18 void NONO () 19 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 20 FILE *in, *out ; 21 int i ; char s[81], *t, *f ; 22 int m=0, tn=0, fn=0; 23 in = fopen("in.dat","r"); 24 out = fopen("out.dat","w"); 25 for(i = 0 ; i < 10 ; i++) { 26 fscanf(in, "%s", s); 27 t=f=s; 28 m=0; tn=0; fn=0; 29 while(*t){t++;m++;} 30 t--; 31 while(*t=='*'){t--;tn++;} 32 while(*f=='*'){f++;fn++;} 33 fun(s, m, fn, tn); 34 fprintf(out, "%s\n", s); 35 } 36 fclose(in); 37 fclose(out); 38 } 第 59 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将 a 所指 4×3 矩阵中 第 k 行的元素与第 0 行元素交换。 例如,有下列矩阵: 123 456 789 10 11 12 若 k 为 2,程序执行结果为: 789 456 123 10 11 12 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #define N 3 9 3 #define M 4 4 /**********found**********/ 5 void fun(int (*a)[N], int __1__) 6 { int i,temp ; 7 /**********found**********/ 8 for(i = 0 ; i < __2__ ; i++) 9 { temp=a[0][i] ; 10 /**********found**********/ 11 a[0][i] = __3__ ; 12 a[k][i] = temp ; 13 } 14 } 15 main() 16 { int x[M][N]={ {1,2,3},{4,5,6}, {7,8,9},{10,11,12} },i,j; 17 printf("The array before moving: \n\n"); 18 for(i=0; i 2 #include 3 void fun(char t[]) 4{ 5 char c; 6 int i, j; 7 /**********found***********/ 8 for(i = strlen(t); i; i--) 9 for(j = 0; j < i; j++) 10 /**********found***********/ 11 if(t[j] < t[j + 1]) 12 { 13 c = t[j]; 10 14 t[j] = t[j + 1]; 15 t[j + 1] = c; 16 } 17 } 18 main() 19 { 20 char s[81]; 21 printf("\nPlease enter a character string: "); 22 gets(s); 23 printf("\n\nBefore sorting:\n \"%s\"", s); 24 fun(s); 25 printf("\nAfter sorting decendingly: \n \"%s\"", s); 26 } 三、程序设计题 请编写一个函数 fun,其功能是:将 ss 所指字符串中所 有下标为奇数位置上的字母转换为大写(若该位置上不是字 母,则不转换)。 例如,若输入"abc4EFg",则应输出"aBc4EFg"。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 void fun(char *ss) 4{ 5 6} 7 void main(void) 8{ 9 char tt[51];void NONO (); 10 printf("\nPlease enter an character string within 50 characters:\n"); 11 gets(tt); 12 printf("\n\nAfter changing, the string\n \"%s\"", tt); 13 fun(tt); 14 printf("\nbecomes\n \"%s\"", tt); 15 NONO(); 16 } 17 void NONO () 18 { 19 /* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 20 char tt[51], ch; 21 FILE *rf, *wf ; 22 int len, i=0 ; 23 rf = fopen("in.dat","r"); 24 wf = fopen("out.dat","w"); 25 while(i < 10) { 26 fgets(tt, 50, rf); 27 len = strlen(tt) - 1 ; 28 ch = tt[len] ; 29 if(ch == '\n' || ch == 0x1a) tt[len] = 0 ; 30 fun(tt); 31 fprintf(wf, "%s\n", tt); 32 i++ ; 33 } 34 fclose(rf); 35 fclose(wf); 36 } 第 60 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将 a 所指 3×5 矩阵中 第 k 列的元素左移到第 0 列,第 k 列以后的每列元素行依次 左移,原来左边的各列依次绕到右边。 例如,有下列矩阵: 12345 12345 12345 若 k 为 2,程序执行结果为 34512 34512 34512 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #define M 3 3 #define N 5 4 void fun(int (*a)[N],int k) 5 { int i,j,p,temp; 6 /**********found**********/ 7 for(p=1; p<= __1__; p++) 8 for(i=0; i 2 #include 3 #define M 10 4 int a[M][M] = {0} ; 5 /*************found*************/ 6 void fun(int **a, int m) 7 { int j, k ; 8 for (j = 0 ; j < m ; j++) 9 for (k = 0 ; k < m ; k++) 10 /*************found*************/ 11 a[j][k] = k * j ; 12 } 13 main () 14 { int i, j, n ; 15 printf (" Enter n : "); scanf ("%d", &n); 16 fun (a, n); 17 for (i = 0 ; i < n ; i++) 18 { for (j = 0 ; j < n ; j++) 19 printf ("%4d", a[i][j]); 20 printf ("\n"); 21 } 11 22 } 三、程序设计题 函数 fun 的功能是:将 a、b 中的两个两位正整数合并 形成一个新的整数放在 c 中。合并的方式是:将 a 中的十位 和个位数依次放在变量 c 的十位和千位上,b 中的十位和个 位数依次放在变量 c 的个位和百位上。 例如,当 a=45,b=12。调用该函数后,c=5241。 注意:部分源程序存在文件 PROG1.C 中。数据文件 IN.DAT 中的数据不得修改。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(int a, int b, long *c) 3{ 4 5} 6 main() 7 { int a,b; long c;void NONO (); 8 printf("Input a, b:"); 9 scanf("%d%d", &a, &b); 10 fun(a, b, &c); 11 printf("The result is:%ld\n",c); 12 NONO(); 13 } 14 void NONO () 15 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 16 FILE *rf, *wf ; 17 int i, a,b ; long c ; 18 rf = fopen("in.dat","r"); 19 wf = fopen("out.dat","w"); 20 for(i = 0 ; i < 10 ; i++) { 21 fscanf(rf, "%d,%d", &a, &b); 22 fun(a, b, &c); 23 fprintf(wf,"a=%d,b=%d,c=%ld\n", a, b, c); 24 } 25 fclose(rf); 26 fclose(wf); 27 } 第 61 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:调用随机函数产生 20 个互不相同的整数放在形参 a 所指数组中(此数组在主函数 中已置 0)。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 12 1 #include 2 #include 3 #define N 20 4 void fun(int *a) 5 { int i, x, n=0; 6 x=rand()%20; 7 /**********found**********/ 8 while (n<__1__) 9 { for(i=0; i 2 #include 3 void fun() 4{ 5 int a[3][3],sum; 6 int i,j; 7 /*********found**********/ 8 ______; 9 printf("Input data:"); 10 for (i=0;i<3;i++) 11 { for (j=0;j<3;j++) 12 /*********found**********/ 13 scanf("%d",a[i][j]); 14 } 15 for (i=0;i<3;i++) 16 sum=sum+a[i][i]; 17 printf("Sum=%d\n",sum); 18 } 19 main() 20 { 21 fun(); 22 } 三、程序设计题 编写程序,实现矩阵(3 行 3 列)的转置(即行列互换) 例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(int array[3][3]) 3{ 4 5} 6 main() 7{ 8 int i,j;void NONO (); 9 int array[3][3]={{100,200,300}, {400,500,600},{700,800,900}}; 10 for (i=0;i<3;i++) 11 { for (j=0;j<3;j++) 12 printf("%7d",array[i][j]); 13 printf("\n"); 14 } 15 fun(array); 16 printf("Converted array:\n"); 17 for (i=0;i<3;i++) 18 { for (j=0;j<3;j++) 19 printf("%7d",array[i][j]); 20 printf("\n"); 21 } 22 NONO(); 23 } 24 void NONO () 25 { 26 /* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 27 int i,j, array[3][3]; 28 FILE *rf, *wf ; 29 rf = fopen("in.dat","r"); 30 wf = fopen("out.dat","w"); 31 for (i=0;i<3;i++) 32 for (j=0;j<3;j++) 33 fscanf(rf, "%d", &array[i][j]); 34 fun(array); 35 for (i=0;i<3;i++) 36 { for (j=0;j<3;j++) 37 fprintf(wf, "%7d", array[i][j]); 38 fprintf(wf, "\n"); 39 } 40 fclose(rf); 41 fclose(wf); 42 } 第 62 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将形参 n 中,各位上 为偶数的数取出,并按原来从高位到低位相反的顺序组成一 个新的数,并作为函数值返回。 例如,输入一个整数:27638496,函数返回值为:64862。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 unsigned long fun(unsigned long n) 3 { unsigned long x=0; int t; 4 while(n) 5 { t=n%10; 6 /**********found**********/ 7 if(t%2==__1__) 8 /**********found**********/ 9 x=__2__+t; 10 /**********found**********/ 11 n=__3__; 12 } 13 return x; 14 } 15 main() 16 { unsigned long n=-1; 17 while(n>99999999||n<0) 18 { printf("Please input(0 2 void fun (long s, long *t) 3 { int d; 4 long sl=1; 5 /************found************/ 6 t = 0; 7 while (s > 0) 8 { d = s%10; 9 /************found************/ 10 if (d%2 == 0) 11 { *t = d * sl + *t; 12 sl *= 10; 13 } 14 s /= 10; 15 } 16 } 17 main() 18 { long s, t; 19 printf("\nPlease enter s:"); scanf ("%ld", &s); 20 fun(s, &t); 21 printf("The result is:%ld\n",t); 22 } 三、程序设计题 编写一个函数 fun,它的功能是:实现两个字符串的连 接(不使用库函数 strcat),即把 p2 所指的字符串连接到 p1 所指的字符串后。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(char p1[], char p2[]) 3{ 4 5} 6 main() 7 { char s1[80],s2[40];void NONO(); 8 printf("Enter s1 and s2:\n"); 9 scanf("%s%s", s1, s2); 10 printf("s1=%s\n", s1); 11 printf("s2=%s\n", s2); 12 printf("Invoke fun(s1,s2):\n"); 13 fun(s1, s2); 14 printf("After invoking:\n"); 15 printf("%s\n", s1); 16 NONO(); 14 17 } 18 void NONO () 19 {/* 本函数用于打开文件,输入测试数据,调 用 fun 函数,输出数据,关闭文件。*/ 20 int i ; 21 FILE *rf, *wf ; 22 char s1[80], s2[40] ; 23 rf = fopen("in.dat","r"); 24 wf = fopen("out.dat","w"); 25 for(i = 0 ; i < 10 ; i++) { 26 fscanf(rf, "%s", s1); 27 fscanf(rf, "%s", s2); 28 fun(s1, s2); 29 fprintf(wf, "%s\n", s1); 30 } 31 fclose(rf); 32 fclose(wf); 33 } 第 63 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将形参 s 所指字符串 中的所有数字字符顺序前移,其他字符顺序后移,处理后新 字符串的首地址作为函数值返回。 例如,s 所指字符串为:asd123fgh5##43df,处理后新 字符串为:123543asdfgh##df。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #include 4 #include 5 char *fun(char *s) 6 { int i, j, k, n; char *p, *t; 7 n=strlen(s)+1; 8 t=(char*)malloc(n*sizeof(char)); 9 p=(char*)malloc(n*sizeof(char)); 10 j=0; k=0; 11 for(i=0; i 2 #include 3 void fun(char *a, char *b, char *c) 4{ 5 int i , j; char ch; 6 i = 0; j = strlen(b)-1; 7 /************found************/ 8 while (i > j) 9 { ch=b[i];b[i]=b[j];b[j]=ch; 10 i++; j--; 11 } 12 while (*a || *b) { 13 /************found************/ 14 If (*a) 15 { *c = *a; c++; a++;} 16 if (*b) 17 { *c = *b; c++; b++;} 18 } 19 *c = 0; 20 } 21 main() 22 { 23 char s1[100],s2[100],t[200]; 24 printf("\nEnter s1 string : "); scanf("%s",s1); 25 printf("\nEnter s2 string : "); scanf("%s",s2); 26 fun(s1, s2, t); 27 printf("\nThe result is:%s\n",t); 28 } 三、程序设计题 函数 fun 的功能是:将 s 所指字符串中下标为偶数同时 ASCII 值为奇数的字符删除,s 所指串中剩余的字符形成的 新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为"ABCDEFG12345", 其中字符 C 的 ASCII 码值为奇数,在数组中的下标为偶数, 因此必须删除;而字符 1 的 ASCII 码值为奇数,在数组中 的下标也为奇数,因此不应当删除,其他依此类推。 最后 t 所指的数组中的内容应是"BDF12345"。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 void fun(char *s, char t[]) 4{ 5 6} 7 main() 8{ 9 char s[100], t[100];void NONO (); 10 printf("\nPlease enter string S:"); scanf("%s", s); 11 fun(s, t); 12 printf("\nThe result is:%s\n",t); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 17 char s[100], t[100] ; 18 FILE *rf, *wf ; 19 int i ; 20 rf = fopen("in.dat","r"); 21 wf = fopen("out.dat","w"); 22 for(i = 0 ; i < 10 ; i++) { 23 fscanf(rf, "%s", s); 24 fun(s, t); 25 fprintf(wf, "%s\n", t); 26 } 27 fclose(rf); 28 fclose(wf); 29 } 第 64 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将形参 n 所指变量中, 各位上为偶数的数去除,剩余的数按原来从高位到低位的顺 序组成一个新的数,并通过形参指针 n 传回所指变量。 15 例如,输入一个数:27638496,新的数:为 739。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 void fun(unsigned long *n) 3 { unsigned long x=0, i; int t; 4 i=1; 5 while(*n) 6 /**********found**********/ 7 { t=*n % __1__; 8 /**********found**********/ 9 if(t%2!= __2__) 10 { x=x+t*i; i=i*10;} 11 *n =*n /10; 12 } 13 /**********found**********/ 14 *n=__3__; 15 } 16 main() 17 { unsigned long n=-1; 18 while(n>99999999||n<0) 19 { printf("Please input(0 2 double fun (int n) 3 { double result = 1.0 ; 4 /************found************/ 5 if n = = 0 6 return 1.0 ; 7 while(n >1 && n < 170) 8 /************found************/ 9 result *= n-- 10 return result ; 11 } 12 main () 13 { int n ; 14 printf("Input N:"); 15 scanf("%d", &n); 16 printf("\n\n%d! =%lf\n\n",n, fun(n)); 17 } 三、程序设计题 请编写一个函数 fun,它的功能是:将一个数字字符串 转换为一个整数(不得调用 C 语言提供的将字符串转换为 整数的函数)。例如,若输入字符串"-1234",则函数把它转 换为整数值 -1234。 注意:部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 long fun (char *p) 4{ 5 6} 7 main() /* 主函数 */ 8 { char s[6];void NONO (); 9 long n; 10 printf("Enter a string:\n"); 11 gets(s); 12 n = fun(s); 13 printf("%ld\n",n); 14 NONO (); 15 } 16 void NONO () 17 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 18 FILE *fp, *wf ; 19 int i ; 20 char s[20] ; 21 long n ; 22 fp = fopen("in.dat","r"); 23 wf = fopen("out.dat","w"); 24 for(i = 0 ; i < 10 ; i++) { 25 fscanf(fp, "%s", s); 26 n = fun(s); 27 fprintf(wf, "%ld\n", n); 28 } 29 fclose(fp); 30 fclose(wf); 31 } 第 65 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:计算下式前 n 项的和 作为函数值返回。 s = 1× 3 22 + 3×5 42 + 5×7 62 +L + (2 × n −1) × (2 × (2 × n)2 n + 1) 例如,当形参 n 的值为 10 时,函数返回:9.612558。 16 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 double fun(int n) 3 { int i; double s, t; 4 /**********found**********/ 5 s=__1__; 6 /**********found**********/ 7 for(i=1; i<=__2__; i++) 8 { t=2.0*i; 9 /**********found**********/ 10 s=s+(2.0*i-1)*(2.0*i+1)/__3__; 11 } 12 return s; 13 } 14 main() 15 { int n=-1; 16 while(n<0) 17 { printf("Please input(n>0):"); scanf("%d",&n);} 18 printf("\nThe result is: %f\n", fun(n)); 19 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:统计 substr 所指子字符串在 str 所指字符串中出现的次数。 例如,若字符串为 aaas lkaaas,子字符串为 as,则应输 出 2。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 int fun (char *str,char *substr) 3 { int i,j,k,num=0; 4 /************found************/ 5 for(i = 0, str[i], i++) 6 for(j=i,k=0;substr[k]==str[j]; k++,j++) 7 /************found************/ 8 If(substr[k+1]=='\0') 9 { num++; 10 break; 11 } 12 return num; 13 } 14 main() 15 { 16 char str[80],substr[80]; 17 printf("Input a string:"); 18 gets(str); 19 printf("Input a substring:"); 20 gets(substr); 21 printf("%d\n",fun(str,substr)); 22 } 三、程序设计题 请编写一个函数 fun,它的功能是:根据以下公式求 π 的值(要求满足精度 0.0005,即某项小于 0.0005 时停止迭代): π 2 = 1+ 1 3 + 1× 2 3×5 + 1× 3× 2× 5× 3 7 + 1× 2×3× 4 3×5×7×9 +L+ 1× 2×L× n 3×5×L×(2n +1) 程序运行后,如果输入精度 0.0005,则程序输出为 3.140578。 注意:部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 double fun (double eps) 4{ 5 6} 7 main() 8 { double x;void NONO (); 9 printf("Input eps:"); 10 scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x)); 11 NONO(); 12 } 13 void NONO () 14 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 15 FILE *fp, *wf ; 16 int i ; 17 double x ; 18 fp = fopen("in.dat","r"); 19 wf = fopen("out.dat","w"); 20 for(i = 0 ; i < 10 ; i++) { 21 fscanf(fp, "%lf", &x); 22 fprintf(wf, "%lf\n", fun(x)); 23 } 24 fclose(fp); 25 fclose(wf); 26 } 第 66 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是计算下式 s = 3 22 − 5 42 + 7 62 − L + (−1)n−1 (2 × n + 1) (2 × n)2 17 直到 (2 × n + 1) ≤10−3 ,并把计算结果作为函数值返回。 (2 × n)2 例如:若形参 e 的值为 1e-3,函数的返回值为 0.551690。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 double fun(double e) 3 { int i, k; double s, t, x; 4 s=0; k=1; i=2; 5 /**********found**********/ 6 x=__1__/4; 7 /**********found**********/ 8 while(x __2__ e) 9 { s=s+k*x; 10 k=k* (-1); 11 t=2*i; 12 /**********found**********/ 13 x=__3__/(t*t); 14 i++; 15 } 16 return s; 17 } 18 main() 19 { double e=1e-3; 20 printf("\nThe result is: %f\n", fun(e)); 21 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:求出以下分 数序列的前 n 项之和。和值通过函数值返回到 main 函数。 2 , 3 , 5 , 8 , 13 , 21, LL 1 2 3 5 8 13 例如,若 n = 5,则应输出:8.391667。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 /************found************/ 3 void fun (int n) 4 { int a, b, c, k; double s; 5 s = 0.0; a = 2; b = 1; 6 for (k = 1; k <= n; k++) { 7 /************found************/ 8 s = s + (Double)a / b; 9 c = a; a = a + b; b = c; 10 } 11 return s; 12 } 13 main() 14 { int n = 5; 15 printf("\nThe value of function is: %lf\n", fun (n)); 16 } 三、程序设计题 请编写一个函数 fun,它的功能是:求出一个 2×M 整型 二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #define M 4 3 int fun (int a[][M]) 4{ 5 6} 7 main() 8 { int arr[2][M]={5,8,3,45,76, -4,12, 82}; void NONO (); 9 printf("max =%d\n", fun(arr)); 10 NONO(); 11 } 12 void NONO () 13 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 14 FILE *wf ; 15 int arr[][M]={5,8,3,90,76,-4,12, 82}; 16 wf = fopen("out.dat","w"); 17 fprintf(wf,"max=%d\n",fun(arr)); 18 fclose(wf); 19 } 第 67 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:找出 N×N 矩阵中每 列元素中的最大值,并按顺序依次存放于形参 b 所指的一维 数组中。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #define N 4 3 void fun(int (*a)[N], int *b) 4 { int i,j; 5 for(i=0; i 2 /*********found**********/ 3 void fun(int x,int y) 4{ 5 int t; 6 /*********found**********/ 7 t=x;x=y;y=t; 8} 9 main() 10 { 11 int a,b; 12 a=8;b=3; 13 fun(&a,&b); 14 printf("%d, %d\n",a,b); 15 } 三、程序设计题 编写函数 fun,函数的功能是求出小于或等于 lim 的所 有素数并放在 aa 数组中,函数返回所求出的素数的个数。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #define MAX 100 3 int fun(int lim, int aa[MAX]) 4{ 5 6} 7 main() 8{ 9 int limit, i, sum;void NONO (); 10 int aa[MAX] ; 11 printf("输入一个整数"); 12 scanf("%d", &limit); 13 sum=fun(limit, aa); 14 for(i=0 ; i < sum ; i++) { 15 if(i % 10 == 0 && i != 0) printf ("\n"); 16 printf("%5d", aa[i]); 17 } 18 NONO(); 19 } 20 void NONO () 21 { 22 /* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 23 FILE *rf, *wf ; 24 int limit, i, sum, aa[MAX] ; 25 rf = fopen("in.dat","r"); 26 wf = fopen("out.dat","w"); 27 fscanf(rf, "%d", &limit); 28 sum=fun(limit, aa); 29 for(i=0 ; i < sum ; i++) fprintf (wf,"%d\n", aa[i]); 30 fclose(rf); 31 fclose(wf); 32 } 第 68 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:找出 100 至 x(x≤999) 之间各位上的数字之和为 15 的所有整数,然后输出;符合 条件的整数个数作为函数值返回。 例如,当 n 值为 500 时,各位数字之和为 15 的整数有: 159、168、177、186、195、249、258、267、276、285、294、 339、348、357、366、375、384、393、429、438、447、456、 465、474、483、492。共有 26 个。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 19 不得增行或删行,也不得更改程序的结构! 1 #include 2 int fun(int x) 3 { int n, s1, s2, s3, t; 4 /**********found**********/ 5 n=__1__; 6 t=100; 7 /**********found**********/ 8 while(t<=__2__) 9 { s1=t%10; s2=(t/10)%10; s3=t/100; 10 if(s1+s2+s3==15) 11 { printf("%d ",t); 12 n++; 13 } 14 /**********found**********/ 15 __3__; 16 } 17 return n; 18 } 19 main() 20 { int x=-1; 21 while(x>999||x<0) 22 { printf("Please input(0 2 #include 3 void fun (char *s, char *t) 4{ 5 /************found************/ 6 int i; 7 sl = strlen(s); 8 for (i=0; i 2 void fun(int a, int b, long *c) 3{ 4 5} 6 main() /* 主函数 */ 7 { int a,b; long c;void NONO (); 8 printf("Input a, b:"); 9 scanf("%d%d", &a, &b); 10 fun(a, b, &c); 11 printf("The result is: %ld\n", c); 12 NONO(); 13 } 14 void NONO () 15 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 16 FILE *rf, *wf ; 17 int i, a,b ; long c ; 18 rf = fopen("in.dat","r"); 19 wf = fopen("out.dat","w"); 20 for(i = 0 ; i < 10 ; i++) { 21 fscanf(rf, "%d,%d", &a, &b); 22 fun(a, b, &c); 23 fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c); 24 } 25 fclose(rf); 26 fclose(wf); 27 } 第 69 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:在形参 s 所指字符串 中的每个数字字符之后插入一个*号。例如,形参 s 所指的 字符串为:def35adh3kjsdf7。执行结果为: def3*5*adh3*kjsdf7*。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 void fun(char *s) 3 { int i, j, n; 4 for(i=0; s[i]!='\0'; i++) 5 /**********found**********/ 6 if(s[i]>='0' ___1___ s[i]<='9') 7 { n=0; 8 /**********found**********/ 9 while(s[i+1+n]!=__2__) n++; 10 for(j=i+n+1; j>i; j--) 11 /**********found**********/ 12 s[j+1]= ___3___; 13 s[j+1]='*'; 14 i=i+1; 15 } 16 } 17 main() 18 { char s[80]="ba3a54cd23a"; 19 printf("\nThe original string is: %s\n",s); 20 fun(s); 21 printf("\nThe result is : %s\n",s); 22 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:根据整型形 参 m,计算如下公式的值。 y =1+ 1 + 1 + 1 +L+ 1 2*2 3*3 4*4 m*m 例如,若 m 中的值为:5,则应输出:1.463611。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 double fun (int m) 3 { double y = 1.0 ; 4 int i; 5 /*************found*************/ 6 for(i = 2 ; i < m ; i++) 7 /*************found*************/ 8 y += 1 / (i * i); 9 return(y); 10 } 11 main() 12 { int n = 5 ; 13 printf("\nThe result is %lf\n", fun (n)); 14 } 三、程序设计题 请编写程序 fun,函数的功能是:实现 B=A+A',即把 矩阵 A 加上 A 的转置,存放在矩阵 B 中。计算结果在 main 函数中输出。 例如,输入下面的矩阵: 其转置矩阵为: 123 147 456 258 789 程序输出: 369 2 6 10 6 10 14 10 14 18 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun (int a[3][3], int b[3][3]) 3{ 4 5} 6 main() /* 主程序 */ 7 { int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, t[3][3] ; 8 int i, j ; 9 void NONO (); 10 fun(a, t); 11 for (i = 0 ; i < 3 ; i++) { 12 for (j = 0 ; j < 3 ; j++) 13 printf("%7d", t[i][j]); 14 printf("\n"); 15 } 16 NONO (); 17 } 18 void NONO () 19 {/* 本函数用于打开文件,输入测试数据,调 用 fun 函数,输出数据,关闭文件。*/ 20 int i, j, k, a[3][3], t[3][3] ; 21 FILE *rf, *wf ; 22 rf = fopen("in.dat","r"); 23 wf = fopen("out.dat","w"); 24 for(k = 0 ; k < 5 ; k++) { 25 for(i = 0 ; i < 3 ; i++) 26 fscanf(rf, "%d %d %d", &a[i][0], &a[i][1], &a[i][2]); 27 fun(a, t); 28 for(i = 0 ; i < 3 ; i++) { 29 for(j = 0 ; j < 3 ; j++) fprintf 21 (wf, "%7d", t[i][j]); 30 fprintf(wf, "\n"); 31 } 32 } 33 fclose(rf); 34 fclose(wf); 35 } 第 70 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是根据形参 i 的值返回某 个函数的值。当调用正确时,程序输出: x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 double f1(double x) 3 { return x*x;} 4 double f2(double x, double y) 5 { return x*y;} 6 /**********found**********/ 7 __1__ fun(int i, double x, double y) 8 { if (i==1) 9 /**********found**********/ 10 return __2__(x); 11 else 12 /**********found**********/ 13 return __3__(x, y); 14 } 15 main() 16 { double x1=5, x2=3, r; 17 r = fun(1, x1, x2); 18 r += fun(2, x1, x2); 19 printf("\nx1=%f, x2=%f, x1*x1+x1*x2= %f\n\n",x1, x2, r); 20 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:比较两个字 符串,将长的那个字符串的首地址作为函数值返回。 请改正函数 fun 中指定部位的错误,使它能得出正确的 结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 /**********found**********/ 3 char fun(char *s, char *t) 4 { int sl=0,tl=0; char *ss, *tt; 5 ss=s; tt=t; 6 while(*ss) 22 7 { sl++; 8 /**********found**********/ 9 (*ss)++; 10 } 11 while(*tt) 12 { tl++; 13 /**********found**********/ 14 (*tt)++; 15 } 16 if(tl>sl) return t; 17 else return s; 18 } 19 main() 20 { char a[80],b[80]; 21 printf("\nEnter a string : "); gets(a); 22 printf("\nEnter a string again : "); gets(b); 23 printf("\nThe longer is :\n\n\ "%s\"\n",fun(a,b)); 24 } 三、程序设计题 请编写函数 fun,函数的功能是:移动字符串中的内容, 移动的规则如下:把第 1 到第 m 个字符,平移到字符串的 最后,把第 m+1 到最后的字符移到字符串的前部。 例如,字符串中原有的内容为:ABCDEFGHIJK,m 的 值为 3,则移动后,字符串中的内容应该是:DEFGHIJKABC。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 #define N 80 4 void fun1(char *w) /* 本函数的功能 是将字符串中字符循环左移一个位置 */ 5{ 6 int i; char t; 7 t=w[0]; 8 for(i=0;i<(int)strlen(w)-1;i++) 9 w[i]=w[i+1]; 10 w[strlen(w)-1]=t; 11 } 12 void fun(char *w, int m) /* 可调用 fun1 函数左移字符 */ 13 { 14 15 } 16 main() 17 { char a[N]= "ABCDEFGHIJK"; 18 int m;void NONO (); 19 printf("The original string:\n"); puts(a); 20 printf("\n\nEnter m: ");scanf ("%d",&m); 21 fun(a,m); 22 printf("\nThe string after moving: \n");puts(a); 23 printf("\n\n"); 24 NONO(); 25 } 26 void NONO () 27 {/* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 28 FILE *rf, *wf; char a[N]; int m, i; 29 rf = fopen("in.dat","r"); 30 wf = fopen("out.dat","w"); 31 for(i = 0 ; i < 10 ; i++) { 32 fscanf(rf, "%d %s", &m, a); 33 fun(a, m); 34 fprintf(wf, "%s\n", a); 35 } 36 fclose(rf); fclose(wf); 37 } 第 71 套 上机考试试题 一、程序填空题 函数 fun 的功能是:计算 f (x) =1+ x + x2 2! +L + xn n! 直到 xn n! < 10−6 。若 x=2.5,函数值为:12.182494。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 double fun(double x) 4 { double f, t; int n; 5 /**********found**********/ 6 f = 1.0+___1___; 7 t = x; 8 n = 1; 9 do { 10 n++; 11 /**********found**********/ 12 t *= x/___2___; 13 /**********found**********/ 14 f += ___3___; 15 } while (fabs(t) >= 1e-6); 16 return f; 17 } 18 main() 19 { double x, y; 20 x=2.5; 21 y = fun(x); 22 printf("\nThe result is :\n"); 23 printf("x=%-12.6f y=%-12.6f \n", x, y); 24 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:计算 n 的 5 次方的值(规定 n 的值大于 2、小于 8),通过形参指针传回 主函数;并计算该值的个位、十位、百位上数字之和作为函 数值返回。 例如,7 的 5 次方是 16807,其低 3 位数的和值是 15。 请改正函数 fun 中指定部位的错误,使它能得出正确的 结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 #include 3 int fun(int n ,int *value) 4 { int d,s,i; 5 /*************found*************/ 6 d=0; s=0; 7 for(i=1; i<=5; i++) d=d*n; 8 *value=d; 9 for(i=1; i<=3; i++) 10 { s=s+d%10; 11 /*************found*************/ 12 d=d\10; 13 } 14 return s; 15 } 16 main() 17 { int n, sum, v; 18 do 19 { printf("\nEnter n(2=8); 21 sum=fun(n,&v); 22 printf("\n\nThe result:\n value= %d sum=%d\n\n", v,sum); 23 } 三、程序设计题 请编写函数 fun,其功能是:计算并输出给定数组(长 度为 9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的 9 个元素依次为 12.0、34.0、4.0、 23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 23 1 #include 2 #include 3 double fun(double x[9]) 4{ 5 6} 7 main() 8 { double s,a[9]={12.0,34.0,4.0,23.0, 34.0,45.0,18.0,3.0, 11.0}; 9 int i; 10 printf("\nThe original data is: \n"); 11 for(i=0;i<9;i++)printf("%6.1f", a[i]); printf("\n\n"); 12 s=fun(a); 13 printf("s=%f\n\n",s); 14 NONO(); 15 } 16 NONO() 17 {/* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 18 FILE *rf, *wf ; int i, j ; double s, a[9] ; 19 rf = fopen("in.dat","r"); 20 wf = fopen("out.dat","w"); 21 for(i = 0 ; i < 5 ; i++) { 22 for(j = 0 ; j < 9 ; j++) fscanf(rf, "%lf", &a[j]); 23 s = fun(a); 24 fprintf(wf, "%lf\n", s); 25 } 26 fclose(rf); fclose(wf); 27 } 第 72 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:计算 x 所指数组中 N 个数的平均值(规定所有数均为正数),平均值通过形参返 回主函数,将小于平均值且最接近平均值的数作为函数值返 回,在主函数中输出。 例如,有 10 个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:m=30.0 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 10 4 double fun(double x[],double *av) 5 { int i,j; double d,s; 6 s=0; 7 for(i=0; i 2 /************found************/ 3 int fun (int n) 4 { float A=1; int i; 5 /************found************/ 6 for (i=2; i 2 #include 3 #define N 5 4 void fun (int a[][N], int m) 5{ 6 7} 8 main () 9 { int a[N][N],m,i,j;void NONO(); 10 printf("***** The array *****\n"); 11 for (i =0; i=3); 17 printf("m = %4d\n",m); 18 fun (a ,m); 19 printf ("THE RESULT\n"); 20 for (i =0; i 2 double fun(double x, int n) 3 { double f, t; int i; 4 f = 1.0; 5 /**********found**********/ 6 t = ___1___; 7 /**********found**********/ 8 for (i=___2___; i 2 #define N 100 3 int fun(int *s, int n) 4 { int i,j,k,a,b,c; 5 j=0; 6 for(i=100; i 1000); 22 num = fun(a,n); 23 printf("\n\nThe result :\n"); 24 for(i=0; i 2 #include 3 double fun(double x[10]) 4{ 5 6} 7 NONO() 8 {/* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 9 FILE *rf, *wf ; int i, j ; double s, x[10] ; 10 rf = fopen("in.dat","r"); 11 wf = fopen("out.dat","w"); 12 for(i = 0 ; i < 5 ; i++) { 13 for(j = 0 ; j < 10 ; j++) fscanf(rf, "%lf", &x[j]); 14 s = fun(x); 15 fprintf(wf, "%lf\n", s); 16 } 17 fclose(rf); fclose(wf); 18 } 19 main() 20 { double s, x[10]={95.0,89.0,76.0, 65.0,88.0,72.0,85.0,81.0,90.0,56.0}; 21 int i; 22 printf("\nThe original data is: \n"); 23 for(i=0;i<10;i++)printf("%6.1f", x[i]); printf("\n\n"); 24 s=fun(x); 25 printf("s=%f\n\n",s); 26 NONO(); 27 } 第 74 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:计算形参 x 所指数组 中 N 个数的平均值(规定所有数均为正数),将所指数组中 大于平均值的数据移至数组的前部,小于等于平均值的数据 移至 x 所指数组的后部,平均值作为函数值返回,在主函数 中输出平均值和移动后的数据。 例如,有 10 个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:46 32 40 45 48 30 6 17 15 26 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 10 4 double fun(double *x) 5 { int i, j; double s, av, y[N]; 6 s=0; 7 for(i=0; iav){ 26 12 /**********found**********/ 13 y[__2__]=x[i]; x[i]=-1;} 14 for(i=0; i 2 #include 3 /************found************/ 4 include 5 /************found************/ 6 upfst (char p) 7 { int k=0; 8 for (; *p; p++) 9 if (k) 10 { if (*p == ' ') k = 0;} 11 else if (*p != ' ') 12 { k = 1; *p = toupper(*p);} 13 } 14 main() 15 { char chrstr[81]; 16 printf("\nPlease enter an English text line: "); gets(chrstr); 17 printf("\n\nBefore changing:\n %s", chrstr); 18 upfst(chrstr); 19 printf("\nAfter changing:\n %s\n", chrstr); 20 } 三、程序设计题 程序定义了 N×N 的二维数组,并在主函数中赋值。请 编写函数 fun,函数的功能是:求出数组周边元素的平均值 并作为函数值返给主函数中的 s。 例如:a 数组中的值为: 01279 19745 a= 2 3 8 3 1 45682 59141 则返回主程序后 s 的值应为:3.375。 注意:部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 #define N 5 4 double fun (int w[][N]) 5{ 6 7} 8 main () 9 { int a[N][N]={0,1,2,7,9,1,9,7,4,5, 2,3,8,3,1,4,5,6,8,2,5, 9,1,4,1}; 10 int i, j;void NONO (); 11 double s ; 12 printf("***** The array *****\n"); 13 for (i =0; i 2 double fun(double e) 3 { int i; double s, x; 4 /**********found**********/ 5 s=0; i=__1__; 6 x=1.0; 7 while(x>e){ 8 /**********found**********/ 9 __2__; 10 /**********found**********/ 11 x=(2.0*i-1)/((__3__)*(2.0*i)); 12 s=s+x; 13 } 14 return s; 15 } 16 main() 17 { double e=1e-3; 18 printf("\nThe result is: %f\n", fun(e)); 19 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字 符串的正序和反序进行连接,形成一个新串放在 t 所指的数 组中。 例如,当 s 所指字符串为:"ABCD" 时,则 t 所指字符 串中的内容应为:"ABCDDCBA"。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 #include 3 /************found************/ 4 void fun (char s, char t) 5{ 6 int i, d; 28 7 d = strlen(s); 8 for (i = 0; i 2 #include 3 void fun(char *s, char t[]) 4{ 5 6} 7 main() 8{ 9 char s[100], t[100];void NONO (); 10 printf("\nPlease enter string S:"); scanf("%s", s); 11 fun(s, t); 12 printf("\nThe result is:%s\n",t); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 17 char s[100], t[100] ; 18 FILE *rf, *wf ; 19 int i ; 20 rf = fopen("in.dat","r"); 21 wf = fopen("out.dat","w"); 22 for(i = 0 ; i < 10 ; i++) { 23 fscanf(rf, "%s", s); 24 fun(s, t); 25 fprintf(wf, "%s\n", t); 26 } 27 fclose(rf); 28 fclose(wf); 29 } 第 76 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:在形参 ss 所指字符 串数组中,删除所有串长超过 k 的字符串,函数返回所剩字 符串的个数。ss 所指字符串数组中共有 N 个字符串,且串 长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 5 4 #define M 10 5 int fun(char (*ss)[M], int k) 6 { int i,j=0,len; 7 /**********found**********/ 8 for(i=0; i< __1__ ; i++) 9 { len=strlen(ss[i]); 10 /**********found**********/ 11 if(len<= __2__) 12 /**********found**********/ 13 strcpy(ss[j++],__3__); 14 } 15 return j; 16 } 17 main() 18 { char x[N][M]={"Beijing","Shanghai", "Tianjing", "Nanjing","Wuhan"}; 19 int i,f; 20 printf("\nThe original string\n\n"); 21 for(i=0;i 2 #include 3 void fun(char *p ,char *q, char *c) 4{ 5 /************found************/ 6 int k = 1; 7 /************found************/ 8 while(*p != *q) 9 { if(*p<*q) c[k]=*q; 10 else c[k]=*p; 11 if(*p) p++; 12 if(*q) q++; 13 k++; 14 } 15 } 16 main() 17 { char a[10]="aBCDeFgH", b[10]= "ABcd", c[80]= {'\0'}; 18 fun(a,b,c); 19 20 21 22 } printf("The string a: "); puts(a); printf("The string b: "); puts(b); printf("The result : "); puts(c); 三、程序设计题 假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:除了字符串前导的*号之外,将串中其他 *号全部删除。在编写函数时,不得使用 C 语言提供的字符 串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******, 删除后,字符串中的内容应当是:****ABCDEFG。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(char *a) 3{ 4 5} 6 main() 7 { char s[81];void NONO (); 8 printf("Enter a string:\n"); gets(s); 9 fun(s); 29 10 printf("The string after deleted: \n");puts(s); 11 NONO(); 12 } 13 void NONO () 14 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 15 FILE *in, *out ; 16 int i ; char s[81] ; 17 in = fopen("in.dat","r"); 18 out = fopen("out.dat","w"); 19 for(i = 0 ; i < 10 ; i++) { 20 fscanf(in, "%s", s); 21 fun(s); 22 fprintf(out, "%s\n", s); 23 } 24 fclose(in); 25 fclose(out); 26 } 第 77 套 上机考试试题 一、程序填空题 函数 fun 的功能是:统计所有小于等于 n(n>2)的素数的 个数,素数的个数作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 int fun(int n) 3 { int i,j, count=0; 4 printf("\nThe prime number between 3 to %d\n", n); 5 for (i=3; i<=n; i++) { 6 /**********found**********/ 7 for (___1___; j=i) 13 { count++; printf(count%15? "%5d":"\n%5d", i);} 14 } 15 return count; 16 } 17 main() 18 { int n=20, r; 19 r = fun(n); 20 printf("\nThe number of prime is : %d\n", r); 30 21 } 二、程序修改题 数列中,第一项值为 3,后一项都比前一项的值增 5;给 定程序 MODI1.C 中函数 fun 的功能是:计算前 n(4 2 #define N 20 3 int fun(int n,int *a) 4 { int i,j,k,sum; 5 /*************found*************/ 6 sum=j==0; 7 for(k=3,i=0;i 2 double fun(int n) 3{ 4 5} 6 NONO() 7 {/* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 8 FILE *rf, *wf; int n, i; double s; 9 rf = fopen("in.dat","r"); 10 wf = fopen("out.dat","w"); 11 for(i = 0 ; i < 10 ; i++) { 12 fscanf(rf, "%d", &n); 13 s = fun(n); 14 fprintf(wf, "%lf\n", s); 15 } 16 fclose(rf); fclose(wf); 17 } 18 main() 19 { int n; double s; 20 printf("\nInput n:"); scanf("%d", &n); 21 s=fun(n); 22 printf("\ns=%f\n",s); 23 NONO(); 24 } 第 78 套 上机考试试题 一、程序填空题 函数 fun 的功能是:把形参 a 所指数组中的最小值放在 元素 a[0]中,接着把形参 a 所指数组中的最大值放在 a[1]元 素中;再把 a 所指数组元素中的次小值放在 a[2]中,把 a 所 指数组元素中的次大值放在 a[3];其余以此类推。例如:若 a 所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、 7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、 6、5。形参 n 中存放 a 所指数组中数据的个数。 注意:规定 fun 函数中的 max 存放当前所找的最大值, px 存放当前所找最大值的下标。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 # include 2 #define N 9 3 void fun(int a[], int n) 4 { int i,j, max, min, px, pn, t; 5 for (i=0; i___3___) 16 { min = a[j]; pn = j;} 17 } 18 if (pn != i) 19 { t=a[i];a[i]=min;a[pn]=t; 20 if (px == i) px =pn; 21 } 22 if (px != i+1) 23 { t=a[i+1];a[i+1]=max;a[px]=t;} 24 } 25 } 26 main() 27 { int b[N]={9,1,4,2,3,6,5,8,7},i; 28 printf("\nThe original data:\n"); 29 for (i=0; i 2 long fun(int g) 3{ 4 /**********found**********/ 5 switch(g); 6 { case 0: return 0; 7 /**********found**********/ 8 case 1 ;case 2 : return 1 ; 9 } 10 return(fun(g-1)+fun(g-2)); 11 } 12 main() 13 { long fib; int n; 14 printf("Input n: "); scanf("%d", &n); printf("n = %d\n",n); 15 fib=fun(n); 16 printf("fib = %d\n\n",fib); 31 17 } 三、程序设计题 某学生的记录有学号、8 门课程成绩和平均分组成,学 号和 8 门课程的成绩已在主函数中给出。请编写函数 fun, 它的功能是:求出该学生的平均分放在记录的 ave 成员中。 例如,学生的成绩是:85.5,76,69.5,85,91,72, 64.5,87.5,他的平均分应当是:78.875。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 部位中填入你编写的若干语句。 1 #include 2 #define N 8 3 typedef struct 4 { char num[10]; 5 double s[N]; 6 double ave; 7 } STREC; 8 void fun(STREC *a) 9{ 10 11 } 12 main() 13 {STREC s={"GA005",85.5,76,69.5,85, 91,72,64.5, 87.5}; 14 int i; 15 void NONO (); 16 fun(&s); 17 printf("The %s's student data: \n", s.num); 18 for(i=0;i 2 #define N 4 3 fun(int t[][N], int n) 4 { int i, sum; 5 /**********found**********/ 6 ___1___; 7 for(i=0; i 2 #include 3 double funx(double x) 4 { return(2*x*x*x-4*x*x+3*x-6);} 5 double fun(double m, double n) 6{ 7 /************found************/ 8 int r; 9 r=(m+n)/2; 10 /************found************/ 11 while(fabs(n-m)<0.001) 12 { if(funx(r)*funx(n)<0) m=r; 13 else n=r; 14 r=(m+n)/2; 15 } 16 return r; 17 } 18 main() 19 { double m,n, root; 20 printf("Enter m n : \n"); scanf ("%lf%lf",&m,&n); 21 root=fun(m,n); 22 printf("root = %6.3f\n",root); 23 } 三、程序设计题 假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:除了字符串前导和尾部的*号之外,将串 中其他*号全部删除。形参 h 已指向字符串中第一个字母, 形参 p 已指向字符串中最后一个字母。在编写函数时,不得 使用 C 语言提供的字符串函数。 例 如 , 字 符 串 中 的 内 容 为 : ****A*BC*DEF*G ********,删除后,字符串中的内容应当是:****ABCDEFG ********。在编写函数时,不得使用 C 语言提供的字符串 函数。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(char *a, char *h,char *p) 3{ 4 5} 6 main() 7 { char s[81],*t, *f; 8 void NONO (); 9 printf("Enter a string:\n"); gets(s); 10 t=f=s; 11 while(*t)t++; 12 t--; 13 while(*t=='*')t--; 14 while(*f=='*')f++; 15 fun(s , f,t); 16 printf("The string after deleted: \n");puts(s); 17 NONO(); 18 } 19 void NONO() 20 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 21 FILE *in, *out ; 22 int i ; char s[81], *t, *f ; 23 in = fopen("in.dat","r"); 24 out = fopen("out.dat","w"); 25 for(i = 0 ; i < 10 ; i++) { 26 fscanf(in, "%s", s); 27 t=f=s; 28 while(*t)t++; 29 t--; 30 while(*t=='*')t--; 31 while(*f=='*')f++; 32 fun(s, f, t); 33 fprintf(out, "%s\n", s) ; 34 } 35 fclose(in); 36 fclose(out); 37 } 第 80 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将形参 std 所指结构 体数组中年龄最大者的数据作为函数值返回,并在 main 函 数中输出。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 typedef struct 3 { char name[10]; 4 int age; 33 5 }STD; 6 STD fun(STD std[], int n) 7 {STD max; int i; 8 /**********found**********/ 9 max= ___1___; 10 for(i=1; i 2 /**********found**********/ 3 void fun (int a, b) 4 { int t; 5 /**********found**********/ 6 t = b; b = a ; a = t; 7} 8 main () 9 { int a, b; 10 printf ("Enter a , b : "); scanf ("%d,%d", &a, &b); 11 fun (&a , &b); 12 printf (" a=%d b=%d\n",a,b); 13 } 三、程序设计题 请编一个函数 void fun(int tt[M][N],int pp[N]),tt 指向 一个 M 行 N 列的二维数组,求出二维数组每列中最小元素, 并依次放入 pp 所指一维数组中。二维数组中的数已在主函 数中赋予。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 34 2 #define M 3 3 #define N 4 4 void fun (int tt[M][N], int pp[N]) 5{ 6 7} 8 NONO() 9 {/* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 10 int i, j, k, m, t[M][N], p[N] ; 11 FILE *rf, *wf ; 12 rf = fopen("in.dat","r"); 13 wf = fopen("out.dat","w"); 14 for(m = 0 ; m < 10 ; m++) { 15 for(i=0; i 2 #include 3 char fun(char ch) 4{ 5 /**********found**********/ 6 if ((ch>='a')___1___(ch<='z')) 7 return ch -'a' + 'A'; 8 if (isupper(ch)) 9 /**********found**********/ 10 return ch +'a'-___2___ ; 11 /**********found**********/ 12 return ___3___; 13 } 14 main() 15 { char c1, c2; 16 printf("\nThe result :\n"); 17 c1='w'; c2 = fun(c1); 18 printf("c1=%c c2=%c\n", c1, c2); 19 c1='W'; c2 = fun(c1); 20 printf("c1=%c c2=%c\n", c1, c2); 21 c1='8'; c2 = fun(c1); 22 printf("c1=%c c2=%c\n", c1, c2); 23 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:给一维数组 a 输入任意 4 个整数,并按下例的规律输出。例如输入 1、2、 3、4,程序运行后将输出以下方阵。 4123 3412 2341 1234 请改正函数 fun 中指定部位的错误,使它能得出正确的 结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 #define M 4 3 /*************found*************/ 4 void fun(int a) 5 { int i,j,k,m; 6 printf("Enter 4 number : "); 7 for(i=0; i0;i--) 10 { k=a[M-1]; 11 for(j=M-1;j>0;j--) 12 /*************found*************/ 13 aa[j]=a[j-1]; 14 a[0]=k; 15 for(m=0; m 2 int fun(int n) 3{ 4 5} 6 NONO() 7 {/* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 8 FILE *rf, *wf ; int i, n, sum ; 9 rf = fopen("in.dat","r"); 10 wf = fopen("out.dat","w"); 11 for(i = 0 ; i < 10 ; i++) { 12 fscanf(rf, "%d", &n); 13 sum = fun(n); 14 fprintf(wf, "%d=%d\n", n, sum); 15 } 16 fclose(rf); fclose(wf); 17 } 18 main() 19 { int n,sum; 20 printf("Input n:");scanf("%d",&n); 21 sum=fun(n); 22 printf("sum=%d\n",sum); 23 NONO(); 24 } 第 82 套 上机考试试题 一、程序填空题 程序通过定义学生结构体数组,存储了若干名学生的学 号、姓名和 3 门课的成绩。函数 fun 的功能是将存放学生数 据的结构体数组,按照姓名的字典序(从小到大)排序。 35 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 struct student { 4 long sno; 5 char name[10]; 6 float score[3]; 7 }; 8 void fun(struct student a[], int n) 9{ 10 /**********found**********/ 11 __1__ t; 12 int i, j; 13 /**********found**********/ 14 for (i=0; i<__2__; i++) 15 for (j=i+1; j 0) 18 { t=a[i]; a[i]=a[j]; a[j]=t;} 19 } 20 main() 21 { struct student s[4]={{10001, "ZhangSan", 95, 80, 88},{10002, "LiSi", 85, 70, 78},{10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}}; 22 int i, j; 23 printf("\n\nThe original data: \n\n"); 24 for (j=0; j<4; j++) 25 { printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); 26 for (i=0; i<3; i++) printf ("%6.2f ", s[j].score[i]); 27 printf("\n"); 28 } 29 fun(s, 4); 30 printf("\n\nThe data after sorting: \n\n"); 31 for (j=0; j<4; j++) 32 { printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); 33 for (i=0; i<3; i++) printf ("%6.2f ", s[j].score[i]); 34 printf("\n"); 35 } 36 } 36 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:在 p 所指字 符串中找出 ASCII 码值最大的字符,将其放在第一个位置 上;并将该字符前的原字符向后顺序移动。 例如,调用 fun 函数之前给字符串输入:ABCDeFGH, 调用后字符串中的内容为:eABCDFGH。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构。 1 #include 2 void fun(char *p) 3 { char max,*q; int i=0; 4 max=p[i]; 5 while(p[i]!=0) 6 { if(maxp) 15 { *q=*(q-1); 16 q--; 17 } 18 p[0]=max; 19 } 20 main() 21 { char str[80]; 22 printf("Enter a string: "); gets (str); 23 printf("\nThe original string: "); puts(str); 24 fun(str); 25 printf("\nThe string after moving: "); puts(str); printf("\n\n"); 26 } 三、程序设计题 学生的记录由学号和成绩组成,N 名学生的数据已在主 函数中放入结构体数组 s 中,请编写函数 fun,它的功能是: 把指定分数范围内的学生数据放在 b 所指的数组中,分数范 围内的学生人数由函数值返回。 例如,输入的分数是 60 69,则应当把分数在 60 到 69 的学生数据进行输出,包含 60 分和 69 分的学生数据。主函 数中将把 60 放在 low 中,把 69 放在 heigh 中。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #define N 16 3 typedef struct 4 { char num[10]; 5 int s; 6 } STREC; 7 int fun(STREC *a,STREC *b,int l, int h) 8{ 9 10 } 11 main() 12 {STREC s[N]={{"GA005",85}, {"GA003",76},{"GA002",69}, {"GA004",85}, {"GA001",96}, {"GA007",72},{"GA008",64}, {"GA006",87},{"GA015",85}, {"GA013",94}, {"GA012",64}, {"GA014",91},{"GA011",90}, {"GA017",64},{"GA018",64}, {"GA016",72}}; 13 STREC h[N],tt;FILE *out ; 14 int i,j,n,low,heigh,t; 15 printf("Enter 2 integer number low & heigh : "); 16 scanf("%d%d", &low,&heigh); 17 if (heighh[j].s) {tt=h[i]; h[i]=h[j]; h[j]=tt;} 29 for(i=0;i 2 #include 3 struct student { 4 long sno; 5 char name[10]; 6 float score[3]; 7 }; 8 /**********found**********/ 9 __1__ fun(struct student a) 10 { int i; 11 a.sno = 10002; 12 /**********found**********/ 13 strcpy(__2__, "LiSi"); 14 /**********found**********/ 15 for (i=0; i<3; i++) __3__+= 1; 16 return a; 17 } 18 main() 19 { struct student s={10001, "ZhangSan",95,80,88},t; 20 int i; 21 printf("\n\nThe original data :\n"); 22 printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); 23 for (i=0; i<3; i++) printf("%6.2f ", s.score[i]); 24 printf("\n"); 25 t = fun(s); 26 printf("\nThe data after modified: \n"); 27 printf("\nNo: %ld Name: %s\nScores: ",t.sno, t.name); 28 for (i=0; i<3; i++) printf("%6.2f ", t.score[i]); 29 printf("\n"); 30 } 二、程序修改题 假定整数数列中的数不重复,并存放在数组中。给定程 序 MODI1.C 中函数 fun 的功能是:删除数列中值为 x 的元 素。n 中存放的是数列中元素的个数。 请改正程序中的错误,使它能得出正确结果。 37 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构。 1 #include 2 #define N 20 3 int fun(int *a,int n,int x) 4 { int p=0,i; 5 a[n]=x; 6 while(x!=a[p]) 7 p=p+1; 8 /**********found**********/ 9 if(P==n) return -1; 10 else 11 { for(i=p;i 2 void fun(int a, int b, long *c) 38 3{ 4 5} 6 main() 7 { int a,b; long c; 8 void NONO (); 9 printf("Input a, b:"); 10 scanf("%d,%d", &a, &b); 11 fun(a, b, &c); 12 printf("The result is: %ld\n",c); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 17 FILE *rf, *wf ; 18 int i, a,b ; long c ; 19 rf = fopen("in.dat", "r"); 20 wf = fopen("out.dat","w"); 21 for(i = 0 ; i < 10 ; i++) { 22 fscanf(rf, "%d,%d", &a, &b); 23 fun(a, b, &c); 24 fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c); 25 } 26 fclose(rf); 27 fclose(wf); 28 } 第 84 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将 N×N 矩阵中元素 的值按列右移 1 个位置,右边被移出矩阵的元素绕回左边。 例如,N=3,有下列矩阵 123 456 789 计算结果为 312 645 978 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #define N 4 3 void fun(int (*t)[N]) 4 { int i, j, x; 5 /**********found**********/ 6 for(i=0; i<___1___; i++) 7 { 8 /**********found**********/ 9 x=t[i][___2___] ; 10 for(j=N-1; j>=1; j--) 11 t[i][j]=t[i][j-1]; 12 /**********found**********/ 13 t[i][___3___]=x; 14 } 15 } 16 main() 17 { int t[][N]={21,12,13,24,25,16,47, 38,29,11,32,54,42, 21,33,10}, i, j; 18 printf("The original array:\n"); 19 for(i=0; i 2 double fun(double q) 3 { int n; double s,t; 4 n = 2; 5 s = 2.0; 6 while (s<=q) 7 { 8 t=s; 9 /************found************/ 10 s=s+(n+1)/n; 11 n++; 12 } 13 printf("n=%d\n",n); 14 /************found************/ 15 return s; 16 } 17 main () 18 { 19 printf("%f\n", fun(50)); 20 } 三、程序设计题 编写函数 fun,它的功能是:求 Fibonacci 数列中大于 t 的最小的一个数,结果由函数返回。其中 Fibonacci 数列 F(n) 的定义为: F(0)=0,F(1)=1 F(n)=F(n−1)+F(n−2) 例如:当 t = 1000 时,函数值为:1597。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 int fun(int t) 4{ 5 6} 7 main() /* 主函数 */ 8 { int n; 9 void NONO (); 10 n=1000; 11 printf("n=%d,f=%d\n",n,fun(n)); 12 NONO(); 13 } 14 void NONO () 15 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 16 FILE *fp, *wf ; 17 int i, n, s ; 18 fp = fopen("in.dat","r"); 19 wf = fopen("out.dat","w"); 20 for(i = 0 ; i < 10 ; i++) { 21 fscanf(fp, "%d", &n); 22 s = fun(n); 23 fprintf(wf, "%d\n", s); 24 } 25 fclose(fp); 26 fclose(wf); 27 } 第 85 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:在形参 s 所指字符串 中寻找与参数 c 相同的字符,并在其后插入一个与之相同的 字符,若找不到相同的字符则函数不做任何处理。 例如,s 所指字符串为:baacda,c 中的字符为:a,执 39 行后 s 所指字符串为:baaaacdaa。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 void fun(char *s, char c) 3 { int i, j, n; 4 /**********found**********/ 5 for(i=0; s[i]!=___1___ ; i++) 6 if(s[i]==c) 7 { 8 /**********found**********/ 9 n=___2___ ; 10 while(s[i+1+n]!='\0') n++; 11 for(j=i+n+1; j>i; j--) s[j+1]= s[j]; 12 /**********found**********/ 13 s[j+1]=___3___ ; 14 i=i+1; 15 } 16 } 17 main() 18 { char s[80]="baacda", c; 19 printf("\nThe string: %s\n",s); 20 printf("\nInput a character: "); scanf("%c",&c); 21 fun(s,c); 22 printf("\nThe result is: %s\n",s); 23 } 二、程序修改题 在主函数中从键盘输入若干个数放入数中,用 0 结束输 入并放在最后一个元素中。给定程序 MODI1.C 中函数 fun 的功能是:计算数组元素中值为正数的平均值(不包括 0)。 例如:数组中元素中的值依次为:39,-47,21,2,-8, 15,0,则程序的运行结果为:19.250000。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 double fun (int x[]) 3{ 4 /************found************/ 5 int sum = 0.0; 6 int c=0, i=0; 7 while (x[i] != 0) 8 { if (x[i] > 0) { 9 sum += x[i]; c++;} 10 i++; 11 } 12 /************found************/ 40 13 sum \= c; 14 return sum; 15 } 16 main() 17 { int x[1000]; int i=0; 18 printf("\nPlease enter some data (end with 0): "); 19 do 20 { scanf("%d", &x[i]);} 21 while (x[i++] != 0); 22 printf("%f\n", fun (x)); 23 } 三、程序设计题 编写函数 fun,函数的功能是:根据以下公式计算 s, 计算结果作为函数值返回;n 通过形参传入。 S = 1 + 1 1 + 2 + 1 + 1 2 + 3 + L + 1 + 2 + 1 3+ L + n 例如:若 n 的值为 11 时,函数的值为:1.833333 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 double fun(int n) 3{ 4 5} 6 main() 7 { int n; double s; 8 void NONO (); 9 printf("\nPlease enter N:"); scanf ("%d", &n); 10 s = fun(n); 11 printf("the result is:%f\n",s); 12 NONO(); 13 } 14 void NONO () 15 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 16 FILE *fp, *wf ; 17 int i, n ; 18 double s; 19 fp = fopen("in.dat","r"); 20 wf = fopen("out.dat","w"); 21 for(i = 0 ; i < 10 ; i++) { 22 fscanf(fp, "%d", &n); 23 s = fun(n); 24 fprintf(wf, "%f\n", s); 25 } 26 fclose(fp); 27 fclose(wf); 28 } 第 86 套 上机考试试题 一、程序填空题 程序通过定义学生结构体变量,存储了学生的学号、姓 名和 3 门课的成绩。函数 fun 的功能是将形参 a 所指结构体 变量中的数据赋给函数中的结构体变量 b,并修改 b 中的学 号和姓名,最后输出修改后的数据。例如:a 所指变量中的 学号、姓名、和三门课的成绩依次是:10001、"ZhangSan"、 95、80、88,则修改后输出 b 中的数据应为:10002、"LiSi"、 95、80、88。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 struct student { 4 long sno; 5 char name[10]; 6 float score[3]; 7 }; 8 void fun(struct student a) 9 { struct student b; int i; 10 /**********found**********/ 11 b = __1__; 12 b.sno = 10002; 13 /**********found**********/ 14 strcpy(__2__, "LiSi"); 15 printf("\nThe data after modified: \n"); 16 printf("\nNo: %ld Name: %s\nScores: ",b.sno, b.name); 17 /**********found**********/ 18 for (i=0; i<3; i++) printf("%6.2f ", b.__3__); 19 printf("\n"); 20 } 21 main() 22 { struct student s={10001, "ZhangSan",95,80,88}; 23 int i; 24 printf("\n\nThe original data:\n"); 25 printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); 26 for (i=0; i<3; i++) printf("%6.2f ", s.score[i]); 27 printf("\n"); 28 fun(s); 29 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:从 s 所指字 符串中删除所有小写字母“c”。 请改正程序中的错误 ,使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 void fun(char *s) 3 { int i,j; 4 for(i=j=0; s[i]!='\0'; i++) 5 if(s[i]!='c') 6 /************found************/ 7 s[j]=s[i]; 8 /************found************/ 9 s[i]='\0'; 10 } 11 main() 12 { char s[80]; 13 printf("Enter a string: "); gets(s); 14 printf("The original string: "); puts(s); 15 fun(s); 16 printf("The string after deleted: "); puts(s); printf("\n\n"); 17 } 三、程序设计题 假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:将字符串中的前导*号全部移到字符串的 尾部。 例如,字符串中的内容为:*******A*BC*DEF*G****, 移动后,字符串中的内容应当是:A*BC*DEF*G***********。 在编写函数时,不得使用 C 语言提供的字符串函数。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(char *a) 3{ 4 5} 6 main() 7 { char s[81]; int n=0; void NONO (); 8 printf("Enter a string:\n"); gets(s); 9 fun(s); 10 printf("The string after moveing: \n");puts(s); 11 NONO(); 41 12 } 13 void NONO () 14 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 15 FILE *in, *out ; 16 int i ; char s[81] ; 17 in = fopen("in.dat","r"); 18 out = fopen("out.dat","w"); 19 for(i = 0 ; i < 10 ; i++) { 20 fscanf(in, "%s", s); 21 fun(s); 22 fprintf(out, "%s\n", s); 23 } 24 fclose(in); 25 fclose(out); 26 } 第 87 套 上机考试试题 一、程序填空题 程序通过定义学生结构体变量,存储了学生的学号、姓 名和 3 门课的成绩。函数 fun 的功能是将形参 a 所指结构体 变量 s 中的数据进行修改,并把 a 中地址作为函数值返回主 函数,在主函数中输出修改后的数据。 例如:a 所指变量 s 中的学号、姓名、和三门课的成绩 依次是:10001、" ZhangSan "、95、80、88,修改后输出 t 中的数据应为:10002、"LiSi "、96、81、89。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 struct student { 4 long sno; 5 char name[10]; 6 float score[3]; 7 }; 8 /**********found**********/ 9 __1__ fun(struct student *a) 10 { int i; 11 a->sno = 10002; 12 strcpy(a->name, "LiSi"); 13 /**********found**********/ 14 for (i=0; i<3; i++) __2__ += 1; 15 /**********found**********/ 16 return __3__ ; 17 } 18 main() 19 { struct student s={10001, "ZhangSan",95,80,88},*t; 20 int i; 42 21 printf("\n\nThe original data: \n"); 22 printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); 23 for (i=0; i<3; i++) printf("%6.2f ", s.score[i]); 24 printf("\n"); 25 t = fun(&s); 26 printf("\nThe data after modified: \n"); 27 printf("\nNo: %ld Name: %s\nScores: ",t->sno, t->name); 28 for (i=0; i<3; i++) printf("%6.2f ", t->score[i]); 29 printf("\n"); 30 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:从 N 个字符 串中找出最长的那个串,并将其地址作为函数值返回。各字 符串在主函数中输入,并放入一个字符串数组中。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构。 1 #include 2 #include 3 #define N 5 4 #define M 81 5 /**********found**********/ 6 fun(char (*sq)[M]) 7 { int i; char *sp; 8 sp=sq[0]; 9 for(i=0;i 2 void fun(int a, int b, long *c) 3{ 4 5} 6 main() 7 { int a,b; long c; void NONO (); 8 printf("Input a, b:"); 9 scanf("%d%d", &a, &b); 10 fun(a, b, &c); 11 printf("The result is:%ld\n",c); 12 NONO(); 13 } 14 void NONO () 15 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 16 FILE *rf, *wf ; 17 int i, a,b ; long c ; 18 rf = fopen("in.dat","r"); 19 wf = fopen("out.dat","w"); 20 for(i = 0 ; i < 10 ; i++) { 21 fscanf(rf, "%d,%d", &a, &b); 22 fun(a, b, &c); 23 fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c); 24 } 25 fclose(rf); 26 fclose(wf); 27 } 第 88 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是将形参给定的字符串、 整数、浮点数写到文本文件中,再用字符方式从此文本文件 中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 void fun(char *s, int a, double f) 3{ 4 /**********found**********/ 5 __1__ fp; 6 char ch; 7 fp = fopen("file1.txt", "w"); 8 fprintf(fp, "%s %d %f\n", s, a, f); 9 fclose(fp); 10 fp = fopen("file1.txt", "r"); 11 printf("\nThe result :\n\n"); 12 ch = fgetc(fp); 13 /**********found**********/ 14 while (!feof(__2__)) { 15 /**********found**********/ 16 putchar(__3__); ch = fgetc(fp);} 17 putchar('\n'); 18 fclose(fp); 19 } 20 main() 21 { char a[10]="Hello!"; int b=12345; 22 double c= 98.76; 23 fun(a,b,c); 24 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:依次取出字 符串中所有数字字符,形成新的字符串,并取代原字符串。 请改正函数 fun 中指定部位的错误,使它能得出正确的 结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 void fun(char *s) 3 { int i,j; 4 for(i=0,j=0; s[i]!='\0'; i++) 5 if(s[i]>='0' && s[i]<='9') 6 /**********found**********/ 7 s[j]=s[i]; 8 /**********found**********/ 9 s[j]="\0"; 10 } 11 main() 12 { char item[80]; 13 printf("\nEnter a string : ");gets (item); 14 printf("\n\nThe string is : \"%s\ "\n",item); 15 fun(item); 16 printf("\n\nThe string of changing is : \"%s\"\n", item); 17 } 43 三、程序设计题 请编写函数 fun,函数的功能是:将 M 行 N 列的二维 数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,二维数组中的数据为: WWWW SSSS HHHH 则字符串中的内容应是:WSHWSHWSH。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #define M 3 3 #define N 4 4 void fun(char s[][N], char *b) 5{ 6 int i,j,n=0; 7 for(i=0; i < N;i++) /* 请填写相应 语句完成其功能 */ 8 { 9 } 10 b[n]='\0'; 11 } 12 main() 13 { char a[100],w[M][N]={{'W','W','W', 'W'},{'S','S','S','S'},{'H','H', 'H','H'}}; 14 int I,j;void NONO (); 15 printf("The matrix:\n"); 16 for(i=0; i 2 #include 3 #define M 5 4 #define N 20 5 void fun(char (*ss)[N]) 6 { int i, j, k=0, n, m, len; 7 for(i=0; in) { 11 /**********found**********/ 12 n=len; ___1___=i; 13 } 14 } 15 for(i=0; i=0; j--) 21 ss[i][m--]=ss[i][j]; 22 for(j=0; j 2 double fun(int n) 3{ 4 double result=1.0; 5 while (n>1 && n<170) 6 /*********found*********/ 7 result*=--n; 8 /*********found*********/ 9 return _____; 10 } 11 main() 12 { 13 int n; 14 printf("Enter an integer: "); 15 scanf("%d",&n); 16 printf("\n\n%d!=%lg\n\n",n,fun(n)); 17 } 三、程序设计题 编写函数 fun,函数的功能是:从 s 所指的字符串中删 除给定的字符。同一字母的大、小写按不同字符处理。 若程序执行时输入字符串为:turbo c and borland c++ 从键盘上输入字符:n,则输出后变为:turbo c ad borlad c++ 如果输入的字符在字符串中不存在,则字符串照原样 输出。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 void fun(char s[],char c) 4{ 5 6} 7 NONO() 8{ 9 /* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 10 FILE *rf, *wf ; 11 char s[81], ch, w ; 12 int len ; 13 rf = fopen("in.dat","r"); 14 wf = fopen("out.dat","w"); 15 fgets(s, 80, rf); 16 fscanf(rf, "%c", &ch); 17 len = strlen(s) - 1 ; 18 w = s[len] ; 19 if(w=='\n'||w==0x1a)s[len]=0; 20 fun(s, ch); 21 fprintf(wf, "%s", s); 22 fclose(rf); 23 fclose(wf); 24 } 25 main() 26 { 27 static char str[]="turbo c and borland c++"; 28 char ch; 29 printf("原始字符串:%s\n", str); 30 printf("输入一个字符:"); 31 scanf("%c",&ch); 32 fun(str,ch); 33 printf("str[]=%s\n",str); 34 NONO(); 35 } 第 90 套 上机考试试题 一、程序填空题 程序通过定义学生结构体变量,存储了学生的学号、姓 名和 3 门课的成绩。所有学生数据均以二进制方式输出到 student.dat 文件中。函数 fun 的功能是从指定文件中找出指 定学号的学生数据,读入此学生数据,对该生的分数进行修 改,使每门课的分数加 3 分,修改后重写文件中该学生的数 据,即用该学生的新数据覆盖原数据,其他学生数据不变; 若找不到,则什么都不做。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #define N 5 3 typedef struct student { 4 long sno; 5 char name[10]; 6 float score[3]; 7 } STU; 45 8 void fun(char *filename, long sno) 9 {FILE *fp; 10 STU n; int i; 11 fp = fopen(filename,"rb+"); 12 /**********found**********/ 13 while (!feof(__1__)) 14 { fread(&n, sizeof(STU), 1, fp); 15 /**********found**********/ 16 if (n.sno__2__sno) break; 17 } 18 if (!feof(fp)) 19 { for(i=0;i<3;i++)n.score[i]+=3; 20 /**********found**********/ 21 fseek(__3__, -(long)sizeof(STU), SEEK_CUR); 22 fwrite(&n, sizeof(STU), 1, fp); 23 } 24 fclose(fp); 25 } 26 main() 27 {STU t[N]={ {10001,"MaChao",91,92,77}, {10002,"CaoKai",75,60,88},{10003, "LiSi",85,70,78},{10004,"FangFang", 90,82,87},{10005,"ZhangSan",95,80, 88}},ss[N]; 28 int i,j; FILE *fp; 29 fp = fopen("student.dat", "wb"); 30 fwrite(t, sizeof(STU), N, fp); 31 fclose(fp); 32 printf("\nThe original data:\n"); 33 fp = fopen("student.dat", "rb"); 34 fread(ss, sizeof(STU), N, fp); 35 fclose(fp); 36 for (j=0; j 2 #include 3 #define N 80 4 void insert(char *aa) 5 { int i,j,n; char ch; 6 /**********found**********/ 7 n=strlen[aa]; 8 for(i=1; i=0) && (ch 2 #include 3 #define N 8 4 struct slist 5 { double s; 6 struct slist *next; 7 }; 8 typedef struct slist STREC; 9 double fun(STREC *h) 10 { 11 12 } 13 STREC * creat(double *s) 14 {STREC *h,*p,*q; int i=0; 15 h=p=(STREC*)malloc(sizeof(STREC)); p->s=0; 16 while(is=s[i]; i++; p->next=q; p=q; 19 } 20 p->next=0; 21 return h; 22 } 23 outlist(STREC *h) 24 {STREC *p; 25 p=h->next; printf("head"); 26 do 27 { printf("->%2.0f",p->s);p=p->next;} 28 while(p!=0); 29 printf("\n\n"); 30 } 31 main() 32 { double s[N]={85,76,69,85,91,72, 64,87}, max;void NONO (); 33 STREC *h; 34 h=creat(s); outlist(h); 35 max=fun(h); 36 printf("max=%6.1f\n",max); 37 NONO(); 38 } 39 void NONO () 40 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 41 FILE *in, *out ; 42 int i,j ; double s[N],max; 43 STREC *h ; 44 in = fopen("in.dat","r"); 45 out = fopen("out.dat","w"); 46 for(i = 0 ; i < 10 ; i++) { 47 for(j=0 ; j < N; j++) fscanf(in, "%lf,", &s[j]); 48 h=creat(s); 49 max=fun(h); 50 fprintf(out, "%6.1lf\n", max); 51 } 52 fclose(in); 53 fclose(out); 54 } 第 91 套 上机考试试题 一、程序填空题 程序通过定义并赋初值的方式,利用结构体变量存储了 一名学生的信息。函数 fun 的功能是输出这位学生的信息。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 typedef struct 3 { int num; 4 char name[9]; 5 char sex; 6 struct { int year,month,day ;} birthday; 7 float score[3]; 8 }STU; 9 /**********found**********/ 10 void show(STU ___1___) 11 { int i; 12 printf("\n%d %s %c %d-%d-%d", tt.num, tt.name, tt.sex, tt.birthday.year, tt.birthday.month, tt.birthday.day); 13 for(i=0; i<3; i++) 14 /**********found**********/ 15 printf("%5.1f", ___2___); 16 printf("\n"); 17 } 18 main() 19 {STU std={ 1,"Zhanghua",'M',1961, 10,8,76.5,78.0, 82.0 }; 20 printf("\nA student data:\n"); 21 /**********found**********/ 22 show(___3___); 23 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:求出数组中 最大数和次最大数,并把最大数和 a[0]中的数对调、次最大 数和 a[1]中的数对调。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 #define N 20 3 int fun (int * a, int n) 4 { int i, m, t, k ; 47 5 for(i=0;i<2;i++) { 6 /**********found**********/ 7 m=0; 8 for(k=i+1;ka[m]) k=m; 11 t=a[i];a[i]=a[m];a[m]=t; 12 } 13 } 14 main() 15 { int x, b[N]={11,5,12,0,3,6,9,7, 10,8},n=10, i; 16 for (i=0; i 2 unsigned fun (unsigned w) 3{ 4 5} 6 NONO() 7 {/* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 8 unsigned x ; 9 int i ; 10 FILE *rf, *wf ; 11 rf = fopen("in.dat","r"); 12 wf = fopen("out.dat","w"); 13 for(i = 0 ; i < 20 ; i++) { 14 fscanf(rf, "%u", &x); 15 fprintf(wf, "%u\n", fun(x)); 16 } 17 fclose(rf); 18 fclose(wf); 19 } 20 main() 48 21 { unsigned x; 22 printf ("Enter a unsigned integer number : "); scanf ("%u", &x); 23 printf ("The original data is : %u\n", x); 24 if (x<10) printf ("Data error!"); 25 else printf ("The result:%u\n", fun (x)); 26 NONO(); 27 } 第 92 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:把形参 s 所指字符串 中最右边的 n 个字符复制到形参 t 所指字符数组中,形成一 个新串。若 s 所指字符串的长度小于 n,则将整个字符串复 制到形参 t 所指字符数组中。 例如,形参 s 所指的字符串为:abcdefgh,n 的值为 5, 程序执行后 t 所指字符数组中的字符串应为:defgh。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 80 4 void fun(char *s, int n, char *t) 5 { int len,i,j=0; 6 len=strlen(s); 7 /**********found**********/ 8 if(n>=len) strcpy(__1__); 9 else { 10 /**********found**********/ 11 for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; 12 /**********found**********/ 13 t[j]= __3__ ; 14 } 15 } 16 main() 17 { char s[N],t[N]; int n; 18 printf("Enter a string: ");gets(s); 19 printf("Enter n:"); scanf("%d",&n); 20 fun(s,n,t); 21 printf("The string t : "); puts(t); 22 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:找出一个大 于形参 m 且紧随 m 的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 int fun(int m) 3 { int i, k ; 4 for (i = m + 1 ; ; i++) { 5 for (k = 2 ; k < i ; k++) 6 /*************found*************/ 7 if (i % k != 0) 8 break ; 9 /*************found*************/ 10 if (k < i) 11 return(i); 12 } 13 } 14 void main() 15 { 16 int n ; 17 n = fun(20); 18 printf("n=%d\n", n); 19 } 三、程序设计题 请编写函数 fun,它的功能是:求出能整除形参 x 且不 是偶数的各整数,并按从小到大的顺序放在 pp 所指的数组 中,这些除数的个数通过形参 n 返回。 例如,若 x 中的值为:35,则有 4 个数符合要求,它 们是:1,5,7,35。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun (int x, int pp[], int *n) 3{ 4 5} 6 main() 7 { int x, aa[1000], n, i ;void NONO (); 8 printf("\nPlease enter an integer number:\n"); scanf("%d", &x); 9 fun(x, aa, &n); 10 for(i = 0 ; i < n ; i++) 11 printf("%d ", aa[i]); 12 printf("\n"); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入测试数据,调 用 fun 函数,输出数据,关闭文件。*/ 17 int x, aa[1000], n, i, j ; 18 FILE *fp ; 19 fp = fopen("out.dat","w"); 20 for(j = 0 ; j < 10 ; j++) { 21 x = 30 + j ; 22 fun(x, aa, &n); 23 for(i = 0 ; i < n ; i++) fprintf (fp, "%d ", aa[i]); 24 fprintf(fp, "\n"); 25 } 26 fclose(fp); 27 } 第 93 套 上机考试试题 一、程序填空题 人员的记录由编号和出生年、月、日组成,N 名人员的 数据已在主函数中存入结构体数组 std 中,且编号惟一。函 数 fun 的功能是:找出指定编号人员的数据,作为函数值返 回,由主函数输出,若指定编号不存在,返回数据中的编号 为空串。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 8 4 typedef struct 5 { char num[10]; 6 int year,month,day ; 7 }STU; 8 /**********found**********/ 9 ___1___ fun(STU *std, char *num) 10 { int i; STU a={"",9999,99,99}; 11 for (i=0; i 2 #include 3 int fun (char *s, char *t) 4{ 5 int n; char *p , *r; 6 n = 0; 7 while (*s) 8 { p = s; r = t; 9 while (*r) 10 if (*r == *p) { 11 /************found************/ 12 r++; p++ 13 } 14 else break; 15 /************found************/ 16 if (r == '\0') 17 n++; 18 s++; 19 } 20 return n; 21 } 22 main() 23 { 24 char s[100], t[100]; int m; 25 printf("\nPlease enter string S:"); scanf("%s", s); 26 printf("\nPlease enter substring t:"); scanf("%s", t); 27 m = fun(s, t); 28 printf("\nThe result is: m = %d\n", m); 29 } 三、程序设计题 函数 fun 的功能是:将 s 所指字符串中 ASCII 值为偶数的 字符删除,串中剩余字符形成一个新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为:"ABCDEFG12345", 其中字符 B 的 ASCII 码值为偶数、…、字符 2 的 ASCII 码 值为偶数、… 都应当删除,其他依此类推。最后 t 所指的 50 数组中的内容应是:"ACEG135"。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 void fun(char *s, char t[]) 4{ 5 6} 7 main() 8{ 9 char s[100], t[100]; 10 printf("\nPlease enter string S:"); scanf("%s", s); 11 fun(s, t); 12 printf("\nThe result is: %s\n", t); 13 NONO(); 14 } 15 NONO () 16 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 17 char s[100], t[100] ; 18 FILE *rf, *wf ; 19 int i ; 20 rf = fopen("in.dat","r"); 21 wf = fopen("out.dat","w"); 22 for(i = 0 ; i < 10 ; i++) { 23 fscanf(rf, "%s", s); 24 fun(s, t); 25 fprintf(wf, "%s\n", t); 26 } 27 fclose(rf); 28 fclose(wf); 29 } 第 94 套 上机考试试题 一、程序填空题 给定程序通过定义并赋初值的方式,利用结构体变量存 储了一名学生的学号、姓名和 3 门课的成绩。函数 fun 的功 能是将该学生的各科成绩都乘以一个系数 a。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 typedef struct 3 { int num; 4 char name[9]; 5 float score[3]; 6 }STU; 7 void show(STU tt) 8 { int i; 9 printf("%d %s : ",tt.num,tt.name); 10 for(i=0; i<3; i++) 11 printf("%5.1f",tt.score[i]); 12 printf("\n"); 13 } 14 /**********found**********/ 15 void modify(___1___ *ss,float a) 16 { int i; 17 for(i=0; i<3; i++) 18 /**********found**********/ 19 ss->___2___ *=a; 20 } 21 main() 22 {STU std={1,"Zhanghua",76.5,78.0, 82.0 }; 23 float a; 24 printf("\nThe original number and name and scores :\n"); 25 show(std); 26 printf("\nInput a number : "); scanf("%f",&a); 27 /**********found**********/ 28 modify(___3___,a); 29 printf("\nA result of modifying: \n"); 30 show(std); 31 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:求 k(! k<13), 所求阶乘的值作为函数值返回。例如:若 k = 10,则应输出: 3628800。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 long fun (int k) 3{ 4 /************found************/ 5 if k > 0 6 return (k*fun(k-1)); 7 /************found************/ 8 else if (k=0) 9 return 1L; 10 } 11 main() 12 { int k = 10 ; 13 printf("%d!=%ld\n", k, fun (k)); 14 } 三、程序设计题 程序定义了 N×N 的二维数组,并在主函数中自动赋值。 请编写函数 fun(int a[][N],int n),函数的功能是:使数组左 下三角元素中的值乘以 n。 例如:若 n 的值为 3,a 数组中的值为 197 a = 2 3 8 则返回主程序后 a 数组中的值应为 456 397 698 12 15 18 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 #define N 5 4 void fun (int a[][N], int n) 5{ 6 7} 8 NONO() 9 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 10 FILE *rf, *wf ; 11 int i, j, n, a[5][5] ; 12 rf = fopen("in.dat", "r"); 13 wf = fopen("out.dat", "w"); 14 for(i = 0 ; i < 5 ; i++) 15 for(j = 0 ; j < 5 ; j++) 16 fscanf(rf, "%d ", &a[i][j]); 17 fscanf(rf, "%d", &n); 18 fun(a, n); 19 for (i = 0; i < 5; i++) { 20 for (j = 0; j < 5; j++) fprintf (wf, "%4d", a[i][j]); 21 fprintf(wf, "\n"); 22 } 23 fclose(rf); 24 fclose(wf); 25 } 26 main () 27 { int a[N][N], n, i, j; 28 printf("***** The array *****\n"); 29 for (i =0; i=3); 35 printf("n = %4d\n",n); 36 fun (a, n); 37 printf ("***** THE RESULT *****\n"); 38 for (i =0; i 2 #include 3 #define N 8 4 typedef struct list 5 { int data; 6 struct list *next; 7 } SLIST; 8 SLIST *creatlist(int *); 9 void outlist(SLIST *); 10 int fun(SLIST *h) 11 {SLIST *p; int s=0; 12 p=h->next; 13 while(p) 14 { 15 /**********found**********/ 16 s+= p->___1___; 17 /**********found**********/ 18 p=p->___2___; 19 } 20 return s; 21 } 22 main() 23 {SLIST *head; 24 int a[N]={12,87,45,32,91,16,20, 48}; 25 head=creatlist(a); outlist(head); 26 /**********found**********/ 27 printf("\nsum=%d\n", fun(___3___)); 28 } 29 SLIST *creatlist(int a[]) 30 {SLIST *h,*p,*q; int i; 52 31 h=p=(SLIST *)malloc(sizeof(SLIST)); 32 for(i=0; idata=a[i]; p->next=q; p=q; 35 } 36 p->next=0; 37 return h; 38 } 39 void outlist(SLIST *h) 40 {SLIST *p; 41 p=h->next; 42 if (p==NULL) printf("The list is NULL!\n"); 43 else 44 { printf("\nHead "); 45 do 46 { printf("->%d", p->data); p=p->next;} 47 while(p!=NULL); 48 printf("->End\n"); 49 } 50 } 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字 符串中出现的与 t1 所指字符串相同的子串全部替换成 t2 所 指字符串,所形成的新串放在 w 所指的数组中。在此处, 要求 t1 和 t2 所指字符串的长度相同。 例如,当 s 所指字符串中的内容为:"abcdabfab",t1 所 指子串中的内容为:"ab",t2 所指子串中的内容为:"99"时, 结果在 w 所指的数组中的内容应为:"99cd99f99"。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 #include 3 void fun (char *s, char *t1, char *t2, char *w) 4{ 5 char *p , *r, *a; 6 strcpy(w, s); 7 while (*w) 8 { p = w; r = t1; 9 /************found************/ 10 while (r) 11 if (*r == *p) {r++; p++;} 12 else break; 13 if (*r == '\0') 14 { a = w; r = t2; 15 while (*r){ 16 /************found************/ 17 *a = *r; a++; r++ 18 } 19 w += strlen(t2); 20 } 21 else w++; 22 } 23 } 24 main() 25 { 26 chars[100],t1[100],t2[100],w[100]; 27 printf("\nPlease enter string S:"); scanf("%s", s); 28 printf("\nPlease enter substring t1:"); scanf("%s", t1); 29 printf("\nPlease enter substring t2:"); scanf("%s", t2); 30 if (strlen(t1)==strlen(t2)) { 31 fun(s, t1, t2, w); 32 printf("\nThe result is:%s\n",w); 33 } 34 else printf("Error : strlen(t1) != strlen(t2)\n"); 35 } 三、程序设计题 函数 fun 的功能是:将 s 所指字符串中下标为偶数的字 符删除,串中剩余字符形成的新串放在 t 所指数组中。 例如,当 s 所指字符串中的内容为:"ABCDEFGHIJK", 在 t 所指数组中的内容应是:"BDFHJ"。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 void fun(char *s, char t[]) 4{ 5 6} 7 main() 8{ 9 char s[100], t[100]; 10 void NONO (); 11 printf("\nPlease enter string S:"); scanf("%s", s); 12 fun(s, t); 13 printf("\nThe result is: %s\n", t); 14 NONO(); 15 } 16 void NONO () 17 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 18 char s[100], t[100] ; 19 FILE *rf, *wf ; 20 int i ; 21 rf = fopen("in.dat","r"); 22 wf = fopen("out.dat","w"); 23 for(i = 0 ; i < 10 ; i++) { 24 fscanf(rf, "%s", s); 25 fun(s, t); 26 fprintf(wf, "%s\n", t); 27 } 28 fclose(rf); 29 fclose(wf); 30 } 第 96 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将自然数 1~10 以及 它们的平方根写到名为 myfile3.txt 的文本文件中,然后再顺 序读出显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 int fun(char *fname) 4 {FILE *fp; int i,n; float x; 5 if((fp=fopen(fname, "w"))==NULL) return 0; 6 for(i=1;i<=10;i++) 7 /**********found**********/ 8 fprintf(___1___,"%d %f\n",i, sqrt((double)i)); 9 printf("\nSucceed!!\n"); 10 /**********found**********/ 11 ___2___; 12 printf("\nThe data in file:\n"); 13 /**********found**********/ 14 if((fp=fopen(___3___,"r"))==NULL) 15 return 0; 16 fscanf(fp,"%d%f",&n,&x); 17 while(!feof(fp)) 18 { printf("%d %f\n",n,x); 19 fscanf(fp, "%d%f",&n,&x);} 20 fclose(fp); 21 return 1; 22 } 23 main() 24 { char fname[]="myfile3.txt"; 25 fun(fname); 26 } 53 二、程序修改题 给定程序 MODI1.C 中 fun 函数的功能是:将 n 个无序 整数从小到大排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 #include 3 fun (int n, int *a) 4 { int i, j, p, t; 5 for (j = 0; ja[i]) 10 /************found************/ 11 t=i; 12 if (p!=j) 13 { t = a[j]; a[j] = a[p]; a[p] = t;} 14 } 15 } 16 putarr(int n, int *z) 17 { int i; 18 for (i = 1; i <= n; i++, z++) 19 { printf("%4d", *z); 20 if (!(i%10)) printf("\n"); 21 } printf("\n"); 22 } 23 main() 24 { int aa[20]={9,3,0,4,1,2,5,6,8, 10,7},n=11; 25 printf("\n\nBefore sorting %d numbers:\n", n); putarr(n, aa); 26 fun(n, aa); 27 printf("\nAfter sorting %d numbers:\n", n); putarr(n, aa); 28 } 三、程序设计题 函数 fun 的功能是:将两个两位数的正整数 a、b 合并 形成一个整数放在 c 中。 合并的方式是:将 a 数的十位和个位数依次放在 c 数的 个位和百位上,b 数的十位和个位数依次放在 c 数的十位和 千位上。 例如,当 a=45,b=12 时,调用该函数后,c=2514。 注意:部分源程序存在文件 PROG1.C 中。数据文件 in.dat 中的数据不得修改。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 void fun(int a, int b, long *c) 54 3{ 4 5} 6 main() 7 { int a,b; long c; 8 void NONO (); 9 printf("Input a, b:"); 10 scanf("%d,%d", &a, &b); 11 fun(a, b, &c); 12 printf("The result is: %ld\n",c); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 17 FILE *rf, *wf ; 18 int i, a,b ; long c ; 19 rf = fopen("in.dat", "r"); 20 wf = fopen("out.dat","w"); 21 for(i = 0 ; i < 10 ; i++) { 22 fscanf(rf, "%d,%d", &a, &b); 23 fun(a, b, &c); 24 fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c); 25 } 26 fclose(rf); 27 fclose(wf); 28 } 第 97 套 上机考试试题 一、程序填空题 给定程序的功能是调用 fun 函数建立班级通讯录。通讯 录中记录每位学生的编号、姓名和电话号码。班级的人数和 学生的信息从键盘读入,每个人的信息作为一个数据块写到 名为 myfile5.dat 的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #define N 5 4 typedef struct 5 { int num; 6 char name[10]; 7 char tel[10]; 8 }STYPE; 9 void check(); 10 /**********found**********/ 11 int fun(___1___ *std) 12 { 13 /**********found**********/ 14 ___2___ *fp; int i; 15 if((fp=fopen("myfile5.dat", "wb"))==NULL) 16 return(0); 17 printf("\nOutput data to file!\n"); 18 for(i=0; i 2 #include 3 void fun (char *s, char *t) 4 { int i, sl; 5 sl = strlen(s); 6 /************found************/ 7 for(i=0; i<=s1; i ++) 8 t[i] = s[i]; 9 for (i=0; i 2 void fun(int a, int b, long *c) 3{ 4 5} 6 main() 7 { int a,b; long c; 8 void NONO (); 9 printf("Input a, b:"); scanf("%d, %d",&a,&b); 10 fun(a, b, &c); 11 printf("The result is: %d\n",c); 12 NONO(); 13 } 14 void NONO () 15 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 16 FILE *rf, *wf ; 17 int i, a,b ; long c ; 18 rf = fopen("in.dat", "r"); 19 wf = fopen("out.dat","w"); 20 for(i = 0 ; i < 10 ; i++) { 55 21 fscanf(rf, "%d,%d", &a, &b); 22 fun(a, b, &c); 23 fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c); 24 } 25 fclose(rf); 26 fclose(wf); 27 } 第 98 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:将形参 s 所指字符串 中的所有字母字符顺序前移,其他字符顺序后移,处理后新 字符串的首地址作为函数值返回。 例如,s 所指字符串为:asd123fgh543df,处理后新字 符串为:asdfghdf123543。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #include 4 char *fun(char *s) 5 { int i, j, k, n; char *p, *t; 6 n=strlen(s)+1; 7 t=(char*)malloc(n*sizeof(char)); 8 p=(char*)malloc(n*sizeof(char)); 9 j=0; k=0; 10 for(i=0; i='a')&&(s[i]<='z')) ||((s[i]>='A')&&(s[i]<='Z'))) { 12 /**********found**********/ 13 t[j]=__1__; j++;} 14 else 15 { p[k]=s[i]; k++;} 16 } 17 /**********found**********/ 18 for(i=0; i<__2__; i++) t[j+i]= p[i]; 19 /**********found**********/ 20 t[j+k]= __3__; 21 return t; 22 } 23 main() 24 { char s[80]; 25 printf("Please input: "); scanf ("%s",s); 26 printf("\nThe result is: %s\n", fun(s)); 27 } 56 二、程序修改题 给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字 符串中最后一次出现的与 t1 所指字符串相同的子串替换成 t2 所指字符串,所形成的新串放在 w 所指的数组中。 在此处,要求 t1 和 t2 所指字符串的长度相同。 例如,当 s 所指字符串中的内容为:"abcdabfabc",t1 所指子串中的内容为:"ab",t2 所指子串中的内容为:"99" 时,结果,在 w 所指的数组中的内容应为:"abcdabf99c"。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得 更改程序的结构! 1 #include 2 #include 3 void fun (char *s, char *t1, char *t2, char *w) 4{ 5 char *p , *r, *a=s; 6 strcpy(w, s); 7 /************found************/ 8 while (w) 9 { p = w; r = t1; 10 while (*r) 11 /************found************/ 12 IF (*r == *p) 13 { r++; p++;} 14 else break; 15 if (*r == '\0') a = w; 16 w++; 17 } 18 r = t2; 19 while (*r){ *a = *r; a++; r++;} 20 } 21 main() 22 { 23 char s[100],t1[100],t2[100],w[100]; 24 printf("\nPlease enter string S:"); scanf("%s", s); 25 printf("\nPlease enter substring t1:"); scanf("%s", t1); 26 printf("\nPlease enter substring t2:"); scanf("%s", t2); 27 if (strlen(t1)==strlen(t2)) 28 { fun(s, t1, t2, w); 29 printf("\nThe result is:%s\n", w); 30 } 31 else printf("\nError : strlen(t1) != strlen(t2)\n"); 32 } 三、程序设计题 函数 fun 的功能是:将 s 所指字符串中 ASCII 值为奇 数的字符删除,串中剩余字符形成一个新串放在 t 所指的 数组中。 例如,若 s 所指字符串中的内容为:"ABCDEFG12345", 其中字符 A 的 ASCII 码值为奇数、…、字符 1 的 ASCII 码 值也为奇数、… 都应当删除,其他依此类推。最后 t 所指 的数组中的内容应是:"BDF24"。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 void fun(char *s, char t[]) 4{ 5 6} 7 main() 8{ 9 char s[100], t[100];void NONO (); 10 printf("\nPlease enter string S:"); scanf("%s", s); 11 fun(s, t); 12 printf("\nThe result is:%s\n",t); 13 NONO(); 14 } 15 void NONO () 16 {/* 本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 */ 17 char s[100], t[100] ; 18 FILE *rf, *wf ; 19 int i ; 20 rf = fopen("in.dat","r"); 21 wf = fopen("out.dat","w"); 22 for(i = 0 ; i < 10 ; i++) { 23 fscanf(rf, "%s", s); 24 fun(s, t); 25 fprintf(wf, "%s\n", t); 26 } 27 fclose(rf); 28 fclose(wf); 29 } 第 99 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:求 ss 所指字符串数 组中长度最长的字符串所在的行下标,作为函数值返回,并 把其串长放在形参 n 所指变量中。ss 所指字符串数组中共有 M 个字符串,且串长 2 #include 3 #define M 5 4 #define N 20 5 /**********found**********/ 6 int fun(char (*ss) ___1___, int *n) 7 { int i, k=0, len=0; 8 for(i=0; i*n) { 13 /**********found**********/ 14 ___3___; 15 k=i; 16 } 17 } 18 return(k); 19 } 20 main() 21 { char ss[M][N]={"shanghai", "guangzhou","beijing","tianjing", "cchongqing"}; 22 int n,k,i; 23 printf("\nThe original strings are :\n"); 24 for(i=0;i 2 double fun(int m) 3{ 4 double t = 1.0; 5 int i; 6 for(i = 2; i <= m; i++) 7 /**********found**********/ 57 8 t += 1.0/k; 9 /**********found**********/ 10 ________ 11 } 12 main() 13 { 14 int m; 15 printf("\nPlease enter 1 integer number:"); 16 scanf("%d", &m); 17 printf("\nThe result is %lf\n", fun(m)); 18 } 三、程序设计题 编写一个函数,该函数可以统计一个长度为 2 的字符串 在另一个字符串中出现的次数。例如,假定输入的字符串为: asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输 出 6。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 #include 3 int fun(char *str,char *substr) 4{ 5 6} 7 NONO() 8{ 9 /* 请在此函数内打开文件,输入测试数据, 调用 fun 函数,输出数据,关闭文件。 */ 10 char str[81],substr[3], ch; 11 int n,len, i = 0; 12 FILE *rf, *wf ; 13 rf = fopen("in.dat","r"); 14 wf = fopen("out.dat","w"); 15 while(i < 5) { 16 fgets(str, 80, rf); 17 fgets(substr, 10, rf); 18 len = strlen(substr) - 1 ; 19 ch = substr[len] ; 20 if(ch == '\n' || ch == 0x1a) substr[len] = 0 ; 21 n=fun(str,substr); 22 fprintf(wf, "%d\n", n); 23 i++ ; 24 } 25 fclose(rf); 26 fclose(wf); 27 } 28 main() 58 29 { 30 char str[81],substr[3]; 31 int n; 32 printf("输入主字符串: "); 33 gets(str); 34 printf("输入子字符串: "); 35 gets(substr); 36 puts(str); 37 puts(substr); 38 n=fun(str,substr); 39 printf("n=%d\n",n); 40 NONO(); 41 } 第 100 套 上机考试试题 一、程序填空题 给定程序中,函数 fun 的功能是:找出形参 s 所指字符 串中出现频率最高的字母(不区分大小写),并统计出其出 现的次数。 例如,形参 s 所指的字符串为:abcAbsmaxless,程序 执行后的输出结果为: letter 'a' :3 times letter 's' :3 times 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 1 #include 2 #include 3 #include 4 void fun(char *s) 5 { int k[26]={0},n,i,max=0; char ch; 6 while(*s) 7 { if(isalpha(*s)) { 8 /**********found**********/ 9 ch=tolower(__1__); 10 n=ch-'a'; 11 /**********found**********/ 12 k[n]+= __2__ ; 13 } 14 s++; 15 /**********found**********/ 16 if(max 2 #include 3 /************found************/ 4 void fun(int k) 5 { int n; double s, w, p, q; 6 n = 1; 7 s = 1.0; 8 while (n <= k) 9 { w = 2.0 * n; 10 p = w - 1.0; 11 q = w + 1.0; 12 s = s * w *w/p/q; 13 n++; 14 } 15 /************found************/ 16 return s 17 } 18 main () 19 { 20 printf("%f\n", fun (10)); 21 } 三、程序设计题 编写函数 fun,它的功能是:计算并输出下列级数和: S = 1 1× 2 + 2 1 ×3 +L + 1 n(n + 1) 例如,当 n = 10 时,函数值为:0.909091。 注意:部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其他函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 1 #include 2 double fun(int n) 3{ 4 5} 6 main() /* 主函数 */ 7 { void NONO (); 8 printf("%f\n", fun(10)); 9 NONO(); 10 } 11 void NONO () 12 {/* 本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 */ 13 FILE *fp, *wf ; 14 int i, n ; 15 double s ; 16 fp = fopen("in.dat","r"); 17 wf = fopen("out.dat","w"); 18 for(i = 0 ; i < 10 ; i++) { 19 fscanf(fp, "%d", &n); 20 s = fun(n); 21 fprintf(wf, "%f\n", s); 22 } 23 fclose(fp); 24 fclose(wf); 25 } 59

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。