2021全国大学生历年全国计算机等级考试_二级c语言上机考试题库及答案.pdf
《2021全国大学生历年全国计算机等级考试_二级c语言上机考试题库及答案.pdf》由会员分享,可在线阅读,更多相关《2021全国大学生历年全国计算机等级考试_二级c语言上机考试题库及答案.pdf(189页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 .填空给定程序的功能是调用fun函数创立班级通讯录.通讯录中记录每位学生的编号,姓名和电话号码.班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中.请在程序的下划线处填入对的内容并把下划线删除,是程序得到对的成果.注重:源程序存放在考生文件夹下的BL ANKl.c中不得增行或删行,也不得更改程序的结构!void check(;*found*int fun(_1_*std*found*_2_*fp;int i;if(fp=fopen(myfile5.dat,wb=NUL Lreturn(0;printf(nOutput data to f
2、ile!n;for(i=0;i*found*fwrite(&stdi,sizeof(STYPE,1,_3_;fclose(fp;return(1;)修改给定程序M0DI1.C中函数fun的功能是:先将在字符串s 中的字符按正序存放到I串中,然后把s 中的字符按逆序毗邻到t 串背面.例如:当s 中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”.请改正程序中的错误,使他能得到对的成果.注重:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun(char*s,char*t int i,si;si=strlen(s;*to u nd*for(i=0;
3、i=s 1;i+ti=si;for(i=0;itsl+i=ssl-i-l;*found*tsl=0;程序函数fun的功能是:将两个两位数的正整数a,b 合并成一个整数放在c 中.合并的方式是:将 a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c 数的百位和个位上.例如:a=45,b=12时,调用该函数后,c=4152.注重:部分源程序存在文件PR0G1.C中.数据文件IN.DAT中的数据不得修改.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句.答案:B:STYPE FIL E fpM:for(i=0;i 0 s=si0
4、0;*t=s%10*sl+*t;*found*si=si*100;程序函数fun的功能是:将两个两位数的正整数a,b 合并成一个整数放在c 中.合并的方式是:将 a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c 数的百位和个位上.例如:a=45,b=12时,调用该函数后,c=1524.注重:部分源程序存在文件PROG1.C中.数据文件IN.DAT中的数据不得修改.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句.2、B:*fw str strM:long*t si=si*10;P:*c=(b 10*1000+(a%10*
5、100+(b%10*10+(a 10;3.填空给定程序中,函数fun的功能是:将自然数110以及它们的平方根写到名为 myfile3txt的文本文档中,然后再次序读出表此刻屏幕上.请在程序的下划线处填入对的内容并把下划线删除,是程序得到对的成果.注重:源程序存放在考生文件夹下的BL ANKl.c中不得增行或删行,也不得更改程序的结构!int fun(char*fname FILE*fp;int i,n;float x;if(fp=fopen(fname,w*-=NULL return 0;for(i=l;iai*found*if(p!可 t=aj;a。=ap;ap=t;程序函数fun的功能是:
6、将两个两位数的正整数a,b 合并成一个整数放在c 中.合并的方式是:将 a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c 数的百位和个位上.例如:a=45,b=12时,调用该函数后,c=2514注重:部分源程序存在文件PR0G1.C中.数据文件IN.DAT中的数据不得修改.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句.3、B:fp fclose(fp fnameM:iP:*c=(b%10*1000+(a%10*l()0+(b 10*l()+(a 10;4.填空给定程序的功能是:调用函数fun将指定源文件中的内容复制到
7、指定的目的文件中,复制成功时函数返回值为1,失败时返回值为(),在复制的过程中,把复制的内容输出到终端屏幕.主函数中源文件名放在变量sfname中,目的文件名放在变量tfname中int fun(char*source,char*target FIL E*fs,*ft;char ch;*found*if(fs=fopen(source,_1_=NUL Lreturn 0;if(ft=fopen(target,w*-=NUL Lreturn 0;printf(nnThe data in file:n;ch=fgetc(fs;*found*while(!feof(_2_ putchar(ch;*f
8、ound*fputc(ch,_ 3_:ch=fgetc(fs;fclose(fs;fclose(ft;printf(Hnn;return 1;修改给定程序M0DI1.C中函数fun的功能是:将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t 中.高位仍在高位,低位仍在低位.例如:当s 中的数为:87653142时,t 中的数为:8642void fun(long s,long*t int d;long sl=l;*t=0;while(s 0 d=s%10;*if(d%2=0 *t=d*sl+*t;si*=10;*found*s=10;程序函数fun的功能是:将两个两位数的正整数a,b
9、合并成一个整数放在c 中.合并的方式是:将 a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c 数的百位和个位上.例如:a=45,b=12时,调用该函数后,c=5142注重:部分源程序存在文件PR0G1.C中.数据文件IN.DAT中的数据不得修改.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句.4、B:rfsftM:(d%2=0 s=10;P:*c=(a%10*1000+(b 10*100+(a 10*10+(b%10;5.填空给定程序中已创立一个带有头结点的单向链表,链表中的各节点按结点数据域中的数据递增有序链表.函数
10、fun的功能是:把形参x 的值放入一个新结点并插入到链表中,插入后结点数据域的值仍连结递增有序.typedef struct list int data;struct list next;SL IST;void fun(SL IST*h,int x SL IST*p,*q,*s;s=(SL IST*malIoc(sizeof(SL IST;*found*s-data=_1q=h;p=h-next;while(p!=NUL L&xp-data*found*q=_ _ 2-;p=p-next;)s-next=p;*found*q-next=_3_;)修改给定程序M0DI1.C中函数fun的功能是:
11、计算正整数num的列位上的数字之积.例如,若输入:252,则输入应该是:20.若输入:202,则输出应该是:0.long fun(long num*found*long k;do k*=num%10;*found*num=l();while(num;return(k;请编写一个函数fun,它的功能是:它的功能是:计 算 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.();for(i=0;i6.填空给定程序中已创立一
12、个带有头结点的单向链表,在main函数中将多次调用fun函数,没调用一次fun函数,输出链表尾部结点中的数据,并释放该节点,是链表缩短.void fun(SL IST*p SL IST*t,*s;t=p-next;s=p;while(t-next!=NUL L S=t;*found*t=t-_1*found*printf(H%d”,2.s-next=NUL L;*found*free(_3_;修改给定程序M0DI1.C中函数fun的功能是:将字符串中的字符按逆序输出,单补改变字符串中的内容.例如,若字符串味abed,则应输出:deba*Qund*fun(char a if(*a fun(a+l
13、;*found*printf(%c*a;)程序请编写一个函数fun,他的功能是:对照两个字符串的长度(不得调用c 语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符串长度一样,则返回第一个字符串.例如,输入beijing shanghai(为回车键,函数将返回shanghai6、B:next t-data tM:fun(char*a printf(c”,*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;7.填空给定程序中创立一个带有
14、头结点的单向链表,链表中的各节点按数据域递增有序毗邻.函数fun的功能是:删除链表中数据域值一样的结点,使之只保留一个typedef struct list int data;struct list*next;SL IST;void fun(SL IST*h SL IST*p,*q;p=h-next;if(p!=NUL L q=p-next;while(q!=NUL L if(p-data=q-data p-next=q-next;*found*free(_1_;*found*q=p-_2_;elsep=q;*found*q=q-_3.修改给定程序M0DI1.C中函数fun的功能是:用挑选法对
15、数组中的n 个元素按从小到大的次序进行排序.void fun(int a,int n t,p;for(j=0;j n-1 ;j+*found*P=Jfor(i=j;i n;i+if(aiap*found*p=j;t=ap;ap=aj;aj=t;请编写一个函数fun,它的功能是:求 出 1到 m 之 间(含 m)能被7 或 11整除的所有整数放在数组a 中,通过n 返回这些数的个数.例如,若传3 送给m 的之位50,则程序输出:7 11 1421 22 18 33 35 42 44 49答案:7、B:q next nextM:p=j;p=i;P:int i;*n=0;fbr(i=7;inext;
16、*found*while(p!=_1_ n+;*found*if(p-data=ch return_2_;else p=p-next;return 0;修改给定程序MODI1.C中函数fun的功能是:删 除 p 所指字符串中的所有空白字符(包罗制表符,回车符及换行符)输入字符串是用#”结束输入.fun(char*p int i,t;char c8();*fo und*For(i=(),t=0;pi;i+if(!isspace(*(p+i cft+=pi;*found*cftl=O;strcpy(p,c;程序请编写一个函数fun,它的功能是:将 ss所指字符串中所有下标为奇数位置上的字母转换成大
17、写(若该位置上不是字母,则不转换)例如:若输入“abc4EFg”,则应输出“aBc4Efg”.答案:8、B:NUL L n head,chM:for ct=0;P:int i;for(i=1 ;i=a&ssi next;while(p (*n+;*found*p=p-_2_;)main(SL IST*head;int aN=12,87,45,32,91,16,20,48,num;head=creatlist(a;outlist(head;*found*fun(_3_,#printf(nnumber=%dn,num;修改给定程序MODIL C中函数fun的功能是:求出s 所指字符串中末了一次出现
18、的t 所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址最先的字符串;若未找到,则函数值为NUL L例如:当字符串中的内容为“abcdefabcdxt中的内容为“ab”时,输出的成果应是:abcdx当字符串中的内容为“abcdefabcdx”t 中的内容为“abd”时,则程序输出未找到信息notbe foundchar*fun(char*s,char*tchar*p,*r,*a;*found*a=Null;while(*s p=s;r=t;while(*r*found*if(r=p r+;p+;else break;if(*r=,0,a=s;s+;return a;)程序函数fun
19、的功能是:将 s 所指字符串中除了下标问为偶数,同时ASCII值也为偶数的字符外,其余的所有删除:串中剩余字符所形成的一个新串放在t 所指的数组中例如,若s 所指的字符串中的内容为“ABCDEFG123456”,其中字符A 的 ASCH码味奇数,是以应当删除,其中字符b 的 ASCII码值为偶数,但是在数组中的下标为基数,是以也当删除;答案9、B:*n next headM:a=NUL L;*r=*pP:int i,j=0;for(i=0;i next;while(p*found*s+=p-_1_;*found*P=p-_2_;return s;修改给定程序M0DI1.C中函数fun的功能是:
20、将 s 所指字符串中出现的与t l 所指字符串一样的字串所有替换成t2所指字符串,所形成的新串放在w 所指的数组中,在此处,要求t l 和 t2所指字符串的长度一样.int fun(char*s,char char*t2,char*wint i;char*p,*r,*a;strcpy(w,s;while(*w p=w;r=tl;while(rif(*r=*p r+;p+;else break;if(*r=0 a=w;r=t2;while(*r*found 字 不 字*字,*a=*r;a+;r+w+=strlen(t2;else w+;程序函数fun的功能是;将 s 所指字符串下标为偶数的字符删
21、除,串中剩余字符形成的新串放在I所指的数组中例如:当 s 所指字符串中的内容为:“ABCDEFGHIJK”在 t 所指数组中的内容应是“BDFHJ”10、B:data next headM:*r r+;P:int i,j=0;fbr(i=1 ;i strlen(s;i+=2 tj+=si;tj=0;11.填空人员记录有编号和出生年月日组成,N 名流员的数据已在主函数中存入结构体数组std中,且编号独一.函数fun的功能是:找出数据中的编号为空串.*found*_1_ fun(STU*std,char*num int i;STU a=,9999,99,99;for(i=0;i*found*if(
22、strcmp(_2_,num=0*found*return(_3.return a;修改给定程序M0DI1.C中函数fun的功能是:从 s 所指字符串中,找出与t 所指字符串一样的字串的个数作为函数返回值例如,当 s 所指字符串中的内容为:“abcdabfab”,t 所指字符串的内容为:“ab”则函数返回整数3int fun(char*s,char*t(int n;char*p,*r;n=0;while(*s p=s;r=t;while(*rif(*r=*p r+;p+else break;*found*if(r=0n+;s+;return n;函数fun的功能是:将 s 所指字符串中ASCH
23、值为偶数的字符删除,串中剩余字符形成一个新串放在t 所指的数组中例如,若s 所指字符串中的内容为“ABCDEFG12345”,其中字符B 的 ASCII码值为偶数.答案:11、B:STU stdi.num stdiM:p+;*r=,0,;P:int i,j=0;for(i=0;i strlen(s;i+if(si%2 tj+l=si;tfjl=0;12.填空人员的记录由编号和出生年月日组成N 名成员的数据已在主函数中存入结构体数组 std中,函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k 所指的数组中,由主函数输出,同事有函数值返回满足指定前提的人数int fun(STU*st
24、d,STU*k,int year int i,n=O;for(i=0;i*found*if(_1_=year*found*kn+=2;*found*return(_3_;修改给定程序MODI12.C的功能是:读入一个整数k(2 k 1()(2),打印她的所有因子例如2310,则应输出2,3,5,7,11*found*IsPrime(int n;int i,m;m=1;for(i=2;i n;i+*found*if!(n%i m=0;break;return(m;)设计已知学生的记录有学号成绩构成,N 名学生的数据已经存入结构体数组a 中.编写函数 fun,函数功能是:找出成绩最高的学生记录,通
25、过形参指针传回主函数(规定只有一个最高分).已给出函数的首部,请完成该函数12、B:stdi.year stdi n M:分号去掉 if(!(n%iP:int i,max=a().s,j=0;for(i=1 ;i N;i+if(max ai.s j=i;max=ai.s;*s=aj;13.填空给定程序通过定义并赋初值的方式,操纵结构体变量存储了一名学生的学号,姓名和3 们课程的成绩,函数fun的功能是将该学生的各科成绩都乘以一个系数avoid show(STU tt int i;printf(n%d%s:,tt.num,tt.name;for(i=0;i3;i+printf(%5.1 f,tt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 全国大学生 历年 全国 计算机等级考试 二级 语言 上机 考试 题库 答案
限制150内