六年级有甲乙丙三个班c语言,电脑编程,所有C语言题库

试卷编号:2203 所属语言:C语言 试卷方案:所有C语言题库 试卷总分:1220分 共有题型:1种 一、程序填空 共122题 (共计1220分)

第1题 (10.0分)

题号:558 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这 4块当砝码能称出1~40磅的整数重量的物体。编程求这4块 的各自重量。

-------------------------------------------------------*/ #include #include 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

=======(答案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 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=%d\n“,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 #include main() { int num=-1; int max = 0; printf(“请输入一组整数: \n“); /***********SPACE***********/ 【?】(num!=0) { scanf(“%d“,&num); /***********SPACE***********/ max = 【?】 ? num : max; } /***********SPACE***********/ 【?】(“max=%d\n“, max); } 答案:

=======(答案1)======= while =======(答案2)======= num>max =========或========= num>=max =========或========= max

题号:537 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:从读入的整数数据中,统计大于零的整数个数和小于零的 整数个数。用输入零来结束输入,程序中用变量i统计大于 零的整数个数,用变量j统计小于零的整数个数。

-------------------------------------------------------*/ #include main() { int n,i,j; printf(“Enter iNT number,with 0 to end\n“); 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=%4d\n“,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 #include #include 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(“%d\n“, 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(N≠0),它都可以分解成1(或-1)和一些质数(素 数)因子的形式。

例如:当N=150时,可分解成1×2×3×5×5;

当N=-150时,可分解为-1×2×3×5×5。

下边程序能实现这种分解过程。当N=150,输出以下分解结 果:N= 1* 2* 3* 5* 5 -------------------------------------------------------*/ #include #include 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

题号:584 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:如果整数A的全部因子(包括1,不包括A本身)之和等 于B;

且整数B的全部因子 ( 包括1,不包括B本身 ) 之和等于A,则将整数A和B称为亲密数。求 3000 以内 的全部亲密数。

-------------------------------------------------------*/ #include #include 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

=======(答案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) { /***********SPACE***********/ 【?】=0; /***********SPACE***********/ while(hens<=【?】) { chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3==100) printf(“%d,%d,%d\n“,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 #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 (max

=======(答案1)======= scanf =======(答案2)======= a>b =========或========= a>=b =========或========= b

题号:579 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输出1到100之间每位数的乘积大于每位数的和的数。

例如:数字26,数位上数字的乘积12大于数字之和8。

-------------------------------------------------------*/ #include 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

题号:539 难度:较易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算圆周率的近似值。

-------------------------------------------------------*/ #include #include 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=%.6f\n“,pi); } 答案:

=======(答案1)======= pi =======(答案2)======= fabs(t) =======(答案3)======= 4 第12题 (10.0分)

题号:606 难度:中 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 给定程序中,sum(int n)函数的功能是:递归调用计算1~n的 累加和。请填空。

例如: 输入: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章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:打印出1~1000中满足个位上的数字、十位上的数字和百位 上的数字都相等的所有三位数。

本题输出“111,222,333,444,555,666,777,888,999, 1000“ -------------------------------------------------------*/ #include 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 #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=%f\n“,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 #include main() { int x,y; /***********SPACE***********/ for(x=1;【?】;x++) /***********SPACE***********/ for(【?】;y<10;y++) /***********SPACE***********/ if(【?】==3848) { /***********SPACE***********/ printf(“%d*%d=3848\n“,【?】); 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的值返回某个函数的值。

当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。

-------------------------------------------------------*/ #include 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) /***********SPACE***********/ return 【?】(x); else /***********SPACE***********/ return 【?】(x, y); } main() { double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2); printf(“\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n“,x1, x2, r); } 答案:

=======(答案1)======= f1 =======(答案2)======= f2 第17题 (10.0分)

题号:473 难度:难 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:甲乙丙丁4人同时开始放鞭炮,甲每隔t1 s放一次,乙每隔t2 s放一次, 丙每隔t3 s放一次,丁每隔t4 s放一次,每人各放n次。

函数fun的功能是根据形参炸响,只算一次响声,第一次响声是在第0s。

例如:若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。

-------------------------------------------------------*/ #include /***********SPACE***********/ #define OK(i, t, n) ((【?】==0) && (i/t

=======(答案1)======= i%t =======(答案2)======= t++ =========或========= t=t+1 =========或========= t+=1 =======(答案3)======= count 第18题 (10.0分)

题号:350 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:计算两个正数数n 和 m(m<1000)之间所有数的和。n和m从 键盘输入。

例如,输入“1,100“,输出“1到100之间所有数的和是:5050。“ -------------------------------------------------------*/ #include #include main() { int i,n,m; long sum=0; printf(“请输入两个正整数:n,m\n“); /***********SPACE***********/ 【?】(“%d,%d“, &n, &m ); /***********SPACE***********/ for(【?】; i<=m; i++) { /***********SPACE***********/ sum = 【?】; } printf(“%d到%d之间所有数的和是:%ld\n“, n, m, sum); } 答案:

=======(答案1)======= scanf =======(答案2)======= i=n =======(答案3)======= sum+i =========或========= i+sum 第19题 (10.0分)

题号:362 难度:易 第8章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序的功能如(图1)。

-------------------------------------------------------*/ #include #include /***********SPACE***********/ double f(【?】) { /***********SPACE***********/ 【?】; /***********SPACE***********/ if (【?】) y=2.0*x*x+3.0*x+4.0; else y=-2.0*x*x+3.0*x-4.0; /***********SPACE***********/ 【?】; } main ( ) { printf(“%f\n“, f(f(-1.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(x≤999)之间各位上的数字之和 为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, s1, s2, s3, t; /***********SPACE***********/ n=【?】; t=100; /***********SPACE***********/ while(t<=【?】) { s1=t%10; s2=(t/10)%10; s3=t/100; if(s1+s2+s3==15) { printf(“%d “,t); n++; } /***********SPACE***********/ 【?】; } return n; } main() { int x=-1; while(x>999||x<0) { printf(“Please input(0

=======(答案1)======= 0 =======(答案2)======= x =======(答案3)======= t++ =========或========= t=t+1 =========或========= t+=1 =========或========= ++t 第21题 (10.0分)

题号:336 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:求出 -10 到 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%11==0) &&i%77!=0) { /***********SPACE***********/ 【?】(“%d,“,i); } } } 答案:

=======(答案1)======= i=-10 =======(答案2)======= || =======(答案3)======= printf 第22题 (10.0分)

题号:420 难度:易 第93章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:以下程序求100~200之内的素数。

-------------------------------------------------------*/ #include #include “math.h“ void sushu(int m) { int k; int i; /***********SPACE***********/ 【?】 for(i=2;i<=k;i++) /***********SPACE***********/ 【?】 if(i>=k+1) 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 #include main () { /***********SPACE***********/ 【?】 a,b; printf (“请输入一个大于100的正整数:“); /***********SPACE***********/ scanf (“%d“, 【?】); b=(a%10)*100 + ((a/10)%10)*10 + (a/100)%10; /***********SPACE***********/ printf (“结果是: %d\n“, 【?】); } 答案:

=======(答案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 =========或========= %d,%lf =======(答案3)======= %.2f =========或========= %.2lf 第25题 (10.0分)

题号:562 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:要求输出结果为3。

-------------------------------------------------------*/ #include /***********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-1)); } main() { /***********SPACE***********/ int m=1,n=1,【?】; s=akm(m,n); printf(“%d“,s); } 答案:

=======(答案1)======= int m =======(答案2)======= return =======(答案3)======= s 第26题 (10.0分)

题号:346 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:从键盘键盘输入3个整数,然后找出最小的数并输出。

例如:输入“10,41,31“, 输出 “三个数是:10,41,31.最小数是:10.“。

-------------------------------------------------------*/ #include #include main() { /***********SPACE***********/ 【?】 a, b, c, min; printf(“请输入三个整数:\n“); scanf(“%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

题号:559 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:编程求任意给两个日期(Y0年M0月DO日和Y1年M1月D1日)

相差的天数。

-------------------------------------------------------*/ #include #include int f(int y) { return(y%4==0&&y%100!=0||y%400==0); } int mday(int y,int m) { return(31-((m==4)+(m==6)+(m==9)+(m==11))-(3-f(y))*(m==2)); } int yday(int y,int m,int d) { return(d+31*((m>1)+(m>3)+(m>5)+(m>7)+(m>8)+(m>10))+30*((m>4)+(m>6)+(m>9)+(m>11))+(28+f(y))*(m>2)); } int yend(int y,int m,int d) { return(365+f(y)-yday(y,m,d)); } main() { int y1,m1,d1,y2,m2,d2,n,i; printf(“y1,m1,d1=“); scanf(“%d,%d,%d“,&y1,&m1,&d1); /***********SPACE***********/ if(m1<1||m1>12||d1<1||d1>【?】) exit(0); printf(“y2,m2,d2=“);scanf(“%d,%d,%d“,&y2,&m2,&d2); /***********SPACE***********/ if(m2<1||m2>12||d2<1||d2>【?】) exit(0); if(y1>y2||y1==y2&&m1>m2||y1==y2&&m1==m2&&d1>d2) { n=y1; y1=y2; y2=n; n=m1; m1=m2; m2=n; n=d1; d1=d2; d2=n; } else { /***********SPACE***********/ n=yend(y1,m1,d1)+【?】; /***********SPACE***********/ for(i=【?】;i%d.%d.%d:n=%d\n“,y1,m1,d1,y2,m2,d2,n); } 答案:

=======(答案1)======= mday(y1,m1) =======(答案2)======= mday(y2,m2) =======(答案3)======= yday(y2,m2,d2) =======(答案4)======= y1+1 =========或========= 1+y1 第28题 (10.0分)

题号:550 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:将长整型数中每一位上为奇数的数依次取出,构成一个新数 放在t中。高位仍在高位,低位仍在低位。

-------------------------------------------------------*/ #include #include void fun (long s, long *t) { int d; long sl=1; /***********SPACE***********/ 【?】 = 0; while ( s > 0) { /***********SPACE***********/ d = 【?】; if(d%2) { /***********SPACE***********/ *t = 【?】 + *t; /***********SPACE***********/ sl 【?】 10; } s /= 10; } } main() { long s, t; printf(“\nPlease enter s:“); scanf(“%ld“, &s); fun(s, &t); printf(“The result is: %ld\n“, t); } 答案:

=======(答案1)======= *t =======(答案2)======= s%10 =======(答案3)======= d * sl =========或========= sl * d =======(答案4)======= *= =========或========= =s* 第29题 (10.0分)

题号:521 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:用circle画圆形。

-------------------------------------------------------*/ #include #include “graphics.h“ main() { int driver,mode,i; float j=1,k=1; driver=VGA;mode=VGAHi; /***********SPACE***********/ initgraph(【?】,&mode,““); setbkcolor(YELLOW); /***********SPACE***********/ for(i=0;i<=25;【?】) { setcolor(8); circle(310,250,k); /***********SPACE***********/ k=【?】; j=j+0.3; } } 答案:

=======(答案1)======= &driver =======(答案2)======= i++ =========或========= ++i =========或========= i=i+1 =======(答案3)======= k+j =========或========= j+k 第30题 (10.0分)

题号:620 难度:中 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 请补充main函数,该函数的功能是求方程ax*x+bx+c=0的两个实数 根。方程的系数a、b、c从键盘输入,如果判别式(disc=b*b-4ac) 小于0,则要求重新输入a、b、c的值。

例如:当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun() 的横线上填入所编写的若干表达式或语句。

试题程序:

-------------------------------------------------------*/ #include #include #include void main() { float a,b,c, disc,x1,x2; system(“CLS“); do { printf(“Input a,b,c:“); scanf(“%f,%f,%f“,&a,&b,&c); disc=b*b-4*a*c; if(disc<0) printf(“disc=%f\n Input again!\n“,disc); } /***********SPACE***********/ while(【?】); printf(“*******the result*******\n“); /***********SPACE***********/ x1=【?】; /***********SPACE***********/ x2=【?】; printf(“\nx1=%6.2f\nx2=%6.2f\n“,x1,x2); } 答案:

=======(答案1)======= disc<0 =========或========= disc<=0 =======(答案2)======= (-b+sqrt(disc))/(2*a) =========或========= (-b-sqrt(disc))/(2*a) =======(答案3)======= (-b-sqrt(disc))/(2*a) =========或========= (-b+sqrt(disc))/(2*a) 第31题 (10.0分)

题号:602 难度:易 第20章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面程序是计算 sum=1+(1+1/2)+(1+1/2+1/3)+... (1+1/2+...1/n)的值。

例如:当n=3,sum=4.3333333 -------------------------------------------------------*/ #include double f(int n) { int i; double s; s=0; for(i=1;i<=n;i++) /***********SPACE***********/ 【?】; return s; } main() { int i,m=3; double sum=0; for(i=1;i<=m;i++) /***********SPACE***********/ 【?】; /***********SPACE***********/ printf(“【?】\n“,sum); } 答案:

=======(答案1)======= s+=1.0/i =========或========= s+=1/i =========或========= s= s + 1.0/i =========或========= s= s + 1/i =======(答案2)======= sum+=f(i) =========或========= sum= sum + f(i) =======(答案3)======= %lf 第32题 (10.0分)

题号:411 难度:易 第91章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:某等差数列的第一项a=2,公差d=3。

下面程序的功能是在前n(1≤n≤10)项和中, 输出所有项的和能被4整除者。请填空。

-------------------------------------------------------*/ #include void main() { int a,d,sum,n,i; /***********SPACE***********/ a=2; d=3;i=1;sum=【?】; scanf(“%d“,&n); do{ sum+=a; i++; /***********SPACE***********/ 【?】; /***********SPACE***********/ if(【?】) printf(“%d\n“,sum); }while(i<=n); } 答案:

=======(答案1)======= 0 =======(答案2)======= a+=d =========或========= a+=3 =========或========= a=a+d =========或========= a=a+3 =======(答案3)======= sum%4==0 第33题 (10.0分)

题号:348 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:从键盘键盘输入3个整数,然后找出最小的数并输出。

例如:输入“10,41,31“, 输出 “三个数是:10,41,31.最小数是:10.“。

-------------------------------------------------------*/ #include #include main() { int a, b, c, min; printf(“请输入三个整数:\n“); /***********SPACE***********/ scanf(“%d,%d,%d“,【?】); printf(“三个数是:%d,%d,%d.“, a, b, c); if (a > b) min=b; else min=a; /***********SPACE***********/ if (【?】) min=c; /***********SPACE***********/ printf(“最小数是:【?】“, min); } 答案:

=======(答案1)======= &a, &b, &c =======(答案2)======= min>c =========或========= min>=c =========或========= c

题号:370 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原 来从高位到低位相反的顺序组成一个新数,作为函数值返回。

例如:输入一个整数27638496,函数返回值为64862。

-------------------------------------------------------*/ #include unsigned long fun(unsigned long n) { unsigned long x=0; int t; while(n) { t=n%10; /***********SPACE***********/ if(t%2==【?】) /***********SPACE***********/ x=【?】+t; /***********SPACE***********/ n=【?】; } return x; } main() { unsigned long n=-1; while(n>99999999||n<0) { printf(“Please input(0

=======(答案1)======= 0 =======(答案2)======= 10*x =========或========= x*10 =======(答案3)======= n/10 第35题 (10.0分)

题号:412 难度:易 第91章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:输入一个5位数,判断它是不是回文数。

例如12321是回文数,即个位与万位相同, 十位与千位相同。请填空。

-------------------------------------------------------*/ #include void fun(long x) { long ge,shi,qian,wan; wan=x/10000; /***********SPACE***********/ qian=【?】; /***********SPACE***********/ shi=【?】; ge=x%10; /***********SPACE***********/ if (【?】) printf(“this number is a huiwen\n“); else printf(“this number is not a huiwen\n“); } void main() { fun(12321); } 答案:

=======(答案1)======= x%10000/1000 =========或========= x/1000%10 =======(答案2)======= x%100/10 =========或========= x/10%10 =======(答案3)======= ge==wan&&shi==qian =========或========= wan==ge&&shi==qian =========或========= ge==wan&&qian==shi =========或========= wan==ge&&qian==shi 第36题 (10.0分)

题号:402 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。

-------------------------------------------------------*/ #include main(){ long int f,s; int i,j,n; /***********SPACE***********/ 【?】; scanf(“%d“,&n); /***********SPACE***********/ for(i=1;i<=n; 【?】) { f=1; /***********SPACE***********/ for(j=1; 【?】;j++) /***********SPACE***********/ 【?】; s=s+f; } printf(“n=%d,s=%ld\n“,n,s); } 答案:

=======(答案1)======= s=0 =======(答案2)======= i+=2 =========或========= i=i+2 =======(答案3)======= j<=i =========或========= i>=j =========或========= i+1>j =========或========= j

题号:471 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用 外部(全局)变量c1、c2、c3返回主函数。

例如:当n=123114350时,结果应该为:c1=3 c2=1 c3=2。

-------------------------------------------------------*/ #include int c1, c2, c3; void fun(long n) { c1=c2=c3=0; while(n) { /***********SPACE***********/ switch(【?】) { case 1: /***********SPACE***********/ c1++;【?】; case 2: /***********SPACE***********/ c2++;【?】; case 3: c3++; } n/=10; } } main() { long n=123114350L; fun(n); printf(“\nThe result: \n“); printf(“n=%ld c1=%d c2=%d c3=%d\n“,n,c1,c2,c3); } 答案:

=======(答案1)======= n%10 =======(答案2)======= break =======(答案3)======= break 第38题 (10.0分)

题号:582 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:不用第三个变量,实现两个数的对调操作。

-------------------------------------------------------*/ #include main() { int a,b; scanf(“%d %d“,&a,&b); printf(“a=%d,b=%d\n“,a,b); /***********SPACE***********/ a= 【?】 ; /***********SPACE***********/ b= 【?】 ; /***********SPACE***********/ a= 【?】 ; printf(“a=%d,b=%d\n“,a,b); } 答案:

=======(答案1)======= a + b =======(答案2)======= a-b =========或========= a -b =======(答案3)======= a-b =========或========= a -b 第39题 (10.0分)

题号:590 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:识别输入的字符串,每个单词输出一行 -------------------------------------------------------*/ #include #include void main() { int c; int inspace; /***********SPACE***********/ 【?】; while((c = getchar()) != '\n') { if(c == ' ' || c == '\t' || c == '\n') { /***********SPACE***********/ if(【?】) { inspace = 1; putchar('\n'); } } else { inspace = 0; /***********SPACE***********/ 【?】; } } } 答案:

=======(答案1)======= inspace = 0 =======(答案2)======= inspace == 0 =======(答案3)======= putchar(c) 第40题 (10.0分)

题号:391 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:下列给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各 位上数字之和为x(x为正整数)的整数,并输出;

符合条件的整数个数作为函数值返回。

例如:当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、 140、203、212、221、230、302、311、320、401、410、500,共有15个。

当x值为27时,各位数字之和为27的整数是:999,只有1个。

-------------------------------------------------------*/ #include int fun(int x) { int n, s1, s2, s3, t; n=0; t=100; /***********SPACE***********/ while(t<=【?】) { s1=t%10; /***********SPACE***********/ s2=(【?】)%10; s3=t/100; /***********SPACE***********/ if(s1+s2+s3==【?】) { printf(“%d “,t); n++; } t++; } return n; } main() { int x=-1; while(x<0) { printf(“Please input(x>0): “); scanf(“%d“,&x); } printf(“\nThe result is: %d\n“,fun(x)); } 答案:

=======(答案1)======= 999 =======(答案2)======= t/10 =======(答案3)======= x 第41题 (10.0分)

题号:405 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:计算100-1000之间有多少个数,其各位数字之和是5 -------------------------------------------------------*/ #include void main() { int i,s,k,count=0; for(i=100;i<1000;i++) { s=0; k=i; /***********SPACE***********/ while(【?】) { s=s+k%10; /***********SPACE***********/ k=【?】; } if(s!=5) /***********SPACE***********/ 【?】; else { count++; printf(“%d %d\n“,count,i); } } printf(“个数为:%d\n“,count); } 答案:

=======(答案1)======= k>0 =========或========= k =========或========= k!=0 =======(答案2)======= k/10 =======(答案3)======= continue 第42题 (10.0分)

题号:468 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:函数fun的功能是:计算如“图片1”直到“图片2” 。

若x=2.5,函数值为1.917915。

-------------------------------------------------------*/ #include #include double fun(double x) { double f, t; int n; f = 1.0 + x; /***********SPACE***********/ t=【?】; n = 1; do { n++; /***********SPACE***********/ t*=(-1.0)*x/【?】; f += t; } /***********SPACE***********/ while(【?】 >=1e-6); return f; } main() { double x, y; x=2.5; y = fun(x); printf(“\nThe result is :\n“); printf(“x=%-12.6f y=%-12.6f\n“, x, y); } 答案:

=======(答案1)======= x =======(答案2)======= n =======(答案3)======= fabs(t) 第43题 (10.0分)

题号:613 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 给定程序中,程序的功能是:输出100以内能被3整除且个位数为6 的所有正整数。请填空。

-------------------------------------------------------*/ #include “stdio.h“ void main() { int i,j; /***********SPACE***********/ for(i=0;【?】; i++) { j=i*10+6; /***********SPACE***********/ if(【?】) continue; printf(“%d “,j); } } 答案:

=======(答案1)======= i<10 =======(答案2)======= i%3!=0 =========或========= j%3!=0 第44题 (10.0分)

题号:510 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入三个整数x,y,z,请把这三个数由小到大输出。

-------------------------------------------------------*/ #include main() { int x,y,z,t; scanf(“%d%d%d“,&x,&y,&z); /***********SPACE***********/ if (x>y){【?】} /***********SPACE***********/ if(x>z){【?】} /***********SPACE***********/ if(y>z){【?】} printf(“small to big: %d %d %d\n“,x,y,z); } 答案:

=======(答案1)======= t=x;x=y;y=t; =======(答案2)======= t=x;x=z;z=t; =======(答案3)======= t=y;y=z;z=t; 第45题 (10.0分)

题号:338 难度:中 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序的功能如(图1)。

-------------------------------------------------------*/ #include #include main() { int f; /***********SPACE***********/ 【?】; double t,pi; t=1;pi=t;f=1;n=1.0; /***********SPACE***********/ while(【?】 ) { n=n+2; /***********SPACE***********/ 【?】; t=f/n; pi=pi+t; } /***********SPACE***********/ 【?】; printf(“pi=%10.6f\n“,pi); } 答案:

=======(答案1)======= float n =========或========= double n =======(答案2)======= fabs(t)>=1e-6 =========或========= fabs(t)>=0.000001 =========或========= 1e-6<=fabs(t) =========或========= 0.000001<=fabs(t) =======(答案3)======= f=-f =========或========= f=-1*f =========或========= f=f*(-1) =========或========= f=f*-1 =========或========= f=(-1)*f =======(答案4)======= pi=pi*4 =========或========= pi*=4 =========或========= pi=4*pi 第46题 (10.0分)

题号:433 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:以下程序输入n和n个大于1的正整数,输出其中素数。

如输入:5 19 93 11 37 15 则输出:19 11 37 例示说明:先输入n为5,再输入5个正整数,输出5个整数中的素数 -------------------------------------------------------*/ #include void main() { int n, a, i, j, ct; scanf( “%d“, &n ); /***********SPACE***********/ for ( i=0;【?】; i++ ) { /***********SPACE***********/ 【?】; scanf( “%d“, &a ); for( j=2; j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值