二级C语言上机考题.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《二级C语言上机考题.doc》由会员分享,可在线阅读,更多相关《二级C语言上机考题.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、填空题:一、数字题:1用函数指针指向要调用的函数,规定在_2_处使f指向函数f1,在_3_处使f指向函数f2。当调用正确时,程序输出:x1=5.,x2=3.,x1*x1+x1*x2=40.double fun(double a, double b)double (*f)();double r1,r2;f=f1;r1=f(a);f=f2;r2 = (*f)(a,b);return r1+r2;2用函数指针指向要调用的函数,规定在_2_处使f指向函数f1,在_3_处使f指向函数f2。当调用正确时,程序输出:x1=5.,x2=3.,x1*x1+x1*x2=40.double fun(double x
2、, double y)if(i=1)return f1(x);else return f2(x,y); 3将形参n所指变量中各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:,新的数:为739。void fun(unsigned long *n)unsigned long x=0,i;int t;i=1;while(*n)t=*n%10;if(t%2!=0)x=x+t*i;i=i*10;*n=*n/10;*n=x;4将形参n所指变量中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输
3、入一个数:,新的数为64862。unsigned long fun(unsigned long n)unsigned long x=0;int t;while(n)t=t%10;if(i%2=0)x=10*x+t;n=n/10;return x;5将形参n所指变量中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,输入一个数:,新的数为26846。unsigned long fun(unsigned long n)unsigned long x=0,s,i;int t;s=n;i=1;while(s)t=s%10;if(i%2=0)x=x+t*i;i=i*
4、10;s=s/10;return x;6求方程ax2+bx+c=0的根。例如,当a=1,b=2,c=1时,方程的两个根分别是:x1=-1.00,x2=-1.00。main()float a,b,c,disc,x1,x2,p,q;scanf(%f,%f,%f,&a,&b,&c);disc=b*b-4*a*c;clrscr();printf(*the result *n);if(disc=0)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(x1=%6.2f,x2=%6.2fn,x1,x2);elsep=-b/(2*a);q=sqrt(f
5、abs(disc)/(2*a);printf(x1=%6.2f+%6.2f in,p,q);printf(x2=%6.2f-%6.2f in,p,q);7输出方程组A+B=56,A+2B=72的一组正整数解。结果是:A=40,B=16。main()int i,j;clrscr();for(i=0;i100; i+)for(j=0;j100; j+)if(i+j=56&i+2*j=72)printf(A=%2d,B=%2d,i,j);8求方程ax2+bx+c=0的两个实数根。例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。main()float a,b,
6、c,disc,x1,x2;clrscr();doprintf(Input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);disc=b*b-4*a*c;if(disc0)printf(disc=%fn Input again!n,disc);while(disc0);printf(*the result*n);x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(nx1=%6.2fnx2=%6.2fn,x1,x2);9判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。ch
7、ar *fun(int n)int g,s,b;g=n%10;s=n/10%10;b=n/100%10;if(g+b)=s)returnyes!;else returnno!;10输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-,结果为:。main()long int n;clrscr();printf(Enter the data;n);scanf(%ld,&n);printf(* the absolute value *n);if(n0)n=-n;printf(nn );printf(%ld, n);11计算如下公式的值。A1=1,A2=1/(1+A1),A3=
8、1/(1+A2),AN=1/(1+AN+1)若n=10,则应输出:0.。float fun(int n)float A=1;int i;for(i=1;i=n;i+)A=1.0/(1+A);return A;12计算并输出下列级数的前N项之和SN,直到SN+1大于q为止。SN=2/1+3/2+4/3+N+1/N例如,若q的值为50.0,则函数值为50.。double fun(double q)int n;double s;n=2;s = 2.0;while(s0f(x) =0 x=0 或 x=2 (x-1)/(x-2) x0float f(double x)if(x=0.0|x=2.0)ret
9、urn 0.0;else if(x0.0)return(x -1)/(x-2);else return (x +1)/(x-2);double fun(int n)int i;double s=0.0,y;for(i=-n;i=n;i+)y=f(1.0*i);s+=y;return s;14求1+2!+3!+.+N!的和。若N=6则和为873。main()int i,n;long s=0,t=1;clrscr();printf(nInput n:n);scanf(%d,&n);for(i=1;i=n;i+)t=t*i;s=s+t;printf(1!+2!+3!.+%d!=%ldn,n,s);1
10、5计算Sn=1/1-1/3+1/5-1/7+1/(2n+1)的值。若n的值为15时,输出的结果是:S=0.,N=15。void fun(float *sn,int n)int i,j=1;float s=0.0;for(i=0;i=n;i+)s=s+j*1.0/(2*i+1);j*=-1;*sn=s;main()int n=15;float s;fun(&s,n);printf(S=%f N=%dn,s,n);16计算SN的值:SN=1/1+3/1+5/4+(2N-1)/(SN-1)当N50时,SN71.。double fun(int n)double s=1.0,s1=0.0;int k;f
11、or(k=2;k=n;k+)s1=s;s+=(2*k-1)/s1;return s;17计算S的值:s=13/31*35/53*57/75*(2k-1)2k+1/(2k+1)2k-1当k=5时,s=338.。double fun(int n)double s=1;double f=0.0;double p=0.0;int i=0;int k;for(k=1; k=n;k+)f=2*k-1;p=2*k+1;for(i=1;i2*k+1;i+)f*=2*k-1;for(i=1;ie)s=s+k*x;k=k*(-1);t=2*i;x=(2*i+1)/(t*t);i+;return s;19求P的值p
12、=m!/(n!*(m-n)!)例如:m=11,n=4时,运行结果为330.。long jc(int m)long s=1;int i;for(i=1;i=m;i+)s=s*i;return s;float fun(int m,int n)float p;p=1.0*jc(m)/jc(n)/jc(m-n);return p;20计算S的值:s=(1*3)/22+(3*5)/42+(5*7)/62+(2*n-1)*(2*n+1)/(2+n)2例如,当形参N的值为10时,函数返回9.。double fun(int n)int i;double s,t;s=0;for(i=1;i=n;i+)t=2.0
13、*i;s=s+(2.0*i-1)*(2.0*i+1)/(t*t);return s;21计算S的值:s=(1*3)/22-(3*5)/42+(5*7)/62-+(-1)n-1(2*n-1)*(2*n+1)/(2+n)2例如,当形参N的值为10时,函数返回-0.。double fun(int n)int i,k;double s,t;s=0;k=1;for(i=1;ie)i+;x=(2.0*i)/(2.0*i)*(2.0*i);s=s+x;return s;23判断某一个年份是否为闰年。例如,1900年不是闰年,2004是闰年。int fun(int n)int flag=0;if(n%4=0)
14、if(n%100!=0)flag=1;if(n%400=0)flag=1;return flag;24从键盘输入3个整数,然后找出最大的数并输出。例如,输入12,45,43,最大值为45。main()int a,b,c,max;clrscr();printf(nInput three numbers:n);scanf(%d,%d,%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);if(ab)max=a;else max=b;if(maxc) max=c;printf(max=%dn,max);25使从键盘上输入一个整数n,输出n对应的斐波那契数列。main()int i
15、,n=0;scanf(%d,&n);for(i=0;in;i+)printf(%d ,fun(i);int fun(int n)if(n=0) return 0;else if(n=1)return 1;else return fun(n-1)+fun(n-2);26找出100至x(x999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。当n值为500时,各位数字之和为15的整数有:159、168、177共有26个。fun(int x)int n,s1,s2,s3,t;n=0;t=100;while(t=x)s1=t%10;s2=(t/10)%10;s3=t
16、/100;if(s1+s2+s3=15)printf(%d,t);n+;+t;return n;27找出100-999之间(含100和999)所有整数中各位上数字之和为X(X为一个正整数)的整数,然后输出。符合条件的整数个数作为函数值返回。例如:当X值为5时,满足条件的数为:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500共有15个。int fun(int x)int n,s1,s2,s3,t;n=0;t=100;while(t=999)s1=t%10;s2=(t/10)%10;s3=t/100;if(s1+s2+s3=x)
17、printf(“%d”,t);n+;t+;return n;28打印出11000中满足:个位数字的立方等于其本身所有数。本题的结果为:1,64,125,216,729main()int i,g;clrscr();for(i=1;i1000;i+)g=i%10;if(g*g*g=i)printf(%4d,i);29打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。本题的打印结果为:111,222,333,444,555,666,777,888,999。main()int g,s,b;clrscr();for(g=1;g10;g+)for (s=1;s10;s+)for(b=1;
18、b10;b+)if(g=s&s=b)printf(%5d,g+s*10+b*100);30求两个正整数m和n的最大公约和最小公倍数。main()int a,b,n,m,t;clrscr();printf(nInput two numbers:n);scanf(%d,%d,&n,&m);if(n=0&*p=0&*p=9&flag=2)b=b*10+*p-0;p+;switch(ch)case +:result=a+b;break;case -:result=a-b;break;case *:result=a*b;break;case /:result=(float)a/b;break;print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 上机 考题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内