[电脑基础知识]C语言上机编程题.doc
《[电脑基础知识]C语言上机编程题.doc》由会员分享,可在线阅读,更多相关《[电脑基础知识]C语言上机编程题.doc(33页珍藏版)》请在三一文库上搜索。
1、 C语言上机编程题一、数字题:1将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c个位和十位上,b的十位和个位依次放在c的百位和千位上。如当a=16,b=35,则c=5361。void fun(int a ,int b,long *c)*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;2将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个数依次放在c数的千位和十位上,b数的十位和个数依次放在c数的百位和个位上。例如:当a=45,b=12,调用该函数后,c=4152。void fun(int
2、a,int b,long *c)*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);3将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后,c=1524void fun(int a,int b,long *c)*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);4将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的
3、十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后,c=5241。void fun(int a,int b,long *c)*c=a%10*1000+b%10*100+a/10*10+b/10;5将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后,c=4251。void fun(int a,int b,long *c)*c=a/10*1000+b%10*100+a%10*10+b/10;6将两个两位数的正整数a、b全
4、并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后,c=2514。void fun(int a,int b,long *c)*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);7将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后,c=1425。void fun(int a,int b,long
5、 *c)*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);8将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后,c=2415。void fun(int a,int b,int *c)*c=(b%10)*1000+(a/10)*100+(b/10)*10+(a%10);9将两个两位数的正整数a,b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数
6、的百位和个位上。例如,当a=45时,b=12,调用该函数后,c=5142。void fun(int a ,int b,long *c)*c=a%10*1000+b/10*100+a/10*10+b%10;10求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s并作为函数值返回。如:n为1000时,函数值应为s=96.979379。double fun(int n)double s=0.0;int i;for(i=0;in;i+)if(i%5=0&i%11=0)s=s+i;s=sqrt(s);return s;11计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值
7、不大于100)。如:n的值为56,则输出为sum=1113。long fun(int n)int i;long s=0;for(i=2;i=n-1;i+)if(n%i=0)s+=i*i;return s;12求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。若n为1000时,s=153.909064。double fun(int n)double s=0;int i;for(i=0;in;i+)if(i%3=0&i%7=0)s+=i;s=sqrt(s);return s;13计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。如,若给n输入20后,
8、则输出为s=0.583333。double fun(int n)int i;double sum=0;for(i=1;i=n;i+)if(i%5=0|i%9=0)sum+=1.0/i;return sum;14计算并输出3到n之间所有素数的平方根之和。如,若给n输入100后,则输出为sum=148.874270。double fun(int n)int m,k,i;double s=0;for(m=3;m=n;m+)k=sqrt(m);for(i=2;i=k+1)s+=sqrt(m);return s;15判断整数x是否是同构数。若是同构数,函数返回1;否则返回0。int fun(int x)
9、if(x10)return (!(x*x-x)%10);else return (!(x*x-x)%100);106、用筛选法求出100之内的素数void fun ( int *pt )int i,j,flag;*pt=2;*pt+;for(i=3;i100;i+)flag = 1;for(j=2;j=k)return days;height-=n;17求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中数列F(n)的定义为F(0)0,F(1)1,F(n)=F(n-1)+F(n-2)例如:t=1000时 ,函数值为987。int fun(int t)int a=1,b=1,c=
10、0,i;doc=a+b;a=b;b=c;while (ct);c=a;return c;18求Fibonacci数列中大于T的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)例如,当t=1000时,函数值为1597。int fun(int t)int a=1,b=1,c=0,i;for(i=4;i=t;i+)if(c=10000) return w%10000;if(w=1000)return w%1000;if(w=100)return w%100;if(w=10) return w%10;20对变量h
11、中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。例如:若h 值为8.32433,则函数返回8.32;若h值为8.32533,则函数返回8.33。float fun (float h )long t;t=(h*1000+5)/10;return (float)t/100;21利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。xn-1=cos(xn)迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋给x0;(3)x1=cos(x0),求出一新的x1;(4)若x0-x1的绝对值小于0.000001,则招待步骤(5),否则执行步骤(2);(5)所求x
12、1就是方程cos(x)-x=0的一个实根作为函数值返回。输出结果Root=0.739085。float fun()float x1=0.0,x0;dox0=x1;x1=cos(x0);while(fabs(x0-x1)=1e-6);return x1;22根据以下公式计算s,计算结果通过形指针sn传回;s通过形参传入。SN=1/1-1/3+1/5-1/7+(-1)n/(2n-1)例如:若n的值为11时, S=0.764601void fun(float *sn,int n)int i;float s=1;*sn=0;for(i=0;i=n;i+)*sn=*sn+s*(1.0/(2*i+1);s
13、=-s;23S=(1+1/2)+(1/3+1/4)+(1/(2n-1)+1/2n)如,若给n输入12后,则输出为S=3.775958。n的值要求大于1但不大于100。double fun(int n)int i;double s=0.0;for(i=1;i=n;i+)s=s+(1.0/(2*i-1)+1.0/(2*i);return s;24计算:s=(1-ln(1)-ln(2)-ln(3)-ln(m)2s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是double log(double x)。如,若m的值为15,则函数值为723.570801。double
14、 fun(int m)int i;double s=1.0;for(i=1;i=m;i+)s=s-log(i);return (s*s);25计算下列级数,和值由函数值返回。S=1-x+x2/2!-x3/3!+(-1*x)n/n!。如当n=15,x=0.5时,值为0.606531。double fun(double x, int n)int i,j=1;double s=1.0,s1=1.0;for(i=1;i=n;i+)j=-1*j;s1=s1*i;s=s+j*pow(x,i)/s1;return s;26根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1
15、/(1+2+3)+1/(1+2+3+n)。若n的值为11时,值为1.833333。float fun(int n)int i,s1=0;float s=0.0;for(i=1;in。P=m!/(n!(m-n)!),例如:m=12,n=8时,运行结果为495.000000。float fun (int m, int n)int i;double p=1.0;for(i=1;i=m;i+) p=p*i;for(i=1;i=n;i+) p=p/i;for(i=1;i=eps)s1=s1*n/(2*n+1);s=s+s1;n+;return 2*s;29S=1/(12)+1/(23)+1/(n(n+1
16、)例如,当n=10时,函数值为0.909091。double fun(int n)int i;double s=0.0;for(i=1;i=n;i+)s=s+1.0/(i*(i+1);return s;30计算并输出给定10个数的方差。 例如,给定的10个数为95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,则输出为S=11.730729。double fun(double x10)double x1=0.0,s=0.0;int i;for(i=0;i10;i+)x1=x1+xi;x1=x1/10;for(i=0;i10;i+)s+=(xi-x
17、1)*(xi-x1);return sqrt(s/10);31S=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n)。例如,若给n输入8后,则输出为S=0.662872。double fun(int n)int i;double s=0.0;for(i=1;i=n;i+)s=s+(1.0/(2*i-1)-1.0/(2*i);return s;32计算s=(ln(1)+ln(2)+ln(3)+ln(m)0.5。可调用log(n)函数求ln(n)。若m的值为20,则函数值为6.506583。double fun(int m)int i;double s=0.0;for(i=1;i=
18、m;i+)s=s+log(i);return sqrt(s);33计算下列和值由函数值返回。S=1+x+x2/2!+x3/3!+xn/n!例如,当n=10,x=0.3时,函数值为1.349859。double fun(double x, int n)int i;double s=1.0,s1=1.0;for(i=1;i=n;i+)s1=s1*i;s=s+pow(x,i)/s1;return s;34S=1+(1+20.5)+(1+20.5+30.5)+(1+20.5+30.5+n0.5)如,若给n输入20后,则输出为s=534.188884。double fun(int n)int i;dou
19、ble s=0.0,s1=0.0;for(i=1;i=n;i+)s1=s1+pow(i,0.5);s=s+s1;return s;35sn=1+1/1!+1/2!+1/3!+1/4!+1/n!如,若给n输入15,则输出为s=2.718282。double fun(int n)double t,sn=1.0;int i,j;for(i=1;i=n;i+)t=1.0;for(j=1;j=i;j+)t*=j;sn+=1.0/t;return sn;36计算并输出当x0.97时下列多项式的值,直到|Sn-Sn-1|=1e-6);return sum;二、数组题:37求出一个2M整型二维数组中最大元素的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电脑基础知识 电脑 基础知识 语言 上机 编程
链接地址:https://www.31doc.com/p-1987442.html