首页IT科技计算机二级c语言上机操作步骤(计算机等级考试二级C语言上机题集(第76~80套))

计算机二级c语言上机操作步骤(计算机等级考试二级C语言上机题集(第76~80套))

时间2025-05-05 01:11:37分类IT科技浏览3221
导读:第76套 1.程序填空题...

第76套

1.程序填空题

给定程序中            ,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数                 ,然后输出;符合条件的整数个数作为函数值返回           。

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果         。

注意:不得增行或删行                  ,也不得更改程序的结构!

2.程序修改题

给定程序中        ,函数fun的功能是:从整数10至55之间      ,选出能被3整除且有一个位上的数是5的那些数                  ,并把这些数放在b所指的数组中           ,这些数的个数作为函数值返回                 。规定   ,函数中a1存放个位数                  ,a2存放十位数         。

请改正函数fun中指定部位的错误              ,使它能得出正确的结果      。

注意:不要改动main函数,不得增行或删行               ,也不得更改程序的结构                 。

#include <stdio.h> int fun (int *b) { int k,a1,a2,i=0; for (k=10;k<=55;k++) { /************found************/ a2=k%10; a1=k-a2*10; if((k%3==0 && a2==5)||(k%3==0 && a1==5)) { b[i]=k; i++; } } /************found************/ return k; } int main() { int a[100],k,m; m=fun(a); printf("The result is:\n"); for (k=0;k<m;k++) printf("%4d",a[k]); printf("\n"); return 0; }

3.程序设计题

假定输入的字符串中只包含字母和*号            。编写函数fun                 ,它的功能是:将字符串尾部的*号全部删除   ,前面和中间的*号不删除   。

例如            ,字符串中的内容为:*****A*BC*DEF*G***                 ,删除后     ,字符串的内容应当为:*****A*BC*DEF*G                 。

注意:请勿改动主函数main和其他函数中的任何内容         ,仅在函数fun的花括号中填入你编写的若干语句               。

#include <stdio.h> #include <string.h> void NONO(void); void fun( char *a ) { } int main() { char s[81]; printf("Enter a string:\n"); gets(s); fun( s ); printf("The string after deleted:\n"); puts(s); NONO(); return 0; } void NONO(void) {/* 本函数用于打开文件                  ,输入数据        ,调用函数      ,输出数据                  ,关闭文件。 */ FILE *in, *out ; int i ; char s[81] ; in = fopen("in.dat","r") ; out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(in, "%s", s) ; fun(s) ; fprintf(out, "%s\n", s) ; } fclose(in) ; fclose(out) ; }
1.(19992)t/103)x 2. a2=k/10; return i; 3. void fun( char *a ) { int i,j; for (i=0,j=0;a[i]!=\0;i++) if (a[i]!=*) j=0; else j++; a[i-j]=\0; }

第76套参考答案

第77套

1.程序填空题

给定程序中           ,函数fun的功能是:计算

直到||<=10-3   ,并把计算结果作为函数值返回              。

例如                  ,若形参e的值为1e-3              ,函数的返回值为2.985678                  。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果   。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h> double fun(double e) { int i; double s, x; /**********found**********/ s=0; i=__1__; x=1.0; while(x>e) { /**********found**********/ __2__; /**********found**********/ x=(2.0*i-1)/((__3__)*(2.0*i)); s=s+x; } return s; } int main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); }

2.程序修改题

给定程序中               ,函数fun的功能是:将s所指字符串的正序和反序进行连接                 ,形成一个新串放在t所指的数组中           。

例如   ,当s所指字符串为“ABCD            ”时            ,则t所指字符串中的内容应为“ABCDDCBA                 ”                 。

请改正函数fun中指定部位的错误                 ,使它能得出正确的结果      。

注意:不要改动main函数     ,不得增行或删行         ,也不得更改程序的结构         。

#include <stdio.h> #include <string.h> /************found************/ void fun (char s, char t) { int i, d; d = strlen(s); for (i = 0; i<d; i++) t[i] = s[i]; for (i = 0; i<d; i++) t[d+i] = s[d-1-i]; /************found************/ t[2*d-1] = \0; } int main() { char s[100], t[100]; printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); return 0; }

3.程序设计题

编写函数fun                  ,它的功能是:将s所指字符串中除了下标为奇数        ,同时ASCII码值也为奇数的字符外      ,其余的字符全部删除;串中剩余字符所形成的一个新串放在t所指的数组中                 。

例如                  ,若s所指字符串中的内容为:ABCDEFG12345           ,则t所指数组中的内容应为:135         。

注意:请勿改动主函数main和其他函数中的任何内容   ,仅在函数fun的花括号中填入你编写的若干语句      。

#include <stdio.h> #include <string.h> void NONO(void); void fun(char *s, char t[]) { } int 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(); return 0; } void NONO(void) {/* 本函数用于打开文件                  ,输入数据              ,调用函数,输出数据               ,关闭文件                 。 */ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf = fopen("in.dat","r") ; wf = fopen("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) ; }
1.(102)i++ (32.0*i 2. void fun (char *s, char *t) t[2*d] = \0; 3. void fun(char *s, char t[]) { int i,j=0; for (i=0;s[i]!=\0;i++) if (i%2==1 && s[i]%2==1) t[j++]=s[i]; t[j]=\0; }

第77套参考答案

第78套

1.程序填空题

给定程序中                 ,函数fun的功能是:逆置数组元素中的值            。

例如   ,若a所指数组中的数据依次为:1               、2                 、3   、4            、5                 、6     、7         、8                  、9            ,则逆置后依次为:9        、8      、7                  、6           、5   、4                  、3              、2、1   。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果                 。

注意:不得增行或删行                 ,也不得更改程序的结构!

#include <stdio.h> void fun(int a[], int n) { int i,t; /**********found**********/ for (i=0; i<___1___; i++) { t=a[i]; /**********found**********/ a[i] = a[n-1-___2___]; /**********found**********/ ___3___ = t; } } int main() { int b[9]={1,2,3,4,5,6,7,8,9}, i; printf("\nThe original data :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); fun(b, 9); printf("\nThe data after invert :\n"); for (i=0; i<9; i++) printf("%4d ", b[i]); printf("\n"); }

2.程序修改题

给定程序中     ,函数fun的功能是:计算num的各位上的数字之积               。

例如         ,若输入252                  ,则输出应为20;若输入202        ,则输出应为0。

请改正函数fun中指定部位的错误      ,使它能得出正确的结果              。

注意:不要改动main函数                  ,不得增行或删行           ,也不得更改程序的结构                  。

#include <stdio.h> long fun(long num) { /************found************/ long k; do { k*=num%10; /************found************/ num\=10; } while(num); return (k); } int main() { long n; printf("Please enter a number:"); scanf("%ld",&n); printf("\n%ld\n",fun(n)); return 0; }

3.程序设计题

编写函数fun   ,它的功能是:找出一维数组元素中最大的值和它所在的下标                  ,最大的值和它所在的下标分别通过形参max和index传回   。

注意:请勿改动主函数main和其他函数中的任何内容              ,仅在函数fun的花括号中填入你编写的若干语句           。

#include <stdio.h> #include <stdlib.h> void NONO(void); void fun(int a[], int n, int *max, int *d) { } int main() { int i, x[20], max , index, n = 10; for (i=0;i < n;i++) { x[i] = rand()%50; printf("%4d", x[i]) ; } printf("\n"); fun( x, n , &max, &index); printf("Max =%5d , Index =%4d\n",max, index ); NONO(); return 0; } void NONO(void) {/* 本函数用于打开文件,输入数据               ,调用函数                 ,输出数据   ,关闭文件                 。 */ FILE *fp, *wf ; int i, x[20], max,index,n=10,j; fp = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { for(j = 0 ; j < n ; j++) fscanf(fp, "%d,", &x[j]) ; fun( x, n , &max, &index); fprintf(wf, "Max=%d,Index=%d\n",max,index); } fclose(fp) ; fclose(wf) ; }
1.(1)n/22)i (3)a[n-1-i] 2. long k=1; num/=10; 3. void fun(int a[], int n, int *max, int *d) { int i; *d=0; *max=a[0]; for (i=1;i<n;i++) if (*max<a[i]) { *max=a[i]; *d=i; } }

第78套参考答案

第79套

1.程序填空题

给定程序中            ,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数)                 ,平均值通过形参返回主函数     ,将小于平均值且最接近平均值的数作为函数值返回         ,在主函数中输出      。

例如                  ,有10个正数:40 30 32 40 6 17 45 15 48 26        ,平均值为:35.500000      ,主函数中输出m=30.0         。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果                 。

注意:不得增行或删行                  ,也不得更改程序的结构!

#include <stdio.h> #include <stdlib.h> #define N 10 double fun(double x[],double *av) { int i,j; double d,s; s=0; for(i=0; i<N; i++) s = s +x[i]; /**********found**********/ __1__=s/N; d=32767; for(i=0; i<N; i++) if(x[i]<*av && *av - x[i]<=d) { /**********found**********/ d=*av-x[i]; j=__2__; } /**********found**********/ return __3__; } int main() { int i; double x[N],av,m; for(i=0; i<N; i++) { x[i]=rand()%50; printf("%4.0f ",x[i]); } printf("\n"); m=fun(x,&av); printf("\nThe average is: %f\n",av); printf("m=%5.1f ",m); printf("\n"); return 0; }

2.程序修改题

给定程序中           ,函数fun的功能是:求s=aa..aa-…aaa-aa-a(此处aa..aa表示n个a   ,a和n的值在1至9之间)         。

例如                  ,a=3,n=6              ,则以上表达式为:s=333333-33333-3333-333-33-3,其值是:296298      。

请改正函数fun中指定部位的错误               ,使它能得出正确的结果                 。

注意:不要改动main函数                 ,不得增行或删行   ,也不得更改程序的结构            。

#include <stdio.h> long fun (int a, int n) { int j ; /**************found**************/ long s = 0, t = 1 ; for ( j = 0 ; j < n ; j++) t = t * 10 + a ; s = t ; for ( j = 1 ; j < n ; j++) { /**************found**************/ t = t % 10 ; s = s - t ; } return(s) ; } int main( ) { int a, n ; printf( "\nPlease enter a and n:") ; scanf( "%d%d", &a, &n ) ; printf( "The value of function is: %ld\n", fun(a, n)); return 0; }

3.程序设计题

编写函数fun            ,它的功能是:统计tt字符串中’a’到’z’26个小写字母各自出现的次数                 ,并依此放在pp所指数组中   。

例如     ,输入字符串:abcdefgabcdeabc后         ,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0                 。

注意:请勿改动主函数main和其他函数中的任何内容                  ,仅在函数fun的花括号中填入你编写的若干语句               。

#include <stdio.h> #include <string.h> void NONO(void); void fun(char *tt, int pp[]) { } int main() { char aa[1000] ; int bb[26], k; printf( "\nPlease enter a char string:" ); scanf("%s", aa) ; fun(aa, bb ) ; for ( k = 0 ; k < 26 ; k++ ) printf ("%d ", bb[k]) ; printf( "\n" ) ; NONO(); return 0; } void NONO(void) {/* 本函数用于打开文件        ,输入测试数据      ,调用fun函数                  ,输出数据           ,关闭文件。*/ char aa[1000] ; int bb[26], k, i ; FILE *rf, *wf ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%s", aa) ; fun(aa, bb) ; for ( k = 0 ; k < 26 ; k++ ) fprintf (wf, "%d ", bb[k]) ; fprintf(wf, "\n" ) ; } fclose(rf) ; fclose(wf) ; }
1.(1)*av (2)i (3)x[j] 2long s = 0, t = 0 ; t = t / 10 ; 3void fun(char *tt, int pp[]) { int i; for (i=0;i<26;i++) pp[i]=0; for (i=0;tt[i]!=\0;i++) if (tt[i]>=a && tt[i]<=z) pp[tt[i]-a]++; }

第79套参考答案

第80套

1.程序填空题

给定程序中   ,通过定义学生结构体变量                  ,存储了学生的学号               、姓名和3门课的成绩              。所有学生数据均以二进制方式输出到student.dat文件中                  。函数fun的功能是:从指定文件中找出指定学号的学生数据              ,读入此学生数据,对该生的分数进行修改               ,使每门课的分数加3分                 ,修改后重写文件中该学生的数据   ,即用该学生的新数据覆盖该学生原来的数据            ,其他学生的数据不变;若找不到                 ,则什么都不做   。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果           。

注意:不得增行或删行     ,也不得更改程序的结构!

#include <stdio.h> #define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, long sno) { FILE *fp; STU n; int i; fp = fopen(filename,"rb+"); /**********found**********/ while (!__1__) { fread(&n, sizeof(STU), 1, fp); /**********found**********/ if (n.sno__2__) break; } if (!feof(fp)) { for (i=0; i<3; i++) n.score[i] += 3; /**********found**********/ fseek(fp, -1L*__3__, SEEK_CUR); fwrite(&n, sizeof(STU), 1, fp); } fclose(fp); } int main() { STU t[N]={{10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, {10005,"ZhangSan", 95, 80, 88}}, ss[N]; int i,j; FILE *fp; fp = fopen("student.dat", "wb"); fwrite(t, sizeof(STU), N, fp); fclose(fp); printf("\nThe original data :\n"); fp = fopen("student.dat", "rb"); fread(ss, sizeof(STU), N, fp); fclose(fp); for (j=0; j<N; j++) { printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]); printf("\n"); } fun("student.dat", 10003); fp = fopen("student.dat", "rb"); fread(ss, sizeof(STU), N, fp); fclose(fp); printf("\nThe data after modifing :\n"); for (j=0; j<N; j++) { printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]); printf("\n"); } return 0; }

2.程序修改题

给定程序中         ,函数fun的功能是:求S的值                 。

例如                  ,当k=10时        ,函数值应为:1.533852      。

请改正函数fun中指定部位的错误      ,使它能得出正确的结果         。

注意:不要改动main函数                  ,不得增行或删行           ,也不得更改程序的结构                 。

#include <stdio.h> /************found************/ void fun(int k) { int n; float s, w, p, q; n = 1; s = 1.0; while ( n <= k ) { w = 2.0 * n; p = w - 1.0; q = w + 1.0; s = s * w *w/p/q; n++; } /************found************/ return s } int main() { printf("%f\n", fun (10)); return 0; }

3.程序设计题

编写函数fun   ,它的功能是:计算下列级数和

例如                  ,当n=10时              ,函数值为 0.909091         。

注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句      。

#include <stdio.h> void NONO(void); double fun(int n) { } int main() { printf("%f\n", fun(10)); NONO(); return 0; } void NONO(void) {/* 本函数用于打开文件               ,输入数据                 ,调用函数   ,输出数据            ,关闭文件                 。 */ FILE *fp, *wf ; int i, n ; double s ; fp = fopen("in.dat","r") ; wf = fopen("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) ; }
1.(1)feof(fp) (2)==sno (3)sizeof(STU) 2. float fun(int k) return s; 3. double fun(int n) { double s=0; int i; for (i=1;i<=n;i++) s+=1.0/(i*(i+1)); return s; }

第80套参考答案

声明:本站所有文章                 ,如无特殊说明或标注     ,均为本站原创发布            。任何个人或组织         ,在未征得本站同意时                  ,禁止复制                 、盗用   、采集            、发布本站内容到任何网站                 、书籍等各类媒体平台   。如若本站内容侵犯了原著者的合法权益        ,可联系我们进行处理                 。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win11更新总失败(Windows 11 CO-21H2 22000.194 正式版官方下载地址(附esd微软三语直链下载x64+arm64)) 怎样更新win11正式版(怎么升级win11正式版?win11正式版4 种升级方法)