编程培训 所有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,l,p,t1,t2,t3,t4; for(i=1;i<38;i+) /*SPACE*/ for(【?】;j<38-i;j+) /*SPACE*/ for(k=j;k<【?】;k+) l=40-i-j-k; for(p=1;p<40;p+) for(t1=-1;t1<2;t1+) for(t2=-1;t2<2;t2+) for(t3=-1;t3<2;t3+) for(t4=-1;t4<2;t4+) /*SPACE*/ if(【?】=p) goto next; break; /*SPACE*/ next:if(p=【?】) printf("%d,%d,%d,%dn",i,j,k,l); exit(0); printf("error.");答案:=(答案1)=j=i=(答案2)=39-i-j=或=39 -i -j=(答案3)=i*t1+j*t2+k*t3+l*t4=或=i * t1 + j * t2 + k * t3 + l * t4=(答案4)=39第2题 (10.0分) 题号:525 难度:较易 第2章/*-【程序填空】-功能:利用全局变量计算长方体的体积及三个面的面积。-*/#include <stdio.h>int s1,s2,s3;int vs(int a,int b,int c) int v; /*SPACE*/ v=【?】; s1=a*b; /*SPACE*/ s2=【?】; s3=a*c; return v;main() int v,l,w,h; printf("ninput length,width and height: "); /*SPACE*/ scanf("%d%d%d",【?】,&w,&h); /*SPACE*/ v=【?】; printf("v=%d s1=%d s2=%d s3=%dn",v,s1,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)=&l=(答案4)=vs(l,w,h)第3题 (10.0分) 题号:356 难度:易 第1章/*-【程序填空】-题目:从键盘输入一组整数,使用条件表达式找出最大的整数。 当输入的整数为 0 时结束。 例如,输入 1 2 3 5 4 0 时,输出"max=5"。-*/#include <stdio.h>#include <conio.h>main() int num=-1; int max = 0; printf("请输入一组整数: n"); /*SPACE*/ 【?】(num!=0) scanf("%d",&num); /*SPACE*/ max = 【?】 ? num : max; /*SPACE*/ 【?】("max=%dn", max);答案:=(答案1)=while=(答案2)=num>max=或=num>=max=或=max<num=或=max<=num=(答案3)=printf第4题 (10.0分) 题号:537 难度:易 第2章/*-【程序填空】-功能:从读入的整数数据中,统计大于零的整数个数和小于零的 整数个数。用输入零来结束输入,程序中用变量i统计大于 零的整数个数,用变量j统计小于零的整数个数。-*/#include <stdio.h>main() int n,i,j; printf("Enter iNT number,with 0 to endn"); i=j=0; scanf("%d",&n); while(n!=0) /*SPACE*/ if(n>0)i=【?】; /*SPACE*/ if(n<0)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以内最大的10个素数之和,high由主函数传 给fun函数,若high的值为100,则函数的值为732。-*/#include <conio.h>#include <stdio.h>#include <math.h>int fun( int high ) int sum=0,n=0,j,yes; /*SPACE*/ while(high>=2) && (【?】) yes=1; 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(N0),它都可以分解成1(或-1)和一些质数(素 数)因子的形式。例如:当N=150时,可分解成12355; 当N=-150时,可分解为-12355。 下边程序能实现这种分解过程。当N=150,输出以下分解结 果:N= 1* 2* 3* 5* 5-*/#include <stdio.h>#include <stdlib.h>main() int n,i,r; scanf("%d",&n); if (n=0) printf ("data error n"); exit(0); /*SPACE*/ else if (【?】) printf("n=1"); else printf("n=-1"); n=-n; /*SPACE*/ for(【?】;i<=n;i+) /*SPACE*/ 【?】 ; while(r=0) printf("*%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章/*-【程序填空】-功能:如果整数的全部因子(包括,不包括本身)之和等 于;且整数的全部因子 ( 包括,不包括本身 ) 之和等于,则将整数和称为亲密数。求 3000 以内 的全部亲密数。-*/#include <stdio.h>#include <stdio.h>main( ) int a, i, b, n ; printf("Friendly-numbers pair samller than 3000:n") ; for(a=1 ; a<3000 ; a+) for(b=0,i=1 ; i<=a/2 ; i+ ) /*SPACE*/ if(!(a%i) 【?】 ; for(n=0,i=1 ; i<=b/2 ; i+) /*SPACE*/ if(!(b%i) 【?】 ; /*SPACE*/ if(【?】 && a<b) /a<=b的话,就包括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元钱能买公鸡、母鸡、小鸡 各多少只?此处用的while循环,之前我们用的for循环-*/#include <stdio.h>main() int cocks,hens,chicks; /公鸡kk,母鸡hen,小鸡tk cocks=0; while(cocks<=19) /*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,chicks); /*SPACE*/ 【?】; /*SPACE*/ 【?】; 答案:=(答案1)=hens=(答案2)=33=(答案3)=hens+=或=+hens=或=hens=hens+1=或=hens=1+hens=(答案4)=cocks+=或=+cocks=或=cocks=cocks+1=或=cocks=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.", 【?】);答案:=(答案1)=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=1,s=0,m; for(n=1;n<=100;n+) k=1; s=0; /*SPACE*/ 【?】 ; /*SPACE*/ while( 【?】 ) k*=m%10; s+=m%10; /*SPACE*/ 【?】; if(k>s) printf("%d ",n); 答案:=(答案1)=m=n=(答案2)=m>0=或=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=1;pi=0;n=1;s=1; /*SPACE*/ while(【?】>=2e-6) pi+=t;n+=2;s=-s;t=s/n; /*SPACE*/ pi*=【?】; printf("pi=%.6fn",pi);答案:=(答案1)=pi=(答案2)=fabs(t)=(答案3)=4第12题 (10.0分) 题号:606 难度:中 第1章/*-【程序填空】-给定程序中,sum(int n)函数的功能是:递归调用计算1n的累加和。请填空。例如:输入:100输出:5050-*/#include "stdio.h"int sum(int n) if(n=1) /*SPACE*/ 【?】; else/*SPACE*/ 【?】;void main() int m; scanf("%d",&m); printf("%d",sum(m);答案:=(答案1)=return(1)=(答案2)=return(sum(n-1) + n)第13题 (10.0分) 题号:360 难度:易 第1章/*-【程序填空】-题目:打印出11000中满足个位上的数字、十位上的数字和百位 上的数字都相等的所有三位数。 本题输出"111,222,333,444,555,666,777,888,999, 1000"-*/#include <stdio.h>main() int i,g, s, b; for (i=1; 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。编写程序, 在程序中用带参数的宏求面积area。-*/#include <stdio.h>#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("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); 答案:=(答案1)=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=1;【?】;x+) /*SPACE*/ for(【?】;y<10;y+) /多思考下,小坑 /*SPACE*/ if(【?】=3848) /*SPACE*/ printf("%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的值返回某个函数的值。 当调用正确时,程序输出:x15.000000,x23.000000,x1*x1+x1*x2=40.000000。-*/#include <stdio.h>double f1(double x) return x*x; double f2(double x, double y) return x*y; double fun(int i, double x, double y) if (i=1)