1、份二C上机编程题正式版A类数学表达式(1-10)第1题、 编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求mn。 m!P = n!(m-n)! 例如:m=12,n=8时,运行结果为495.000000。#include #include float fun(int m,int n)main() printf(P=%fn,fun(12,8);第2题、 编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。Xn+1=cos(Xn)迭代步骤如下: (1)取x1初值为0.0; (2)x0=x1,把x1的值赋给x0; (
2、3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果Root=0.739085。#include #include #include float fun() main() printf(Root=%fn,fun(); 第3题、 编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例
3、如:当t=1000时,函数值为:1597。#include #include double fun(int n)main() /*主函数*/ printf(%fn,fun(1000);第4题、 编写函数fun,它的功能是:根据以下公式计算s,计算结果通过形指针sn传回;s通过形参传入。 1 1 1 1 (-1)n sn = - + - + 1 3 5 7 2n+1 例如:若n的值为11时,输出的结果是:S=0.764601 N=11。#include #include void fun(float *sn,int n)main() int n=11;float s; fun(&s,n); pr
4、intf(S=%f N=%dn,s,n); 第5题、 编写函数fun,它的功能是计算:s=(In(1)+In(2)+In(3)+In(m)0.5,s作为函数值返回。在C语言中可调用log(n)函数求In(n)。log函数的引用说明是:double log(double x)。 例如,若m的值为:20,fun函数值为:6.506583。#include #include #include double fun( int m)main() printf(%fn,fun(20); 第6题、 编写函数fun,它的功能是计算下列数级和,和值由函数值返回。 x2 x3 xn s = 1 + x + + +
5、 + 2! 3! n! 例如,当n=10,x=0.3时,函数值为1.349859。#include #include #include double fun(double x,int n)main() printf(%fn,fun(0.3,10); 第7题、 编写函数fun,它的功能是:计算并输出下列级数和: 1 1 1 s = + + + 12 23 n(n+1) 例如,当n=10时,函数值为:0.909091。#include #include double fun(int n)main() /*主函数*/ printf(%fn,fun(10); 第8题、 请编写一个函数fun,它的功能是
6、:根据以下公式求的值(要求满足精度0.0005, 即某项小于0.0005时停止迭代): 1 12 123 1234 12n = 1 + + + + + + 2 3 35 357 3579 35(2n+1) 程序运行后,如果输入精度0.0005,则程序输出为3.14。#include #include double fun ( double eps)main( ) double x; printf(Input eps:) ; scanf(%lf,&x); printf(neps = %lf, PI=%lfn, x, fun(x); 第9题、 请编写函数fun,其功能是:计算并输出当x0.97时下
7、列多项式的值, 直到|S(n)-S(n-1)|0.000001为止。S=1+0.5x+0.5(0.5-1)x2/2!+0.5(0.5-1)(0.5-2)-(0.5-n+1)xn/n! 例如,在主函数中从键盘给x输入0.21后,输出为:s=1.100000。#include #include double fun(double x) main() double x,s; printf(Input x: ); scanf(%lf,&x); s=fun(x); printf(s=%fn,s); 第10题、 请编写函数fun,其功能是:计算并输出给定10个数的方差: 1 10 0.5S= (Xk-X)
8、2 10 k=1 1 10其中X= Xk 10 k=1 例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。#include #include double fun(double x10)main() double s, x10=95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0; int i; printf(nThe original data is :n); for(i=0;i10;i+)printf(%6.1f,xi); printf(nn)
9、; s=fun(x); printf(s=%fnn,s); B类数学的最大与最小值(1-4) 第1题、 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名, n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。#include #include void fun(int a, int n , int *max, int *d )main() int i, x20, max , index, n = 10; for (i=0;i n;i+) xi = ran
10、d()%50; printf(%4d, xi) ; printf(n); fun( x, n , &max, &index); printf(Max =%5d , Index =%4dn,max, index ); 第2题、 请编写一个函数 int fun(int *s,int *t,int *k),用来求出数组中值最大的元素在数组中的下标并存放在k所指的存储单元中,并且将最大值增添在数组的最后。形参t所指存储单元中存放数组中数据的个数。 例如,数组中的数据如下: 876 675 896 101 301 401 980 431 451 777 则输出最大值的下标为:6,数组中的内容为: 876
11、 675 896 101 301 401 980 431 451 777 980#include #define N 80void fun(int *s,int *t,int *k)main() int aN=876,675,896,101,301,401,980,431,451,777,i,n,mi; n=10; printf(nThe original data:n); for(i=0;in;i+)printf(%4d,ai);printf(n); fun(a,&n,&mi); printf(The index of max is: %dn,mi); printf(The result :
12、n); for(i=0;in;i+)printf(%4d,ai);printf(n); 第3题、 请编一个函数 void fun(int ttMN,int ppN),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。#include #include #define M 3#define N 4void fun(int ttMN,int ppN)main() int tMN=22,45,56,30, 19,33,45,38, 20,22,66,40; int pN,i,j,k; printf(The original da
13、ta 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;kN;k+) printf(%4d,pk); printf(n); 第4题、 请编写一个函数 int fun(int *s, int t, int *k),用来求出数组的最大元素在数组中的下标, 用k返回。 例如, 输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980#include #includ
14、e int fun(int *s, int t, int *k)main( ) int a10=876,675,896,101,301,401,980,431,451,777, k ; fun(a, 10, &k) ; printf(%d, %dn, k, ak) ; C类二维数组行列下标(1-6) 第1题、 请编写函数fun,函数的功能是:实现B=A+A,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。 例如,输入下面的矩阵: 其转置矩阵为: |1 2 3| |1 4 7| |4 5 6| |2 5 8| |7 8 9| |3 6 9|程序输出: |2 6 10| |6
15、 10 14| |10 14 18|#include #include void fun(int a33,int b33)main() int a33=1,2,3,4,5,6,7,8,9,t33; int i,j; fun(a,t); for(i=0;i3;i+) for(j=0;j3;j+) printf(%7d,tij); printf(n); 第2题、 程序定义了NN的二维数组,并在主函数中自动赋值。请编写函数fun(int aN),函数的功能是:使数组右上半三角元素中的值乘以m。 例如:若m的值为2,a数组中的值为 |1 9 7|a= |2 3 8|,则返回主程序后a数组中的值应为 |
16、4 5 6| |2 18 14| |2 6 16| |4 5 12|#include #include #include #define N 5int fun(int aN,int m)main() int aNN,m,i,j; printf(* The array *n); for (i=0;iN;i+) for (j=0;j=3); printf(m=%4dn,m); fun(a,m); printf(THE RESULTn); for(i=0;iN;i+) for (j=0;jN;j+) printf(%4d,aij); printf(n); 第3题、 编写程序,实现矩阵(3行3列)的转
17、置(即行列互换)。例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900程序输出: 100 400 700 200 500 800 300 600 900#include #include int fun(int array33)main() int i,j; int array33=100,200,300, 400,500,600, 700,800,900; for (i=0;i3;i+) for (j=0;j3;j+) printf(%7d,arrayij); printf(n); fun(array); printf(Converted array
18、:n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%7d,arrayij); printf(n); 第4题、程序定义了NN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的和。 |0 1 2 7 9| |1 9 7 4 5|a= |2 3 8 3 1| |4 5 6 8 2| |5 9 1 4 1|则返回主程序后s的值应为:54。#include #include #include #define N 5double fun(int wN)main() int aNN=0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4
19、,5,6,8,2,5,9,1,4,1; int i,j; double s; printf(* The array *n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); s=fun(a); printf(* THE RESULT *n); printf(The sum is:%lfn,s); 第5题、 请编写函数fun,函数的功能是:将M行N列的二维数组中的数据按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55
20、55 55 55 则一维数组中的内容应是: 33 33 33 33 44 44 44 44 55 55 55 55。#include void fun(int (*s)10, int *b, int *n, int mm, int nn)main() int w1010 = 33,33,33,33,44,44,44,44,55,55,55,55,i,j ; int a100 = 0, n = 0 ; printf(The matrix:n) ; for(i = 0 ; i 3 ; i+) for(j = 0 ; j 4 ; j+) printf(%3d,wij) ; printf(n) ; f
21、un(w, a, &n, 3, 4) ; printf(The A array:n) ; for(i = 0 ; i n ; i+) printf(%3d,ai);printf(nn) ; 第6题、 请编写函数fun,函数的功能是:将M行N列的二维数组中的数据按列的顺序依次放到一维数组中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55。#include void fun(int s10, int b, int *n, int mm, int n
22、n) /* 以下代码仅供参考 */ int i,j,np=0; /* np用作b数组下标 */ *n=np;main() int w1010=33,33,33,33,44,44,44,44,55,55,55,55,i,j; int a100=0, n=0; printf(The matrix:n); for(i=0; i3; i+) for(j=0;j4; j+)printf(%3d,wij); printf(n); fun(w,a,&n,3,4); printf(The A array:n); for(i=0;in;i+)printf(%3d,ai);printf(nn);D类素数(1-3)
23、第1题、 请编写函数fun,函数的功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,若输入:17,则应输出:9和4 6 8 9 10 12 14 15 16。#include #include void fun(int m,int *k,int xx)main() int m,n,zz100; printf(nPlease enter an integer number between 10 and 100:); scanf(%d,&n); fun(n,&m,zz); printf(nnThere are %d non-prime numbers les
24、s than %d:,m,n); for (n=0;nm;n+) printf(n %4dn,zzn); 第2题、将大于形参m且紧靠m的k个素数存入xx数组中。void fun(int m,int k,int xx) /* 以下代码仅供参考 */ int i, j=1, t=m+1; while(j=k) /* 以下完成判断素数,并存放到数组xx中 */ main()int m,xx100,k,i;scanf(%d,%d,&m,&k);fun(m,k,xx);for(i=0;ik;i+)printf(%3d,xxi);第3题、 请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之
25、和。 例如,在主函数中从键盘给n输入100后, 输出为:sum=148.874270。 注意:要求n的值大于2但不大于100。#include #include double fun(int n)main() int n; double sum; printf(nnInput n: ); scanf(%d,&n); sum=fun(n); printf(nnsum=%fnn,sum); E类数学其它(1-14)第1题、 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。 例如,当a=45,b=12。调用该函数后,c=5241。#include #include void fun(int a,int b,long *c)main() int a,b;long c; printf(Input a,b:); scanf(%d%d,&a,&b); fun(a,b,&c); printf(The re
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1