1、C 世界 http:/ C 世界 http:/ C 语言上机操作题.第 1 套填空题请补充 FUN 函数, FUN 函数的功能是求 10 的阶乘。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。试题程序: #include long fun(int n)if (_1_)return (n*fun(_2_);return _3_;main()printf(“10!=%ldn“, fun(10);第 1 处填空:n1 或 1#include /*found*/IsPrime(int n);int i, m;m =
2、1;/*found*/for (i=2; i#include #include int fun(int score,int m, int below)main()int i,n,below9;int score9=10,20,30,40,50,60,70,80,90;FILE *out;n=fun(score,9,below);printf(“nBelow the average score are :“);out=fopen(“out.dat“, “w“);for(i=0;iint fun(int n);main()int i, n = 0;scanf(“%d“, for (i=0; i#i
3、nclude void fun(char *p, char *q, char *c)/*found*/int k = 1;/*found*/while (*p != *q)if (*p #include void fun(int *a,int *n) main() int aa1000,n,k;FILE *out;fun(aa,out=fopen(“out.dat“, “w“);for(k=0;k#include #include #define N 81void fun(char *s)int i, n = strlen(s)-1;char t;for (i=0; i#include voi
4、d fun(char *s)int i, j;- 5 -/*found*/for (i=0, j=0; si!=0; i+)if (sj=0 FILE *out;printf(“nPlease enter an integer number:n“); scanf(“%d“,fun(x,aa,for(i=0;idouble fun(int n)int i;double sum = 0.0;for (i=1; _1_; i+)if (i%3=0 _2_ i%7=0)sum += _3_/i;return sum;main()int n;double s;printf(“nInput n: “);s
5、canf(“%d“, s = fun(n);printf(“nns=%fn“, s);第 1 处填空:i=i第 2 处填空:|第 3 处填空:1.0 或(double)1改错题下列给定程序中,fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串 s 输入:AaaaBBb123CCccccd,则应输出结果:upper=6,lower=8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include #include /*found*/void fun(char *s, int a, int b
6、)- 7 -while (*s)/*found*/if (*s=A int bb26, k;FILE *out;printf(“nPlease enter a char string:“);scanf(“%s“,aa);fun(aa,bb);for(k=0;kdouble fun(double r)return 3.14159*_1_/2.0;- 9 -main()double x;printf(“Enter x: “);scanf(“%lf“, _2_);printf(“ s = %lfn “, fun(_3_);第 1 处填空:r*r第 2 处填空:an = x;while (x != a
7、p)p = p+1;if (p = n)return -1;else/*found*/for (i=p; i#include void fun(int m, int k, int xx)main()int m,n,zz1000;FILE *out;printf(“nPlease enter two integers:“);scanf(“%d,%d“,fun( m,n,zz);for(m=0; m=i) if(k=0)- 11 -xxg+=I;k-;elsebreak;第 6 套填空题给定程序的功能是计算并输出下列级数的前 N 项之和 ,直到 大于 Q 为止,QsN的值通过形参传入。例如,若 Q
8、 的值为 50.0,则函数值为 50.416687。请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。试题程序:#include double fun(double q)int n;double s;n = 2;s = 2.0;while (s _1_ q)s = s + (double)(n+1)/n;_2_;printf(“n=%dn“,n);_3_;main()printf(“%fn“, fun(50);第 1 处填空:#include double fun(int m)double y = 1.0;int i;/*found*/f
9、or (i=2; i# include # define LEN 20void fun(char a, char b, int n)main() char str1LEN,str2LEN;int n;FILE *out;printf(“Enter the string:n“);gets(str1);printf(“Enter the position of the string deleted:“);scanf(“%d“,fun(str1, str2, n);printf(“The new string is:%sn“,str2);fun(“Hello World!“, str2, 9);ou
10、t = fopen(“out.dat“, “w“);fprintf(out, “%s“, str2);fclose(out);答案是:void fun(char a, char b, int n)int I,j=0;for(i=0;iint c1, c2, c3;void fun(long n)c1 = c2 = c3 = 0;while (n)switch(_1_)case 1:c1+;_2_;case 2:c2+;_3_;case 3:c3+;n /= 10;main()long n = 123114350L;fun(n);printf(“nThe result :n“);printf(“
11、n=%ld c1=%d c2=%d c3=%dn“, n, c1, c2, c3);第 1 处填空:n%10第 2 处填空:break第 3 处填空:break改错题下列给定程序中函数 fun 的功能是:用选择法对数组中的 n 个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include #define N 20void fun(int a, int n)int i, j, t, p;for (j=0; j# include void fun(int *s, int t , int
12、*k)main( )int a10=876,675,896,101,301,401,980,431,451,777, k ;FILE *out;fun(a,10,printf(“%d, %dn“, k, ak);out = fopen(“out.dat“, “w“);fprintf(out, “%dn%d“, k, ak);fclose(out);- 15 -答案是:void fun (int *s,int t,int *k)int I ,max;max=s0;for(i=0;imax)max=si;*k=I;第 8 套填空题请补充 main 函数,该函数的功能是:从键盘输入一组整数,使用条件
13、表达式找出最大的整数。当输入的整数为 0 时结束。例如,输入 1 2 3 5 4 0 时,最大的数为 5。请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。试题程序: #include #include #define N 100main()int numN;int i = -1;int max = 0;printf(“nInput integer number: n“);doi+;printf(“num%d=“, i);scanf(“%d“, _1_);max = _2_ numi : max; while(_3_);printf(“m
14、ax=%dn“, max);第 1 处填空:- 16 -char max, *q;int i = 0;max = pi;while (pi != 0)if (max p)*q = *(q-1);q-;p0 = max;main()char str80;printf(“Enter a string: “);gets(str);printf(“nThe original string: “);puts(str);fun(str);printf(“nThe string after moving: “);puts(str);printf(“nn“);第 1 处:void fun(char *p);应
15、改为 void fun(char *p)第 2 处:p=q+I;应改为 q=p+i;编程题编写函数 fun,函数功能是:根据以下公式计算 s,计算结果作为函数值返回;n 通过型参传入。S=1+ .321.321例如:若 n 的值为 11 时,函数的值为 1.833333。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#include#include#includefloat fun (int n)main() - 17 -int n;float s;FILE *out;printf(“nPlease en
16、ter N:“);scanf(“%d“,s=fun(n);printf(“The result is: %fn“,s);s = fun(28);out = fopen(“out.dat“, “w“);fprintf(out, “%f“, s);fclose(out);答案是:float fun(int n)int i;float s=1.0,t=1.0;for(i=2;ivoid fun(char *s, int *a, int *b)while (*s)if (*s=A int count = 0, k, i;/*found*/for (k=0; kn。- 19 -P= )!(nm例如:m=
17、12,n=8 时,运行结果为 495.000000注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#include #include float fun( int m, int n) main() FILE *out;printf(“P=%fn“, fun(12,8);out = fopen(“out.dat“, “w“);fprintf(out, “%f“, fun(12,6);fclose(out);答案是:float fun(int m,int n)float p,t=1.0;int i;for (i
18、=1;i#include main()int a, b, c, max;printf(“nInput three numbers:n“);scanf(“%d,%d,%d“, printf(“The three numbers are:%d,%d,%dn“, a, b, c);if (a b)- 20 -_1_;else_2_;if (max #include #include /*found*/void fun(char *s, *t1, *t2, *w)int i;char *p, *r, *a;strcpy(w, s);while (*w)p = w;r = t1;/*found*/whi
19、le (r)if (*r = *p)r+;p+;elsebreak;if (*r = 0)a = w;r = t2;while (*r)*a = *r;a+;r+;w += strlen(t2);elsew+;- 21 -main()char s100, t1100, t2100, w100;printf(“nPlease enter string s:“);scanf(“%s“, s);printf(“nPlease enter substring t1:“);scanf(“%s“, t1);printf(“nPlease enter substring t2:“);scanf(“%s“,
20、t2);if (strlen(t1) = strlen(t2)fun(s, t1, t2, w);printf(“nThe result is :%sn“, w);elseprintf(“Error :strlen(t1)!=strlen(t2)n“);第 1 处:void fun(char *s,*t1,*t2,*w)应改为 void fun(char *s,char *t1,char *t2,char *w)第 2 处:while(r)应改为 while(*r)编程题编写函数 fun,它的功能是:利用以下所示的简单迭代方法求方程式 cos(x)-x=0 的一个实根。=cos( )Xn1n迭
21、代步骤如下:(1)取 x1 初值为 0.0;(2)x0=x1,把 x1 的值赋给 x0;(3)x1=cos(x0), 求出一个新的 x1;(4)若 x0-x1,的绝对值小于 0.000001,则执行步骤(5) ,否则执行步骤(2) ;(5)所求 x1 就是方程 cos(x)-x=0 的一个实根,作为函数值返回。程序将输出结果 Root=0.739085。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#include #include #include float fun() main() FILE *ou
22、t;float f = fun();printf(“Root=%fn“, f);out = fopen(“out.dat“, “w“);- 22 -fprintf(out, “%f“, f);fclose(out);答案是:float fun()float x1=0.0,x0;dox0=x1;x1=cos(x0);while(fabs(x0-x1)=le-6);return x1;第 11 套填空题给定程序中,涵数 fun 的功能是:把形参 s 所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等
23、于 2)例如,形参 s 所指的字符串为:abcdefgh ,执行结果为:ahcbedgf注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include void fun(char *s)int i, n, k;char c;n = 0;for (i=0; si!=0; i+)n+;if (n%2 = 0)k = n-_1_;elsek = n-2;c = _2_ ;for (i=k-2; i=1; i=i-2)si+2 = si;s1 = _3_;main()char s80 = “abcdefgh“;printf(“nThe orig
24、inal string is : %sn“, s);fun(s);printf(“nThe result is : %sn“, s);第 1 处填空:1第 2 处填空:sk或*(s+k)第 3 处填空:c改错题- 23 -下列给定程序中,函数 FUN 的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含 5 位 8 进制数字。例如,若输入77777,则输出将是 32767。请改正程序中的错误,使它能得出正确结果。注意:不要改动 MAIN 函数,不得增行或删行,也不要更改程序的结构!试题程序:#include #include #include
25、 int fun(char *p)int n;/*found*/n=*p-o;p+;/*found*/while (*p != 0)n=n*7+*p-o;p+;return n;main()char s6;int i;int n;printf(“Enter a string (octal digits): “); gets(s);if (strlen(s) 5)printf(“Error:string too longer !nn“);exit(0);for (i=0; si; i+)if (si7)printf(“Error: %c not is octal digits!nn“, si);
26、exit(0);printf(“The original string: “);puts(s);n = fun(s);printf(“n%s is convered to intege number: %dnn“, s, n);第 1 处:n=*p-o; 应改为 n=*p-0;第 2 处:n=n*7+*p-o;应改为 n=n*8+*p-0;编程题下列程序定义了 NN 的而维数组,并在主函数中自动赋值。请编写函数 fun(int aN),该函数的功能是:使数组左下半三角元素的值会全部置成 0。例如:a 数组中的值为- 24 -a= ,则返回主程序后 a 数组中的值应为 。456238197089
27、7注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#include #include #include #define N 5void fun(int aN)main()int aNN,i,j;FILE *out;printf(“* The array *n“);for(i=0;i#include #include char *fun(char tt)int i;for(i=0;tti;i+)if(tti=A)return (_3_);main()char tt81;printf(“nPlease ente
28、r a string: “);gets(tt);printf(“nThe result string is: n%s“, fun(tt);第 1 处填空:tti=tti第 2 处填空:32 或a-A第 3 处填空:tt改错题下列给定程序中函数 FUN 的功能是:求出在字符串中最后一次出现的子符串的地址,通过函数值返回,在主函数中输出从此开始的字符串;若未找到,则函数值为 NULL。例如,当字符串中的内容为 abcdabfabcdx,t 中的内容为 ab 时,输出结果应是:abcdx 。当字符串中的内容为 abcdabfabcdx,t 中的内容为 abd 时,则程序输出未找到信息:not be
29、found!。请改正程序中的错误,使它能得出正确结果。注意:不要改动 MAIN 函数,不得增行或删行,也不要更改程序的结构!试题程序:#include #include #include char *fun(char *s, char *t)char *p, *r, *a;/*found*/- 26 -a = NuLL;while (*s)p = s;r = t;while (*r)/*found*/if (r = p)r+;p+;elsebreak;if (*r = 0) a = s;s+;return a;main()char s100, t100, *p;printf(“nplease
30、enter string s:“);scanf(“%s“, s);printf(“nplease enter substring t:“); scanf(“%s“, t);p = fun(s, t);if (p)printf(“nthe result is:%sn“, p);elseprintf(“nnot found!n“);第 1 处:a = NULL; 应改为 a=NULL;第 2 处:if(r=p)应改为 if(*r=*p)编程题下列程序定义了 NN 的而维数组,并在主函数中自动赋值。请编写函数 fun,函数的功能是:求出数组周边元素 的平均值 并作为函数值返回给主函数中的 s则返回主
31、程序后 s 的值应为 3.375.注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#include #include #include #define N 5double fun (int wN)- 27 -main()int aNN=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;int i,j;FILE *out;double s;printf(“* The array *n“);for(i=0;i#include _1_int i, m;m = 1;
32、for (i=_2_; i1)return(“yes!“);elsereturn(“no!“);main()int k = 0;printf(“Input:“);scanf(“%d“, printf(“%sn“, fun(k);第 1 处填空:char*fun(int n)第 2 处填空:2第 3 处填空:n%i=或!(n%i) 或 0=n%i改错题下列给定程序中,FUN 函数的功能是:根据形参 M,计算如下公式的值。T=1+ m1.4321例如,若输入 5,则应输出 2.283333.请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动 MAIN 函
33、数,不得增行或删行,也不要更改程序的结构!试题程序:#include #include double fun(int m)double t = 1.0;int i;/*found*/for (i=2; i#include #define M 3#define N 4void fun ( int ttMN,int ppN )main( ) int t M N =22,45, 56,30,19,33, 45,38,20,22, 66,40;int p N , i, j, k;FILE *out;printf ( “The original data is : n“ );for( i=0; iM; i+ )for( j=0; jN; j+ )printf ( “%6d“, tij );printf(“n“);fun ( t, p );printf( “nThe result is:n“ );for ( k = 0; k N; k+ )printf ( “ %4d “, p k );printf(“n“);out = fopen(“out.dat“, “w“);for ( k = 0; k N; k+ )fprintf (out, “%dn“, p k );fclose(out);答案是:vid fun(int ttMN ,int ppN)