www.greatc.cn4月上机考试题库填空题 for(=0,j4,j++) 试做题要求:1、在1处填写正确的答案,并将下划线 printf("\nNo: % ld Name: %0-8s 和数字删除。2、将题目做完之后一定要保存。3、不能删"]sno, soname) 除/**春事 found**事**/,也不能多行或少行。 for(F0; 1<3: 1++) printf("%6.2f,s0]- score; 1、给定程序中,函数fun的功能是根据形参i的值返回某 printf("\n"); 个函数的值。当调用正确时,程序输出 1=5.000000×=3000000x1*x1+x1*x2=40.000000 fun(s, 4); 请在程序的下划线处填入正确的内容并把下划线删随 printf("nln The data after sorting nIn); 使程序得出正确的结果 for(=0,j<4,++) 注意:源程序存放在考生文件夹下的 BLANKI.C中 t printf("nNo: %ld Name: %-8s Scores 不得增行或删行,也不得更改程序的结构 name #include <stdio. h> for(0; 1<3; 1++) printf("%6.2f",s[]. score) double fI(double x) printf("\n"); double f2(double x, double /率*率率事率率事 found*率率事率/ 3、给定程序中,函数fun的功能是:计算形参x所指数组 I fun( int i, double x, double y) 中N个数的平均值(规定所有数均为正数),作为函数值返 if(==1) 回:并将大于平均值的数放在形参y所指数组中在主函数 /率*事布事事布 found率*事事率*/ 中输出。 例如,有10个正数 4826,平均值为:30.500000 /*布事率*布foud市春亭事事*/ 主函数中输出:4632404548 (x,y) 请在程序的下划线处填入正确的内容并把下划线删除 使程序得出正确的结果 注意:源程序存放在考生文件夹下的 BLANKLC中 i double xl=5, x2=3, r 不得增行或删行,也不得更改程序的结构! r=fun(1,x1,x2), #include <stdlib. h r+=fun(2,x1,x2) #define N 10 rinf("nxl=%f, x2=%f, x1*xl+xl*x2=%fnnx1, x2, r); double fun(double xl, double *y) /率事布枣事事事事 found事事本率事事率*/ 2、程序通过定义学生结构体数组,存储了若干名学生的学 号、姓名和3门课的成绩。函数fun的功能是将存放学生数*幸春事事率事 found'事事率 据的结构体数组,按照姓名的字典序(从小到大)排序。 请在程序的下划线处填入正确的内容并把下划线删除 r(FF=0,i<N,计++) 使程序得出正确的结果 注意:源程序存放在考生文件夹下的 BLANK1C中 if(x[>av) yL 3Fx[]: 不得增行或删行,也不得更改程序的结构! y]=-1; #include <stdio. h> #include <string. h> struct student i f int 1, double xINlyN name[10] for(F0; I<N; i++)(x[]rando%50; printf("%4. 0f"xD: printf("un"); printf("nThe average is: %fn", fun(x, y )); void fun(struct student a[, int n) for(F0; yI=0; 1++) printf("%5.If "y; printf("n"); 体率*本亭率布布 found布事率事事摩/ 4、给定程序中,函数fun的功能是:将a所指4×3矩阵中 事 found*事亭事事率春摩事率 第k行的元素与第0行元素交 for(F=0,<2_,i++) 例如,有下列矩阵 for(=计+1;j<n;j+) 2 率*布亭率率布 found事拿本事事事*/ t=;=毗;a=t} 若k为2,程序执行结果为: maino 7 89 f struct student s[4(( 10001, Zhang San,95, 80, 88) {10002,"Lisi",85,70,78} {10003, CasKa",75,60,88}, {10004," Fangfang",90,82,87}} 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果 printf("lnlnThe original data nin); 注意:源程序存放在考生文件夹下的 BLANKLC中
宏为世纪教育 www.greatc.cn 4 月上机考试题库 填空题 1 一、填空题 考试做题要求:1、在__1__处填写正确的答案,并将下划线 和数字删除。 2、将题目做完之后一定要保存。3、不能删 除/**********found**********/,也不能多行或少行。 1、给定程序中,函数 fun 的功能是根据形参 i 的值返回某 个函数的值。当调用正确时, 程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> double f1(double x) { return x*x; } double f2(double x, double y) { return x*y; } /**********found**********/ __1__ fun(int i, double x, double y) { if (i==1) /**********found**********/ return __2__(x); else /**********found**********/ return __3__(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); } 2、程序通过定义学生结构体数组,存储了若干名学生的学 号、姓名和 3 门课的成绩。函数 fun 的功能是将存放学生数 据的结构体数组,按照姓名的字典序(从小到大)排序。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> struct student { long sno; char name[10]; float score[3]; }; void fun(struct student a[], int n) { /**********found**********/ __1__ t; int i, j; /**********found**********/ for (i=0; i<__2__; i++) for (j=i+1; j<n; j++) /**********found**********/ if (strcmp(__3__) > 0) { t = a[i]; a[i] = a[j]; a[j] = t; } } main() { struct student s[4]={{10001,"ZhangSan", 95, 80, 88}, {10002,"LiSi", 85, 70, 78}, {10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}}; int i, j; printf("\n\nThe original data :\n\n"); for (j=0; j<4; j++) { printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); for (i=0; i<3; i++) printf("%6.2f ", s[j].score[i]); printf("\n"); } fun(s, 4); printf("\n\nThe data after sorting :\n\n"); for (j=0; j<4; j++) { printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); for (i=0; i<3; i++) printf("%6.2f ", s[j].score[i]); printf("\n"); } } 3、给定程序中,函数 fun 的功能是:计算形参 x 所指数组 中 N 个数的平均值(规定所有数均为正数),作为函数值返 回;并将大于平均值的数放在形参 y 所指数组中,在主函数 中输出。 例如,有 10 个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdlib.h> #define N 10 double fun(double x[],double *y) { int i,j; double av; /**********found**********/ av=__1__; /**********found**********/ for(i=0; i<N; i++) av = av + __2__; for(i=j=0; i<N; i++) /**********found**********/ if(x[i]>av) y[__3__]= x[i]; y[j]=-1; return av; } main() { int i; double x[N],y[N]; for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);} printf("\n"); printf("\nThe average is: %f\n",fun(x,y)); for(i=0; y[i]>=0; i++) printf("%5.1f ",y[i]); printf("\n"); } 4、给定程序中,函数 fun 的功能是:将 a 所指 4×3 矩阵中 第 k 行的元素与第 0 行元素交换。 例如,有下列矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 若 k 为 2,程序执行结果为: 7 8 9 4 5 6 1 2 3 10 11 12 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中
cn4月上机考试题库填空 不得增行或删行,也不得更改程序的结构! while( strlen(s2PN ): <stdio. h printf("The result is: %ld\n", fun(sl, s2)) N 3 M /*率事布事*本事布fund事*事事*/ void fun(int (a)N], int 1 6、给定程序中,函数fn的功能是:计算下式前n项的和 作为函数值返回。 /体**布布事率率布 found事率布摩*/ for(=0;i<2;计++) 1×33×55×7 (2×n-1)×(2×n+1) (2×n) 例如,当形参n的值为10时,函数返回:9612558 a0j=3 清在程序的下划线处填入正确的内容并把下划线删除, akko=temp 使程序得出正确的结果 注意:源程序存放在考生文件夹下的 BLANK1C中。 不得增行或删行,也不得更改程序的结构! #include <stdio. h> int xM]N={{12,3},{4,5,6},{7,8,9},{10,11,12}},ij, double fun(int n) rinf("The array before moving: nn"); for(=0,i<M;计++) 率率布事率率布 found*事事率事布事事率/ i for(F0; j<N; j++) printf("%3d"xOD) for(F1; I<= 2 fun(x, 2); =?0 printf("The array after moving: nn"); /*事事率* found事率*布事事/ for(F0; K<M; i++) s=S+(2.0*i-1)°(20°计+1y3 i for(F0; j<N; j++) printf("%3d"x[OD) maino 5、给定程序中,函数fun的功能是将a和b所指的两个字 while(n<o) 符串转换成面值相同的整数,并进行相加作为函数值返回 i printf("Please input(n>0): ) scanf("%d", &n); 规定字符串中只含9个以下数字字符 printf("nThe result is: %f\n", fun(n)) 例如,主函数中输入字符串:32486和12345,在主函} 数中输出的函数值为:44831。 请在程序的下划线处填入正确的内容并把下划线删除,7、给定程序中,函数fun的功能是:在3×4的矩阵中找 使程序得出正确的结果 在行上最大、在列上最小的那个元素,若没有符合条件的元 注意:源程序存放在考生文件夹下的 BLANK1C中 素则输出相应信息。 不得增行或删行,也不得更改程序的结构! 例如,有下列矩阵 #include <stdio. h> #include <string. h> #define n 9 程序执行结果为:fnd:a[2]2}=9 long ctod( char *s) 请在程序的下划线处填入正确的内容并把下划线删除 使程序得出正确的结果 注意:源程序存放在考生文件夹下的 BLANKL.C中 不得增行或删行,也不得更改程序的结构! 率*布布亭事布 found布事率率事春事事/ #include <stdio. h> d=d*10+率s #define M 3 /**布亭枣事 found亭事事布摩* #define n 4 void fun(int a)IND f int F0,j, find=0, rmax, c, k; long fun( char * a, char *b) i rmax=ab[o c=0; for(F1; K<N; j++) /*率布事*本事布 found*事**/ t(rmax rmax=a0;c= find=l: k=0 sI[NI S2IN: hile(k<M & find )i i printf("Input string sl: ) gets(s1); if(kl=i&& akcl<=rmax) find= while( strlen(sIPN) i printf("Input string s2: ") gets(s2); i if(find) printf("find: a[odI[%d=%d\n, i, c, an[cD);
宏为世纪教育 www.greatc.cn 4 月上机考试题库 填空题 2 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #define N 3 #define M 4 /**********found**********/ void fun(int (*a)[N], int __1__) { int i,j,temp ; /**********found**********/ for(i = 0 ; i < __2__ ; i++) { temp=a[0][i] ; /**********found**********/ a[0][i] = __3__ ; a[k][i] = temp ; } } main() { int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j; printf("The array before moving:\n\n"); for(i=0; i<M; i++) { for(j=0; j<N; j++) printf("%3d",x[i][j]); printf("\n\n"); } fun(x,2); printf("The array after moving:\n\n"); for(i=0; i<M; i++) { for(j=0; j<N; j++) printf("%3d",x[i][j]); printf("\n\n"); } } 5、给定程序中,函数 fun 的功能是将 a 和 b 所指的两个字 符串转换成面值相同的整数,并进行相加作为函数值返回, 规定字符串中只含 9 个以下数字字符。 例如,主函数中输入字符串:32486 和 12345,在主函 数中输出的函数值为:44831。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> #include <ctype.h> #define N 9 long ctod( char *s ) { long d=0; while(*s) if(isdigit( *s)) { /**********found**********/ d=d*10+*s-__1__; /**********found**********/ __2__; } return d; } long fun( char *a, char *b ) { /**********found**********/ return __3__; } main() { char s1[N],s2[N]; do { printf("Input string s1 : "); gets(s1); } while( strlen(s1)>N ); do { printf("Input string s2 : "); gets(s2); } while( strlen(s2)>N ); printf("The result is: %ld\n", fun(s1,s2) ); } 6、给定程序中,函数 fun 的功能是:计算下式前 n 项的和 作为函数值返回。 例如,当形参 n 的值为 10 时,函数返回:9.612558。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } 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)); } 7、给定程序中,函数 fun 的功能是:在 3×4 的矩阵中找出 在行上最大、在列上最小的那个元素,若没有符合条件的元 素则输出相应信息。 例如,有下列矩阵: 1 2 13 4 7 8 10 6 3 5 9 7 程序执行结果为:find: a[2][2]=9 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #define M 3 #define N 4 void fun(int (*a)[N]) { int i=0,j,find=0,rmax,c,k; while( (i<M) && (!find)) { rmax=a[i][0]; c=0; for(j=1; j<N; j++) if(rmax<a[i][j]) { /**********found**********/ rmax=a[i][j]; c= __1__ ; } find=1; k=0; while(k<M && find) { /**********found**********/ if (k!=i && a[k][c]<=rmax) find= __2__ ; k++; } if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]);
eatc.cn4月上机考试题库填空 率布布率率 found布摩率率布摩摩率 #include <stdio h> struct student i if(!find) printf("not found! \ n"); lo oat score3] i int xMINI,Lj printf("Enter number for array: n"); void fun(struct student a) /**********found*** Int L, i struct stude for(=0; j<N; j++)scanf("%d", &x[oD; rinf("The array: \n") for(=0,iM,计++) b.sno=10002 i for(0; j<N; j++) printf("%3dxJoD: 率事率布事fund事率率事事率*/ printf("nIn); LiSI rinf("nThe data after modified n") printf("nNo: %ld Name: %sInScores: ,bsno, b name); /率事布事亭事事事 found事事本率事率*/ for(F0; 1<3; 1++) printf("%6.2f 8、给定程序中,函数fmn的功能是在形参ss所指字符串数 printf("w"); 组中,删除所有串长超过k的字符串,函数返回所剩字符串 的个数。ss所指字符串数组中共有N个字符串,且串长小 maino 于M。 i struct student s=f10001, Zhang San",95, 80, 88 请在程序的下划线处填入正确的内容并把下划线删除, Int I 使程序得出正确的结果。 printf(" The original data: n") 注意:源程序存放在考生文件夹下的 BLANK1C中 printf("nNo: %ld Name: %snScores: "ssno, s name); 不得增行或删行,也不得更改程序的结构 for(F0; K<3: 1++) printf("%6.2f",sscore) printf("n") fun(s) #define N 5 int fun(char ('ss)[M], int k) 10、给定程序中,函数fun的功能是在形参ss所指字符串 i int iF=o, len; 数组中,将所有串长超过k的字符串中右边的字符删除,只 /*率事率*布fOud市事事麻*/ 保留左边的k个字符。ss所指字符串数组中共有N个字符 for(F0; K< 串,且串长小于M 请在程序的下划线处填入正确的内容并把下划线删除 率事率事事事 found*事亭亭事事事事事/ 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1C中。 体率*事事率 found'事率事事摩事/ 不得增行或删行,也不得更改程序的结构 strcpy(ss[++, 3 #include <stdio. h> #include <string. h> #define N 5 #define M 10 /率事事*布 found*亭事事事事率*/ har void fun( char ss) XINIIMF"Beijing", "Shanghai", Tianj ing", Nanjing",Wuhan t 体率事事布布 found事率事事事**/ int i,f. rinf("\nThe original string\nin"); 率布事率布布 found市事事率*布事率*/ for(FO; <N; i++)puts(x[); printi("n"); ss]3;计++;} ffun(x, 7), rinf("The string witch length is less than or equal to 7: n"); maino for(F0; i<f, i++)puts(x[]), printf("un") har xNIIM "Create", Modify","Sort","skip", Delete printf("\nThe original stringinIn); 9、程序通过定义学生结构体变量,存储了学生的学号、姓 for(FO I<N; i++)puts(x[]); printf("wn); 名和3门课的成绩。函数fmn的功能是将形参a所指结构体 fun(x, 4) 变量中的数据赋给函数中的结构体变量b,并修改b中的学 printf("nThe string after deleted InIn"); 号和姓名,最后输出修改后的数据。例如:a所指变量中的 for(F0; i<N; 1++)puts(xO): printf("n"); 学号、姓名、和三门课的成绩依次是:10001、" ZhangSan"、} 则修改后输出b中的数据应为:10002、"LiSi" 95、80、88。 11、给定程序中,函数fun的功能是:把形参s所指字符串 请在程序的下划线处填入正确的内容并把下划线删除, 最右边的n个字符复制到形参t所指字符数组中,形成 使程序得出正确的结果 个新串。若s所指字符串的长度小于n,则将整个字符串复 注意:源程序存放在考生文件夹下的 BLANK1C中 制到形参t所指字符数组中 不得增行或删行,也不得更改程序的结构! 例如,形参s所指的字符串为 : abcdefgh,n的值为5
宏为世纪教育 www.greatc.cn 4 月上机考试题库 填空题 3 /**********found**********/ __3__ ; } if(!find) printf("not found!\n"); } main() { int x[M][N],i,j; printf("Enter number for array:\n"); for(i=0; i<M; i++) for(j=0; j<N; j++) scanf("%d",&x[i][j]); printf("The array:\n"); for(i=0; i<M; i++) { for(j=0; j<N; j++) printf("%3d",x[i][j]); printf("\n\n"); } fun(x); } 8、给定程序中,函数 fun 的功能是:在形参 ss 所指字符串数 组中,删除所有串长超过 k 的字符串,函数返回所剩字符串 的个数。ss 所指字符串数组中共有 N 个字符串,且串长小 于 M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> #define N 5 #define M 10 int fun(char (*ss)[M], int k) { int i,j=0,len; /**********found**********/ for(i=0; i< __1__ ; i++) { len=strlen(ss[i]); /**********found**********/ if(len<= __2__) /**********found**********/ strcpy(ss[j++],__3__); } return j; } main() { char x[N][M]={"Beijing","Shanghai","Tianjing","Nanjing","Wuhan "}; int i,f; printf("\nThe original string\n\n"); for(i=0;i<N;i++)puts(x[i]); printf("\n"); f=fun(x,7); printf("The string witch length is less than or equal to 7 :\n"); for(i=0; i<f; i++) puts(x[i]);printf("\n"); } 9、程序通过定义学生结构体变量,存储了学生的学号、姓 名和 3 门课的成绩。函数 fun 的功能是将形参 a 所指结构体 变量中的数据赋给函数中的结构体变量 b,并修改 b 中的学 号和姓名,最后输出修改后的数据。例如:a 所指变量中的 学号、姓名、和三门课的成绩依次是:10001、"ZhangSan"、 95、80、88,则修改后输出 b 中的数据应为:10002、"LiSi"、 95、80、88。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> struct student { long sno; char name[10]; float score[3]; }; void fun(struct student a) { struct student b; int i; /**********found**********/ b = __1__; b.sno = 10002; /**********found**********/ strcpy(__2__, "LiSi"); printf("\nThe data after modified :\n"); printf("\nNo: %ld Name: %s\nScores: ",b.sno, b.name); /**********found**********/ for (i=0; i<3; i++) printf("%6.2f ", b.__3__); printf("\n"); } main() { struct student s={10001,"ZhangSan", 95, 80, 88}; int i; printf("\n\nThe original data :\n"); printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); for (i=0; i<3; i++) printf("%6.2f ", s.score[i]); printf("\n"); fun(s); } 10、给定程序中,函数 fun 的功能是:在形参 ss 所指字符串 数组中,将所有串长超过 k 的字符串中右边的字符删除,只 保留左边的 k 个字符。ss 所指字符串数组中共有 N 个字符 串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> #define N 5 #define M 10 /**********found**********/ void fun(char (*ss) __1__, int k) { int i=0 ; /**********found**********/ while(i< __2__) { /**********found**********/ ss[i][k]=__3__; i++; } } main() { char x[N][M]={"Create","Modify","Sort","skip","Delete"}; int i; printf("\nThe original string\n\n"); for(i=0;i<N;i++)puts(x[i]); printf("\n"); fun(x,4); printf("\nThe string after deleted :\n\n"); for(i=0; i<N; i++) puts(x[i]); printf("\n"); } 11、给定程序中,函数 fun 的功能是:把形参 s 所指字符串 中最右边的 n 个字符复制到形参 t 所指字符数组中,形成一 个新串。若 s 所指字符串的长度小于 n,则将整个字符串复 制到形参 t 所指字符数组中。 例如,形参 s 所指的字符串为:abcdefgh,n 的值为 5
cn4月上机考试题 程序执行后t所指字符数组中的字符串应为:degh 请在程序的下划线处填入正确的内容并把下划线删除,13、给定程序中,函数fun的功能是:找出100~999 使程序得出正确的结果。 之间(含100和999)所有整数中各位上数字之和为x( 注意:源程序存放在考生文件夹下的 BLANK1C中 为一正整数)的整数,然后输出:符合条件的整数个数作为 不得增行或删行,也不得更改程序的结构! 函数值返回 #include <stdio. h> 例如,当x值为5时,100~999之间各位上数字之 #include <string h> 为5的整数有:104、113、122、131、140、203、212、221 #deir 230、302、311、320、401、410、500。共有15个。当x值 void fun(char *s, int n, char *t) 为27时,各位数字之和为27的整数是:999。只有1个。 请在程序的下划线处填入正确的内容并把下划线删除 使程序得出正确的结果。 /**事事率率 found事事事*/ 注意:源程序存放在考生文件夹下的 BLANKLO中 if(n>=len) strcpy(1; 不得增行或删行,也不得更改程序的结构! #include <stdio. h> 率布事率率布布 found和 un( int x) for(rlen-n;κ<=len-1;,肿+)t+}= i int n, sl, s2, s3,t, /率*率率事率率事 found市摩*率率/ /率事布事事事摩 found事事率事事率 found*率本事事事事事率/ char s|N]址N];intn, sl=t%l0,s2=(2)%10;s3=/100, printf("Enter a string: ") gets(s); 率事亭率布事事 found事事率率摩事率*/ printf("Enter n: ) scanf("%d", &n); if(sl+s2+s3== 3 fun(s, n, t); i printi("%d", t); printf("The string t:); puts(t); n++ t++ 12、给定程序中,函数fun的功能是:将形参s所指字符串 中的所有数字字符顺序前移,其他字符顺序后移,处理后新 eturn n; 字符串的首地址作为函数值返回 例如,s所指字符串为:asdl23fgh##43df, 处理后新字符串为:123543 asdfgh并#df。 i int x. 请在程序的下划线处填入正确的内容并把下划线删除 while(x<o) 使程序得出正确的结果 i printi("Please input(x>0): ") scanf("%d", &x); 3 注意:源程序存放在考生文件夹下的 BLANKl.C中 printf("nThe result is: %d\", fun(x)) 不得增行或删行,也不得更改程序的结构! #include <stdio. h> #include <string h> 14、给定程序中,函数fun的功能是:将形参s所指字符串 #include <stdlib. h> 中的数字字符转换成对应的数值,计算出这些数值的累加和 #include <ctype. h> 作为函数值返回 例如,形参s所指的字符串为: abs 5de26jkm8,程序 Int 执行后的输出结果为:22 n=strlen(s)+l 请在程序的下划线处填入正确的内容并把下划线删除 使程序得出正确的结果 char*)malloc(n*sizeof( char) 注意:源程序存放在考生文件夹下的 BLANKLC中 」=0,k=0, 不得增行或删行,也不得更改程序的结构! for(F=0,i<n;计++) #include <stdio. h> i if( isdigit(sD)i #include <string. h> /**布亭本事 found*率本亭事* tk}=[k++;} /率布布事率* found事事**率*/ 率*布亭率布 found布事拿本事事事*/ if( isdigit(°s)) for(=0,2_;计++)p+t /率事事事事* found事*率事率*/ return 3 /率布布事率* found事事**布率*/ printf("Please input: ") scanf("%s"S) i char s[81]: int n; printf("n The result is: %s\n",fun(s) printf("nEnter a string: nn"): gets(s)
宏为世纪教育 www.greatc.cn 4 月上机考试题库 填空题 4 程序执行后 t 所指字符数组中的字符串应为:defgh。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> #define N 80 void fun(char *s, int n, char *t) { int len,i,j=0; len=strlen(s); /**********found**********/ if(n>=len) strcpy(__1__); else { /**********found**********/ for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; /**********found**********/ t[j]= __3__ ; } } main() { char s[N],t[N]; int n; printf("Enter a string: ");gets(s); printf( "Enter n:"); scanf("%d",&n); fun(s,n,t); printf("The string t : "); puts(t); } 12、给定程序中,函数 fun 的功能是:将形参 s 所指字符串 中的所有数字字符顺序前移,其他字符顺序后移,处理后新 字符串的首地址作为函数值返回。 例如,s 所指字符串为:asd123fgh5##43df, 处理后新字符串为:123543asdfgh##df。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> char *fun(char *s) { int i, j, k, n; char *p, *t; n=strlen(s)+1; t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0; for(i=0; i<n; i++) { if(isdigit(s[i])) { /**********found**********/ p[__1__]=s[i]; j++;} else { t[k]=s[i]; k++; } } /**********found**********/ for(i=0; i<__2__; i++) p[j+i]= t[i]; p[j+k]=0; /**********found**********/ return __3__; } main() { char s[80]; printf("Please input: "); scanf("%s",s); printf("\nThe result is: %s\n",fun(s)); } 13、 给定程序中,函数 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 个。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> fun(int x) { int n, s1, s2, s3, t; n=0; t=100; /**********found**********/ while(t<=__1__){ /**********found**********/ s1=t%10; s2=(__2__)%10; s3=t/100; /**********found**********/ if(s1+s2+s3==__3__) { printf("%d ",t); n++; } t++; } return n; } main() { int x=-1; while(x<0) { printf("Please input(x>0): "); scanf("%d",&x); } printf("\nThe result is: %d\n",fun(x)); } 14、给定程序中,函数 fun 的功能是:将形参 s 所指字符串 中的数字字符转换成对应的数值,计算出这些数值的累加和 作为函数值返回。 ?例如,形参 s 所指的字符串为:abs5def126jkm8,程序 执行后的输出结果为:22。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> #include <ctype.h> int fun(char *s) { int sum=0; while(*s) { /**********found**********/ if( isdigit(*s) ) sum+= *s- __1__ ; /**********found**********/ __2__; } /**********found**********/ return __3__ ; } main() { char s[81]; int n; printf("\nEnter a string:\n\n"); gets(s); n=fun(s);
www.greatc.cn4月上机考试题库填空题 printf("nThe result is: %d\nin" n); outlist(head fun(head) printf(" The list after sorting: n"); 15、给定程序中函数fun的功能是将带头节点的单向链表结 outlist(head) 点数据域中的数据从小到大排序。即若原链表结点数据域从} 头至尾的数据为:10、4、2、8、6,排序后链表结点数据域 从头至尾的数据为:2、4、6、8、10 16、程序通过定义学生结构体变量,存储了学生的学号、姓 请在程序的下划线处填入正确的内容并把下划线删除,名和3门课的成绩。函数fun的功能是将形参a所指结构体 使程序得出正确的结果 变量s中的数据进行修改,并把a中地址作为函数值返回主函 注意:源程序存放在考生文件夹下的 BLANK1C中 数,在主函数中输出修改后的数据 不得增行或删行,也不得更改程序的结构 例如:a所指变量s中的学号、姓名、和三门课的成绩 #include <stdio. h> 依次是:10001、" ZhangSan"、95、80、88,修改后输出t #include <stdlib. h> 中的数据应为:10002、"Lisi"、96、81、89 #definen 6 请在程序的下划线处填入正确的内容并把下划线删除 typedef struct node i 使程序得出正确的结果 int data 主意:源程序存放在考生文件夹下的 BLANKLO中 struct node 'next; 不得增行或删行,也不得更改程序的结构! A NODE; void fun(NODE *h) ing h 率*布布亭事 found*事事率*布率事*/ sno har name [10] while(p) float score3]: 率*布率率事事布 found布率率事事摩*/ /率事率布事事 found市事事率率事率*/ fun(struct student *a) /率*率事率率事foud市率率布率率*/ if(p->data 3 q->data) a->sno=10002 i t= p->data, p->data = q->data, q->data strcpy(a->name, "LiSi") /率率率 found水本率事**/ for(=0,i<3;计++) mainO NODE*creatlist(int aD) i struct student s=f10001, ZhangSan,95, 80, 88),*t Int I. h=(NODE*malloc(sizeof(NODE)); printf("nn The original data n"); h->next= NULL, printf("nNo: %ld Name: %slnScores: "ssno, s name); for(i=0;i<N;计 for(F0; 1<3: 1++) printf("%6.2f ",sscore) i q(NODE")malloc(sizeof(NODE); printf("n"); g->next= NULL printf("nThe data after modified n"); if(h->next==NULL) h->next=p=q: printf("nNo: %ld Name: %sunCor else p->next= p=4; j for(F0; K<3: 1++) printf("%6.2f", t->scoreD return printf("n"); void outlist(NODE·h) NODE·p 17、给定程序中,函数fun的功能是:计算形参x所指数组 p=h->next, 中N个数的平均值(规定所有数均为正数),将所指数组中 if(p=NULL) printf("The list is NULL! n") 大于平均值的数据移至数组的前部,小于等于平均值的数据 移至x所指数组的后部,平均值作为函数值返回,在主函数 i printf("nHead " 中输出平均值和移动后的数据。 例如,有10个正数:463032406174515 printi("->%d", p->data), p=p->next; 4826,平均值为:30.500000 while(p!=NULL); 移动后的输出为:463240454830617 printf("->EndIn"); 请在程序的下划线处填入正确的内容并把下划线删除 使程序得出正确的结果 注意:源程序存放在考生文件夹下的 BLANKLC中 i NODE*head 不得增行或删行,也不得更改程序的结构! int aIN]={0,10,4,2,8,6} #include <stdlib. h> head=creatlist(a) #include <stdio. h> printf("\n The original list: In"); #define N 10
宏为世纪教育 www.greatc.cn 4 月上机考试题库 填空题 5 printf("\nThe result is: %d\n\n",n); } 15、给定程序中,函数 fun 的功能是将带头节点的单向链表结 点数据域中的数据从小到大排序。即若原链表结点数据域从 头至尾的数据为:10、4、2、8、6,排序后链表结点数据域 从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <stdlib.h> #define N 6 typedef struct node { int data; struct node *next; } NODE; void fun(NODE *h) { NODE *p, *q; int t; /**********found**********/ p = __1__ ; while (p) { /**********found**********/ q = __2__ ; while (q) { /**********found**********/ if (p->data __3__ q->data) { t = p->data; p->data = q->data; q->data = t; } q = q->next; } p = p->next; } } NODE *creatlist(int a[]) { NODE *h,*p,*q; int i; h = (NODE *)malloc(sizeof(NODE)); h->next = NULL; for(i=0; i<N; i++) { q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL; if (h->next == NULL) h->next = p = q; else { p->next = q; p = q; } } return h; } void outlist(NODE *h) { NODE *p; p = h->next; if (p==NULL) printf("The list is NULL!\n"); else { printf("\nHead "); do { printf("->%d", p->data); p=p->next; } while(p!=NULL); printf("->End\n"); } } main() { NODE *head; int a[N]= {0, 10, 4, 2, 8, 6 }; head=creatlist(a); printf("\nThe original list:\n"); outlist(head); fun(head); printf("\nThe list after sorting :\n"); outlist(head); } 16、程序通过定义学生结构体变量,存储了学生的学号、姓 名和 3 门课的成绩。函数 fun 的功能是将形参 a 所指结构体 变量 s 中的数据进行修改,并把 a中地址作为函数值返回主函 数,在主函数中输出修改后的数据。 例如:a 所指变量 s 中的学号、姓名、和三门课的成绩 依次是:10001、" ZhangSan "、95、80、88,修改后输出 t 中的数据应为:10002、"LiSi "、96、81、89。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> struct student { long sno; char name[10]; float score[3]; }; /**********found**********/ __1__ fun(struct student *a) { int i; a->sno = 10002; strcpy(a->name, "LiSi"); /**********found**********/ for (i=0; i<3; i++) __2__ += 1; /**********found**********/ return __3__ ; } main() { struct student s={10001,"ZhangSan", 95, 80, 88}, *t; int i; printf("\n\nThe original data :\n"); printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); for (i=0; i<3; i++) printf("%6.2f ", s.score[i]); printf("\n"); t = fun(&s); printf("\nThe data after modified :\n"); printf("\nNo: %ld Name: %s\nScores: ",t->sno, t->name); for (i=0; i<3; i++) printf("%6.2f ", t->score[i]); printf("\n"); } 17、给定程序中,函数 fun 的功能是:计算形参 x 所指数组 中 N 个数的平均值(规定所有数均为正数),将所指数组中 大于平均值的数据移至数组的前部,小于等于平均值的数据 移至 x 所指数组的后部,平均值作为函数值返回,在主函数 中输出平均值和移动后的数据。 例如,有 10 个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:46 32 40 45 48 30 6 17 15 26 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! #include <stdlib.h> #include <stdio.h> #define N 10