{
/***********SPACE***********/ if(z==x【?】z==y) continue;
/***********SPACE***********/ if(1111*(x+y+z)==【?】+1110*x+z) {
printf(\ /***********SPACE***********/
printf(\【?】); exit(0); } } } }
答案:1). x<10 或 10>x 2). ||
3). 10000*y 或 y*10000 4). 10000*y+1110*x+z 或 10000 * y + 1110 * x + z
第20题 (10.0分) 题号:416
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:计算个人与各科平均成绩及全班平均成绩,并在屏幕上显 示出来。
------------------------------------------------------*/ #define M 5 /*定义符号常量 人数为5*/ #define N 4 /*定义符号常量 课程为4*/ #include \main() {
int i,j;
void aver(float sco[M+1][N+1]); static float score[M+1][N+1]={{78,85,83,65}, {88,91,89,93}, {72,65,54,75},{86,88,75,60},{69,60,50,72}}; aver(score); clrscr();
printf(\学生编号 课程1 课程2 课程3 课程4 个人平均\\n\ for(i=0;i printf(\学生%d\\t\ /***********SPACE***********/ for(j=0;j<【?】;j++) printf(\ printf(\ } 16 for(j=0;j<8*(N+2);j++) printf(\ printf(\课程平均\ for(j=0;j printf(\ printf(\ getch(); } void aver(float sco[][N+1]) { int i,j; /***********SPACE***********/ for(i=0;i<【?】;i++) { for(j=0;j sco[i][N] += sco[i][j]; sco[M][j] += sco[i][j]; sco[M][N] += sco[i][j]; } /***********SPACE***********/ sco[i][N] 【?】 N; } for(j=0;j /***********SPACE***********/ sco[M][【?】] /= M; sco[M][N]=sco[M][N]/M/N; } 答案:1). N+1 或 1+N 或 5 2). M 或 5 3). /= 第21题 (10.0分) 题号:488 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:有一组基数值(正整数),输入一个正整数(小于100), 问:如果该数由基数值相加构成(每个基数可以重复使用) ,那么最少可能利用的基数是多少个。 -------------------------------------------------------*/ #include #define MAXSIZE 100 #define min(a,b) ((a) <= (b) ? (a) : (b)) 4). j 17 void main(void) { int num[MAXSIZE+1]; int base[] = { 1, 3, 4 }; int k= sizeof(base)/sizeof(int); int n; int i, j, MIN; char line[100]; printf(\ printf(\ for (i = 0; i < k; i++) printf(\ printf(\ gets(line); n = atoi(line); num[0] = 0; num[1] = 1; for (i = 2; i <= n; i++) { /***********SPACE***********/ 【?】; for (j = 0; j < k; j++) if (i >= base[j]) MIN = min(num[i-base[j]]+1, MIN); /***********SPACE***********/ 【?】; } /***********SPACE***********/ printf(\【?】); } 答案:1). MIN = n 2). num[i] = MIN 第22题 (10.0分) 题号:408 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入两个整数,求他们的按位与。 -------------------------------------------------------*/ #include int x,y,z=0,a,b,k=1; scanf(\ 3). num[n] 18 while(x>0&&y>0) { a=x%2; /***********SPACE***********/ x=【?】; b=y%2; y=y/2; /***********SPACE***********/ z=z+【?】; k=k*2; } /***********SPACE***********/ 【?】(\} 答案:1). x/2 2). a*b*k 或 a * b * k 3). printf 第23题 (10.0分) 题号:406 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:从键盘输入一个字符串,将小写字母全部转换成大写字母, 然后输出到一个磁盘文件“test”中保存。输入的字符串 以!结束。 -------------------------------------------------------*/ #include \#include FILE *fp; char str[100]; int i=0; /***********SPACE***********/ if((fp=fopen(\【?】))==NULL) { printf(\ exit(0); } printf(\ /***********SPACE***********/ gets(【?】); while(str[i]!='!') /***********SPACE***********/ { if(str[i]>='a'&&【?】) 19 str[i]=str[i]-32; fputc(str[i],fp); i++; } /***********SPACE***********/ fclose(【?】); fp=fopen(\ fgets(str,strlen(str)+1,fp); printf(\ fclose(fp); } 答案:1). \ 2). Str 3). str[i]<='z' 或 'z'>=str[i] 4). fp 第24题 (10.0分) 题号:479 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:十个小孩围成一圈分糖果,老师分给第一个小孩 10 块,第二 个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个 小孩16 块,第六个小孩 4块,第七个小孩 10 块,第八个小孩 6 块,第九个小孩 14 块,第十个小孩20 块。然后所有的小孩 同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人 可向老师要一块。问经过这样几次调整后大家手中的糖的块数 都一样?每人各有多少块糖? -------------------------------------------------------*/ main() { int i,count=0,a[11]={0,10,2,8,22,16,4,10,6,14,20} ; /***********SPACE***********/ while(【?】) { for(i=1 ; i<=10 ; i++) a[i-1]=a[i-1]/2+a[i]/2 ; a[10]=a[10]/2+a[0] ; for(i=1 ; i<=10 ; i++) /***********SPACE***********/ if(【?】) a[i]++ ; for(i=1 ; i<10 ; i++) /***********SPACE***********/ if(a[i]!=a[i+1]) 【?】; if(i==10) break ; else 20