《全国计算机等级2012.3完整版二级C上机题库.doc》由会员分享,可在线阅读,更多相关《全国计算机等级2012.3完整版二级C上机题库.doc(251页珍藏版)》请在金锄头文库上搜索。
1、易考培训 YINGHAO EDUCATION易考培训全国计算机等级教育二级C语言考试原题及答案绿色部分为题目的问题位置,红色部分为答案本题库为全国计算机二级C语言上机考试原题,全部上机题库均出自此100套题,每次考试从中选50套。希望广大学员仔细认真练习。第01套: 是给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增
2、行或删行,也不得更改程序的结构! 给定源程序: #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、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
4、 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.name,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
5、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
6、();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.name,si.tel);fclose(fp);* 给定程序MODI1.C中函数
7、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;/*fo
8、und*/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,
9、 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的花括号中填 入你编写的
10、若干语句。 给定源程序: #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(ou
11、t.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);fprin