- 2021-04-22 发布 |
- 37.5 KB |
- 175页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
精编[电脑编程,所有C语言题库] c语言编程题库
[电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 [电脑编程,所有C语言题库] c语言编程题库 试卷编号:2203 所属语言:C语言 试卷方案:所有C语言题库 试卷总分:1220分 共有题型:1种 一、程序填空 共122题 (共计1220分) 第1题 (10.0分) 题号:558 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这 4块当砝码能称出1~40磅的整数重量的物体。编程求这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,%d\n“,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=%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 <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=%d\n“, 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 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 <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(“%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 <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章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:如果整数A的全部因子(包括1,不包括A本身)之和等 于B;且整数B的全部因子 ( 包括1,不包括B本身 ) 之和等于A,则将整数A和B称为亲密数。求 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) printf(“%4d~%4d\n“,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,%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 <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=%.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 <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>cb+c>ac+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 <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=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 <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) /***********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 <stdio.h> /***********SPACE***********/ #define OK(i, t, n) ((【?】==0) (i/t<n)) int fun(int t1, int t2, int t3, int t4, int n) { int count, t , maxt=t1; if (maxt < t2) maxt = t2; if (maxt < t3) maxt = t3; if (maxt < t4) maxt = t4; count=1; /* 给count赋初值 */ /***********SPACE***********/ for(t=1; t< maxt*(n-1); 【?】) { if(OK(t, t1, n) || OK(t, t2, n)|| OK(t, t3, n) || OK(t, t4, n) ) count++; } /***********SPACE***********/ return 【?】; } main() { int t1=7, t2=5, t3=6, t4=4, n=10, r; r = fun(t1, t2, t3, t4, n); printf(“The sound : %d\n“, r); } 答案: =======(答案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 <stdio.h> #include <conio.h> 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 <conio.h> #include <stdio.h> /***********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(“%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 <stdio.h> 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(999||x<0) { printf(“Please input(0<x<=999): “); scanf(“%d“,x); } printf(“\nThe result is: %d\n“,fun(x)); } 答案: =======(答案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 <conio.h> #include <stdio.h> 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 <stdio.h> #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 <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 (“结果是: %d\n“, 【?】); } 答案: =======(答案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 =========或========= %d,%lf =======(答案3)======= %.2f =========或========= %.2lf 第25题 (10.0分) 题号:562 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:要求输出结果为3。 -------------------------------------------------------*/ #include <stdio.h> /***********SPACE***********/ int akm(【?】,int n) { if(m==0) /***********SPACE***********/ 【?】 n+1; else if(m!=0n==0) akm(m-1,1); else if(m!=0n!=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 <stdio.h> #include <conio.h> 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<min =========或========= c<=min 第27题 (10.0分) 题号:559 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:编程求任意给两个日期(Y0年M0月DO日和Y1年M1月D1日) 相差的天数。 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> int f(int y) { return(y%4==0y%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==y2m1>m2||y1==y2m1==m2d1>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<y2;i++) n+=365+f(i); } printf(“%d.%d.%d--->%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 <conio.h> #include <stdio.h> 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 <stdio.h> #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 <math.h> #include <stdio.h> #include <stdlib.h> 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 <stdio.h> 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 <stdio.h> 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 <stdio.h> #include <conio.h> 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<min =========或========= c<=min =======(答案3)======= %d. 第34题 (10.0分) 题号:370 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原 来从高位到低位相反的顺序组成一个新数,作为函数值返回。 例如:输入一个整数27638496,函数返回值为64862。 -------------------------------------------------------*/ #include <stdio.h> 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<n<100000000): “); scanf(“%ld“,n); } printf(“\nThe result is: %ld\n“,fun(n)); } 答案: =======(答案1)======= 0 =======(答案2)======= 10*x =========或========= x*10 =======(答案3)======= n/10 第35题 (10.0分) 题号:412 难度:易 第91章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :输入一个5位数,判断它是不是回文数。 例如12321是回文数,即个位与万位相同, 十位与千位相同。请填空。 -------------------------------------------------------*/ #include <stdio.h> 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==wanshi==qian =========或========= wan==geshi==qian =========或========= ge==wanqian==shi =========或========= wan==geqian==shi 第36题 (10.0分) 题号:402 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------*/ #include <stdio.h> 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<i+1 =======(答案4)======= f=f*j =========或========= f*=j =========或========= f=j*f 第37题 (10.0分) 题号:471 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用 外部(全局)变量c1、c2、c3返回主函数。 例如:当n=123114350时,结果应该为:c1=3 c2=1 c3=2。 -------------------------------------------------------*/ #include <stdio.h> 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 <stdio.h> 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 <stdio.h> #include <string.h> 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 <stdio.h> 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(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<stdio.h> 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 <stdio.h> #include <math.h> 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 <stdio.h> main() { int x,y,z,t; scanf(“%d%d%d“,x,y,z); /***********SPACE***********/ if (y){【?】} /***********SPACE***********/ if(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 <stdio.h> #include <math.h> 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 <stdio.h> void main() { int n, a, i, j, ct; scanf( “%d“, n ); /***********SPACE***********/ for ( i=0;【?】; i++ ) { /***********SPACE***********/ 【?】; scanf( “%d“, a ); for( j=2; j<a; j++ ) /***********SPACE***********/ if (【?】) ct++; if ( ct==0 ) printf( “%d “, a ); } printf( “\n“ ); } 答案: =======(答案1)======= i<n =======(答案2)======= ct=0 =======(答案3)======= a%j==0 第47题 (10.0分) 题号:355 难度:易 第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***********/ while(【?】) { /***********SPACE***********/ scanf(“%d“, 【?】); max = num>max ? num : max; } /***********SPACE***********/ 【?】(“max=%d\n“, max); } 答案: =======(答案1)======= num!=0 =========或========= 0!=num =======(答案2)======= num =======(答案3)======= printf 第48题 (10.0分) 题号:344 难度:中 第6章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作 为终止标记。 -------------------------------------------------------*/ #include <stdio.h> main() { int x,i=0,j=0; float s1=0,s2=0,av1,av2; scanf(“%d“,x); /***********SPACE***********/ while(【?】) { if(x%2==0) { s1=s1+x; i++; } /***********SPACE***********/ 【?】 { s2=s2+x; j++; } /***********SPACE***********/ 【?】; } if(i!=0) av1=s1/i; else av1=0; if(j!=0) /***********SPACE***********/ 【?】 ; else av2=0; printf(“oushujunzhi:%7.2f,jishujunzhi:%7.2f\n“,av1,av2); } 答案: =======(答案1)======= x!=0 =========或========= x =======(答案2)======= else =========或========= else if(x%2==1) =========或========= else if(x%2!=0) =========或========= if(x%2) =======(答案3)======= scanf(“%d“,x) =======(答案4)======= av2=s2/j 第49题 (10.0分) 题号:511 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输出9*9口诀。 -------------------------------------------------------*/ #include <stdio.h> main() { int i,j,result; printf(“\n“); /***********SPACE***********/ for (i=1;【?】;i++) { /***********SPACE***********/for(j=1;j<10;【?】){ result=i*j; /***********SPACE***********/ printf(“%d*%d=%-3d“,i,j,【?】);} printf(“\n“); } } 答案: =======(答案1)======= i<10 =========或========= 10>i =========或========= i<=9 =========或========= 9>=i =======(答案2)======= j++ =========或========= ++j =========或========= j=j+1 =========或========= j=1+j =======(答案3)======= result 第50题 (10.0分) 题号:547 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:1982年我国第三次人口普查,结果全国人口为10.3亿,假 如人口增长率为5%。编写一个程序求在公元多少年总人口 翻了一番。 -------------------------------------------------------*/ #include<stdio.h> void main() { double p1=10.3,p2,r=0.05; int n=1; /***********SPACE***********/ p2=p1*【?】;/***********SPACE***********/ while(p2<=【?】) {n++;/***********SPACE***********/p2=p2*【?】;} /***********SPACE***********/ n=【?】;printf(“%d年人口总数翻了一番,即为%g亿人\n“,n,p2); } 答案: =======(答案1)======= (1+r) =========或========= (r+1) =======(答案2)======= 2*p1 =========或========= p1*2 =======(答案3)======= (1+r) =========或========= (r+1) =======(答案4)======= n+1982 =========或========= 1982+n 第51题 (10.0分) 题号:504 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入3个数a,b,c,按从小到大的顺序输出。 -------------------------------------------------------*/ #include <stdio.h> main() { void swap(int *p1, int *p2); int n1,n2,n3; int *pointer1,*pointer2,*pointer3; printf(“please input 3 number:n1,n2,n3:“); scanf(“%d,%d,%d“,n1,n2,n3); pointer1=n1; pointer2=n2; pointer3=n3; /***********SPACE***********/ if(【?】) swap(pointer1,pointer2); /***********SPACE***********/ if(【?】) swap(pointer1,pointer3); /***********SPACE***********/ if(【?】) swap(pointer2,pointer3); printf(“the sorted numbers are:%d,%d,%d\n“,n1,n2,n3); } /***********SPACE***********/ void swap(【?】) int *p1,*p2; { int p; p=*p1;*p1=*p2;*p2=p; } 答案: =======(答案1)======= n1>n2 =========或========= n2<n1 =========或========= *pointer1>*pointer2 =========或========= *pointer2<*pointer1 =======(答案2)======= n1>n3 =========或========= n3<n1 =========或========= *pointer1>*pointer3 =========或========= *pointer3<*pointer1 =======(答案3)======= n2>n3 =========或========= n3<n2 =========或========= *pointer2>*pointer3 =========或========= *pointer3<*pointer2 =======(答案4)======= p1,p2 第52题 (10.0分) 题号:333 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------*/ #include <stdio.h> 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 =========或========= i++,i++ =======(答案3)======= j<=i =========或========= i>=j =========或========= j<i+1 =========或========= i+1>j =======(答案4)======= f=f*j =========或========= f=j*f =========或========= f*=j 第53题 (10.0分) 题号:347 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :从键盘键盘输入3个整数,然后找出最小的数并输出。 例如:输入“10,41,31“, 输出 “三个数是:10,41,31.最小数是:10.“。 -------------------------------------------------------*/ #include <stdio.h> #include <conio.h> main() { int a, b, c, min; printf(“请输入三个整数:\n“); /***********SPACE***********/ 【?】(“%d,%d,%d“,a, b, c); printf(“三个数是:%d,%d,%d.“, a, b, c); /***********SPACE***********/ if (【?】) min=b; else min=a; if (min > c) min=c; /***********SPACE***********/ printf(“最小数是:%d.“, 【?】); } 答案: =======(答案1)======= scanf =======(答案2)======= a>b =========或========= a>=b =========或========= b<a =========或========= b<=a =======(答案3)======= min 第54题 (10.0分) 题号:351 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :计算两个正数数n 和 m(m<1000)之间所有数的和。n和m从 键盘输入。 例如,输入“1,100“,输出“1到100之间所有数的和是:5050。“-------------------------------------------------------*/ #include <stdio.h> #include <conio.h> main() { int i,n,m; long sum=0; printf(“请输入两个正整数:n,m\n“); /***********SPACE***********/ scanf(“%d,%d“,【?】 ); /***********SPACE***********/ for(i=n;【?】; i++) { /***********SPACE***********/ sum = sum+【?】; } printf(“%d到%d之间所有数的和是:%ld\n“, n, m, sum); } 答案: =======(答案1)======= n,m =======(答案2)======= i<=m =========或========= m>=i =========或========= i<m+1 =========或========= i<1+m =========或========= m+1>i =========或========= 1+m>i =======(答案3)======= i 第55题 (10.0分) 题号:334 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :请输入一个大于100的正整数a,将a的百位、十位和个位依 次放在b的个位、十位和百位上。 例如:输入“321“,输出“结果是:123“。 -------------------------------------------------------*/ #include <conio.h> #include <stdio.h> main () { int a,b; printf (“请输入一个大于100的正整数:“); /***********SPACE***********/ 【?】(“%d“, a); /***********SPACE***********/ b=(【?】)*100 + ((a/10)%10)*10 + (a/100)%10; /***********SPACE***********/ printf (“结果是: 【?】\n“, b); } 答案: =======(答案1)======= scanf =======(答案2)======= a%10 =======(答案3)======= %d 第56题 (10.0分) 题号:359 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :打印出1~1000中满足个位上的数字、十位上的数字和百位 上的数字都相等的所有三位数。 本题输出“111,222,333,444,555,666,777,888,999, “ -------------------------------------------------------*/ #include <stdio.h> main() { int i,g, s, b; /***********SPACE***********/ for (【?】; i<=1000; i++) { /***********SPACE***********/ g=【?】; s=(i/10)%10; /***********SPACE***********/ b=(【?】)%10; if(g==s s==b) printf(“%d,“,i); } } 答案: =======(答案1)======= i=1 =======(答案2)======= i%10 =======(答案3)======= i/100 第57题 (10.0分) 题号:556 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:已知X、Y、Z分别表示0~9中不同的数字,编程求出使算式 XXXX+YYYY+ZZZZ=YXXXZ成立时X、Y、Z的值,并要求打印该 算式。 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> main() { int x,y,z; /***********SPACE***********/ for(x=0;【?】;x++)for(y=0;y<10;y++){ if(y==x) continue; for(z=0;z<10;z++) { /***********SPACE***********/ if(z==x【?】z==y) continue; /***********SPACE***********/ if(1111*(x+y+z)==【?】+1110*x+z) { printf(“x=%d,y=%d,z=%d\n“,x,y,z); /***********SPACE***********/ printf(“%d+%d+%d=%d\n“,1111*x,1111*y,1111*z,【?】); exit(0); }} } } 答案: =======(答案1)======= x<10 =========或========= 10>x =======(答案2)======= || =======(答案3)======= 10000*y =========或========= y*10000 =======(答案4)======= 10000*y+1110*x+z =========或========= 10000 * y + 1110 * x + z 第58题 (10.0分) 题号:538 难度:较难 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算一元二次方程的根。 -------------------------------------------------------*/ #include <stdio.h> /***********SPACE***********/ #include 【?】 main() { double x1,x2,imagpart; float a,b,c,disc,realpart; scanf(“%f%f%f“,a,b,c); printf(“the equation“); /***********SPACE***********/ if(【?】<=1e-6)printf(“is not quadratic\n“); elsedisc=b*b-4*a*c; if(fabs(disc)<=1e-6)printf(“has two equal roots:%-8.4f\n“,-b/(2*a)); /***********SPACE***********/ else if(【?】) {x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf(“has distinct real roots:%8.4f and %.4f\n“,x1,x2); } else {realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(“has complex roots:\n“);printf(“%8.4f=%.4fi\n“,realpart,imagpart);printf(“%8.4f-%.4fi\n“,realpart,imagpart); } } 答案: =======(答案1)======= <math.h> =======(答案2)======= fabs(a) =======(答案3)======= fabs(disc) > 1e-6 =========或========= 1e-6<fabs(disc) 第59题 (10.0分) 题号:566 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为 1~100分。选手最后得分为:去掉一个最高分和一个最低分 后其余8个分数的平均值。请编写一个程序实现。 -------------------------------------------------------*/ #include<stdio.h> void main() { int score,i,max,min,sum; max=-32768; min=32767; sum=0; for(i=1;i<=10;i++) {printf(“input number %d=“,i);/***********SPACE***********/scanf(“%d“,【?】); sum+=score;/***********SPACE***********/if(【?】) max=score; /***********SPACE***********/if(【?】) min=score; } printf(“Canceled max score:%d\nCanceled min score:%d\n“,max,min); /***********SPACE***********/ printf(“Average score:%d\n“,【?】); } 答案: =======(答案1)======= score =======(答案2)======= score>max =========或========= max<score =======(答案3)======= score<min =========或========= min>score =======(答案4)======= (sum-max-min)/8 =========或========= (sum -max - min )/8 第60题 (10.0分) 题号:424 难度:易 第94章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 说明:下面程序的功能是打印出所有的“水仙花数”,请填写 程序所缺内容。 注:水仙花数是指一个三位数的各位数字的立方和是这个数本身。 -------------------------------------------------------*/ #include“stdio.h“ void f( int n) { int i,j,k; i=n/100; /***********SPACE***********/ j=【?】; k=n%10; /***********SPACE***********/ if(【?】) {printf(“%5d\n“,n); } } void main() { void f(int n); int i; for(i=100;i<1000;i++) f(i); } 答案: =======(答案1)======= n/10%10 =========或========= n%100/10 =======(答案2)======= i*100 + j*10 + k == i*i*i + j*j*j + k*k*k =========或========= n == i*i*i + j*j*j + k*k*k 第61题 (10.0分) 题号:599 难度:易 第6章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(“s=%f\n\n“,s); 请填空,使下面用//////....//////标识的程序段的功能与之完全相同。 -------------------------------------------------------*/ #include <stdio.h> main() { double s; int k,n=10; /***********SPACE***********/ 【?】; k=1; /***********SPACE***********/ while(【?】) {s=s+1.0/(k*(k+1));/***********SPACE***********/【?】; } printf(“s=%f\n\n“,s); } 答案: =======(答案1)======= s=1.0 =========或========= s=1 =======(答案2)======= k<=n =======(答案3)======= k++ =========或========= k=k+1 第62题 (10.0分) 题号:522 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:通过函数的递归调用计算阶乘。 -------------------------------------------------------*/ #include <stdio.h> long power(int n) { long f; if(n>1)/***********SPACE***********/f=【?】; else f=1; return(f); } main() { int n; long y; printf(“input a inteager number:\n“); /***********SPACE***********/ scanf(“%d“,【?】); y=power(n); /***********SPACE***********/ printf(“%d!=%ld\n“,n,【?】); } 答案: =======(答案1)======= power(n-1)*n =========或========= n*power(n-1) =======(答案2)======= n =======(答案3)======= power(n) =========或========= y 第63题 (10.0分) 题号:603 难度:易 第20章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:调用函数fun计算m=1-2+3-4+……+9-10,并输出结果。 -------------------------------------------------------*/ #include <stdio.h> int fun( int n) { int m=0,f=1,i; /***********SPACE***********/ for(i=1;【?】;i++) {m+=i*f;/***********SPACE***********/【?】; } /***********SPACE***********/ return 【?】; } main() { printf(“m=%d\n“, fun(10)); } 答案: =======(答案1)======= i<=n =======(答案2)======= f= -f =======(答案3)======= m 第64题 (10.0分) 题号:335 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :请输入一个大于100的正整数a,将a的百位、十位和个位依 次放在b的个位、十位和百位上。 例如:输入“321“,输出“结果是:123“。 -------------------------------------------------------*/ #include <conio.h> #include <stdio.h> main () { /***********SPACE***********/ 【?】 a,b; printf (“请输入一个大于100的正整数:“); /***********SPACE***********/ 【?】(“%d“, a); b=(a%10)*100 + ((a/10)%10)*10 + (a/100)%10; /***********SPACE***********/ printf (“结果是: %d\n“,【?】 ); } 答案: =======(答案1)======= int =======(答案2)======= scanf =======(答案3)======= b 第65题 (10.0分) 题号:352 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :从键盘输入一组整数,使用条件表达式找出最大的整数。 当输入的整数为 0 时结束。 例如,输入 1 2 3 5 4 0 时,输出“max=5“。 -------------------------------------------------------*/ #include <stdio.h> #include <conio.h> main() { /***********SPACE***********/ 【?】 num=-1; int max = 0; printf(“请输入一组整数: \n“); /***********SPACE***********/ 【?】(num!=0) { scanf(“%d“, num); /***********SPACE***********/ max = num>max ? num 【?】 max; } printf(“max=%d\n“, max); } 答案: =======(答案1)======= int =======(答案2)======= while =======(答案3)======= : 第66题 (10.0分) 题号:575 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:用递归法将一个整数n转换成字符串,例如输入483,应输出 对应的字符串“483“。n的位数不确定,可以是任意位数的整 数。 -------------------------------------------------------*/ #include <stdio.h> void convert(int n) { int i; /***********SPACE***********/ if((【?】)!=0) convert(i); /***********SPACE***********/ putchar(n%10+【?】); } main() { int number; printf(“\ninput an integer:“); scanf(“%d“,number); printf(“Output:“); if(number<0) {putchar('-');/***********SPACE***********/【?】; } convert(number); } 答案: =======(答案1)======= i=n/10 =======(答案2)======= '0' =======(答案3)======= number=-number 第67题 (10.0分) 题号:414 难度:易 第92章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:从键盘输入一个大写字母赋给c1,要求改用小写字母输出。 -------------------------------------------------------*/ #include <stdio.h> void main() { char c1,c2; /***********SPACE***********/ c1= 【?】; /***********SPACE***********/ c2= 【?】; printf(“%c,%c“,c1,c2); } 答案: =======(答案1)======= getchar() =======(答案2)======= c1+32 第68题 (10.0分) 题号:598 难度:中 第8章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :下面程序的功能是用递归法求n!。 -------------------------------------------------------*/ #include <stdio.h> void main() { /***********SPACE***********/ 【?】; int n; long y; printf(“input an integer number:“); scanf(“%d“,n); /***********SPACE***********/ y=【?】; printf(“%d!=%ld\n“,n,y); } long fac(int n) { long f; if(n<0) printf(“n<0,data error!“); else if(n==0,n==1) f=1; else /***********SPACE***********/f=【?】; return(f); } 答案: =======(答案1)======= long fac(int n) =======(答案2)======= fac(n) =======(答案3)======= fac(n-1)*n =========或========= n *fac(n-1) 第69题 (10.0分) 题号:467 难度:中 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :函数fun的功能是:计算如“图片1”的前n项之和。 若x=2.5,n=15时,函数值为1.917914。 -------------------------------------------------------*/ #include <stdio.h> #include <math.h> double fun(double x, int n) { double f, t; int i; /***********SPACE***********/ f = 【?】; t = -1; for (i=1; i<n; i++) { /***********SPACE***********/ t *= (【?】)*x/i; /***********SPACE***********/ f += 【?】; } return f; } main() { double x, y; x=2.5; y = fun(x, 15); printf(“\nThe result is :\n“); printf(“x=%-12.6f y=%-12.6f\n“, x, y); } 答案: =======(答案1)======= 1.0 =======(答案2)======= -1 =======(答案3)======= t 第70题 (10.0分) 题号:361 难度:易 第6章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。 -------------------------------------------------------*/ #include <conio.h> #include <stdio.h> /***********SPACE***********/ int fun(【?】 ) { int m=0, mc=0; /***********SPACE***********/ while (k >= 2 【?】) { /***********SPACE***********/if (k%13 == 0 || 【?】){ m=m+k; mc++; }k--; } /***********SPACE***********/ 【?】; } main ( ) { printf(“%d\n“, fun (500)); } 答案: =======(答案1)======= int k =======(答案2)======= mc<10 =========或========= 10>mc =========或========= mc<= 9 =========或========= 9>=mc =======(答案3)======= k%17==0 =========或========= !(k%17) =========或========= k/17*17==k =======(答案4)======= return m =========或========= return (m) 第71题 (10.0分) 题号:340 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:求100-999之间的水仙花数 说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。 例如:153=1^3+5^3+3^3)。 -------------------------------------------------------*/ #include <stdio.h> int fun(int n) { int i,j,k,m; m=n; /***********SPACE***********/ 【?】; for(i=1;i<4;i++) { /***********SPACE***********/ 【?】; m=(m-j)/10; k=k+j*j*j; } if(k==n) /***********SPACE***********/【?】; else return(0);} void main() {int i; for(i=100;i<1000;i++)/***********SPACE***********/ if(【?】==1)printf(“%d is ok!\n“ ,i); } 答案: =======(答案1)======= k=0 =======(答案2)======= j=m%10 =========或========= j=m-m/10*10 =========或========= j=m-10*(m/10) =======(答案3)======= return(1) =======(答案4)======= fun(i) 第72题 (10.0分) 题号:597 难度:易 第5章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :以下程序是实现输出 x,y,z 三个数中的最大者。 -------------------------------------------------------*/ #include<stdio.h> main() { int x = 4, y = 6,z = 7; /***********SPACE***********/int u ,【?】; if(y) /***********SPACE***********/ 【?】;else u = y;if(u>z) v = u; else v=z;printf(“the max is %d“,v ); } 答案: =======(答案1)======= v =======(答案2)======= u=x 第73题 (10.0分) 题号:407 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入整数a和b,交换a和b后输出。 -------------------------------------------------------*/ #include <stdio.h> void main() { int a,b,temp; printf(“输入整数a,b:“); scanf(“%d%d“,a,b); temp=a; /***********SPACE***********/ 【?】; /***********SPACE***********/ 【?】; printf(“a=%d b=%d\n“,a,b); } 答案: =======(答案1)======= a=b =======(答案2)======= b=temp 第74题 (10.0分) 题号:339 难度:中 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输出由字符w构造成的形如W的图形。 w ww w w w w w w w w w w w w www ww -------------------------------------------------------*/ #include <stdio.h> void draw(int n) { int i,j,k,r,m; /***********SPACE***********/ for(i=1; 【?】;i++) {for(j=1;j<=2;j++){ for(r=1;r<i;r++)printf(“ “); printf(“w“); /***********SPACE***********/ for(k=1; 【?】 ;k++)printf(“ “); printf(“w“); for(m=1;m<i;m++)printf(“ “);}/***********SPACE***********/【?】; } } #include <conio.h> main() { int n; printf(“input a number:“); /***********SPACE***********/ 【?】; draw(n); } 答案: =======(答案1)======= i<=n =========或========= n>=i =======(答案2)======= 2*(n-i)>=k =========或========= (n-i)*2>=k =========或========= 2*n-2*i>=k =========或========= n*2-2*i>=k =========或========= n*2-i*2>=k =========或========= 2*n-i*2>=k =========或========= k<=2*(n-i) =========或========= k<=(n-i)*2 =========或========= k<=2*n-2*i =========或========= k<=n*2-2*i =========或========= k<=n*2-i*2 =========或========= k<=2*n-i*2 =======(答案3)======= printf(“\n“) =======(答案4)======= scanf(“%d“,n) 第75题 (10.0分) 题号:604 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 给定程序中,程序的功能是:从键盘输入的字符中统计数字字符 的个数,用换行符结束循环。请填空。 例如: 输入:CADX2012JSJ0623 输出:8 -------------------------------------------------------*/ #include<stdio.h> void main() { int n=0,c; c=getchar(); /***********SPACE***********/ while(【?】) { /***********SPACE***********/if(【?】)n++; c=getchar(); } printf(“%d“,n); } 答案: =======(答案1)======= c!='\n' =======(答案2)======= c>='0' c<='9' 第76题 (10.0分) 题号:367 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。 如“图片1”。 例如:当形参n的值为10时,函数返回值为9.612558。 -------------------------------------------------------*/ #include <stdio.h> double fun(int n) { int i; double s, t; /***********SPACE***********/ s=【?】; /***********SPACE***********/ for(i=1; i<=【?】; i++) { t=2.0*i; /***********SPACE***********/ s=s+(2.0*i-1)*(2.0*i+1)/【?】; } return s; } main() { int n=-1; while(n<0) { printf(“Please input(n>0): “); scanf(“%d“,n); } printf(“\nThe result is: %f\n“,fun(n)); } 答案: =======(答案1)======= 0 =========或========= 0.0 =======(答案2)======= n =======(答案3)======= (t*t) =========或========= (2.0*i)*(2.0*i) 第77题 (10.0分) 题号:431 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :下列程序的功能为:输出100以内能被4整除且个位数为8的所有整数; 请填写适当的符号或语句,使程序实现其功能。 -------------------------------------------------------*/ #include <stdio.h>main(){ int i,j; /***********SPACE***********/ for(i=0;【?】; i++) { j=i*10+8; /***********SPACE***********/ if ( 【?】) /***********SPACE***********/ 【?】; printf(“%d“,j); } } 答案: =======(答案1)======= i<10 =========或========= i<=9 =======(答案2)======= j%4!=0 =========或========= j%4 =======(答案3)======= continue 第78题 (10.0分) 题号:358 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :打印出1~1000中满足个位数字的立方等于其本身的所有数。 本题输出“1,64,125,216,729,“。 -------------------------------------------------------*/ #include <stdio.h> main() { int i, g; for (i=1; i<=1000; i++) { /***********SPACE***********/ g = 【?】; /***********SPACE***********/ if (【?】) /***********SPACE***********/ 【?】(“%d,“, i); } } 答案: =======(答案1)======= i%10 =======(答案2)======= i==g*g*g =========或========= g*g*g==i =======(答案3)======= printf 第79题 (10.0分) 题号:357 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :打印出1~1000中满足个位数字的立方等于其本身的所有数。 本题输出“1,64,125,216,729,“。 -------------------------------------------------------*/ #include <stdio.h> main() { int i, g; /***********SPACE***********/ for (【?】; i<=1000; i++) { g = i%10; /***********SPACE***********/ if (【?】) /***********SPACE***********/ printf(“【?】“, i); } } 答案: =======(答案1)======= i=1 =======(答案2)======= i==g*g*g =========或========= g*g*g==i =======(答案3)======= %d, 第80题 (10.0分) 题号:551 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:企业发放的奖金根据利润提成。利润(i)低于或等于10万元 时,奖金可提10%;利润高于10万元,低于20万元时,低于 10万元的部分按10%提成,高于10万元的部分,可可提成7.5% ;20万到40万之间时,高于20万元的部分,可提成5%;40万 到60万之间时高于40万元的部分,可提成3%;60万到100万 之间时,高于60万元的部分,可提成1.5%,高于100万元时, 超过100万元的部分按1%提成,从键盘输入当月利润i,求 应发放奖金总数? -------------------------------------------------------*/ #include <stdio.h> main() { long int i; double bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf(“%ld“,i); bonus1=100000*0.1;bonus2=bonus1+100000*0.075; bonus4=bonus2+200000*0.05; bonus6=bonus4+200000*0.03; bonus10=bonus6+400000*0.015; if(i<=100000)bonus=i*0.1; /***********SPACE***********/ else if(【?】) bonus=bonus1+(i-100000)*0.075; /***********SPACE***********/ else if(【?】) bonus=bonus2+(i-200000)*0.05; /***********SPACE***********/ else if(【?】) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000)bonus=bonus6+(i-600000)*0.015; elsebonus=bonus10+(i-1000000)*0.01; /***********SPACE***********/ 【?】(“bonus=%lf“,bonus); } 答案: =======(答案1)======= i<=200000 =========或========= 200000>=i =======(答案2)======= i<=400000 =========或========= 400000>=i =======(答案3)======= i<=600000 =========或========= 600000>=i =======(答案4)======= printf 第81题 (10.0分) 题号:507 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:打印出如下图案(菱形)* *** ***** ******* ***** *** * -------------------------------------------------------*/ #include <stdio.h> main() { int i,j,k; /***********SPACE***********/ for(i=0;【?】;i++) {for(j=0;j<=4-i;j++) printf(“ “);/***********SPACE***********/for(k=1;k<=【?】;k++) printf(“*“);printf(“\n“); } /***********SPACE***********/ for(【?】;j<3;j++) {for(k=0;k<j+3;k++) printf(“ “);for(k=0;k<5-2*j;k++) printf(“*“); printf(“\n“); } } 答案: =======(答案1)======= i<=3 =========或========= i<4 =========或========= 3>=i =========或========= 4>i =======(答案2)======= 2*i+1 =========或========= i*2+1 =========或========= 1+2*i =========或========= 1+i*2 =======(答案3)======= j=0 第82题 (10.0分) 题号:363 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :从键盘输入一个三位数的正整数,其个位与百位相加若等于 十位上的数字则输出“Yes“,否则输出“No“。 例如,输入“176“,则输出“Yes“。输入“258“,则输出“No“ -------------------------------------------------------*/ #include <stdio.h> main() { int i,g, s, b; printf(“请输入一个三位的正整数:“); /***********SPACE***********/ scanf (“%d“,【?】); /***********SPACE***********/ g=【?】; s=(i/10) %10; /***********SPACE***********/ b=(【?】)%10; if((g+b)%10 ==s) printf(“Yes“); else printf(“No“); } 答案: =======(答案1)======= i =======(答案2)======= i%10 =======(答案3)======= i/100 第83题 (10.0分) 题号:469 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :函数fun的功能是:计算如“图片1”的前n项。 若x=2.5,函数值为12.182340。 -------------------------------------------------------*/ #include <stdio.h> double fun(double x, int n) { double f, t; int i; f = 1.0; /***********SPACE***********/ t=【?】; /***********SPACE***********/ for(i=【?】;i<n;i++) { /***********SPACE***********/ t*=x/【?】; f += t; } return f; } main() { double x, y; x=2.5; y = fun(x, 12); printf(“\nThe result is :\n“); printf(“x=%-12.6fy=%-12.6f\n“, x, y); } 答案: =======(答案1)======= 1.0 =========或========= 1 =======(答案2)======= 1 =======(答案3)======= i 第84题 (10.0分) 题号:541 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:将字母转换成密码,转换规则是将当前字母变成其后的第 四个字母,但W变成A、X变成B、Y变成C、Z变成D。小写字 母的转换规则同样。 -------------------------------------------------------*/ #include <stdio.h> main() { char c; /***********SPACE***********/ while((c=【?】)!='\n') {/***********SPACE***********/if((c>='a'c<='z')||(c>='A'c<='Z'))【?】;/***********SPACE***********/if((c>'Z'【?】c<='Z'+4)||c>'z') c-=26;printf(“%c“,c); } } 答案: =======(答案1)======= getchar() =======(答案2)======= c+=4 =========或========= c=c+4 =========或========= c=4+c =======(答案3)======= 第85题 (10.0分) 题号:616 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 给定程序中,程序的功能是:由键盘输入10个整数,计算这10个 整数中的奇数和与偶数和。请填空。 -------------------------------------------------------*/ #include <stdio.h> void main() { int a,b,c,i; a=c=0; for(i=1;i<=10;i++) { scanf(“%d“,b); /***********SPACE***********/if(【?】)a=a+b; else /***********SPACE***********/【?】; } printf(“偶数的和=%d\n“,a); printf(“奇数的和=%d\n“,c); } 答案: =======(答案1)======= b%2==0 =======(答案2)======= c=c+b =========或========= c=b+c 第86题 (10.0分) 题号:528 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算某日是当年的第几天。 -------------------------------------------------------*/ #include <stdio.h> struct { int year; int month; int day; }data; /* 定义一个结构并声明对象为data */ void main() { int days; printf(“请输入日期(年,月,日):“); scanf(“%d, %d, %d“, data.year, data.month, data.day); switch(data.month) {case 1:days = data.day; break;/***********SPACE***********/case 2:days = data.day+【?】; break;case 3:days = data.day+59; break;case 4:days = data.day+90; break; /***********SPACE***********/case 5:days = data.day+【?】; break;case 6:days = data.day+151; break;case 7:days = data.day+181; break;case 8:days = data.day+212; break;case 9:days = data.day+243; break; case 10:days = data.day+273; break; case 11:days = data.day+304; break; case 12:days = data.day+334; break; } /***********SPACE***********/ if(data.year%4==0data.year%100!=0【?】data.year%400==0)if(data.month>=3) /***********SPACE***********/ days =【?】; printf(“%d月%d日是%d年的第%d天.\n“, data.month, data.day, data.year, days); } 答案: =======(答案1)======= 31 =======(答案2)======= 120 =======(答案3)======= || =======(答案4)======= days + 1 =========或========= 1+days 第87题 (10.0分) 题号:600 难度:易 第4章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :以下程序的功能是:输出a、b、c三个变量中的最小值。 -------------------------------------------------------*/ #include <stdio.h> main() { int a,b,c,t1,t2; /***********SPACE***********/ scanf(“%d%d%d“,a,b, 【?】); t1=a<b? a:b; /***********SPACE***********/ t2=c<t1? 【?】; printf(“%d\n“,t2); } 答案: =======(答案1)======= c =======(答案2)======= c:t1 第88题 (10.0分) 题号:536 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入一个学生的生日(年:y0、月:m0、日:d0),并输 入当前日期(年:y1、月:m1、日:d1)。求出该学生的 年龄(实足年龄)。 -------------------------------------------------------*/ #include <stdio.h> main() {int age,y0,y1,m0,m1,d0,d1; printf(“输入生日日期(年,月,日)“); /***********SPACE***********/ 【?】(“%d,%d,%d“,y0,m0,d0); printf(“输入当前日期(年,月,日)“); scanf(“%d,%d,%d“,y1,m1,d1); age=y1-y0; /***********SPACE***********/ if(m0【?】m1)age--; /***********SPACE***********/ if((m0【?】m1)(d0>d1))age--; printf(“age=%3d“,age); } 答案: =======(答案1)======= scanf =======(答案2)======= > =======(答案3)======= == 第89题 (10.0分) 题号:544 难度:难 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输出两个整数中大的那个数,两个整数由键盘输入。 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> void main() { int *p1,*p2; /***********SPACE***********/ p1=【?】malloc(sizeof(int)); p2=(int*)malloc(sizeof(int)); /***********SPACE***********/ scanf(“%d%d“,【?】,p2); if(*p2>*p1) *p1=*p2; free(p2); /***********SPACE***********/ printf(“max=%d\n“,【?】); } 答案: =======(答案1)======= (int *) =======(答案2)======= p1 =======(答案3)======= *p1 第90题 (10.0分) 题号:404 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :求100以内个位数为6且能够被3整除的所有数 -------------------------------------------------------*/ #include<stdio.h> void main() { int i,j; /***********SPACE***********/ for(i=0;【?】;i++) { j=i*10+6; /***********SPACE***********/ if(【?】) continue; printf(“%d\t“,j); } } 答案: =======(答案1)======= i<10 =========或========= i<=9 =======(答案2)======= j%3!=0 =========或========= (j/3)*3!=j =========或========= 3*(j/3)!=j =========或========= j%3 第91题 (10.0分) 题号:342 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :从键盘键盘输入3个整数,然后找出最大的数并输出。 例如:输入“12,45,43“, 输出 “三个数是:12,45,43.最大数是:45.“。 -------------------------------------------------------*/ #include <stdio.h> #include <conio.h> main() { /***********SPACE***********/ 【?】 a, b, c, max; printf(“请输入三个整数:\n“); scanf(“%d,%d,%d“,a, b, c); printf(“三个数是:%d,%d,%d.“, a, b, c); /***********SPACE***********/ if (a > b) 【?】; else max=b; /***********SPACE***********/ if (【?】) max=c; printf(“最大数是:%d.“, max); } 答案: =======(答案1)======= int =======(答案2)======= max=a =======(答案3)======= max<c =========或========= max<=c =========或========= c>max =========或========= c>=max 第92题 (10.0分) 题号:587 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:一个自然数被 8 除余 1 ,所得的商被 8 除也余 1 ,再 将第二次的商被8 除后余7 ,最后得到一个商为a。又知这 个自然数被17除余4 ,所得的商被17除余15,最后得到一 个商是a的2倍。编写程序求这个自然数。 -------------------------------------------------------*/ #include <stdio.h> main( ) { int i,n,a ; i=0 ; while(1) {if(i%8==1) { n=i/8 ; if(n%8==1) { n=n/8 ; /***********SPACE***********/ if(n%8==7) 【?】 ; } } if(i%17==4) { n=i/17 ; if(n%17==15) n=n/17 ;} if(2*a==n) { printf(“result=%d\n“,i) ; /***********SPACE***********/ 【?】 ; } /***********SPACE***********/【?】; } } 答案: =======(答案1)======= a=n/8 =======(答案2)======= break =======(答案3)======= i++ =========或========= ++i =========或========= i=i+1 第93题 (10.0分) 题号:553 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:编程求任意给定的n个数中的奇数的连乘积,偶数的平方和 以及0的个数,n通过scanf()函数输入。 -------------------------------------------------------*/ #include <stdio.h> main() { int r=1,s=0,t=0,n,a,i; printf(“n=“);scanf(“%d“,n); for(i=1;i<=n;i++) {printf(“a=“);/***********SPACE***********/scanf(“%d“,【?】);/***********SPACE***********/if(【?】!=0) /***********SPACE***********/ 【?】=a;else if(a!=0) /***********SPACE***********/ s+=【?】;else t++; } printf(“r=%d,s=%d,t=%d\n“,r,s,t); } 答案: =======(答案1)======= a =======(答案2)======= a%2 =======(答案3)======= r* =======(答案4)======= a*a 第94题 (10.0分) 题号:372 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字 符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换 成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。 -------------------------------------------------------*/ #include <stdio.h> /***********SPACE***********/ char fun(【?】) { /***********SPACE***********/ if (ch>='0' 【?】) /***********SPACE***********/ return '9'- (ch-【?】); return ch ; } main() { char c1, c2; printf(“\nThe result :\n“); c1='2'; c2 = fun(c1); printf(“c1=%c c2=%c\n“, c1, c2); c1='8'; c2 = fun(c1); printf(“c1=%c c2=%c\n“, c1, c2); c1='a'; c2 = fun(c1); printf(“c1=%c c2=%c\n“, c1, c2); } 答案: =======(答案1)======= char ch =======(答案2)======= ch<='9' =======(答案3)======= '0' 第95题 (10.0分) 题号:354 难度:易 第5章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序的功能如(图1)。 -------------------------------------------------------*/ #include <stdio.h> /***********SPACE***********/ 【?】 main() { double x,f; scanf(“%lf“,x); /***********SPACE***********/ if(x<0) 【?】; /***********SPACE***********/ else if(【?】)f=2*x+1; else f=sin(x)+5; /***********SPACE***********/ printf(“x=%f,y=%f\n“, 【?】); } 答案: =======(答案1)======= #include “math.h“ =========或========= #include <math.h> =======(答案2)======= f=fabs(x+1) =======(答案3)======= x<=5 =========或========= 5>=x =========或========= x<6 =========或========= 6>x =========或========= =0x<=5 =========或========= 0<=xx<=5 =========或========= =05>=x =========或========= 0<=x5>=x =========或========= !(5) =======(答案4)======= x,f 第96题 (10.0分) 题号:506 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙 队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比 赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出 三队赛手的名单。 -------------------------------------------------------*/ #include <stdio.h> main() { char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/ for(i='x';i<='z';i++)for(j='x';j<='z';j++){ /***********SPACE***********/ if(【?】) /***********SPACE***********/ for(k='x';【?】;k++) { /***********SPACE***********/ if(【?】) { /***********SPACE***********/ if(i!='x'k!=【?】) printf(“order is a--%c\tb--%c\tc--%c\n“,i,j,k); } }} } 答案: =======(答案1)======= i!=j =========或========= j!=i =======(答案2)======= k<='z' =========或========= 'z'>=k =======(答案3)======= i!=kj!=k =======(答案4)======= 'z' 第97题 (10.0分) 题号:614 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 给定程序中,程序的功能是:从键盘输入的字符中统计数字字符 的个数,用换行符结束循环。请填空。 例如: 输入:12ab34cd 输出:4 -------------------------------------------------------*/ #include<stdio.h> void main() { int n=0,c; c=getchar(); /***********SPACE***********/ while(【?】) { /***********SPACE***********/if(【?】)n++; c=getchar(); } printf(“ %d个数字\n“,n); } 答案: =======(答案1)======= c!='\n' =======(答案2)======= c>='0' c<='9' 第98题 (10.0分) 题号:435 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- : 以下程序按每行5个数的格式输出1至n范围内能被7或17 整除的整数,并求出其和。 如输入:50 则输出: 7 14 17 21 28 34 35 42 49 Sum=247 -------------------------------------------------------*/ #include <stdio.h> void main() { int i, n, ct=0, sum=0; scanf( “%d“, n ); for ( i=1; i<=n; i++ ) /***********SPACE***********/ if (【?】) { printf( “%d\t“, i ); /***********SPACE***********/ 【?】; ct++; /***********SPACE***********/ if (【?】) printf( “\n“ ); } printf( “\nSum=%d\n“, sum ); } 答案: =======(答案1)======= i%7==0 || i%17==0 =======(答案2)======= sum+=i =========或========= sum=sum+i =======(答案3)======= ct%5==0 第99题 (10.0分) 题号:509 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入某年某月某日,判断这一天是这一年的第几天? -------------------------------------------------------*/ #include <stdio.h> main() { int day,month,year,sum,leap; printf(“\nplease input year,month,day\n“); scanf(“%d,%d,%d“,year,month,day); switch(month) {case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;/***********SPACE***********/case 4:【?】;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf(“data error“);break; } /***********SPACE***********/ 【?】; /***********SPACE***********/ if(year%400==0||【?】)leap=1; elseleap=0; /***********SPACE***********/ if(【?】)sum++; printf(“it is the %dth day.“,sum); } 答案: =======(答案1)======= sum=90 =======(答案2)======= sum=sum+day =========或========= sum+=day =======(答案3)======= (year%4==0year%100!=0) =========或========= (year%100!=0year%4==0) =======(答案4)======= leap==1month>2 =========或========= leap==12<month =========或========= 2<monthleap==1 =========或========= month>2leap==1 =========或========= leap!=0month>2 第100题 (10.0分) 题号:466 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大 写英文字母;若ch中是大写英文字母,则转换成对应的小写英文字母;若是其他字 符则保持不变;并转换后的结果作为函数值返回。 -------------------------------------------------------*/ #include <stdio.h> #include <ctype.h> char fun(char ch) { /***********SPACE***********/ if ((ch>='a')【?】(ch<='z')) return ch -'a' + 'A'; if ( isupper(ch) ) /***********SPACE***********/ return ch +【?】 ; /***********SPACE***********/ return 【?】; } main() { char c1, c2; printf(“\nThe result :\n“); c1='w'; c2 = fun(c1); printf(“c1=%c c2=%c\n“, c1, c2); c1='W'; c2 = fun(c1); printf(“c1=%c c2=%c\n“, c1, c2); c1='8'; c2 = fun(c1); printf(“c1=%c c2=%c\n“, c1, c2); } 答案: =======(答案1)======= =======(答案2)======= 'a' - 'A' =========或========= 32 =======(答案3)======= ch 第101题 (10.0分) 题号:540 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算平均成绩并统计90分以上人数。 -------------------------------------------------------*/ #include <stdio.h> main() { int n,m; float grade,average; average=0.0; /***********SPACE***********/ n=m=【?】; while(1) {/***********SPACE***********/ 【?】(“%f“,grade);if(grade<0) break;n++;average+=grade;/***********SPACE***********/if(grade<90)【?】;m++; } if(n) printf(“%.2f%d\n“,average/n,m); } 答案: =======(答案1)======= 0 =======(答案2)======= scanf =======(答案3)======= continue 第102题 (10.0分) 题号:542 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:要求输出如下结果: b=-1 a=65535 a=65534 a=30 b=6 c=5 按要求在空中填入合适的变量完善程序。 -------------------------------------------------------*/ #include <stdio.h> main() { /***********SPACE***********/ int b=-1,【?】;unsigned short a; /***********SPACE***********/ a=【?】; printf(“b=%d a=%u\n“,b,a); /***********SPACE***********/ 【?】+=b; printf(“a=%u\n“,a); /***********SPACE***********/ b=(a=30)/【?】; printf(“a=%d b=%d c=%d\n“,a,b,c); } 答案: =======(答案1)======= c =======(答案2)======= b =======(答案3)======= a =======(答案4)======= (c=5) 第103题 (10.0分) 题号:343 难度:易 第6章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输出100到1000之间的各位数字之和能被15整除的所有数, 输出时每10个一行。 -------------------------------------------------------*/ #include <stdio.h> main() { int m,n,k,i=0; for(m=100;m<=1000;m++) {/***********SPACE***********/【?】;n=m;do{ /***********SPACE***********/ k=k+【?】 ; n=n/10; } /***********SPACE***********/ 【?】; if (k%15==0) { printf(“%5d“,m);i++; /***********SPACE***********/ if(i%10==0) 【?】; } } } 答案: =======(答案1)======= k=0 =======(答案2)======= n%10 =========或========= n-n/10*10 =========或========= n-10*(n/10) =======(答案3)======= while(n>0) =========或========= while(0<n) =========或========= while(n!=0) =========或========= while(0!=n) =========或========= while(n) =======(答案4)======= printf(“\n“) 第104题 (10.0分) 题号:426 难度:难 第95章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 说明:下面程序的功能是统计文件中字符个数,请填写程序所缺 内容。 -------------------------------------------------------*/ #include “stdio.h“ void main() { /***********SPACE***********/ 【?】*fp;long num=0L; if((fp=fopen(“fname.dat“,“r“))==NULL) { printf(“Open error\n“); } /***********SPACE***********/ while(【?】) { fgetc(fp); num++; } /***********SPACE***********/ printf(“num=%1d\n“,【?】); fclose(fp); } 答案: =======(答案1)======= FILE =======(答案2)======= !feof(fp) =======(答案3)======= num-1 第105题 (10.0分) 题号:427 难度:易 第95章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 说明:sum函数的功能为计算1+2+3+……+n的累加和,请填写程序 所缺内容。 -------------------------------------------------------*/ #include“stdio.h“ int sum(int n) { /***********SPACE***********/ int i,【?】; for(i=1;i<=n;i++) /***********SPACE***********/ 【?】; return(sum) ; } void main() { int sum(int n); int a,b; scanf(“%d“,a); b=sum(a); printf(“%d\n“,b); } 答案: =======(答案1)======= sum=0 =======(答案2)======= sum=sum+i =========或========= sum=i+sum =========或========= sum+=i 第106题 (10.0分) 题号:534 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:百马百担问题:有100匹马,驮100担货,大马驮三担,中 马驮2担,两匹小马驮一担,求大、中、小马各多少匹? -------------------------------------------------------*/ #include <stdio.h> main() { int hb,hm,hl,n=0; /***********SPACE***********/ for(hb=0;hb<=100;hb+=【?】)/***********SPACE***********/for(hm=0;hm<=100-hb;hm+=【?】){ /***********SPACE***********/ hl=100-hb-【?】; /***********SPACE***********/ if(hb/3+hm/2+2*【?】==100) { n++; printf(“hb=%d,hm=%d,hl=%d\n“,hb/3,hm/2,2*hl); }} printf(“n=%d\n“,n); } 答案: =======(答案1)======= 3 =======(答案2)======= 2 =======(答案3)======= hm =======(答案4)======= hl 第107题 (10.0分) 题号:568 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:把字符串中所有的字母改写成该字母的下一个字母,最后 一个字母z改写成字母a。大字母仍为大写字母,小写字母 仍为小写字母,其它的字符不变。 例如:原有的字符串为:“Mn.123xyZ”,调用该函数后,串中的 内容为:“No.123yzA”。 -------------------------------------------------------*/ #include <string.h> #include <stdio.h> #include <ctype.h> #define N 81 main( ) { char a[N],*s; printf ( “Enter a string : “ ); gets ( a ); printf ( “The original string is : “ ); puts( a ); /***********SPACE***********/ 【?】; while(*s) {if(*s=='z') *s='a';else if(*s=='Z') *s='A';else if(isalpha(*s)) /***********SPACE***********/ 【?】; /***********SPACE***********/ 【?】; } printf ( “The string after modified : “); puts ( a ); } 答案: =======(答案1)======= s=a =======(答案2)======= *s+=1 =========或========= *s=*s+1 =========或========= (*s)++ =========或========= ++(*s) =======(答案3)======= s++ =========或========= s=s+1 =========或========= ++s =========或========= s= s + 1 第108题 (10.0分) 题号:549 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:从低位开始取出长整型变量s中奇数位上的数,依次构成一 个新数放在t中。 -------------------------------------------------------*/ #include <conio.h> #include <stdio.h> void fun (long s, long *t) { long sl=10; s /= 10; /***********SPACE***********/ *t = s 【?】 10; while(s>0) { /***********SPACE***********/s = 【?】;/***********SPACE***********/*t = s%10*sl【?】;/***********SPACE***********/sl = sl 【?】10; } } main() { long s, t; printf(“\nPlease enter s:“); scanf(“%ld“, s); fun(s, t); printf(“The result is: %ld\n“, t); } 答案: =======(答案1)======= % =======(答案2)======= s/100 =======(答案3)======= + *t =======(答案4)======= * 第109题 (10.0分) 题号:409 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面程序的功能是用do-while语句求1至1000之间满足 “用3除余2;且用5除余3“的数,且一行只打印五个数。 -------------------------------------------------------*/ #include <stdio.h> main() { int i=1,j=0; do{ /***********SPACE***********/ if(【?】) { printf(“%4d“,i); j=j+1; /***********SPACE***********/ if(【?】) printf(“\n“); } i=i+1; }while(i<1000); } 答案: =======(答案1)======= i%3==2i%5==3 =======(答案2)======= j%5==0 =========或========= !(j%5) 第110题 (10.0分) 题号:513 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:要求输出结果为: A,B 65,66 -------------------------------------------------------*/ #include<stdio.h> void main() { /***********SPACE***********/ char a,【?】; /***********SPACE***********/ a=【?】; b='b'; a=a-32; /***********SPACE***********/ b=b-【?】; printf(“%c, %c\n%d,%d\n“,a,b,a,b); } 答案: =======(答案1)======= b =======(答案2)======= 'a' =========或========= 97 =======(答案3)======= 32 第111题 (10.0分) 题号:341 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :求出 -10 到 30 之内能被 7 或 11 整除,但不能同时被 7 或 11 整除的所有整数。 例如:输出“-7,7,11,14,21,22,28,“。 -------------------------------------------------------*/ #include <conio.h> #include <stdio.h> main() { int i; /***********SPACE***********/ 【?】(i=-10;i<=30; i++) { /***********SPACE***********/ if((i%7==0 || i%11==0) 【?】 i%77!=0) { /***********SPACE***********/ printf(“【?】“,i); } } } 答案: =======(答案1)======= for =======(答案2)======= =======(答案3)======= %d, 第112题 (10.0分) 题号:410 难度:易 第91章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :下列程序的功能是输入一个正整数,判断是否能被3或7整除,若不能被3或7整除, 就 输出“YES“,否则就输出“NO“。请填空。 -------------------------------------------------------*/ #include <stdio.h>void main( ) { int k; /***********SPACE***********/ scanf (“%d“,【?】); /***********SPACE***********/ if (【?】) printf(“YES\n“); else printf (“NO\n“); } 答案: =======(答案1)======= k =======(答案2)======= !((k%3==0)||(k%7==0)) =========或========= !((k%7==0)||(k%3==0)) =========或========= k%3!=0k%7!=0 =========或========= k%7!=0k%3!=0 =========或========= (k%3!=0)(k%7!=0) =========或========= (k%7!=0)(k%3!=0) =========或========= !(k%3==0||k%7==0) =========或========= !(k%7==0||k%3==0) 第113题 (10.0分) 题号:516 难度:中 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入两个整数,求他们的按位与。 -------------------------------------------------------*/ #include<stdio.h> void main() { int x,y,z=0,a,b,k=1; scanf(“%d,%d“,x,y); while(0y>0) {a=x%2;/***********SPACE***********/x=【?】;b=y%2;y=y/2;/***********SPACE***********/z=z+【?】;k=k*2; } /***********SPACE***********/ 【?】(“z=%d\n“,z); } 答案: =======(答案1)======= x/2 =======(答案2)======= a*b*k =========或========= a*k*b =========或========= b*a*k =========或========= b*k*a =========或========= k*a*b =========或========= k*b*a =======(答案3)======= printf 第114题 (10.0分) 题号:423 难度:易 第94章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 说明:fun函数的功能是计算s=1+1/2!+1/3!+……+1/n!,请填写 程序所缺内容。 -------------------------------------------------------*/ #include “stdio.h“ double fun(int n) { double s=0.0,fac=1.0;int i;for(i=1; i<=n; i++){ /***********SPACE***********/ fac=fac * 【?】; /***********SPACE***********/ s=【?】; } return s; } void main() { double fun(int n); double s; int t; scanf(“%d“,t); s=fun(t); printf(“s=%f\n“,s); } 答案: =======(答案1)======= 1.0/i =========或========= 1/i =======(答案2)======= s+fac =========或========= fac+s 第115题 (10.0分) 题号:397 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 -- ------------------------------------------------------- :下列给定程序中,函数fun的功能是计算下式如“图片1“直到如“图片2“, 并将计算结果作为函数值返回。 例如:若形参e的值为1e-3,函数的返回值为2.985678。 -------------------------------------------------------*/ #include <stdio.h> double fun(double e) { int i; double s, x; s=0; /***********SPACE***********/ i=【?】; x=1.0; while(e) { /***********SPACE***********/ 【?】; /***********SPACE***********/ x=(2.0*i-1)/(【?】); s=s+x; } return s; } main() { double e=1e-3; printf(“\nThe result is: %f\n“,fun(e)); } 答案: =======(答案1)======= 0 =======(答案2)======= i++ =========或========= i=i+1 =========或========= i+=1 =========或========= ++i =======(答案3)======= (2.0*i)*(2.0*i) =========或========= (2.0*i)*(i*2.0) =========或========= (i*2.0)*(i*2.0) =========或========= (i*2.0)*(2.0*i) 第116题 (10.0分) 题号:337 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出 其和。 -------------------------------------------------------*/ #include <stdio.h> #include <conio.h> main() { int i,n,sum; sum=0; /***********SPACE***********/ 【?】; /***********SPACE***********/ for(i=1; 【?】 ;i++) /***********SPACE***********/if(【?】) if(i%2==0) { sum=sum+i; n++; printf(“%6d“,i); /***********SPACE***********/ if(【?】) printf(“\n“); } printf(“\ntotal=%d“,sum); } 答案: =======(答案1)======= n=0 =======(答案2)======= i<=300 =========或========= i<300 =========或========= 300>=i =========或========= 300>i =======(答案3)======= i%7==0||i%17==0 =========或========= !(i%7)||!(i%17) =========或========= !(i%17)||!(i%7) =========或========= !(i%7i%17) =======(答案4)======= n%5==0 =========或========= !(n%5) =========或========= n/5*5==n 第117题 (10.0分) 题号:366 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :下列给定程序中,函数fun的功能是:计算如下公式如“图片1”直到如“图片2”, 并且把计算结果作为函数值返回。 例如:若形参e的值为1e-3,则函数返回值为0.551690。 -------------------------------------------------------*/ #include <stdio.h> double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; /***********SPACE***********/ x=【?】/4; /***********SPACE***********/ while(x 【?】e) { s=s+k*x; k=k* (-1); t=2*i; /***********SPACE***********/ x=【?】/(t*t); i++; } return s; } main() { double e=1e-3; printf(“\nThe result is: %f\n“,fun(e)); } 答案: =======(答案1)======= 3.0 =========或========= (double)3 =========或========= (float)3 =======(答案2)======= > =======(答案3)======= (t+1) =========或========= (1+t) 第118题 (10.0分) 题号:417 难度:难 第92章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- :以下mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回. -------------------------------------------------------*/ #include <stdio.h> int mystrlen( char *str) {int i; /***********SPACE***********/for(i=0;【?】!='\0';i++) ; /***********SPACE***********/ return(【?】); } void main( ) { char *str=“abcdefg“; printf(“%d\n“,mystrlen(str)); } 答案: =======(答案1)======= *(str+i) =======(答案2)======= i 第119题 (10.0分) 题号:470 难度:易 第1章 /*------------------------------------------------------- 【程序填空】 -- ------------------------------------------------------- :函数fun的功能是:统计所有小于等于n(n>2)的素数的个数, 素数的个数作为函数值返回。 -------------------------------------------------------*/ #include <stdio.h> int fun(int n) { int i,j, count=0; printf(“\nThe prime number between 3 to %d\n“, n); for (i=3; i<=n; i++) { /***********SPACE***********/ for (【?】; j<i; j++) /***********SPACE***********/ if (【?】 == 0) break; /***********SPACE***********/ if (【?】>=i) { count++; printf( count%15? “%5d“:“\n%5d“,i); } } return count; } main() { int n=20, r; r = fun(n); printf(“\nThe number of prime is : %d\n“, r); } 答案: =======(答案1)======= j=2 =======(答案2)======= i%j =======(答案3)======= j 第120题 (10.0分) 题号:555 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:已知一个数列,它的头两项分别是0和1,从第三项开始以 后的每项都是其前两项之和。编程打印此数,直到某项的 值超过200为止。 -------------------------------------------------------*/ #include <stdio.h> main() { int i,f1=0,f2=1; /***********SPACE***********/ for(【?】;;i++) {printf(“5%d“,f1);/***********SPACE***********/if(f1>【?】) break;printf(“5%d“,f2);if(f2>200) break;if(i%2==0) printf(“\n“);f1+=f2;/***********SPACE***********/f2+=【?】; } printf(“\n“); } 答案: =======(答案1)======= i=1 =======(答案2)======= 200 =======(答案3)======= f1 第121题 (10.0分) 题号:349 难度:易 第6章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:求两个非负整数的最大公约数和最小公倍数。 -------------------------------------------------------*/ #include <stdio.h> main() { int m,n,r,p,gcd,lcm; scanf(“%d%d“,m,n); if(m<n) {p=m,m=n;n=p;} p=m*n; r=m%n; /***********SPACE***********/ while(【?】 ) { /***********SPACE***********/m=n;n=r; 【?】; } /***********SPACE***********/ gcd=【?】;lcm=p/gcd; /***********SPACE***********/ printf(“gcd=%d,lcm=%d\n“, 【?】); } 答案: =======(答案1)======= 0!=r =========或========= r =========或========= r!=0 =========或========= r>0 =======(答案2)======= r=m%n =========或========= r=m-m/n*n =======(答案3)======= n =======(答案4)======= gcd,lcm =========或========= n,lcm 第122题 (10.0分) 题号:572 难度:难 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:用二分法求方程2X^3+4X^2+3X-6=0在(-10,10)之间的根 ,其中 X^n代表X的n次方。 -------------------------------------------------------*/ #include <stdio.h> # include <math.h> main() { float x0,x1,x2,fx0,fx1,fx2; do {printf(“Enter x1x2:“);scanf(“%f,%f“,x1,x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6; /***********SPACE***********/ }while (fx1*fx2【?】); do {x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;/***********SPACE***********/if(fx0*fx1【?】) { x2=x0; fx2=fx0;}else{ x1=x0; fx1=fx0;} } /***********SPACE***********/ while(【?】>=1e-5); printf(“x=%6.2f\n“,x0); } 答案: =======(答案1)======= >0 =======(答案2)======= <0 =======(答案3)======= fabs(fx0) 查看更多