




已阅读5页,还剩246页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
易考培训 YINGHAO EDUCATION易考培训全国计算机等级教育二级C语言考试原题及答案绿色部分为题目的问题位置,红色部分为答案本题库为全国计算机二级C语言上机考试原题,全部上机题库均出自此100套题,每次考试从中选50套。希望广大学员仔细认真练习。第01套: 是给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define N 5typedef structint num;char name10;char tel10;STYPE;void check();/*found*/int fun(_1_ *std)/*found*/_2_ *fp; int i;if(fp=fopen(myfile5.dat,wb)=NULL)return(0);printf(nOutput data to file !n);for(i=0; iN; i+)/*found*/fwrite(&stdi, sizeof(STYPE), 1, _3_);fclose(fp);return (1);main()STYPE s10= 1,aaaaa,111111,1,bbbbb, 222222,1,ccccc,333333,1,ddddd,444444,1,eeeee, 555555;int k;k=fun(s);if (k=1)printf(Succeed!); check();elseprintf(Fail!);void check()FILE *fp; int i;STYPE s10;if(fp=fopen(myfile5.dat,rb)=NULL)printf(Fail !n); exit(0);printf(nRead file and output to screen :n);printf(n num name teln);for(i=0; iN; i+)fread(&si,sizeof(STYPE),1, fp);printf(%6d %s %sn,si.num, ,si.tel);fclose(fp);解题答案: #include #include #define N 5typedef structint num;char name10;char tel10;STYPE;void check();/*found*/int fun(STYPE *std)/*found*/FILE *fp; int i;if(fp=fopen(myfile5.dat,wb)=NULL)return(0);printf(nOutput data to file !n);for(i=0; iN; i+)/*found*/fwrite(&stdi, sizeof(STYPE), 1, fp);fclose(fp);return (1);main()STYPE s10= 1,aaaaa,111111,1,bbbbb, 222222,1,ccccc,333333,1,ddddd,444444,1,eeeee, 555555;int k;k=fun(s);if (k=1)printf(Succeed!); check();elseprintf(Fail!);void check()FILE *fp; int i;STYPE s10;if(fp=fopen(myfile5.dat,rb)=NULL)printf(Fail !n); exit(0);printf(nRead file and output to screen :n);printf(n num name teln);for(i=0; iN; i+)fread(&si,sizeof(STYPE),1, fp);printf(%6d %s %sn,si.num, ,si.tel);fclose(fp);* 给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放 到t串中,然后把s中的字符按逆序连接到t串的后面。 例如:当s中的字符串为:ABCDE时, 则t中的字符串应为:ABCDEEDCBA。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include void fun (char *s, char *t)int i, sl;sl = strlen(s);/*found*/for(i=0; i=s1; i +)ti = si;for (i=0; isl; i+)tsl+i = ssl-i-1;/*found*/tsl = 0;main()char s100, t100;printf(nPlease enter string s:); scanf(%s, s);fun(s, t);printf(The result is: %sn, t);解题答案: #include #include void fun (char *s, char *t)int i, sl;sl = strlen(s);/*found*/for(i=0; i= sl; i+)ti = si;for (i=0; isl; i+)tsl+i = ssl-i-1;/*found*/t2*sl=0;main()char s100, t100;printf(nPlease enter string s:); scanf(%s, s);fun(s, t);printf(The result is: %sn, t);* 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上, b数的十位 和个位数依次放在c数的百位和个位上。 例如,当a45,b=12时,调用该函数后,c=4152。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填 入你编写的若干语句。 给定源程序: #include void fun(int a, int b, long *c)main()int a,b; long c;void NONO ();printf(Input a, b:); scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %dn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */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=%ldn, a, b, c);fclose(rf);fclose(wf);解题答案: #include void fun(int a, int b, long *c)*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);main()int a,b; long c;void NONO ();printf(Input a, b:); scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %dn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */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=%ldn, a, b, c);fclose(rf);fclose(wf); 第02套:是给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #include void WriteText(FILE *);void ReadText(FILE *);main()FILE *fp;if(fp=fopen(myfile4.txt,w)=NULL)printf( open fail!n); exit(0);WriteText(fp);fclose(fp);if(fp=fopen(myfile4.txt,r)=NULL)printf( open fail!n); exit(0);ReadText(fp);fclose(fp);/*found*/void WriteText(FILE _1_)char str81;printf(nEnter string with -1 to end :n);gets(str);while(strcmp(str,-1)!=0) /*found*/fputs(_2_,fw); fputs(n,fw);gets(str);void ReadText(FILE *fr)char str81;printf(nRead file and output to screen :n);fgets(str,81,fr);while(!feof(fr) /*found*/printf(%s,_3_);fgets(str,81,fr);解题答案: #include #include #include void WriteText(FILE *);void ReadText(FILE *);main()FILE *fp;if(fp=fopen(myfile4.txt,w)=NULL)printf( open fail!n); exit(0);WriteText(fp);fclose(fp);if(fp=fopen(myfile4.txt,r)=NULL)printf( open fail!n); exit(0);ReadText(fp);fclose(fp);/*found*/void WriteText(FILE *fw)char str81;printf(nEnter string with -1 to end :n);gets(str);while(strcmp(str,-1)!=0) /*found*/fputs(str,fw); fputs(n,fw);gets(str);void ReadText(FILE *fr)char str81;printf(nRead file and output to screen :n);fgets(str,81,fr);while(!feof(fr) /*found*/printf(%s,str);fgets(str,81,fr);* 给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:7654321时,t中的数为:7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include /*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;main()long s, t;printf(nPlease enter s:); scanf(%ld, &s);fun(s, &t);printf(The result is: %ldn, t);解题答案: #include /*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*10;main()long s, t;printf(nPlease enter s:); scanf(%ld, &s);fun(s, &t);printf(The result is: %ldn, t);* 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上, b数的十位 和个位数依次放在c数的千位和十位上。 例如,当a45,b=12时,调用该函数后,c=1524。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include void fun(int a, int b, long *c)main()int a,b; long c;void NONO ();printf(Input a, b:);scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %ldn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */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=%ldn, a, b, c);fclose(rf);fclose(wf);解题答案: #include void fun(int a, int b, long *c)*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);main()int a,b; long c;void NONO ();printf(Input a, b:);scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %ldn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */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=%ldn, a, b, c);fclose(rf);fclose(wf); 第03套:是给定程序中,函数fun的功能是:将自然数110以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include int fun(char *fname)FILE *fp; int i,n; float x;if(fp=fopen(fname, w)=NULL) return 0;for(i=1;i=10;i+)/*found*/fprintf(_1_,%d %fn,i,sqrt(double)i);printf(nSucceed!!n);/*found*/_2_;printf(nThe data in file :n);/*found*/if(fp=fopen(_3_,r)=NULL)return 0;fscanf(fp,%d%f,&n,&x);while(!feof(fp)printf(%d %fn,n,x); fscanf(fp,%d%f, &n,&x);fclose(fp);return 1;main()char fname=myfile3.txt;fun(fname);解题答案: #include #include int fun(char *fname)FILE *fp; int i,n; float x;if(fp=fopen(fname, w)=NULL) return 0;for(i=1;i=10;i+)/*found*/fprintf(fp,%d %fn,i,sqrt(double)i);printf(nSucceed!!n);/*found*/fclose(fp);printf(nThe data in file :n);/*found*/if(fp=fopen(fname,r)=NULL)return 0;fscanf(fp,%d%f,&n,&x);while(!feof(fp)printf(%d %fn,n,x); fscanf(fp,%d%f, &n,&x);fclose(fp);return 1;main()char fname=myfile3.txt;fun(fname);* 给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include fun (int n, int *a)int i, j, p, t;for (j = 0; jn-1 ; j+)p = j;/*found*/for (i=j+1; iai)/*found*/t=i;if (p!=j)t = aj; aj = ap; ap = t;putarr(int n, int *z)int i;for (i = 1; i = n; i+, z+)printf(%4d, *z);if (!(i%10) printf(n); printf(n);main()int aa20=9,3,0,4,1,2,5,6,8,10,7, n=11;printf(nnBefore sorting %d numbers:n, n); putarr(n, aa);fun(n, aa);printf(nAfter sorting %d numbers:n, n); putarr(n, aa);解题答案: #include #include fun (int n, int *a)int i, j, p, t;for (j = 0; jn-1 ; j+)p = j;/*found*/for(i=j+1;iai)/*found*/p=i;if (p!=j)t = aj; aj = ap; ap = t;putarr(int n, int *z)int i;for (i = 1; i = n; i+, z+)printf(%4d, *z);if (!(i%10) printf(n); printf(n);main()int aa20=9,3,0,4,1,2,5,6,8,10,7, n=11;printf(nnBefore sorting %d numbers:n, n); putarr(n, aa);fun(n, aa);printf(nAfter sorting %d numbers:n, n); putarr(n, aa);* 函数fun的功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的十位和千位上。 例如, 当a=45, b=12时, 调用该函数后, c=2514。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: #include void fun(int a, int b, long *c)main()int a,b; long c;void NONO ();printf(Input a, b:);scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %ldn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */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=%ldn, a, b, c);fclose(rf);fclose(wf);解题答案: #include void fun(int a, int b, long *c)*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;main()int a,b; long c;void NONO ();printf(Input a, b:);scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %ldn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */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=%ldn, a, b, c);fclose(rf);fclose(wf);参考答案: void fun(int a, int b, long *c) *c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10); 第04套:是给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include int fun(char *source, char *target)FILE *fs,*ft; char ch;/*found*/if(fs=fopen(source, _1_)=NULL)return 0;if(ft=fopen(target, w)=NULL)return 0;printf(nThe data in file :n);ch=fgetc(fs);/*found*/while(!feof(_2_)putchar(ch);/*found*/fputc(ch,_3_);ch=fgetc(fs);fclose(fs); fclose(ft);printf(nn);return 1;main()char sfname20 =myfile1,tfname20=myfile2;FILE *myf; int i; char c;myf=fopen(sfname,w);printf(nThe original data :n);for(i=1; i30; i+)c=A+rand()%25;fprintf(myf, %c,c); printf(%c,c);fclose(myf);printf(nn);if (fun(sfname, tfname) ) printf(Succeed!);else printf(Fail!);解题答案: #include #include int fun(char *source, char *target)FILE *fs,*ft; char ch;/*found*/if(fs=fopen(source, r)=NULL)return 0;if(ft=fopen(target, w)=NULL)return 0;printf(nThe data in file :n);ch=fgetc(fs);/*found*/while(!feof(fs)putchar(ch);/*found*/fputc(ch,ft);ch=fgetc(fs);fclose(fs); fclose(ft);printf(nn);return 1;main()char sfname20 =myfile1,tfname20=myfile2;FILE *myf; int i; char c;myf=fopen(sfname,w);printf(nThe original data :n);for(i=1; i30; i+)c=A+rand()%25;fprintf(myf, %c,c); printf(%c,c);fclose(myf);printf(nn);if (fun(sfname, tfname) ) printf(Succeed!);else printf(Fail!);* 给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:8642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun (long s, long *t)int d;long sl=1;*t = 0;while (s 0)d = s%10;/*found*/if (d%2=0) *t=d* sl+ *t;sl *= 10;/*found*/s = 10;main()long s, t;printf(nPlease enter s:); scanf(%ld, &s);fun(s, &t);printf(The result is: %ldn, t);解题答案: #include void fun (long s, long *t)int d;long sl=1;*t = 0;while (s 0)d = s%10;/*found*/if(d%2=0) *t=d* sl+ *t;sl *= 10;/*found*/s/=10;main()long s, t;printf(nPlease enter s:); scanf(%ld, &s);fun(s, &t);printf(The result is: %ldn, t);* 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上, b数的十位 和个位数依次放在c数的百位和个位上。 例如,当a45,b=12时,调用该函数后,c=5142。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: #include void fun(int a, int b, long *c)main()int a,b; long c;void NONO ();printf(Input a, b:);scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %ldn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */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=%ldn, a, b, c);fclose(rf);fclose(wf);解题答案: #include void fun(int a, int b, long *c)*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);main()int a,b; long c;void NONO ();printf(Input a, b:);scanf(%d,%d, &a, &b);fun(a, b, &c);printf(The result is: %ldn, c);NONO();void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */FILE *rf, *wf ;int i, a,b ; long c ;rf = fopen(in.dat, r);wf = fopen(o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中化金融业务管理办法
- ppp项目部管理办法
- 融资租赁定价管理办法
- 精装房安装管理办法
- 莲花湖夜间管理办法
- 装修装饰材料管理办法
- 业务限时办结管理办法
- 个人信息专项管理办法
- 芙蓉镇景区管理办法
- 个人转贷服务管理办法
- 轴承装配工标准化作业考核试卷及答案
- 2025至2030中国电动车仪表行业发展分析及前景趋势与投资报告
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试备考试题及答案解析
- 2025年分步重复光刻机项目发展计划
- 2025年探伤工(二级)重点难点考试试卷
- (正式版)DB15∕T 385-2020 《行业用水定额》
- 村级财务业务知识培训课件
- 2025年特种设备检验人员资格考试(压力管道检验师GDS)历年参考题库含答案详解(5套)
- 白内障囊外摘除联合青光眼人工晶体植入术后护理查房
- 药品停产管理办法
- 2025年《临床输血技术规范》
评论
0/150
提交评论