历年全国计算机等级考试二级C语言上机考试题库.pdf
《历年全国计算机等级考试二级C语言上机考试题库.pdf》由会员分享,可在线阅读,更多相关《历年全国计算机等级考试二级C语言上机考试题库.pdf(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、历年全国计算机等级考试一二级C语言上机考试题库及答案填空给定程序的功能是调用fu n函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.c中不得增行或删行,也不得更改程序的结构!void check();/*found*/int fun(_1_*std)/*found*/2*fp;if(fp=fopen(myfile5.dat,wbu)=NULL)retum(O)
2、;printf(HnOutput data to file!n);for(i=0;iN;i+)/*found*/fwrite(&std|ih sizeof(STYPE),1,3);fclose(fp);return(1);修改给定程序M0DI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。例如:当s中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。请改正程序中的错误,使他能得出正确的结果。注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun(char*s,char*t)int
3、i,si;si=strlen(s);/*found*/for(i=0;i=sl;i+)ti=si;for(i=0;i b=如 时,调用该函数后,c=4152.注意:部分源程序存在文件PR0G1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。答案:B:STYPE FILE fpM:for(i=0;i si;i+)t2*sl=0;P:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);1.填空给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myflle
4、4.txt中,用-I作为字符串输入结束的标记。然后将文件的内容读出显示在屏幕上。文件的读写分别有自定义函数 ReadText 和 WriteText 实现。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.c中不得增行或删行,也不得更改程序的结构!main()FILE*fp;if(fp=fopen(myfiie4.txt,w)=NULL)printf(open fail!n);e x it(0);)WriteText(fp);fclose(fp):if(fp=fopen(my file4.txt,T,)=NULL)printf(
5、open fail!n);exit(O);)ReadText(fp);fclose(fp);I/*气u nd*/void WriteText(FILE _1_)char str81;printf(nEnter string with-I to end:n);gets(str);while(strcmp(str,-l)!=0)(/*Sund*/fputs(2.fw):fputs(r,n,fw);gets(str);)void ReadText(FILE*fr)char str81;printf(nRead file and output to screen:n);fgets(str,81,fr)
6、;while(!feof(fr)/*气 und*/printf(%s”,3);fgets(str,81,fr);)修改给定程序MODILc中函数fun的功能是:从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。例如:当s中的数为:7654321时,t中的数为:7531请改正程序中的错误,使他能得出正确的结果。注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!#include void fun(long s,long t)long sl=10;*t=s%10;while(s 0)(s=s/100;*t=s%10*si+*t;si
7、=si*100;)1程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45 b=如 时,调用该函数后,c=1524.注意:部分源程序存在文件PROG1.C中。数据文件1N.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。2、B:*fw str strM:long*t si=si*10;P:*c=(b/l 0)*1000+(a%10)*100+(b%10)*10+(a/10);2.填空给定
8、程序中,函数fun的功能是:将自然数l10以及它们的平方根写到名为myfile3txt的文本文档中,然后再顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.c中不得增行或删行,也不得更改程序的结构!int fun(char*fname)FILE*fp;int i,n;float x;if(fp=fopen(fname,nw)=NULL)return 0;for(i=l;i=10;i+)fprintf(_1_,%d%fni,sqrt(double)i);printf(MnSucceed!nH);/*R)und
9、*/2.printf(nThe data in file:nH);/*Cund*/if(fp=fopen(_3,T)=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)修改给定程序MODIl.c中fun函数的功能是:将n个无序整数从小到大排序。fun(int n,int*a)int i,j,p,t;fbr(j=0;jn-l;j+)p=j;/*found*/for(i=j+l;iai)/*Sund*/t=i;if(p!=j)t=a|
10、j;aj|=ap;ap=t;)程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45 b=如 时,调用该函数后,c=2514注意:部分源程序存在文件PROG1.C中。数据文件1N.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。3、B:fp fclose(fp)fnameM:i 0)d=s%10;/*命und*/if(d%2=0)*t=d*sl+*t;si*=10;/*砧und*/s=1
11、0;)程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45 b=如时,调用该函数后,c=5142注意:部分源程序存在文件PROG1.C中。数据文件1N.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。4、B:“d fs ftM:(d%2=0)s/=10;P:*c=(a%10)*1000+(b/l 0)*100+(a/10)*10+(b%10);4.填空给定程序中已建立一个带有头结点的单
12、向链表,链表中的各节点按结点数据域中的数据递增有序链表。函数fun的功能是:把形参x的值放入一 个新结点并插入到链表中,插入后结点数据域的值仍保持递增有序。typedef struct list int data;struct list*next;SLIST;void fun(SLIST*h,int x)SLIST*p,*q,*s;s=(SLIST*)mal!oc(sizeof(SLIST);/*R)und*/s-data=q=h;p=h-next;while(p!=NULL&xp-data)(/*Cund*/2.p=p-next;s-next=p;/*Rjund*/q-next=_3_:I修
13、改给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入:2 5 2,则输入应该是:20.若输入:2 0 2,则输出应该是:0.long fun(long num)/*found*/long k;do k*=num%10;num=10;while(num);return(k);)请编写一个函数fu n,它的功能是:它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如;若有5门课程的成绩是:90.5,72,80,61.5,55则函数的值为:71.805、B:x p sM:long k=l;num/=10;P:int i;float ave=0.0;
14、fbr(i=O;inext;s=p;while(t-next!=NULL)t=t-_1I/*Cund*/printfC1%d”,2);s-next=NULL;/*R)und*/free(-3-);1修改给定程序M0DI1.C中函数fun的功能是:将字符串中的字符按逆序输出,单补改变字符串中的内容。例如,若字符串味a b e d,则应输出:deba/*found*/fun(char a)if(*a)fun(a+l);/*/printf(%cn*a);)1程序请编写一个函数fu n,他的功能是:比较两个字符串的长度(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相
15、同,则返回第一个字符串。例如,输入beijingshanghaivCR(vCR为回车键),函数将返回shanghai6、B:next t-data tM:fun(char*a)printf(%cM,*a);P:int i;char*p=s,*q=t;for(i=0;*p&*q;i+)p+;q+;)if(*p=0&*q=0)return s;if(*p)return s;else return t;6.填空给定程序中建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序连接。函 数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个typedef struct list int d
16、ata;struct list*next;SLIST:void fun(SLIST*h)SLIST*p,*q;p=h-next;if(p!=NULL)q=p-next;while(q!=NULL)if(p-data=q-data)p-next=q-next;/*R)und*/free(1-);/*Cun(j*/q=p-2;)else(p二q;*nd*豕 弁q=q-一3一;)修改给定程序M0DI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。void fun(int a,int n)int i,j,Lp;forG=0;j n-l;j+)/*R)uncl*/p=jf
17、br(i=j;in;i+)if(ai ap)/*R)und*/P=j;t=ap;a|p|=aj;aj=t;请编写一个函数fu n,它的功能是:求出1到m之 间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传3送给m的之位5 0,则程序输出:7 11 14 21 22 18 3335 42 44 49答案:7、B:q next nextM:p=j;p=i;P:int i;*n=0;for(i=7;inext;/*j)und*/while(p!=_1_)n+;/*found*/if(p-data=ch)return_2_;else p=p-next;return
18、0;修改给定程序M 0D I1.C中函数fu n的功能是:删除p所指字符串中的所有空白字符(包括制表符,同车符及换行符)输入字符串是用“#结束输入。fun(char*p)int iJ;char c80;/*found*/For(i=0,t=0;p i;i+)if(!isspace(*(p+i)ct+=pi;/*R)und*/ct=MOu;strcpy(p,c);)程序请编写一个函数f u n,它的功能是:将s s所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)例如:若输入“abc4EFg,则应输出“aBc4Efg”。答案:8、B:NULL n head,chM:
19、for c|t=0;P:int i;for(i=I;i=a&ssi next;while(p)(*n)+;/*R)und*/p=p-2一:)main()SLIST*head;int aN=12,87,45,32,91,16,20,48),num;head=creatlist(a);outlist(head);/*R)und*/fun(_ 3_,&num);piintf(nnuinber=%dn,num);1修改给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL例如
20、:当字符串中的内容为“abcdefabcdx”t中的内容为“ab”时,输出的结果应是:abcdx当字符串中的内容为abcdefabcdx t中的内容为ab d 时,则程序输出未找到信息not be foundchar*fun(char*s,char*t)char*p,*r,*a;a=Null;while(*s)p=s;r=t;while(*r)if(r=p)r+;p+;else break;if(*r=0)a=s;s+;)return a;)程序函数fun的功能是:将s所指字符串中除了下标问为偶数,同时ASCH值也为偶数的字符外,其余的全部删除:串中剩余字符所形成的一个新串放在t所指的数组中例
21、如,若s所指的字符串中的内容为“ABCDEFG123456,其中字符A的ASCII码味奇数,因此应当删除,其中字符b的ASCII码值为偶数,但是在数组中的下标为基数,因此也当删除;答案9、B:*n next headM:a=NULL;*r=*pP:inti,j=O;for(i=0;i next;while(p)P=p-一2一;)return$;)修改给定程序MOD11.C中函数fun的功能是:将s所指字符串中出现的与t l所指字符串相同的字串全部替换成t2所指字符串,所形成的新串放在w所指的数组中,在此处,要求t l和t2所指字符串的长度相同。int fun(char*s,char*tl,ch
22、ar*t2,char*w)int i;charstrcpy(w,s);while(*w)p=w;r=tl;/*Sund*/while(r)if(*r=*p)r+;p+;)else break;if(*r=0)a=w;r=t2;while(*r)*a=*r;a+;r+)w+=strlen(t2);)else w+;1)程序函数fun的功能是;将s所指字符串下标为偶数的字符删除,串中剩余字符形成的新串放在t所指的数组中例如:当s所指字符串中的内容为:“ABCDEFGHIJK”在t所指数组中的内容应是BDFHJ”10 B:data next headM:*r r+;P:int i,j=0;for(i
23、=1 ;i strlen(s);i+=2)t|j+|=si;tj=0;1 0.填空人员记录有编号和出生年月日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出数据中的编号为空串。/*R)und*/_1_ fun(STU*std,char*num)int i;STU a=n,9999,99,99);for(i=0;iN;i+)if(strcmp(_2_,num)=O)/*Rjund*/return(_3_);return a;)修改给定程序MODI1.C中函数firn的功能是:从s所指字符串中,找出与 所指字符串相同的字串的个数作为函数返I可值例如,当s
24、所指字符串中的内容为:“abcdabfab,t所指字符串的内容为:“ab”则函数返回整数int fun(char*s,char*t)int n;char*p,*r;n=0;while(*s)p=s;r=t;while(*r)if(*r=*p)/*tound*/r+;p+)else break;/*found*/if(r=0)n+;s+;Ireturn n;)函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中例如,若s所指字符串中的内容为“ABCDEFG12345,其中字符B的ASCII码值为偶数答案:11、B:STU stdi.num
25、stdiM:p+;*r=,0,;P:int i,j=0;for(i=0;i strlen(s);i+)if(si%2)tj+=si;tj=0;1 2.填空人员的记录由编号和出生年月日组成N名成员的数据已在主函数中存入结构体数组std中,函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同事有函数值返回满足指定条件的人数int fun(STU*std,STU*k,int year)int i,n=0;for(i=0;iN;i+)if(_1_=year)/*/kn+=2:/*R)und*/return(_3_);)修改给定程序M0D112。C的功能是:读入个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 全国 计算机等级考试 二级 语言 上机 考试 题库
限制150内