《编程培训所有C语言题库(修改后).docx》由会员分享,可在线阅读,更多相关《编程培训所有C语言题库(修改后).docx(139页珍藏版)》请在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+) (1=40-
2、i-j-k;for(p=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*
3、t4(q )-39第2题(10.0分)题号:525难度:较易第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(ninput length, width and height: );/*SPACE*/ scanf(*%d%d%d*, ? ,&w,&h);/*SPACE*/v= ?;printf
4、(v=dsl=%d s2=%ds3二dn”, v, si, s2, s3);答案:=(答案 1)二二a*b*c=或=a*c*b b*a*c=或=b*c*ac*a*b=或= c*b*a ,(、b*c或二二二c*b=(答案 3)=(答案 4)= vs(l, w, h)第3题(10.0分)/t题号:356难度:易【程序填空】题目:从键盘输入组整数,使用条件表达式找出最大的整数。当输入的整数为0时结束。例如,输入1 2 3 5 4 0时,输出max=5。*/include #include main ()(int num=-l;int max = 0;printf (请输入组整数:n);/*space
5、*/? (num!=O)scanf (%d, &num);/*SPACE*/max = ? ? 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
6、 iNT number, with 0 to endn):i=j=0;scanf (%d, &n):while(n!=0)(/*SPACE*/if(n0)i= ?;/*$PACE*/if(nO)j= ?;/*SPACE*/scanf(%d, ?);printf(i=%4d, j=%4dn, i, j);答案:=(答案1)=i+1或=1+i=(答案 2)=j+1 1+j(答案3)&n第5题(10.0分)题号:364 难度:中 第6章 【程序填空】功能:计算并输出high以内最大的I0个素数之和,high由主函数传 给fun函数,若high的值为100,则函数的值为732。1,1,1 111 11
7、111111 Iinclude #include include int fun( int high ) int sum=0, n=0, 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)nnn=n=(答案 2)=high%j=0=或=!(high%j)=(答案 3)= return sum
8、return(sum)第6题(10.0分)题号:353难度:易第6章/*【程序填空】功能:对任一整数N(NWO),它都可以分解成1(或1)和一些质数(素 数)因子的形式。例如:当N=150时,可分解成1X2X3X5X5;当N二一150时,可分解为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)
9、;else(printf(n=-l);n=n;)/*space*/for( ? ;i00n=(答案 2)=i=2=(答案3)=r=n%i=(答案 4)= 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)
10、;for(a=l ; a3000 ; a+)(for(b=0,i=l ; i=a/2 ; i+ )/*space* /if(!(a%i) ?;for(n=0,i=l ; i=b/2 ; i+) /*SPACE*/ if(!(b%i) ?;和b相等的情况/*space*/if( ?1 & ab)a=b 的话,就包括printf (%4d%4dn, a, b);)答案:=(答案 1)=b+=i=或=b=b+in+=i肃n=n+i=(答案 3)= n a第8题(10.0分)题号:535难度:易第2章/ *【程序填空】功能:百鸡问题:100元买100只鸡,公鸡只5元钱,母鸡只3 元钱,小鸡一元钱三只,
11、求100元钱能买公鸡、母鸡、小鸡 各多少只?此处用的while循环,之前我们用的for循环*/#include main()(int cocks, hens, chicksi 公鸡 kd:k,母鸡 hen,小鸡 tjik cocks=0;while(cocks=19)I/*SPACE*/?二0;/*SPACE*/while(hens= ?)chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3=100)此处有点问题,应加上&(chicks%3=0),比如3, 20, 77 printf (%d, %d, %dn*, cocks, hens, chick
12、s);/*SPACE*/?;)/*space*/?;答案:=(答案 1)= hens=(答案 2)= 33=(答案 3)= hens+曲+hens=或= hens=hens+l= 或= hens=l+hens=(答案 4)= cocks+=或=+cocks或二二= cocks=cocks+l=二或二二二 cocks=l+cocks第9题(10.0分)题号:345难度:易第1章/*【程序填空】题目:从键盘键盘输入3个整数,然后找出最大的数并输出。例如:输入”12, 45, 43”, 输出,三个数是:12, 45, 43,最大数是:45.。*/include #include main ()int
13、 a, b, c, max;printf (请输入三个整数:n);/*SPACE*/? (%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章/*【程序填空】功能:输出1到100之间每位数的乘积大于每位数的和的数。 例如:数字26,数位上数字的乘积12大于数字之和8。*/include mainOint n, k=l, s=0, m;for(n=l
14、;ns)printf (*%d , n);答案:=(答案1)= m=n=(答案 2)=m00m=(答案 3)=m=m/l0=或=m/=10第11题(10.0分)题号:539难度:较易第2章/*【程序填空】功能:计算圆周率的近似值。需要图片,万维系统有此题,可以尝试猜下*/ttinclude include 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);答案:
15、=(答案 1)=pi(答案2)fabs (t)3)第12题(10.0分)题号:606难度:中第1章 【程序填空】给定程序中,sum(int n)函数的功能是:递归调用计算1n的 累加和。请填空。例如:输入:100输出S5050#include stdio. h int sum(int n)if(n=l)/*space*/?;else/*space*/?);)void main()(int m;scanf(%d, &m);printf(*%d*, sum(m);)答案:=(答案 1)=return (1)=(答案 2)=return(sum(n-l) + n)第13题(10.0分)题号:360
16、难度:易 第1章/*【程序填空】题目:打印出11000中满足个位上的数字、十位上的数字和百位 上的数字都相等的所有三位数。本题输出“111, 222, 333, 444, 555, 666, 777, 888, 999, 1000/include main()(int i, g, s, b;for (i=l; i=1000; i+)/*space*/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分)题号
17、:561 难度:易 第2章【程序填空】功能:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c).其中,s=(a+b+c)/2,a、b、c为三角形三条边的长。定义两个带 参数的宏,个用来求s,另一个用来求area。编写程序, 在程序中用带参数的宏求面积area.*/include #include math, h/*space*/# ? S(x, y, z) (x+y+z)/2#define AREA (s, x, y, z) sqrt (s* (s-x) * (s-y) * (s-z)main()double area;float a, b, c, s; printf
18、(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);)答案:=(答案1)= define=(答案 2)= &b=(答案3)=S(a, b, c)=(答案 4)= AREA(s, a, b, c)第15题(10.0分)题号:557难度:易第2章/ *【程序填空】功能:算式:? 2*7? =3848中缺少个十位数和一个个位数。编 程求出使该算式成立时的这两个数,并输出正确的算式。/#include #
19、include mainO(int x, y;/*space*/for(x=l; ? ;x+)/*SPACE*/for( ? ;y10;y+) 多思考下,小坑 /*space*/ if( ? =3848)(/*SPACE*/ printf(*%d*%d=3848n, ?); exit(0);答案:=(答案 i)=xx=或=x=x=(答案2)y=03)(10*x+2)*(70+y)=或= (10*x+2)*(70+y)-r二r-r士-(J )10*x+2, 70+y=或=10 * x + 2 , 70 + y第16题(10.0分)题号:496 难度:易 第1章/*【程序填空】题目:给定程序中,函
20、数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*/ return ? (x);else/*SPACE*/ return ? (x, y);main()( double xl=5, x2=3, r
21、; r = fund, xl, x2); r += fun(2, xl, x2); printf(nxl二f, x2=%f, xl*xl+xl*x2=%fnn”, xl, x2, r);答案:=(答案 1)= fl=(答案 2)= f2第17题(10.0分)题号:473难度:难【程序填空】题目:甲乙丙丁 4人同时开始放鞭炮,甲每隔tl s放一次,乙每隔t2 s放一次, 丙每隔t3 s放一次,丁每隔t4 s放一次,每人各放n次。函数fun的功能是根据形参炸响,只算一次响声,第一次响声是在第0s。例如:若tl = 7, t2=5, t3=6, t4=4, n=10,则总共可听到28次鞭炮声。0in
22、clude /*SPACE*/define 0K(i, t, n) ( ? =0) & (i/tn)int fun(int tl, int t2, int t3, int t4, int n)intcount,t ,maxt=tl;if(maxtt2)maxt = t2;if(maxtt3)maxt = t3;if (maxt count=l;t4)i*maxt = t4;给count赋初值/*space*/ for(t=l; t maxt*(n-l); ?) (if (0K(t, tl, n) ! I 0K(t, t2, n) | | 0K(t, t3, n) I | 0K(t, t4, n
23、) count+;/*space*/return ?;)mainO(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(m 1000)之间所有数的和。n和m从 键盘输入。例如,输入“1,100”,输出1到100之间所有数的和是:5050o /#includ
24、e #include main() (int i, n, m;long sum;printf(请输入两个正整数:n,mn);/*space*/?(飞d,%d, &n, &m );/*SPACE*/ for( ? ; i=m; i+) (/*space*/sum = ?;)printf (切到%d之间所有数的和是:%ldn, n, m, sum);答案:=:(答案 1)= scanf二(答案2)二i=n=(答案 3)二 sum+i i+sum第19题(10.0分)题号:362 难度:易/*【程序填空】功能:以下程序的功能如(图1)。 没有图片,但1、2、4空可以填 */#include incl
25、ude /*SPACE*/ double f( ?) (/*space*/?;/*space*/if ( ?)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 (-1. 0) +f (5. 0);答案:=:(答案 d= float xdouble x (答案2) double y=(答案 3)= x=xx=x=(答案 4)=return y=或=return (y)第20题(10.0分)题号:444难度:易第1章/*【程序填空】题目:下列给定程序中,函数fun的功
26、能是:找出100到x(x999)之间各位上的数字之和 为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。例如:当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、 258、 267、 276、 285、 294、 339、 348、 357、 366、 375、 384、 393、 429、 438、 447、456、465、474、483、492 共有 26 个。辛/include int fun(int x)(int n, si, s2, s3, t;/*SPACE*/n= ?;t=100;/*space*/while(t999
27、| |x0) 应该为 x= 100printf(Please input(0x=999):); scanf (%d, &x);printf(nThe result is: %dn, fun(x);答案:=(答案 !)=0=(答案 2)=(答案 3)= t+t=t+l=或=t+=l+ +t第21题(10.0分)题号:336难度:易【程序填空】题目:求出-10到30之内能被7或11整除,但不能同时被 7或11整除的所有整数。例如:输出-7, 7,11, 14, 21, 22, 28,.*/#include include main() (int i;/*space*/ for( ? ;i=30;
28、i+) (/*space*/if( (i%7=0 ? i%ll=0) &i%77!=0)/*space*/? (%d,i); )答案:=(答案 1)=i=-10=(答案 2)=II=(答案 3)=printf第22题(10.0分)题号:420难度:易第93章/*【程序填空】题目:以下程序求100200之内的素数。*/ttinclude include math, h”void sushu(int m)Iint k;int i;/*SPACE*/?for(i=2:i=k+l) printf(%4d,m);void main()(int m;for ( m=101;m=200;m+)/*space
29、*/答案:=(答案 1)= k=(int)sqrt (m):=(答案2)= if(m%i=0) break ;=或= if(!(m%i) break ;=(答案 3)= sushu (m)第23题(10.0分)题号:332难度:易/*【程序填空】题目:请输入个大于100的正整数a,将a的百位、十位和个位依 次放在b的个位、十位和百位上。例如:输入321,输出”结果是:123”。*/#include #include main ()(/*SPACE*/ ? a, b;printf (请输入个大于100的正整数:); /*SPACE*/ scanf (%d, ?);b=(a%10)*100 + (
30、a八)%10)*10 + (a/100)%10;/*SPACE*/printf (结果是:%dn【?】);答案:=(答案 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=sK=#inclu
31、de math, h”=(答案 2)=%d%lf%d,%lf=(答案3)=%. 2f=或=%. 21f第25题(10.0分)题号:562难度:易第2章/*【程序填空】功能:要求输出结果为3。*/#include /*space*/int akm( ? , int n)if(m=O)/*SPACE*/ (? n+1;else if(m!=O&n=O)akm(m-l, 1);else if(m!=O&n!=O) akm(m-l, 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”,输出“三个数是:10,41,31 .最小数是:10.include #include main()(/*space*/? a, b, c, min;printf (请输入三个