www.greatc.cn4月上机考试题库编程题 编程题 请勿改动主函数main和其它函数中的任何内容,仅在 考试做题要求 函数fun的花括号中填入你编写的若干语句 1、按题目要求编写部分代码,不要改动已经有的代码。# include< stdio h> 2、在运行时如果遇到死循环,按CuH+ Break键结束运# define N16 3、题目做完后必须要有运行结果,没有运行结果没有{ char num0] 1、请编写函数fun,函数的功能是:移动字符串中的内容移} STREC 例如字符串中原有的内容为 ABCDEFGHUK, m的值um( STREC a,STREC *b,int,imth) 动的规则如下:把第1到第m个字符,平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。 为3,则移动后,字符串中的内容应该是: DEFGHUKABC。 注意:部分源程序在文件PROG1C中 请勿改动主函数man和其它函数中的任何内容,仅在 数fun的花括号中填入你编写的若干语句 #include <stdio. h> STREC SINI={"GA005",85},{"GA003”,76} #include <string h> "GA002",69},{"GA004",85},{"GA001",96}, #definen 80 "GA007",72},{"GA008"64},{"GA006"87}, void fun( char *w)本函数的功能是将字符串中字符循 "GA0l5",85},{"GA013",94},{"GA012",64}, 环左移一个位置* "GA014",91},{"GAo",90},"GA0I7",64} GA018",64},{"GA016",72}}; int i: char t STREC hIN, tt FILE out tw0: int i,j, n, low, heigh, t, for(F0 I<strlen(w)-1: 1++) printf("Enter 2 integer number low heigh:" ); [=w[l anf("%d%d",&low, &heigh); strlen(w)-1=t if heigh< low )i heigh, heigh=low, low=t, j IFfun( s, h, low, heigh ) void fun( char *w,intm)/可调用funl函数左移字符 printf("The student's data between %d--%d: in", low, heigh); for(i=0,<n;计++) printf("%s %4d\n", ho. num, h. s); out= fopen("c: Itestllout dat","w nfun(s,h,80,98); maino fprintf(out, "%d\n", n) i char a[N]"ABCDEFGHUJK" for(i=0,K<n-1;计++) for(Fi+l j<n: j++) printf("The original string: \n") puts(a); if(h0.s>h0.)(tth hoho; hn=tt print n:"); scanf("%d", &m) for(i=0;<n;计++) fun(a,m) fprintf(out, %4dn,(i s) printf("\ The string after moving: n") puts(a); fprintf(out, "\n"); printf("nn"), fclose(out) NONOO 3、已知学生的记录由学号和学习成绩构成,N名学生的数 {/*请在此函数内打开文件,输入测试数据,调用fun函据已存入a结构体数组中。请编写函数fimn,函数的功能是 数,输出数据,关闭文件 找出成绩最低的学生记录,通过形参返回主函数(规定只有 FILE*rf, *wf; char aN: int m, 一个最低分) rf= fopen("c: Testin. dat", "r") 注意:部分源程序存在文件PROG1C文件中 wf=fopen("c: Itestllout dat","w"); 请勿改动主函数man和其它函数中的任何内容,仅在 for(i=0;i<10;i++){ 函数fun的花括号中填入你编写的若干语句 scanf(rf, "%d %s",&m, a) #include <stdio h> #include <string. h> fprintf(wf, "%s'n", a typedef struct fclose(rf); fclose( wf) i char num[10] int S;)STU; un(sTUa,STU·s) 2、学生的记录由学号和成绩组成,N名学生的数据已在主 函数中放入结构体数组s中,请编写函数fun,它的功能是 把指定分数范围内的学生数据放在b所指的数组中,分数范 围内的学生人数由函数值返回。 例如,输入的分数是6069,则应当把分数在60到main() 69的学生数据进行输出,包含60分和69分的学生数据 STU aN]{{"A01",81},{"A02",89},{"A03",66} 主函数中将把60放在low中,把69放在hegh中 "A04",87},{"A05",77},("A06",90}, 注意:部分源程序在文件PROG1C文件中。 "AO7",79},{"A08"61},{"A09",80}
宏为世纪教育 www.greatc.cn 4 月上机考试题库 编程题 1 编程题 考试做题要求: 1、按题目要求编写部分代码,不要改动已经有的代码。 2、在运行时如果遇到死循环,按 Ctrl+Break 键结束运 行。 3、题目做完后必须要有运行结果,没有运行结果没有 分。 1、请编写函数 fun,函数的功能是: 移动字符串中的内容,移 动的规则如下: 把第 1到第 m个字符, 平移到字符串的最后, 把第 m+1 到最后的字符移到字符串的前部。 例如, 字符串中原有的内容为: ABCDEFGHIJK, m 的值 为 3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其它函数中的任何内容, 仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> #include <string.h> #define N 80 void fun1(char *w) /* 本函数的功能是将字符串中字符循 环左移一个位置 */ { int i; char t; t=w[0]; for(i=0;i<strlen(w)-1;i++) w[i]=w[i+1]; w[strlen(w)-1]=t; } void fun(char *w, int m) /*可调用 fun1 函数左移字符 */ { } main() { char a[N]= "ABCDEFGHIJK"; int m; printf("The original string:\n");puts(a); printf("\n\nEnter m: ");scanf("%d",&m); fun(a,m); printf("\nThe string after moving:\n");puts(a); printf("\n\n"); NONO(); } NONO() {/* 请在此函数内打开文件,输入测试数据,调用 fun 函 数,输出数据,关闭文件。 */ FILE *rf, *wf ; char a[N] ; int m, i ; rf = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%d %s", &m, a) ; fun(a, m) ; fprintf(wf, "%s\n", a) ; } fclose(rf) ; fclose(wf) ; } 2、学生的记录由学号和成绩组成,N 名学生的数据已在主 函数中放入结构体数组 s 中, 请编写函数 fun,它的功能是: 把指定分数范围内的学生数据放在 b 所指的数组中,分数范 围内的学生人数由函数值返回。 例如,输入的分数是 60 69, 则应当把分数在 60 到 69 的学生数据进行输出,包含 60 分和 69 分的学生数据。 主函数中将把 60 放在 low 中,把 69 放在 heigh 中。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> #define N 16 typedef struct { char num[10]; int s; } STREC; int fun( STREC *a,STREC *b,int l, int h ) { } main() { STREC s[N]={{"GA005",85},{"GA003",76}, {"GA002",69},{"GA004",85},{"GA001",96}, {"GA007",72},{"GA008",64},{"GA006",87}, {"GA015",85},{"GA013",94},{"GA012",64}, {"GA014",91},{"GA011",90},{"GA017",64}, {"GA018",64},{"GA016",72}}; STREC h[N],tt;FILE *out ; int i,j,n,low,heigh,t; printf("Enter 2 integer number low & heigh : "); scanf("%d%d", &low,&heigh); if ( heigh< low ){ t=heigh;heigh=low;low=t; } n=fun( s,h,low,heigh ); printf("The student's data between %d--%d :\n",low,heigh); for(i=0;i<n; i++) printf("%s %4d\n",h[i].num,h[i].s); printf("\n"); out = fopen("c:\\test\\out.dat","w") ; n=fun( s,h,80,98 ); fprintf(out,"%d\n",n); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(h[i].s>h[j].s) {tt=h[i] ;h[i]=h[j]; h[j]=tt;} for(i=0;i<n; i++) fprintf(out,"%4d\n",h[i].s); fprintf(out,"\n"); fclose(out); } 3、已知学生的记录由学号和学习成绩构成,N 名学生的数 据已存入 a 结构体数组中。请编写函数 fun,函数的功能是: 找出成绩最低的学生记录,通过形参返回主函数(规定只有 一个最低分)。 注意: 部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> #include <string.h> #define N 10 typedef struct ss { char num[10]; int s; } STU; fun( STU a[], STU *s ) { } main ( ) { STU a[N]={ {"A01",81},{"A02",89},{"A03",66}, {"A04",87},{"A05",77},{"A06",90}, {"A07",79},{"A08",61},{"A09",80}
eatc.cn4月上机考试题库编程 printf("***** The original data *****In); fun(tt) for( F0, K< N; 1++ )printf("No= %s Mark =%d\n fprintf( wf, "%sn", tt ) a[i]. num, a[].s) fun( a, &m ) printf("***** THE RESULT*****n); printf ("The lowest %s, %d\n", m num, ms); fclose( wf) NONOO: } NONOO 5、请编一个函数fimn,函数的功能是使实型数保留2位小数, {/*本函数用于打开文件,输入数据,调用函数,输出数据 并对第三位进行四舍五入(规定实型数为正数) 关闭文件。制 例如:实型数为1234.567,则函数返回12345 FILE *rf. wwf. 实型数为1234.564,则函数返回1234.56。 STU,m 注意:部分源程序存在文件PROG1C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在 rf= fopen("c: ltest\in dat","r 函数fun的花括号中填入你编写的若干语句 wf=fopen("c: ltest\lout. dat", w") #include <stdio h> for(i=0: 1 < 10; 1++) fscanf(rf, %s %d",a[0. num, float fun( float h) printf (wf," The lowest: %s, %dun", m num, ms); 4、请编写一个函数fmn,其功能是:将ss所指字符串中所有 printf( enter a:"; scanf("%f",&a), 下标为奇数位置上的字母转换为大写(若该位置上不是字母 printf( "The original data is: ") 则不转换) printf("%f nn,a): 例如,若输入"abc4EFg",则应输出"aBc4EFg" printf("The result: %f\n", fun(a)); 注意:部分源程序在文件PROG1C文件中。 NONOO: 请勿改动主函数man和其它函数中的任何内容,仅在} 函数fun的花括号中填入你编写的若干语句 NONOO #include <stdio. h> /*请在此函数内打开文件,输入测试数据,调用fun函 void fun( char*ss) 输出数据,关闭文件。制 FILE rf "wf rf= fopen("c: ltest\ln. dat", r") wf=fopen("c: Itest\out. dat", " w") void main( void fscanf(rf, "%f, &a) fprintf(wf, %fn", fun(a)) har tt51] printf( "nPlease enter an character string within 50 haracters:\n": fclose( wf) gets( tt ) printf("InInAfter changing, the stringin 1"%sl", tt ) un(tt) 6、请编写一个函数fun,它的功能是:根据以下公式求π printf("nbecomesin %s",tt ) 的值(要求满足精度0.0005,即某项小于00005时停止迭代) NONOO l1×21×2×31×2×3×4 l×2×.×n NONOO 33×53×5×73×5×7×93×5×x(2n+1) 程序运行后,如果输入精度0.0005,则程序输出为 ∧*请在此函数内打开文件,输入测试数据,调用fun函数,3.14.. 输出数据,关闭文件。 注意:部分源程序存在文件 PROGI. C文件中 nar tt[51, ch: 清勿改动主函数main和其它函数中的任何内容,仅在 FILE rf *wf 函数fun的花括号中填入你编写的若干语句 #include <stdio. h> rf=fopen("c: test\lin. dat"," r") #include open("c: testllout dat","w") double double eps while(i< 10)1 fgets( tt, 50, rf ); len =strlen(tt)-1
宏为世纪教育 www.greatc.cn 4 月上机考试题库 编程题 2 {"A10",71} }, m ; int i; printf("***** The original data *****\n"); for ( i=0; i< N; i++ )printf("No = %s Mark = %d\n", a[i].num,a[i].s); fun ( a, &m ); printf ("***** THE RESULT *****\n"); printf ("The lowest : %s , %d\n",m.num, m.s); NONO( ); } NONO( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ FILE *rf, *wf ; STU a[N], m ; int i ; rf = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s) ; fun(a, &m) ; fprintf (wf, "The lowest : %s, %d\n", m.num, m.s) ; fclose(rf) ; fclose(wf) ; } 4、请编写一个函数 fun, 其功能是: 将 ss 所指字符串中所有 下标为奇数位置上的字母转换为大写(若该位置上不是字母, 则不转换)。 例如, 若输入"abc4EFg",则应输出"aBc4EFg"。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容, 仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> #include <string.h> void fun( char *ss ) { } void main( void ) { char tt[51]; printf( "\nPlease enter an character string within 50 characters:\n" ); gets( tt ); printf( "\n\nAfter changing, the string\n \"%s\"", tt ); fun(tt) ; printf( "\nbecomes\n \"%s\"", tt ); NONO(); } NONO() { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char tt[51], ch; FILE *rf, *wf ; int len, i=0 ; rf = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; while(i < 10) { fgets( tt, 50, rf ); len = strlen(tt) - 1 ; ch = tt[len] ; if(ch == '\n' || ch == 0x1a) tt[len] = 0 ; fun(tt); fprintf( wf, "%s\n", tt ); i++ ; } fclose(rf) ; fclose(wf) ; } 5、请编一个函数 fun,函数的功能是使实型数保留 2 位小数, 并对第三位进行四舍五入 (规定实型数为正数)。 例如:实型数为 1234.567, 则函数返回 1234.57; 实型数为 1234.564, 则函数返回 1234.56。 注意: 部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> float fun ( float h ) { } main( ) { float a; printf ("Enter a: "); scanf ( "%f", &a ); printf ( "The original data is : " ); printf ( "%f \n\n", a ); printf ( "The result : %f\n", fun ( a ) ); NONO( ); } NONO( ) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函 数, 输出数据,关闭文件。 */ int i ; float a ; FILE *rf, *wf ; rf = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 20 ; i++) { fscanf(rf, "%f", &a) ; fprintf(wf, "%f\n", fun(a)) ; } fclose(rf) ; fclose(wf) ; } 6、请编写一个函数 fun,它的功能是:根据以下公式求 π 的值(要求满足精度 0.0005, 即某项小于 0.0005 时停止迭代): π 1 1×2 1×2×3 1×2×3×4 1×2×…×n ─ = 1 + ─ + ─— + ──── + ──────+……+──────── 2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1) 程序运行后,如果输入精度 0.0005,则程序输出为 3.14…。 注意: 部分源程序存在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> #include <math.h> double fun ( double eps) {
eatc.cn4月上机考试题库编程 main() 8、假定输入的字符串中只包含字母和*号。请编写函数fun i double x; 它的功能是除了字符串前导的*号之外将串中其它*号全部 rinf("Input eps: " 删除。在编写函数时,不得使用C语言提供的字符串函数 canf("%lf", &x); printf("neps =%f, Pl=%lfn,X, fun(x)); 例如,字符串中的内容为:***ABC*DEFG事*, NONOO 删除后,字符串中的内容应当是:·* ABCDEFG。 注意:部分源程序在文件PROG1C文件中 NONOO 清勿改动主函数main和其它函数中的任何内容,仅在 陳*本函数用于打开文件,输入数据,调用函数,输出数据,函数fun的花括号中填入你编写的若干语句 关闭文件。 #include <stdio h FILE*fp, *wf void fun( char *a) /以下代码仅供参考*/ fp= fopen("c: ltest\lin dat"," r") int FO.k: wf=fopen("c: \testlout dat", w") while(al=*)计++ for(i=0;i<10;计++){ k=H+1; fscanf(fp, "%lf",&x whle(a=0)/*以下程序段实现非*字符前移*/ fprintf(wf, %lf\n", fun(x)) fclose(wf) a[i+1w0; 7、m个人的成绩存放在 score数组中,请编写函数fun,它 的功能是将低于平均分的人数作为函数值返回,将低于平 mainO 均分的分数放在 below所指的数组中 i char s[81: 例如,当 score数组中的数据为:10、20、30、40、50 printf("Enter a string: \n") gets(s); 60、70、80、90时,函数返回的人数应该是4,beow中的 fun(s ) 数据应为:10、20、30、40 rinf("The string after deleted: \n"), puts(s); 注意:部分源程序在文件PROG1C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在} 函数fun的花括号中填入你编写的若干语句 NONOO #include <stdio. h> /*本函数用于打开文件,输入数据,调用函数,输出数据 #include <string. h> 关闭文件 int fun( int score[, int m, int below D FILE *in,°out int i; char s81] in= fopen("c: testllin dat","r"), ut=fopen("c: testour. dat",w") for(=0;1<10,计+){ scanf(in, "%s"s) i int i, n, below[9] printf("bElow the average score are: " ) for(i=0; i<n; 1++) printf("%d", below) NONOO 9、假定输入的字符串中只包含字母和*号。请编写函数fun 它的功能是:将字符串中的前导*号全部移到字符串的尾部 NONO 例如,字符串中的内容为:事事率A*BC*DEFG*率 本函数用于打开文件,输入测试数据,调用fun函数 移 输出数据,关闭文件。* A*BC*DEF*G******。在编写函数时,不得使用C语 int i,j, n, below[10], score[10] 言提供的字符串函数。 FILE 主意:部分源程序在文件PROG1C文件中 fopen("c: ltest\lin dat","r) 清勿改动主函数main和其它函数中的任何内容,仅在 wf=fopen("c: \\test\lout. dat","w"); 函数fun的花括号中填入你编写的若干语句 #include <stdio h> for(=0; j<10; j++)fscanf(rf, "%d", &score D void fun( char a) n= fun(score, 10, below) for(j=0; j<n; j++)fprintf(wf, "%d", belowID 以下代码仅供参考* narp, "q int n=o fclose(rf) fclose( wf) Whle(·p==*)/统计串头个数n*
宏为世纪教育 www.greatc.cn 4 月上机考试题库 编程题 3 } main( ) { double x; printf("Input eps:") ; scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x)); NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ FILE *fp, *wf ; int i ; double x ; fp = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%lf", &x) ; fprintf(wf, "%lf\n", fun(x)) ; } fclose(fp) ; fclose(wf) ; } 7、m 个人的成绩存放在 score 数组中,请编写函数 fun,它 的功能是:将低于平均分的人数作为函数值返回,将低于平 均分的分数放在 below 所指的数组中。 例如,当 score 数组中的数据为:10、20、30、40、50、 60、70、80、90 时,函数返回的人数应该是 4, below 中的 数据应为: 10、20、30、40。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> #include <string.h> int fun(int score[], int m, int below[]) { } main( ) { int i, n, below[9] ; int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ; n = fun(score, 9, below) ; printf( "\nBelow the average score are: " ) ; for (i = 0 ; i < n ; i++) printf("%d ", below[i]) ; NONO() ; } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。*/ int i, j, n, below[10], score[10] ; FILE *rf, *wf ; rf = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { for(j = 0 ; j < 10 ; j++) fscanf(rf, "%d", &score[j]) ; n = fun(score, 10, below) ; for(j = 0 ; j < n ; j++) fprintf(wf, "%d ", below[j]) ; fprintf(wf, "\n") ; } fclose(rf) ; fclose(wf) ; } 8、假定输入的字符串中只包含字母和*号。请编写函数 fun, 它的功能是:除了字符串前导的*号之外,将串中其它*号全部 删除。在编写函数时,不得使用 C 语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******, 删除后, 字符串中的内容应当是:****ABCDEFG。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> void fun( char *a ) { /* 以下代码仅供参考 */ int i=0,k; while(a[i]=='*') i++; k=i+1; while(a[i]!='\0') /* 以下程序段实现非*字符前移 */ { } a[i+1]='\0'; } main() { char s[81]; printf("Enter a string:\n");gets(s); fun( s ); printf("The string after deleted:\n");puts(s); NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ FILE *in, *out ; int i ; char s[81] ; in = fopen("c:\\test\\in.dat","r") ; out = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(in, "%s", s) ; fun(s) ; fprintf(out, "%s\n", s) ; } fclose(in) ; fclose(out) ; } 9、假定输入的字符串中只包含字母和*号。请编写函数 fun, 它的功能是:将字符串中的前导*号全部移到字符串的尾部。 例如,字符串中的内容为:*******A*BC*DEF*G****, 移动后 , 字 符 串 中 的 内 容 应 当 是 : A*BC*DEF*G***********。在编写函数时, 不得使用 C 语 言提供的字符串函数。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> void fun( char *a ) { /* 以下代码仅供参考 */ char *p,*q; int n=0; p=a; while(*p=='*') /* 统计串头'*'个数 n */
宏为世纪教育 www greatc4月上机考试题库编程 {n++;p+;} printf( "Enter a string: \n") gets(s); g-a, *向前复制字符串,请填写相应的语句完成其功能 fun( s, n) printf("The string after deleted: \ n"),puts(); NONOO for(n>0,n-)/°在串尾补n个解 NONG {*本函数用于打开文件,输入数据,调用函数,输出数据 关闭文件。 FILE·in,out i char s[81],"p: int n=0 out=fopen("c: Testour. dat","w") printf("Enter a string: n") gets(); for(i=0,1<10;计+){ printf("The string after moveing n") puts(s); canf(in, " %d",&n) NONOO NONOO 陳*本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件 int i; char s[81] fopen("c: Itest\in dat"," r); 11、请编写函数fun,它的功能是:求出能整除形参x且不 out= fopen("c: testllout dat", "w") 是偶数的各整数,并按从小到大的顺序放在pp所指的数组中 这些除数的个数通过形参n返回 例如,若x中的值为:35,则有4个数符合要求,它 们是:1,5,7,35 fprintf(out, "%sIn",s) 注意:部分源程序在文件PROG1C文件中 请勿改动主函数main和其它函数中的任何内容,仅在 函数fun的花括号中填入你编写的若干语句 #include <stdio h> void fun( int x, int ppI, int "n) 10、假定输入的字符串中只包含字母和*号。请编写函数 它的功能是:使字符串的前导*号不得多于n个若多于 删除多余的*号;若少于或等于n个,则什么也不做, 串中间和尾部的*号不删除 例如,字符串中的内容为:**A·BC*DEFG**,} 若n的值为4,删除后,字符串中的内容应当是 () *ABC*DEF啼G**;若n的值为8,则字符串中的内容{intx,a[000l,n,i; 仍为:*率春事*A*BC*DEF*G*。n的值在主函数中输入。 printf("nPlease enter an integer number: n"); scanf("%d 在编写函数时,不得使用C语言提供的字符串函数 &x) 注意:部分源程序在文件PROG1C文件中。 fun(x, aa, &n 请勿改动主函数main和其它函数中的任何内容,仅在 +) 函数fun的花括号中填入你编写的若干语句 printf("%d", aa) #include <stdio. h> printf("n") oid fun( char *a, int n NONOO 以下代码仅供参考* NONOO int F0,j, k=0 {*本函数用于打开文件,输入测试数据,调用fun函数, while(ak]==*)k++;/k为统计*字符个数* 输出数据,关闭文件。 if(k>n) int x, aa[1000],n, 1, j FILE*f fp= fopen("c: \testlout dat","w") 以下完成将下标为k至串尾的字符前移kn个位置 for=0;j<10;++){ for(i=0; i<n; i++)fprintf(fp, "%d", aa); fprintf(fp, n); fclose(fp) maino i char s[81: int n: 12、函数fun的功能是:将s所指字符串中下标为偶数同时
宏为世纪教育 www.greatc.cn 4 月上机考试题库 编程题 4 {n++; p++;} q=a; /* 向前复制字符串,请填写相应的语句完成其功能 */ for(;n>0;n--) /* 在串尾补 n 个'*' */ *q++='*'; *q='\0'; } main() { char s[81],*p; int n=0; printf("Enter a string:\n");gets(s); fun( s ); printf("The string after moveing:\n");puts(s); NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ FILE *in, *out ; int i ; char s[81] ; in = fopen("c:\\test\\in.dat","r") ; out = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(in, "%s", s) ; fun(s) ; fprintf(out, "%s\n", s) ; } fclose(in) ; fclose(out) ; } 10、假定输入的字符串中只包含字母和*号。请编写函数 fun, 它的功能是:使字符串的前导*号不得多于 n 个;若多于 n个, 则删除多余的*号; 若少于或等于 n 个,则什么也不做,字符 串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G****, 若 n 的值为 4, 删 除 后, 字 符 串 中的 内 容 应当 是 : ****A*BC*DEF*G****;若 n 的值为 8,则字符串中的内容 仍为:*******A*BC*DEF*G****。n 的值在主函数中输入。 在编写函数时,不得使用 C 语言提供的字符串函数。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> void fun( char *a, int n ) { /* 以下代码仅供参考 */ int i=0,j,k=0; while(a[k]=='*') k++; /* k 为统计*字符个数 */ if(k>n) { i=n;j=k; /* 以下完成将下标为 k 至串尾的字符前移 k-n 个位置 */ } } main() { char s[81]; int n; printf("Enter a string:\n");gets(s); printf("Enter n : ");scanf("%d",&n); fun( s,n ); printf("The string after deleted:\n");puts(s); NONO(); } NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ FILE *in, *out ; int i, n ; char s[81] ; in = fopen("c:\\test\\in.dat","r") ; out = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(in, "%s", s) ; fscanf(in, "%d", &n) ; fun(s,n) ; fprintf(out, "%s\n", s) ; } fclose(in) ; fclose(out) ; } 11、请编写函数 fun,它的功能是:求出能整除形参 x 且不 是偶数的各整数,并按从小到大的顺序放在 pp 所指的数组中, 这些除数的个数通过形参 n 返回。 例如,若 x 中的值为: 35,则有 4 个数符合要求,它 们是: 1, 5, 7, 35。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> void fun ( int x, int pp[], int *n ) { } main( ) { int x, aa[1000], n, i ; printf( "\nPlease enter an integer number:\n" ) ; scanf("%d", &x) ; fun(x, aa, &n ) ; for( i = 0 ; i < n ; i++ ) printf("%d ", aa[i]) ; printf("\n") ; NONO( ) ; } NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。*/ int x, aa[1000], n, i, j ; FILE *fp ; fp = fopen("c:\\test\\out.dat","w") ; for(j = 0 ; j < 10 ; j++) { x = 30 + j ; fun(x, aa, &n) ; for(i = 0 ; i < n ; i++) fprintf(fp, "%d ", aa[i]) ; fprintf(fp, "\n") ; } fclose(fp) ; } 12、函数 fun 的功能是:将 s 所指字符串中下标为偶数同时
宏为世纪教育www.greatc4月上机考试题库编程题 ASCI值为奇数的字符删除,s所指串中剩余的字符形成的NO 新串放在t所指的数组中。 例如,若s所指字符串中的内容为" ABCDEFG12345",NONO() 其中字符C的ASCI码值为奇数,在数组中的下标为偶数,{/*本函数用于打开文件,输入数据,调用函数,输出数据 因此必须删除:而字符1的ASCI码值为奇数,在数组中关闭文件 的下标也为奇数,因此不应当删除,其它依此类推。 FILE rf * wf 最后t所指的数组中的内容应是"BDF12345" 注意:部分源程序存在文件PROG1C中。 rf= fopen("c: Itest\in dat","r") 请勿改动主函数man和其它函数中的任何内容,仅在 wf= fopen("c: l\test\out. dat,"w") 函数fun的花括号中填入你编写的若干语句 for(i=0;i<10;计+){ #include <stdio. h> fscanf(rf, " %d, %d",&a,&b) #include <string h> fun(a, b, &c); void fun(char * s, char t) fprintf(wf, "a=%d, b=%d, c=%ld\n, a, b, c) fclose(rf) } maino 14、编写函数fun,它的功能是:求小于形参n同时能被 与7整除的所有自然数之和的平方根,并作为函数值返回 char s[100, t[100 例如若n为1000时,程序输出应为:s=153909064。 printf("nPlease enter string S: ) scanf("%s",S); 注意:部分源程序在文件PROG1C文件中。 fun(s, t); 请勿改动主函数main和其它函数中的任何内容,仅在 printf("In The result is: %sIn",t); 函数fun的花括号中填入你编写的若干语句 NONOO #include <math h> NONOO {/*本函数用于打开文件,输入数据,调用函数,输出数据,{ 关闭文件。 char s[100], t[100]; FILE *rf *w rf= fopen("c: Testin. dat","r maino/主函数* wf=fopen("c: testllout dat", w") for(=0;i<10;计+){ printf("s=%f\n", fun( 1000)); fun(s, t) fprintf( wf, "%sn", t) NONO( {/*本函数用于打开文件,输入数据,调用函数,输出数据 fclose(rf) 关闭文件。布 fclose(wf) FILE·fp,wf 13、函数fu的功能是:将a、b中的两个两位正整数合并fp= fopen(" c: testolin.dat","r"); 形成一个新的整数放在c中。合并的方式是将a中的十位 wf=fopen("c: test\out. dat","W); 和个位数依次放在变量c的百位和个位上,b中的十位和个 or(i=0;i<10;计+) 位数依次放在变量c的十位和千位上。 fscanf( fp, "%d",&n) 例如,当a=45,b=12。调用该函数后,c=2415。 s=fun(n) 注意:部分源程序存在文件PROG1C中。数据文件 fprintf(wf, "%fn",s) DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在 数fun的花括号中填入你编写的若干语句。 #include <stdio h> void fun(int a, int b, long c) 15、请编写函数fun,函数的功能是:将M行N列的二维数 组中的数据,按行的顺序依次放到一维数组中,一维数组中 数据的个数存放在形参n所指的存储单元中 例如,二维数组中的数据为 33333333 44444444 printf("Input a, b: ) 一维数组中的内容应是 scanf("%d%d",&a, &b) 333333334444444455555555, fun(a, b, &c); 注意:部分源程序在文件PROG1C中 printf("The result is: %ld\n",c); 请勿改动主函数main和其它函数中的任何内容,仅在
宏为世纪教育 www.greatc.cn 4 月上机考试题库 编程题 5 ASCII 值为奇数的字符删除,s 所指串中剩余的字符形成的 新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为"ABCDEFG12345", 其中字符 C 的 ASCII 码值为奇数,在数组中的下标为偶数, 因此必须删除;而字符 1 的 ASCII 码值为奇数,在数组中 的下标也为奇数,因此不应当删除,其它依此类推。 最后 t 所指的数组中的内容应是"BDF12345"。 注意: 部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> #include <string.h> void fun(char *s, char t[]) { } main() { char s[100], t[100]; printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); NONO(); } NONO( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%s", s) ; fun(s, t) ; fprintf(wf, "%s\n", t) ; } fclose(rf) ; fclose(wf) ; } 13、函数 fun 的功能是:将 a、b 中的两个两位正整数合并 形成一个新的整数放在 c 中。合并的方式是:将 a 中的十位 和个位数依次放在变量 c 的百位和个位上,b 中的十位和个 位数依次放在变量 c 的十位和千位上。 例如,当 a=45,b=12。调用该函数后,c=2415。 注意: 部分源程序存在文件 PROG1.C 中。数据文件 IN.DAT 中的数据不得修改。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <stdio.h> void fun(int a, int b, long *c) { } main() { int a,b; long c; printf("Input a, b:"); scanf("%d%d", &a, &b); fun(a, b, &c); printf("The result is: %ld\n", c); NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%d,%d", &a, &b) ; fun(a, b, &c) ; fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ; } fclose(rf) ; fclose(wf) ; } 14、编写函数 fun,它的功能是:求小于形参 n 同时能被 3 与 7 整除的所有自然数之和的平方根,并作为函数值返回。 例如若 n 为 1000 时,程序输出应为:s = 153.909064。 注意: 部分源程序在文件 PROG1.C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在 函数 fun 的花括号中填入你编写的若干语句。 #include <math.h> #include <stdio.h> double fun( int n) { } main() /* 主函数 */ { printf("s =%f\n", fun ( 1000) ); NONO(); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。 */ FILE *fp, *wf ; int i, n ; float s; fp = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%d", &n) ; s = fun(n) ; fprintf(wf, "%f\n", s) ; } fclose(fp) ; fclose(wf) ; } 15、请编写函数 fun, 函数的功能是: 将 M 行 N 列的二维数 组中的数据,按行的顺序依次放到一维数组中, 一维数组中 数据的个数存放在形参 n 所指的存储单元中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 33 33 33 44 44 44 44 55 55 55 55。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其它函数中的任何内容, 仅在