所有C语言题库.docx
试卷编号:2203所属语言:C语言试卷方案:所有C语言题库试卷总分:1220分共有题型:1种一、程序填空共122题(共计1220分)第1题(10.0分)题号:558难度:中第2章/*【程序填空】功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这4块当祛码能称出140磅的整数重量的物体。编程求这4块的各自重量。*/include <stdio. h>#include <stdlib.h>main ()(int i, j, k,1, p, tl, t2, t3, t4;for(i=l;i<38;i+)/*SPACE*/for(?;j<38-i;j+)/*SPACE*/ for(k=j;k<?;k+)(l=40-i-j-k;for(p=l;p<40;p+)(for(tl=-l;tl<2;tl+)for(t2=-l;t2<2;t2+)for(t3=-l;t3<2;t3+)for (t4=-l;t4<2;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难度:较易第2章/*【程序填空】功能:利用全局变量计算长方体的体积及三个面的面积。*/#include <stdio. h>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, 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 <stdio. h>include <conio. h>main ()(int num=-l;int max =0;printf (请输入一组整数:n");/*space*/?(num!=0)scanf &num);/*SPACE*/ max =? num : max;/*space*/?("max=%dn", max);)答案:=(答案 D=while=(答案2)=num>max=或=num>=max_肃_max<nummax<=num=(答案3)二 printf第4题(10.0分)题号:537难度:易!*【程序填空】功能:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。*/#include <stdio. h>main()(int n, i, j;printf (*'Enter iNT number, with 0 to endn");i=j=0;scanf &n):while(n!=0)(/*space*/if(n>0)i=?;/*$pace*/if(n<O)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。1"11"! Ill Iinclude <conio. h>#include <stdio. h>include <math. h> 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)n<10=或=10>n_n<=9=或=9>=n="(答案2)= high%j=0=或=!(high%j)=(答案3)=return sum return(sum)第6题(10.0分)题号:353难度:易第6章/*【程序填空】功能:对任一整数N(NWO),它都可以分解成1(或-1)和一些质数(素数)因子的形式。例如:当N=150时,可分解成1X2X3X5X5;当N二T50时,可分解为-1X2X3X5X5。下边程序能实现这种分解过程。当N=150,输出以下分解结果:N=1*2*3*5*5*/include <stdio. h>0include <stdlib. h>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(?;i<=n;i+)/*space*/?;while(r=0)(printfC*%d", i);/*space*/?;r=n%i;)printf('n");答案:=(答案1)=n>0_丁_丁_二二前二0<n=(答案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 <stdio.h>#include <stdio. h> main()Iint a, i, b, n ;printf("Friendly-numbers pair samller than 3000:n"); for(a=l ; a<3000; 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)?;/*space*/if(?&& a<b)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 <stdio. h>main()(int cocks, hens, chicks;cocks=0;while(cocks=19)(/*space*/?=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章/*【程序填空】题目:从键盘键盘输入3个整数,然后找出最大的数并输出。例如:输入”12,45,43”,输出”三个数是:12,45,43.最大数是:45.”。*/#include <stdio. h>#include <conio. h>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 (max<c) max=c;/*SPACE*/printf (最大数是:d.",?);答案:=(答案 i)=scanf=(答案2)=a>b=或二=a>=b二=或=b<a=或=b<=a(比案3)=max第10题(10.0分)题号:579难度:易第2章【程序填空】功能:输出1到100之间每位数的乘积大于每位数的和的数。例如:数字26,数位上数字的乘积12大于数字之和8。*/#include <stdio. h>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 (k>s) printf (飞d ", n);答案:=(答案1)=m=n(2)m>0=sR=0<m=(答案3)=m=m/10=或=m/=10第11题(10.0分)题号:539难度:较易第2章【程序填空】功能:计算圆周率的近似值。#include <stdio. h>#include <math. h>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)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 <stdio. h>main()(int i, g, s, b;for (i=l: i<=1000; i+)|/*space*/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 <stdio. h>include "math.h"/*space*/#【?】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+b>c&&b+c>a&&c+a>b)(/*SPACE*/ s=?;/*SPACE*/ area=?;printf(*area=%fn*, area);)答案:=(答案 i)=define=(答案2)=&b=(答案3)=S(a, b, c)(4)AREA(s, a, b, c)第15题(10.0分)题号:557难度:易第2章/*【程序填空】功能:算式:?2*7?=3848中缺少一个十位数和一个个位数。编程求出使该算式成立时的这两个数,并输出正确的算式。include <stdio. h>include <stdlib.h>main ()(int x, y;/*SPACE*/for(x=l;?;x+)/*SPACE*/ for(?;y<10;y+)/*space*/if(?=3848)r/*SPACE*/ printfC%d*%d=3848n',?); exit (0);答案:=(答案1)=x<10=或=:10>x=或=x<=9=或=9>=x=(答案2)=y=0=(答案3)=(10*x+2)*(70+y)(10*x +2)*(70+ y)=(答案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 <stdio. h> 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;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的功能是根据形参炸响,只算一次响声,第一次响声是在第0s。例如:若tl =7, t2=5, t3=6, t4=4, n =10,则总共可听到28次鞭炮声。include <stdio. h>/*SPACE*/define 0K(i, t, n)(?=0)&&(i/t<n)int fun(int tl, int t2, int t3, int t4, int n)(int count, t , maxt=tl;if(maxt<t2)maxt=t2;if(maxt<t3)maxt=t3;if(maxt<t4)maxt=t4;count=1;/*给 count 赋初值*/*space*/ for(t=l; t< maxt*(n-l);?)(if(OK(t, tl, n)| 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(m<1000)之间所有数的和。n和m从键盘输入。例如,输入“1,100”,输出,到100之间所有数的和是:5050o*/include <stdio. h>#include <conio. h>main ()(int i, n, m;long sum=0;printf ("请输入两个正整数:n, m'n");/*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章/*【程序填空】功能:以下程序的功能如(图1)。*/#include <conio. h>include <stdio. h>/*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<=2=2>=x=或=x<=2.0=或=2.0>=x=(答案4)= return y=或= return (y)第20题(10.0分)题号:444难度:易第1章【程序填空】题目:下列给定程序中,函数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、438>447>456、465、474、483、492。共有26个。*/#include <stdio. h>int fun(int x)int n, si, s2, s3, t;/*space*/n=?;t=100;/*space*/while(t<=?)sl=t%10;s2=(t/10)%10;s3=t/100;if(sl+s2+s3=15)|printf ("%d ”, t); n+;/*space*/?;return n;)main ()int x=-l;while(x>999| ix<0)(printf("Please input (0<x<=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 <conio. h>#include <stdio. h>main ()(int i;/*space*/ for(?;i<=30; i+)(/*space*/ if(i%7=0? i%ll=-0)&&遥77!=0)/*space*/【?】("%d,",i);)答案:=(答案1)=i=-10=(答案2)=II=(答案3)= printf第22题(10.0分)题号:420难度:易第93章/*题目:以下程序求100200之内的素数。*/include <stdio. h>0include "math, h”void sushu(int m)int k;int i;/*space*/?for(i=2;i<=k;i+)/*space*/?if(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) break ;=或= if(!(m%i) break ;=(答案3)=sushu (m)第23题(10.0分)/*题号:332 难度:易 第1章题目:请输入一个大于100的正整数a,将a的百位、十位和个位依次放在b的个位、十位和百位上。例如:输入“321,输出结果是:123”。include <conio. h>#include <stdio. h>main ()/*space*/? a, b;printf ("请输入一个大于100的正整数:“);/*space*/scanf ("%d",?);b=(a%10)*100+(a/10)%10)*10+(a/100)%10;/*SPACE*/ printf ("结果是:%dn?);答案:=(答案1)=int(2)&a=(答案3)=b第24题(10.0分)题号:434难度:易第2章/*【程序填空】题目:下列程序从键盘输入所需数据,求出z的值并输出,要求输出结果保留2位小数。#include <stdio. h>/*SPACE*/?main() int x;double y, z;/*SPACE*/ scanf("?",&x,&y); z=2*x*sqrt(y);/*SPACE*/ printf (*z=?", z);答案:=(答案1)=#include<math. h>=include "math, h”(2)%d%lf=sR=二=(答案3)=%.2f=%.21f第25题(10.0分)题号:562难度:易第2章【程序填空】功能:要求输出结果为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”,输出”三个数是:10,41,31.最小数是:10.”。*/ttinclude <stdio. h>#include <conio. h>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=或=mc<minc<=min第27题(10.0分)题号:559难度:易第2章【程序填空】功能:编程求任意给两个日期(Y0年M0月DO日和Y1年Ml月D1日)相差的天数。*/include <stdlib. h> int f(int y)(return(y%4=0&&y%100!=0I