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

计算机二级c语言上机操作题(计算机等级考试二级C语言上机题集(第46~50套))

时间2025-09-17 11:08:31分类IT科技浏览5694
导读:第46套 1.程序填空题...

第46套

1.程序填空题

给定程序的功能是调用函数fun建立班级通讯录                 。通讯录中记录每位学生的编号                 、姓名和电话号码                          。班级的人数和学生的信息从键盘读入                  ,每个人的信息作为一个数据块写到名为myfile3.dat的二进制文件中        。

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

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

2.程序修改题

给定程序中        ,函数fun的功能是:从低位开始取出长整数s中奇数位上的数                  ,依次构成一个新数放在t中                          。高位仍在高位                          ,低位仍在低位                 。

例如        ,若s=7654321         ,则t=7531         。

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

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

#include <stdio.h> /************found************/ void fun (long s, long t) { long sl=10; *t = s % 10; while ( s > 0) { s = s/100; *t = s%10 * sl + *t; /************found************/ sl = sl*100; } } int main() { long s, t; printf("\nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ld\n", t); return 0; }

3.程序设计题

编写函数fun                          ,它的功能是:将两个两位正整数a                          、b合并形成一个整数存放在c中                 ,合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,将b数的十位和个位数依次放在c数的千位和十位上。

例如                          ,当a=45                         ,b=12时,调用该函数后                  ,c=1524                          。

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

#include <stdio.h> void NONO(void); void fun(int a, int b, long *c) { } int main() { int a,b; long c; printf("Input a b:"); scanf("%d%d", &a, &b); fun(a, b, &c); printf("The result is: %d\n", c); NONO(); return 0; } void NONO(void) {/* 本函数用于打开文件        ,输入数据                  ,调用函数                          ,输出数据        ,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen("in.dat", "r") ; wf = fopen("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) ; }
1.(1)STYPE (2)FILE (3)fp 2. void fun (long s, long *t) sl = sl*10; 3. void fun(int a, int b, long *c) { *c=1000*(b/10)+100*(a%10)+10*(b%10)+a/10; }

第46套参考答案

第47套

1.程序填空题

给定程序中         ,人员的记录由编号和出生年        、月         、日组成                          ,N名人员的数据已在主函数中存入结构体数组std中                 ,且编号唯一                 。函数fun的功能是:找出指定编号人员的数据         ,作为函数值返回;若指定编号不存在                          ,返回数据中的编号为空串                          。

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

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

#include <stdio.h> #include <string.h> #define N 8 typedef struct { char num[10]; int year,month,day ; }STU; /**********found**********/ ___1___ fun(STU *std, char *num) { int i; STU a={"",9999,99,99}; for (i=0; i<N; i++) /**********found**********/ if (strcmp(___2___,num)==0) /**********found**********/ return (___3___); return a; } int main() { STU std[N]={{"111",1984,2,15},{"222",1983,9,21}, {"333",1984,9,1},{"444",1983,7,15}, {"555",1984,9,28},{"666",1983,11,15}, {"777",1983,6,22},{"888",1984,8,19}}; STU p; char n[10]="666"; p=fun(std,n); if(p.num[0]==0) printf("\nNot found !\n"); else { printf("\nSucceed !\n "); printf("%s %d-%d-%d\n",p.num,p.year,p.month,p.day); } return 0; }

2.程序修改题

给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序                 。

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

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

#include <stdio.h> #include <string.h> #define MAXLINE 20 void fun(char *pstr[6]) { int i, j ; char *p ; for (i = 0 ; i < 5 ; i++) { /**************found**************/ for (j=i+1, j<6, j++) { if(strcmp(*(pstr+i), *(pstr+j))>0) { p = *(pstr + i) ; /**************found**************/ *(pstr + i) = pstr + j ; *(pstr + j) = p ; } } } } int main() { int i ; char *pstr[6], str[6][MAXLINE] ; for(i = 0; i < 6 ; i++) pstr[i] = str[i] ; printf("\nEnter 6 string(1 string at each line):\n"); for(i=0 ; i<6; i++) scanf("%s", pstr[i]); fun(pstr) ; printf("The strings after sorting:\n") ; for (i = 0 ; i < 6 ; i++) printf("%s\n", pstr[i]); return 0; }

3.程序设计题

编写函数fun                  ,它的功能是:求出ss所指字符串中指定字符的个数                         ,并返回此值         。

例如        ,若输入字符串:123412132                  ,输入字符1                          ,则输出3                          。

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

#include <stdio.h> #include <string.h> #define M 81 void NONO(void); int fun(char *ss, char c) { } int main() { char a[M], ch; printf("\nPlease enter a string:"); gets(a); printf("\nPlease enter a char:"); ch = getchar(); printf("\nThe number of the char is: %d\n",fun(a,ch)); NONO(); return 0; } void NONO(void) {/* 本函数用于打开文件         ,输入测试数据                          ,调用fun函数                 ,输出数据         ,关闭文件         。*/ int i ; FILE *rf, *wf ; char a[M], b[M], ch ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%s", a) ; fscanf(rf, "%s", b) ; ch = *b ; fprintf(wf, "%c=%d\n", ch, fun(a, ch)) ; } fclose(rf) ; fclose(wf) ; }
1.(1)STU (2)std[i].num (3)std[i] 2for (j=i+1; j<6 ; j++) *(pstr + i) = *(pstr + j) ; 3. int fun(char *ss, char c) { int i,n=0; for (i=0;ss[i]!=\0;i++) if (ss[i]==c) n++; return n; }

第47套参考答案

第48套

1.程序填空题

给定程序中                          ,函数fun的功能是:计算出带头结点的单向链表中各结点数据域之和作为函数值返回                          。

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

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

#include <stdio.h> #include <stdlib.h> #define N 8 typedef struct list { int data; struct list *next; } SLIST; SLIST *creatlist(int *); void outlist(SLIST *); int fun(SLIST *h) { SLIST *p; int s=0; p=h->next; while(p) { /**********found**********/ s+= p->___1___; /**********found**********/ p=p->___2___; } return s; } int main() { SLIST *head; int a[N]={12,87,45,32,91,16,20,48}; head=creatlist(a); outlist(head); /**********found**********/ printf("\nsum=%d\n", fun(___3___)); return 0; } SLIST *creatlist(int a[]) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i<N; i++) { q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; } p->next=0; return h; } void outlist(SLIST *h) { SLIST *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"); } }

2.程序修改题

给定程序中,函数fun的功能是:根据形参m                          ,计算

S=1+1/2+1/3+…+1/m

例如                         ,若输入5,则应输出2.283333。

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

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

#include <stdio.h> double fun(int m) { double t = 1.0; int i; for( i = 2; i <= m; i++ ) /**********found**********/ t += 1/i; /**********found**********/ return t } int main() { int m; printf( "\nPlease enter 1 integer number:" ); scanf( "%d", &m ); printf( "\nThe result is %lf\n", fun( m ) ); return 0; }

3.程序设计题

编写函数fun                  ,它的功能是:统计一个长度为2的字符串substr在另一个字符串sub中出现的次数。

例如                          ,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo        ,子字符串为as         ,则应输出6                 。

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

#include <stdio.h> #include <string.h> int fun(char *str,char *substr) { } int main() { char str[81],substr[3]; int n; printf("输入主字符串: "); gets(str); printf("输入子字符串: "); gets(substr); puts(str); puts(substr); n=fun(str,substr); printf("n=%d\n",n); NONO(); return 0; } void NONO(void) { /* 请在此函数内打开文件                 ,输入测试数据         ,调用 fun 函数                          , 输出数据                 ,关闭文件        。 */ char str[81],substr[3], ch; int n,len, i = 0; FILE *rf, *wf ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; while(i < 5) { fgets(str, 80, rf) ; fgets(substr, 10, rf) ; len = strlen(substr) - 1 ; ch = substr[len] ; if(ch == \n || ch == 0x1a) substr[len] = 0 ; n=fun(str,substr); fprintf(wf, "%d\n", n) ; i++ ; } fclose(rf) ; fclose(wf) ; }
1.(1data2)next (3)head 2. t += 1.0/i; return t; 3. int fun(char *str,char *substr) { int i,n=0; for (i=0;str[i]!=\0 && str[i+1]!=\0;i++) if (str[i]==substr[0] && str[i+1]==substr[1]) n++; return n; }

第48套参考答案

第49套

1.程序填空题

给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]                          、a[1]                 、a[2]         、……中                          ,把奇数从数组中删除                         ,偶数个数通过函数值返回                 。

例如,若a所指数组中的数据最初排列为:9                          、1                 、4、2                          、3                          、6、5                 、8                          、7                  ,删除奇数后a所指数组中的数据为:4        、2                 、6                          、8                         ,函数返回值为4                          。

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

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

#include <stdio.h> #define N 9 int fun(int a[], int n) { int i,j; j = 0; for (i=0; i<n; i++) /**********found**********/ if (___1___== 0) { /**********found**********/ ___2___ = a[i]; j++; } /**********found**********/ return ___3___; } int main() { int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf("\nThe original data :\n"); for (i=0; i<N; i++) printf("%4d ", b[i]); printf("\n"); n = fun(b, N); printf("\nThe number of even :%d\n", n); printf("\nThe even :\n"); for (i=0; i<n; i++) printf("%4d ", b[i]); printf("\n"); return 0; }

2.程序修改题

给定程序中                  ,函数fun的功能是:根据形参m                          ,计算

t=1-1/2-1/3-…-1/m

例如        ,若主函数中输入5         ,则应输出-0.283333         。

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

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

#include <stdio.h> double fun(int m) { /**********found**********/ double t; int i; for( i = 2; i <= m; i++ ) /**********found**********/ t = 1.0-1 /i; return t; } int main() { int m ; printf( "\nPlease enter 1 integer numbers:\n" ); scanf( "%d", &m); printf( "\nThe result is %f\n", fun(m)); return 0; }

3.程序设计题

编写函数fun                          ,它的功能是:删除字符串中的所有空格         。

例如                 ,主函数中输入“asd af aa z 67                  ”,则输出为“asdafaaz67                         ”                          。

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

#include <stdio.h> void NONO(void); void fun(char *str) { } int main() { char str[81]; printf("Input a string:") ; gets(str); puts(str); fun(str); printf("*** str: %s\n",str); NONO(); return 0; } void NONO(void) { /* 请在此函数内打开文件                         ,输入调试数据,调用 fun 函数                  , 输出数据                         ,关闭文件。 */ char str[81]; int n = 0; FILE *rf, *wf ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; while(n < 10) { fgets(str, 80, rf); fun(str); fprintf(wf, "%s", str) ; n++ ; } fclose(rf) ; fclose(wf) ; }
1.(1)a[i]%22)a[j] (3)j 2. double t=1.0; t = t-1.0/i; 3. void fun(char *str) { int i,j; for (i=0,j=0; str[i]!=\0;i++) if (str[i]!=) str[j++]=str[i]; str[j]=\0; }

第49套参考答案

第50套

1.程序填空题

给定程序中        ,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数                  ,并存放在形参t所指的变量中                          。

例如                          ,若输入字符串“abcdef35adgh3kjsdf7        ”        ,则输出结果为4                          。

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

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

#include <stdio.h> void fun(char *s, int *t) { int i, n; n=0; /**********found**********/ for(i=0; ___1___; i++) /**********found**********/ if(s[i]>=0&&s[i]<= ___2___ ) n++; /**********found**********/ ___3___ ; } int main() { char s[80]="abcdef35adgh3kjsdf7"; int t; printf("\nThe original string is : %s\n",s); fun(s,&t); printf("\nThe result is : %d\n",t); return 0; }

2.程序修改题

给定程序中                          ,函数fun的功能是:为一个偶数寻找两个素数                 ,这两个素数之和等于该偶数         ,并将这两个素数通过形参指针传回主函数                 。

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

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

#include <stdio.h> #include <math.h> void fun(int a,int *b,int *c) { int i,j,d,y; for(i=3;i<=a/2;i=i+2) { /**************found**************/ Y=1; for(j=2;j<=sqrt((double)i);j++) if (i%j==0) y=0; if (y==1) { /**************found**************/ d==a-i; for(j=2;j<=sqrt((double)d);j++) if (d%j==0) y=0; if (y==1) { *b=i; *c=d; break; } } } } int main() { int a,b,c; do { printf("\nInput a: "); scanf("%d",&a); } while(a%2 || a==2); fun(a,&b,&c); printf("\n\n%d = %d + %d\n",a,b,c); return 0; }

3.程序编写题

编写函数fun                          ,它的功能是:计算n(包括n)以内能被5或9整除的所有自然数的倒数之和                 。

例如                         ,在主函数中输入n为20,则输出为:s=0.583333                          。

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

#include <stdio.h> void NONO(void); double fun(int n) { } int main() { int n; double s; printf("\nInput n: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n",s); NONO(); return 0; } void NONO(void) {/* 请在此函数内打开文件                         ,输入测试数据        ,调用 fun 函数                  ,输出数据                          ,关闭文件         。 */ FILE *rf, *wf ; int n, i ; double s ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%d", &n) ; s = fun(n) ; fprintf(wf, "%f\n", s) ; } fclose(rf) ; fclose(wf) ; }
1.(1)s[i]!=\0293)*t=n 2. y=1; d=a-i; 3. double fun(int n) { double s=0.0; int i; for (i=1;i<=n;i++) if (i%5==0 || i%9==0) s+=1.0/i; return s; }

第50套参考答案

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

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

展开全文READ MORE
formdata append(FormData详解) 内置管理员账户无法打开应用权限(内置管理员无法打开此应用解决方法)