计算机语言B(C语言)历年试题及参考答案.pdf
《计算机语言B(C语言)历年试题及参考答案.pdf》由会员分享,可在线阅读,更多相关《计算机语言B(C语言)历年试题及参考答案.pdf(142页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、有一个已排好序的数组,今有一个数,要求按原来排序的规律将它插入数组(从小到大排列)中。main()inti,k,x,a5=l,3,5,7;scanf(%d”,x);for(k=4;k0;k-)/*从后向前比较*/if(ak-l x)ak=ak-l;/*将大数向后移动*/else break;/*找到插入的位置,退 出*/ak=x;/*完成插入操作*/for(i=0;iN;i+)printf(u%d”,ai);)2、打印出所有的水仙花数。main()int i,a,b,c;for(i=100;i0);printf(nsum=%dnn,xl);4、求 l!+2!+3!+.20!main()in
2、t n,i;float t=l,f=O;printfCinput n:nM);scanf(M%dH,&n);for(i=l;i=n;i+)t=t*i;f=f+t;printf(Hsum=%dnn,f);)5、打印杨辉三角形main()intij,anll;for(i=l;i=10;i+)ail=l;aii=l;for(i=2;i=10;i+)for(j=2;j=i-l;j+)aiUJ=ai-lJU-l+ai-lUJ;for(i=l;i=10;i+)for(j=l;j=i;j+)printf(%d,aij);printf(n);)6、打印输出100200之间的所有素数#include math.
3、hmain()int n,k,flag;for(n=100;n200;n+)flag=l;for(k=2;k=sqrt(n);k+)if(n%k=0)flag=O;break;if(flag=l)printf(f%d H,n);7、用冒泡法对数组进行排序(从大到小)#include main()int all,ij,k,x;printf(HInput 10 numbers:nH);for(i=l;ill;i+)scanf(M%dn,&ai);printf(nnH);for(i=l;i10;i+)k=i;for(j=i+l;jak)k=j;if(i!=k)x=ai;ai=ak;ak=x;)pri
4、ntf(HThe sorted numbers:nH);for(i=l;iH;i+)printf(H%d n,ai);)x(x 1)8、函数 v 2x-1(1 x 10)main()(float x,y;scanf(n%f&x);if(x=l&x10)y=2*x-l;elsey=3*x-ll;printf(n%fy);)9、编写一个程序,当用户输入年份和月份,电脑会自动输出当月天数。main()int year;month,days;scanf(H%d%dH,&year,&month);switch(month)case 1:case 3:case 5:case 7:case 8:case 1
5、0:case 12:/*处理“大”月*/days=31;break;case 4:case 6:case 9:case 11:/*处理外月*/days=30;break;case 2:/*处理“平”月*/if(year%4=0&year%100!=0 I I year%400=0)days=29;else days=28;break;/*如果是闰年*/*不是闰年*/default:/*月份错误*/printf(nInput error!nM);days=O;)if(days!=O)printf(M%d,%d is%ddaysn1,year,month,days);)10、求一个3X3矩阵对角线
6、元素之和#include main()int i,j,sum=0,a33;/*说明数组a*/for(i=0;i=2;i+)for(j=0;j=2;j+)scanf(n%dH,&aij);/*输入数组元素的值*/for(i=0;i=2;i+)/*按行输出*/for(j=0;j=2;j+)if(i=j)sum+=aii;/*对角线元素求和*/printf(%d,sum);)11、用选择法对10个整数排序#include main()int all,ij,k,x;printf(HInput 10 numbers:。);for(i=l;ill;i+)scanf(n%d&ai);printf(Hnn);
7、for(i=l;i10;i+)k=i;for(j=i+l;j=10;j+)if(ajak)k=j;if(i!=k)x=ai;ai=ak;ak=x;)printf(The sorted numbers:n);for(i=l;ill;i+)printf(%d,ai);12、有一个3X4的矩阵,要求编程求出其中值最大的那个元素,以及其所在的行号和列号。main()(int i j,m,n,max,a34;for(i=0;i3;i+)for(j=O;j4;j+)scanf(%d,&aij);for(i=0;i3;i+)(for(j=0;j4;j+)printf(%5d,aij);printf(n);m
8、ax=a0101;for(m=0,n=0,i=0;i3;i+)for(j=0;j4;j+)(if(maxaij)m=i;n=j;max=aij;/*m和 n 分别存放最大值虽在的行号和列号*/)printf(max=a%d%d=%5dn,m,n,amn);)-13、求矩阵AQX3)的转置矩阵B(3X2)。r I 2 3-I r 1 4-IA=|I B=I 2 5 I456 L3 6 矩阵转置算法:在原来矩阵A 中 的 元 素 应 是 转 置 后 矩 阵 B 中的元素#include main()int i,j,b32,a23=1,2,3,4,5,6;/*说明初始化数组a*/for(i=0;i=
9、l;i+)for(j=0;j=2;j+)bji=aij;/*进行数组转置*/for(i=0;i=2;i+,p rin tf(”)/*按行输出*/for(j=0;j=l;j+)printf(%d,biU);14、用二分法求下面方程在(-10,1 0)之间的根。2X3-4X2+3X-6=0#include main()(float xl,x2,x,f,fl,f2;scanf(H%f%fM,&xl,&x2);fl=2*pow(xl,3)-4*xl*xl+3*xl6;f2=2*pow(x2,3)4*x2*x2+3*x26;if(H*f20)printf(nfang cheng gai qu jian
10、nei wu shi gen”);elsedo x=(xl+x2)/2;f=2*pow(x,3)-4*x*x+3*x6;if(H*f0)xl=x;H=f;else if(f2*f0)x2=x;f2=f;while(fabs(f)=0.00001);printf(Mx=%fx);)T15、求分数序列前 20 项和。2/1+3/2+5/3+8/5+13/8+21/13+.main()int k;float i=lj=2,sum=0,t;for(k=l;k=20;k+)sum+=j/i;t=j+i;j=t;)printf(qian 20 xiang he wei:%f,sum);16、给出一个百分制
11、成绩,要求输出成绩等级ABCADE,90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。main()int select,score;char grade;printf(uPlease input the score:);scanf(,%dnu,&score);select=score/10;switch(select)case 1:case 2:case 3:case 4:case 5:grade=,E,;break;case 6:grade=,D,;break;case 7:grade=C;break;case 8:grade=,B,;break;case 9:
12、case 10:grade=,A,;break;/*注意使用break语句*/printfC*grade=%cnM,grade);17、求 Fibonacci数列40个数#include main()int n,i9unl9un2,un;un=un2=1;/*设置递推初始值*/for(i=3;i=40;i+)/*用递推法计算第N 项的值*/uni=un2;un2=un;un=uni+un2;printf(No.%d is%dnH,n,un);)18、求一元二次方程的根。#include main()float a,b,c,xl,x2,deta;scanf(H%f%f%fn,&a,&b,&c);
13、deta=b*b-4*a*c;if(deta0)(xl=(-b+sqrt(deta)/(2*a);x2=(-b-sqrt(deta)/(2*a);printf(Hfangcheng de gen wei:xl=%f x2=%fn,xl,x2);)else if(deta=O)xl=x2=-b/(2*a);printf(ufangcheng de gen wei:xl=x2=%fH,xl);else printf(Hfangcheng mei you shi gen.);二、基本算法两个变量交换,素数判断,计算分段函数值,求数列或级数的和,求解二次方程,字母大小写转换,数组最大值、最小值、平均值
14、计算,数组排序,矩阵转置,数组逆序排列,矩形法和梯形法计算定积分,最小公倍数和最大公约数计算,三角形面积计算等等。三、基本算法举例1、输入三个数a,b,c,按大小顺序输出mai n ()f l o at a,b,c,t;s c an f (%f,%f,%f,&a,&b,&c);i f (a b)t=a;a=b;b=t;i f (a c)t=a;a=c;c=t;i f (b c)t=b;b=c;c=t;p r i n t f (%5.2 f,%5.2 f,%5.2 f”,a,b,c);2、求 1 到 1 0 0 的和。mai n()i n t i,s u m=0;i=l;w h i l e(i
15、=1 0 0)s u m=s u m+i;i=i+l;)p r i n t f(s u m=%d n”,s u m);)mai n ()i n t t o t al=0,i=l;w h i l e (i 0.0 0 0 0 0 1)/*整数除以整数还是商为整数因此(x=L 0/0*i-l)*/k=k*j;p i=p i+k*x;i+;p r i n t f(p i d e z h i w e i%f”,4*p i);)4、判断一个数能否同时被3和 5 整除。mai n()(i n t n;s c an f (线d,&n);i f (n%3=0&n%5=0)/*注意关系表达式的写法*/p r i
16、 n t f(%d n e n g b e i 3 h e 5 z h e n g c h u.n);e l s ep r i n t f(%d b u n e n g b e i 3 h e 5 z h e n g c h u.”,n);5、素数#i n c l u d e mat h,h”mai n O i n t n,k,f l ag;f o r(n=1 0 0;n 2 0 0;n+)f l ag=l;f o r (k=2;k =s q r t(n);k+)i f(n%k=0)/*注意相等关系的表示*/f l ag=0;b r e ak;i f (f l ag=l)p r i n t f
17、 C%d”,n);)6、求 m 和 n的最大公约数和最小公倍数。mai n()i n t m,t,n,i=2,y u e s h u,b e i s h u;s c an f(%d%d”,&m,&n);i f (m l;i)/*最大公约数*/i f (m%i=0&n%i=0)y u e s h u =i;b r e ak;)b e i s h u=n*m/y u e s h u;/*最小公倍数*/p r i n t f(%d h e%d d e z u i d a g o n g y u e s h u s h i%d n”,m,n,y u e s h u );p r i n t f(%d h
18、 e%d d e z u i x i ao g o n g b e i s h u s h i%d n ,m,n,b e i s h u );)7、求二元一次方程的根。i n c l u d e mai n ()(f l o at a,b,c,x l,x 2,d e t a;s c an f&a,&b,&c);d e t a=b*b-4*a*c;i f (d e t a 0)(x l=(-b+s q r t(d e t a)/(2*a);x 2=(-b-s q r t(d e t a)/(2*a);p r i n t f(*f an g c h e n g d e g e n w e i :x
19、 l=%f x 2=%f”,x l,x 2);)e l s e i f (d e t a=O)x l=x 2=-b/(2*a);p r i n t f(*f an g c h e n g d e g e n w e i :x l=x 2=%f,x l);e l s e p r i n t f (f an g c h e n g me i y o u s h i g e n.);)8.符号函数。mai n ()f l o at x;i n t y;s c an f (%f ,&x);i f (x =0)i f (x 0)y=l;e l s e y=0;e l s e y=-1;p r i n t
20、 f (%f”,y);)x(x 1)9、函数 2 x-i(1 x 10)mai n O(f l o at x,y;s c an f(%f,&x);i f (x =l&x 1 0)y=2*x-l;e l s ey=3*x-l 1;p r i n t f(%f,y);)1 0、给出一个百分制成绩,要求输出成绩等级A B C A D E,9 0分以上为A,8 0 8 9分为B,7 07 9分为C,61 9分为D,6 0分以下为E。mai n()i n t s e l e c t,s c o r e;c h ar g r ad e;p r i n t f(P l e a s e inp u t t h
21、 e s c or e:);s c a nf(%d n”,&s c or e);s e l e c t=s c or e/10;s w it c h(s e l e c t)c a s e 1:c a s ec a s ec a s ec a s ec a s e5:6:7:8:9:c a s e 2:g r a d e=E g r a d e=,D,g r a d e二C g r a d e二B c a s e 10:c a s e 3:c a s e 4:;b r e a k;b r e a k;b r e a k;b r e a k;g r a d e=A;b r e a k;/*注意使
22、用b r e a k语句*/p r int f(g r a d e二%c n,g r a d e);)11、求F ib ona c c i数列4 0个数t t inc l u d e ma in()int n,i,u ni,u n2,u n;u n=u n2 =1;/*设置递推初始值*/f or (i=3;i=4 0;i+)/*用递推法计算第N项 的 值*/u ni=u n2;u n2 =u n;u n=u ni+u n2;p r int f (No.%d is%d n”,n,u n);)12、n!ma in()int n,i;f l oa t t=/*注意阶乘及其和不能定义为整数,此时会溢出
23、,应为长整数或实数。*/p r int f C inp u t n:n);s c a nf (%d,&n);f or(i=l;i=n;i+)t=t*i;p r int f(s u m二%d n”,f);)13、求 l!+2!+3!+.2 0!ma in()int n,i;f l oa t t=l,f=O;/*注意阶乘及其和不能定义为整数,此时会溢出,应为长整数或实数。*/p r int f C inp u t n:n);scan f&n);f or(i=l;i=n;i+)t=t*i;f=f+t;p r int f(s u m=%d n”,f);)100 50 10 114、求 和 力+力2+之
24、k=l k=l k=l 卜ma in()(int i;f l oa t x,y,z,s u m;f or (x=0,i=l;i=100;i+)x+=i;f or (y=0,i=l;i=5 0;i+)y+=i*i;f or (z=0,i=l;i=10;i+)z=z+l.0/i;/*注 意 1.0/i的表示,不能写为1/1*/s u m=x+y+z;p r int f(s a n x ia ng d e h e w e i%f”,s u m);15、打印出所有的水仙花数。ma in()int i,a,b,c;f or (i=100;i=9 9 9;i+)a=i/100;/*取百位*/b=(i-a*
25、100)/10;/*取十位*/c=i%10;/*取个位*/if(a*a*a+b*b*b+c*c*c=i)p r int f(n T h e nu mb e r%d is f l ow e r X n,i);)16、求分数序列前 2 0 项和。2/1+3/2+5/3+8/5+13/8+2 1/13+.ma in()int k;f l oa t i=l,j=2,s u m=0,t;f or (k=l;k 0);p r int f (z,s u m=%d n*,x l);)18、用二分法求下面方程在(T O,10)之间的根。2X-4X2+3X-6=0 inc l u d e ma in()(f l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机语言 语言 历年试题 参考答案
限制150内