《所有C语言题库.docx》由会员分享,可在线阅读,更多相关《所有C语言题库.docx(140页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、试卷编号:2203所属语言:C语言试卷方案:所有C语言题库试卷总分:1220分共有题型:1种一、程序填空共122题(共计1220分)第1题(10.0分)题号:558难度:中第2章/*【程序填空】功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这4块当祛码能称出140磅的整数重量的物体。编程求这4块的各自重量。*/include #include main ()(int i, j, k,1, p, tl, t2, t3, t4;for(i=l;i38;i+)/*SPACE*/for(?;j38-i;j+)/*SPACE*/ for(k=j;k?;k+)(l=40-i-j-k;for(p
2、=l;p40;p+)(for(tl=-l;tl2;tl+)for(t2=-l;t22;t2+)for(t3=-l;t32;t3+)for (t4=-l;t42;t4+)/*SPACE*/ if(?=p) goto next;break;/*SPACE*/next:if(p=?)printf(*%d,%d,%d,%dn”, i, j, k,1);exit(0);printf (error.);答案:(案1)= j二i=(答案2)=39-i-j 39-i -j=(答案3)=i*tl+j*t2+k*t3+l*t4=或=i*tl+j*t2+k*t3+l*t4(4)39第2题(10.0分)题号:525难
3、度:较易第2章/*【程序填空】功能:利用全局变量计算长方体的体积及三个面的面积。*/#include int si, s2, s3;int vs(int a, int b, int c)(int v;/*SPACE*/v=?;sl=a*b;/*SPACE*/s2=?;s3=a*c;return v;main ()(int v,1, w, h;printf(Xninput length, width and height:);/*SPACE*/ scanf(*%d%d%d*,?,&w,&h);/*SPACE*/v=?;printf (*v=%dsl=%d s2=%ds3=%dn*, v, si,
4、 s2, s3);答案:=(答案1)=a*b*c=或=a*c*b b*a*c=或=b*c*a_c*a*b=或=c*b*a,(2)b*c=或=c*b=(答案3)=(答案4)= vs(l, w, h)第3题(10.0分)/t题号:356难度:易【程序填空】题目:从键盘输入一组整数,使用条件表达式找出最大的整数。当输入的整数为0时结束。例如,输入123540时,输出max=5。*/include include main ()(int num=-l;int max =0;printf (请输入一组整数:n);/*space*/?(num!=0)scanf &num);/*SPACE*/ max =?
5、 num : max;/*space*/?(max=%dn, max);)答案:=(答案 D=while=(答案2)=nummax=或=num=max_肃_maxnummax=num=(答案3)二 printf第4题(10.0分)题号:537难度:易!*【程序填空】功能:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。*/#include main()(int n, i, j;printf (*Enter iNT number, with 0 to endn);i=j=0;scanf &n):wh
6、ile(n!=0)(/*space*/if(n0)i=?;/*$pace*/if(nO)j=?;/*space*/scanf (飞d,?);printf Ci=%4d, j=%4dn, i, j);答案:=(答案1)=i+1=或=1+i=(答案2)=j+11+j(答案3)&n第5题(10.0分)题号:364难度:中第6章【程序填空】功能:计算并输出high以内最大的10个素数之和,high由主函数传给fun函数,若high的值为100,则函数的值为732。111! Ill Iinclude #include include int fun( int high )int sum=0, n=0,
7、j, yes;/*SPACE*/ while(high=2)&(?)(yes=l;for (j=2;j=high/2;j+)/*SPACE*/ if (?)(yes=0;break; if(yes)(sum+=high;n+;) high一;)/*space*/?;main()printf(%dn”, fun(100);答案:(免案1)nn_n=n=(答案2)= high%j=0=或=!(high%j)=(答案3)=return sum return(sum)第6题(10.0分)题号:353难度:易第6章/*【程序填空】功能:对任一整数N(NWO),它都可以分解成1(或-1)和一些质数(素数)
8、因子的形式。例如:当N=150时,可分解成1X2X3X5X5;当N二T50时,可分解为-1X2X3X5X5。下边程序能实现这种分解过程。当N=150,输出以下分解结果:N=1*2*3*5*5*/include 0include main ()(int n, i, r;scanf (%d,&n);if (n=0)printf (data error n);exit(0);/*space*/else if (?)printf(*n=l*);else(printf (n=T);n=n;)/*space*/for(?;i0_丁_丁_二二前二0n=(答案2)=i=2=(答案3)=r=n%i=(答案4)=
9、 n=n/i=或n/=i第7题(10.0分)题号:584 难度:中 第2章【程序填空】功能:如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A ,则将整数A和B称为亲密数。求3000以内的全部亲密数。include #include main()Iint a, i, b, n ;printf(Friendly-numbers pair samller than 3000:n); for(a=l ; a3000; a+)(for(b=0,i=l ; i=a/2; i+)/*space*/ if(!(a%i)?;for(n=0,i=l ;
10、i=b/2; i+)/*space*/ if(!(b%i)?;/*space*/if(?& ab)printf (%4d%4dn”, a, b);)答案:=(答案1)=b+=i=或=b=b+i=(答案2)=n+=i二=二_肃_二二_二-二_n=n+i=(答案3)= n a第8题(10.0分)题号:535难度:易第2章/*【程序填空】功能:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?*/#include main()(int cocks, hens, chicks;cocks=0;while(cocks=19)(/*s
11、pace*/?=0;/*SPACE*/while(hens=?)chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3=100)printf (%d,%d,%dn”, cocks, hens, chicks);/*SPACE*/?;/*SPACE*/?;答案:(答案1)=hens =(答案2)=33=(答案3)= hens+=或=+hens=或= hens=hens+l= hens=l+hens;(答案4)= cocks+=丁_1_+cocks=或=cocks=cocks+lcocks=1+cocks第9题(10.0分)题号:345难度:易第1章/*【
12、程序填空】题目:从键盘键盘输入3个整数,然后找出最大的数并输出。例如:输入”12,45,43”,输出”三个数是:12,45,43.最大数是:45.”。*/#include #include main ()(int a, b, c, max;printf (“请输入三个整数:n);/*space*/?(%d,%d,%d,&a,&b,&c);printf (三个数是:%d,%d,%d.,a, b, c);/*space*/if (?) max=a;else max=b;if (maxb=或二=a=b二=或=ba=或=b=a(比案3)=max第10题(10.0分)题号:579难度:易第2章【程序填空
13、】功能:输出1到100之间每位数的乘积大于每位数的和的数。例如:数字26,数位上数字的乘积12大于数字之和8。*/#include main()(int n, k=l, s=0, m;for(n=l;n=100;n+)k=l;s=0;/*space*/?;/*space*/while(?)k*=m%10;s+=m%10;/*SPACE*/?;!if (ks) printf (飞d , n);答案:=(答案1)=m=n(2)m0=sR=0m=(答案3)=m=m/10=或=m/=10第11题(10.0分)题号:539难度:较易第2章【程序填空】功能:计算圆周率的近似值。#include #incl
14、ude main ()int s, n;/*space*/double ?, t;t=l;pi=0;n=l;s=l;/*SPACE*/ while(?=2e-6)(pi+=t;n+=2;s=s;t=s/n;)/*SPACE*/ pi*=(?);printf (pi=%.6fn, pi);答案:=(答案i)=pi=(答案2) =fabs (t)=(答案3)=第12题(10.0分)题号:606 难度:中 第1章【程序填空】给定程序中,sum(int n)函数的功能是:递归调用计算1n的累加和。请填空。例如:输入:100输出:5050*/include stdio. h* int sum(int n
15、)if(n=l)/*space*/?;else/*space*/?;void main()(int m;scanf &m);printf sum(m);)答案:=(答案1)=return(l)=(答案2)=return(sum(n-1)+ n)第13题(10.0分)题号:360难度:易第1章程序填空】题目:打印出11000中满足个位上的数字、十位上的数字和百位上的数字都相等的所有三位数。本题输出T11,222,333,444,555,666,777,888,999,1000*include main()(int i, g, s, b;for (i=l: i=1000; i+)|/*space*
16、/g=?;s=(i/10)%10;/*space*/b=(?)%10;/*space*/ if(g=s ? s=b) printf (*%d, i);答案:=(答案1)= i%10=(答案2)= i/100=(答案3)=&第14题(10.0分)题号:561难度:易第2章【程序填空】功能:三角形的面积为:area二sqrt (s*(s-a)*(s-b)*(s-c).其中,s=(a+b+c)/2, a、b、c为三角形三条边的长。定义两个带参数的宏,一个用来求s,另一个用来求area。编写程序,在程序中用带参数的宏求面积areao#include include math.h/*space*/#【?
17、】S(x, y, z)(x+y+z)/2define AREA(s, x, y, z) sqrt (s*(s-x)*(s-y)*(s-z)main ()(double area;float a, b, c, s;printf (a, b, c=);/*SPACE*/scanf (*%f,%f,%f*,&a,【?】,&c);if(a+bc&b+ca&c+ab)(/*SPACE*/ s=?;/*SPACE*/ area=?;printf(*area=%fn*, area);)答案:=(答案 i)=define=(答案2)=&b=(答案3)=S(a, b, c)(4)AREA(s, a, b, c)
18、第15题(10.0分)题号:557难度:易第2章/*【程序填空】功能:算式:?2*7?=3848中缺少一个十位数和一个个位数。编程求出使该算式成立时的这两个数,并输出正确的算式。include include main ()(int x, y;/*SPACE*/for(x=l;?;x+)/*SPACE*/ for(?;y10;y+)/*space*/if(?=3848)r/*SPACE*/ printfC%d*%d=3848n,?); exit (0);答案:=(答案1)=xx=或=x=x=(答案2)=y=0=(答案3)=(10*x+2)*(70+y)(10*x +2)*(70+ y)=(答案
19、4)=10*x+2,70+y=或=10* x +2,70+y第16题(10.0分)题号:496难度:易第1章【程序填空】题目:给定程序中,函数fun的功能是:根据形参i的值返回某个函数的值。当调用正确时,程序输出:xl=5.000000, x2=3.000000, xl*xl+xl*x2=40. OOOOOOo*/include double fl(double x)(return x*x;double f2(double x, double y)( return x*y;double fun(int i, double x, double y)(if (i=l)/*SPACE*/ retur
20、n ?(x);else/*SPACE*/ return ?(x, y);main ()(double xl=5, x2=3, r;r = fund, xl, x2);r += fun(2, xl, x2);printfCnxl=%f, x2=%f, xl*xl+xl*x2=%fnn, xl, x2, r);答案:=(答案1)= fl=(答案2) f2第17题(10.0分)题号:473难度:难第1章/*【程序填空】题目:甲乙丙丁4人同时开始放鞭炮,甲每隔11 s放一次,乙每隔12 s放一次,丙每隔t3 s放一次,丁每隔t4 s放一次,每人各放n次。函数fun的功能是根据形参炸响,只算一次响声,第
21、一次响声是在第0s。例如:若tl =7, t2=5, t3=6, t4=4, n =10,则总共可听到28次鞭炮声。include /*SPACE*/define 0K(i, t, n)(?=0)&(i/tn)int fun(int tl, int t2, int t3, int t4, int n)(int count, t , maxt=tl;if(maxtt2)maxt=t2;if(maxtt3)maxt=t3;if(maxtt4)maxt=t4;count=1;/*给 count 赋初值*/*space*/ for(t=l; t maxt*(n-l);?)(if(OK(t, tl, n
22、)| OK(t, t2, n)| OK(t, t3, n)| OK(t, t4, n) count+;/*space*/return ?;)main ()(int tl=7, t2=5, t3=6, t4=4, n=10, r;r = fun(tl, t2, t3, t4, n);printf(*The sound :%dn*, r);答案:=(答案1)= i%t(分案2)= t+t=t+l二=二_肃_二二_二-二_t+=l=(答案3)=count第18题(10.0分)题号:350难度:易第1章/*【程序填空】题目:计算两个正数数n和m(m1000)之间所有数的和。n和m从键盘输入。例如,输入
23、“1,100”,输出,到100之间所有数的和是:5050o*/include #include main ()(int i, n, m;long sum=0;printf (请输入两个正整数:n, mn);/*space*/? C%d,%d,&n,&m );/*space*/ for(?; i=m; i+)(/*space*/sum =?;)printf (%d 到%d 之间所有数的和是:%ldn*, n, m, sum);答案:=(答案 i)=scanf=(答案2)=i=n(答案3)sum+i=或=i+sum第19题(10.0分)题号:362难度:易第8章/*【程序填空】功能:以下程序的功能
24、如(图1)。*/#include include /*space*/ double f(?)(/*space*/?;/*space*/if (?1)y=2.0*x*x+3.0*x+4.0;elsey=-2.0*x*x+3.0*x-4.0;/*space*/?:main () printf(*%fn*, f(f(-l.0)+f(5.0);答案:=(答案1)= float x=或=double x=(答案2)= double y=(答案3)= x=x=或=x=x=(答案4)= return y=或= return (y)第20题(10.0分)题号:444难度:易第1章【程序填空】题目:下列给定程序
25、中,函数fun的功能是:找出100到x(xW999)之间各位上的数字之和为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。例如:当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438447456、465、474、483、492。共有26个。*/#include int fun(int x)int n, si, s2, s3, t;/*space*/n=?;t=100;/*space*/while(t999| ix0)(prin
26、tf(Please input (0x=999):); scanf &x);)printf(*nThe result is:%dn”,fun(x);答案:=(答案1)=0=(答案2)=x=(答案3) t+=或=t=t+l t+=l二或+t第21题(10.0分)题号:336难度:易【程序填空】题目:求出T0到30之内能被7或11整除,但不能同时被7或11整除的所有整数。例如:输出-7,7,11,14,21,22,28,”。#include #include main ()(int i;/*space*/ for(?;i=30; i+)(/*space*/ if(i%7=0? i%ll=-0)&遥
27、77!=0)/*space*/【?】(%d,i);)答案:=(答案1)=i=-10=(答案2)=II=(答案3)= printf第22题(10.0分)题号:420难度:易第93章/*题目:以下程序求100200之内的素数。*/include 0include math, h”void sushu(int m)int k;int i;/*space*/?for(i=2;i=k+l) printf(%4d”,m);void main()(int m;for ( m=101;m=200;m+)/*SPACE*/?;)答案:=(答案1)= k=(int)sqrt(m);=(答案2)二if(m%i=0)
28、 break ;=或= if(!(m%i) break ;=(答案3)=sushu (m)第23题(10.0分)/*题号:332 难度:易 第1章题目:请输入一个大于100的正整数a,将a的百位、十位和个位依次放在b的个位、十位和百位上。例如:输入“321,输出结果是:123”。include #include main ()/*space*/? a, b;printf (请输入一个大于100的正整数:“);/*space*/scanf (%d,?);b=(a%10)*100+(a/10)%10)*10+(a/100)%10;/*SPACE*/ printf (结果是:%dn?);答案:=(答
29、案1)=int(2)&a=(答案3)=b第24题(10.0分)题号:434难度:易第2章/*【程序填空】题目:下列程序从键盘输入所需数据,求出z的值并输出,要求输出结果保留2位小数。#include /*SPACE*/?main() int x;double y, z;/*SPACE*/ scanf(?,&x,&y); z=2*x*sqrt(y);/*SPACE*/ printf (*z=?, z);答案:=(答案1)=#include=include math, h”(2)%d%lf=sR=二=(答案3)=%.2f=%.21f第25题(10.0分)题号:562难度:易第2章【程序填空】功能:
30、要求输出结果为3。/*space*/int akm(?, int n)(if (m=0)/*SPACE*/? n+1;else if(m!=0&n=0)akm (m_1,1);else if(m!=0&n!二0) akm(m-1, akm(m, n-l);)main ()(/*SPACE*/ int m=l, n=l,?;s=akm (m, n);printf s);答案:=(答案1)=int m(分案2)=return=(答案3)=第26题(10.0分)题号:346难度:易第1章【程序填空】题目:从键盘键盘输入3个整数,然后找出最小的数并输出。例如:输入”10,41,31”,输出”三个数是:
31、10,41,31.最小数是:10.”。*/ttinclude #include mainO(/*space*/? a, b, c, min;printf (请输入三个整数:n);scanfC%d,%d,%d*,&a,&b,&c);printf (三个数是:%d,%d,%d.,a, b, c);/*space*/if (a b) min=b; else ?;/*space*/if (?) min=c;printf (最小数是:%d.”, min);答案:(答案1)=int=(答案2)=min=a=(答案3)=min c=或=min=c=或=mcminc=min第27题(10.0分)题号:559难度:易第2章【程序填空】功能:编程求任意给两个日期(Y0年M0月DO日和Y1年Ml月D1日)相差的天数。*/include int f(int y)(return(y%4=0&y%100!=0I