2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案.pdf
《2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案.pdf》由会员分享,可在线阅读,更多相关《2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案.pdf(119页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.填空给定程序功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生编号,姓名和电话号码。班级人数和学生信息从键盘读入,每个人信息作为一种数据块写到 名 为 myfile5.dat二进制文献中。请在程序下划线处填入对的内容并把下划线删除,是程序得出对的成果。注意:源 程 序 存 储 在 考 生 文 献 夹 下 BLANKI.c中不得增行或删行,也不得更改程序构造!void check();/*found*/int fun(_ 1 *std)/*found*/2*fp;int i;if(m=fopen(myme5.dat“Jwb)=NULL)return(O);printf(nnOutpu
2、t data to file!n)for(i=O;iN;i+)/*ound*/fwrite(&stdLi,sizeof(STYPE),1,_ 3_);fclose(fp);return(1);修改给定程序MODil.C 中函数fun功能是:先 将 在 字 符 串 s 中字符按正序存储到t串中,然 后 把 S中字符按逆序连接到t 串背面。例如:当 s 中字符串为:“ABCDE时,则她中字符串应为:“ABCDEEDCBA”。请改正程序中错误,使她能得出对的成果。注意:不要 改 动 main函数,不能增行或删行,也不得更改程序构造!void fun(char*s,char*t)int i,si;si
3、=strlen(s);/*found 类*火*/for(i=O;i=sl;i+)ti=si;for(i=O;isl;i+)tsl+i=ssl-i-l;/*大*火 去*/tsl=0;程序函 数 fu n 功能是:将两个两位数正整数a,b 合并成一种整数放在c 中。合并方式是:将 a 数十位和个位数依次放在c 数千位和十位上,b 数十位和个位数依次放在c 数百位和个位上。例如:a=45,b=12时,调用该函数后,c=4152.注意:某些源程序存在文献PROG1.C中。数据文献IN.DAT中数据不得修改。请勿改动主函数main和其她函数中任何内容,仅在函数fu n 花括号中填入你编写若干语句。答案:
4、B:STYPE FILE fpM:for(i=0;i si;i+)t2*sl=0;P:*c=(a/10)*1000+(b/10)*100+(ao/ol0)*1 O+(bo/olO);2.填空给定程序功能是:从键盘输入若干行文本(每行不超过8 0 个字符),写到 文 献 myfile4.txt中,用一 作为字符串输入结束标记。然后将文献内容读出显示在屏幕上。文献读写分别有自定义函数ReadText和 WriteText实现。请在程序下划线处填入对的内容并把下划线删除,是程序得出对的成果。注憩:源程序存储在考生文献夹下BLANKl.c中不得增行或删行,也不得更改程序构造!main()FILE*fp
5、;if(fp=fopen(my file4.txt,w)=NULL)printf(openfail!n);exit(O);WriteText(fp);fclose(fp);if(fp=fopen(myfile4.txt,r)=NULL)printf(open fail!n);exit(O);ReadText(fp);fclose(fp);/*void WriteText(FILE 1_)char str81;printf(MnEnter string with-1 to end:nr);gets(str);while(strcmp(str,-r,)!=O)2;fw);fputs(nfw);ge
6、ts(str);)void ReadText(FILE*fr)char str81;printf(unRead file and output to screen:nn);fgets(str,81,fr);while(!feof(fr)/*fo nd*/printf(%s 3);fgets(str,81,fr);修改给定程序MODil.c中函数fun功能是:从低位开始取出长整形变量s中奇数位上数,依次构成一种新数放在t中,高位仍放在高位,低位仍放在低位。例如:当S中数为:76 54321时,t中数为:7531请改正程序中错误,使她能得出对的成果。注意:不要 改 动 m ain函数,不能增行或删
7、行,也不得更改程序构造!#include/*found*void fun(long s,long t)long sl=10;*t=s%IO;while(s 0)s=s/100;*t=s%10*si+*t;/*founds*&*si=sl*IOO;j程序函 数 fu n 功能是:将 两个两位数正整数a,b 合并成一种整数放在c 中。合并方式是:将 a 数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在c 数百位和个位上。例如:a=45,b=12时,调用该函数后,c=1524.注慈:某 些源程序存在文献PROG1.C 中。数据文献IN.DAT中数据不得修改。请勿改动主函数m ain和
8、其她函数中任何内容,仅在 函 数 f u n 花括号中填入你编写若干语句。2、B:*fw str strM:long*t si=sl*lO;P:*c=(b/10)*1000+(a%10)*I00+(b%l0)*10+(a/10);3.填空给定程序中,函 数 fun功能是:将自然数卜1()以及它们平方根写到名为myfile3txt文本文档中,然 后再顺序读出显示在屏幕上。请在程序下划线处填入对的内容并把下划线删除,是程序得出对的成果。注意:源程序存储在考生文献夹下BLANKl.c中不得增行或删行,也不得更改程序构造int fun(char*fname)FILE*fp;int i,n;float
9、x;if(fp=fopen(fname,w)=NULL)return 0;for(i=1 ;i=l O;i+)/*干火火*/fprint(11 ,%d%fnH,i,sqrt(do uble)i);printf(nnSucceed!n);/*und*2;printf(nnThe data in file:nH);/*found*/if(fp=fopen(_ 3,f,)=NULL)return O;fscanf(fp,no/odo/of,&n,&x);while(!feof(fp)printf(no/od o/ot nn,n,x);fscanf(fp,o/odo/of,&n,&x);f c l o
10、 s e(f p);r e t u r n 1;)修改给定程序M O D I 1.c中f u n函数功能是:将n个无序整数从小到大排序。f u n (i n t n,i n t *a)i n tf o r(j=O;j n-l ;j+)P =J;/*f o u n d*/f o r (i=j+l;i a i )*o u n d 冰*/t=i;i f (p!=j)t =a j ;a l i =i|p ;a|p I :l;I程序函 数f u n功能是:将两个两位数正整数a,b合并成一种整数放在c中。合并方式是:将a数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在C数百位和个位上。例如
11、:a=4 5,b=1 2时,调用该函数后,c =2 5 1 4注憩:某些源程序存在文献P R O G L C中。数据文献I N.D A T中数据不得修改。请勿改动主函数m a i n和其她函数中任何内容,仅在 函 数f u n花括号中填入你编写若干语句。3、B:fp fclose(fp)fnameM:i 0)d=s%10;/*fo und*/if(d%2=0)*t=d*sl+*t;si*=10;s=10;程序函数fun功能是:将 两个两位数正整数a,b 合并成一种整数放在c 中。合并方式是:将 a 数十位和个位数依次放在c 数千位和十位上,b 数十位和个位数依次放在c 数百位和个位上。例如:a
12、=45,b=12时,调用该函数后,c=5142注意:某些源程序存在文献PR0G1.C 中。数据文献IN.DAT中数据不得修改。请勿改动主函数m ain和其她函数中任何内容,仅在函数fu n 花括号中填入你编写若干语句。4、B:r fs ftM:(d%2=0)sl=10;P:*c=(a%10)*1 OOO+(b/l 0)*1 OO+(a/10)*10+(b%10);5.填空给定程序中已建立一种带有头结点单向链表,链表中各节点按结点数据域中数据递增有序链表。函数fun功能是:把形参x 值放入 种新结点并插入到链表中,插入后结点数据域值仍保持递增有序。typedef struct list int
13、data;struct list*next;SLIST;void fun(SL!ST*h,int x)SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST);/*found*/s-data=_ 1 _;q=h;p=h-next;while(p!=NULL&xp-data)/*手ound*/q=2_;p=p-next;s-next=p;/*中ound*Iq-next=_ 3_;修改给 定 程 序MODil.C中 函 数fun功能是:计 算 正 整 数num各位上数字之积。例蛆,若输入:252,则输入应当是:2 0若 输 入:202,则输出应当是:0.long f
14、un(long num)/*干ound*/long k;do k*=num%10;/*千1ou nd*毛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:inti;float ave=0.0;for(i=O;inext;s=p;while(t-next!=NULL)s=t;/*/t=t-1一;/*R)und*printf(%d 2);s-next=NUL
15、L;free(-3-);修改给定程序M O D II.C 中 函 数 fun功能是:将字符串中字符按逆序输出,单补变化字符串中内容。例如,若字符串味a b e d,则应输出:de ba/*to und*/fun(chara)if(*a)fun(a4-l);/*fun*求*/printf(%c*a);程序请编写 种函数fun,她功能是:比较两个字符串长度坏得调用c 语言提供求字符串长度函数),函数返回较长字符串。若两个字符串长度相似,则返回第一种字符串。例 如,输 入 beijingvCRshanghai CR(CR为回车键),函数将返回shanghai6、B:next t-data tM:fu
16、n(char*a)printf(%c”,*a);P:int i;char*p=s,*q=t;for(i=O;*p&*q;i+)p+;q+;if(*p=0&*q=0)return s;if(*p)returns;else return t;7.填空给定程序中建立一种带有头结点单向链表,链表中各节点按数据域递增有序连接。函 数fun功能是:删除链 表中数据域值相似结点,使 之只保存一种typedef struct list int data;struct list*next;SLIST;void fun(SLIST*h)SL1ST*p,*q;p=h-next;if(p!=NULL)q=p-next
17、;whi!e(q!=NULL)if(pdata=q-data)p-next=q-next;free(_ l_);/*und*/q=p-2p=q;/*Q u n d*/q=q-_ 3.修改给定程序M O D i l .C中函数f u n功能是:用 选取法对数组中n个元素按从小到大顺序进行排序。v o i d f u n(i n t a L J,i n t n)i n t i,j,t,p;f o r U=0;j n -1 ;j+)f o r (i =j;i n;i+)if(ai a|p|)P=J;t=ap;ap=aj;a j=t;请编写一种函数fun,它功能是:求 出1到m之 间(含m)能 被7或
18、11整除所有整数放在数组a中,通过n返回这些数个数。例如,若 传3送 给m之位50,则 程 序 输 出:7 11 14 21 22 18 33 35 42 44 49答案:7、B:q next next M:P=j;P=i;P:inti;*n=O;for(i=7;i next;/*fo und*/while(p!=_ 1)n+;/*fou nd*/if(p-data=ch)retur n 2;else p=p-next;return 0;)修改给定程序MODi 1.C 中函数fun功能是:删 除p 所指字符串中所有空白字符(涉 及 制 表 符,回车符及换行符)输入字符串是用#结束输入。fun(
19、char*p)inti,t;char c 80;/*found*For(i=O,t=0;pi;i+)if(!isspace(*(p+i)ct+=pi;/*found 亭*/ct=O;strc py(p,c);程序请编写一种函数fu n,它功能是:将 ss 所指字符串中所有下标为奇数位置上字母转换成大写(若该位置上不是字母,则不转换)例如:若输入“abc4E Fg,则应输出“aBc4Efg”。答案:8、B :NU LL n head,chM:for ct=O;P:int i;fo r(i=I;i=a!&ssi next;while(p)(*n)+;/*火火虫*大大加tmd*火*/p=p-2m a
20、 in()SLIST 东 head;int aN=l 2,87,45,32,91,16,20,48,num;head=creatl is t(a);outlist(head);fun(3,&num);pri ntf(nnumber=%dn,num);修改给定程序MODI I.C 中 函 数 fun功能是:求 出s 所指字符串中最后一次浮现t所指子字符串地址,通过函数返回值返回,在主函数中输出从此地址开始字符串;若 未 找 到,则函数值为NULL例如:当字符串中内容为“abcdefabcdx t 中内容为“ab”时,输出成果应是:abcdx当字符串中内容为“abcdefabcdx”t 中内容为“
21、abd”时,则程序输出未找到信息not be foundchar*fun(char*s,char*t)/*found*a=Null;w hile(*s)p 二 S;w hile(*r)/fUnd*if(r=P)r+;p+;else break;if(*r=*0)a=s;s+;return程序函数fun功能是:将s所 指 字 符 串 中 除 了 下 标 问 为 偶 数,同 步ASCH值也为偶数字符外,别 的 所 有 删 除:串 中 剩 余 字 符 所 形 成 一 种 新 串 放 在t所指数组中例如,若s所 指 字 符 串 中 内 容 为“ABCDEFG123456,其 中 字 符AAS C II
22、码味奇数,因而应当删除,其 中 字 符bASCH码值为偶数,但 是 在 数 组 中 下 标 为 基 数,因 而也当删除;答案9、B:*n next headM:a=NULL;*r=*pP:int i,j=0;fo r(i=0;i next;while(p)(/*/s+=p-一 1一 ;/亭*fo und字*/P=P-2;re tu rn s;修改给定程序MODI I.C 中 函 数 fun功能是:将 s 所指字符串中浮现与t i 所指字符串相似字串所有替代成t2 所指字符串,所 形 成 新 串 放 在 w 所指数组中,在 此 处,规 定 tl和 t2 所指字符串长度相似。int fun(cha
23、r*s,char*tl,char*t2,char*w)int J;char*p,*r,*a;strcpy(w,s);while(*w)p=w;r=tl;/*fo&rvd 类*卅*while(r)if(*r=*p)r+;p+;else break;if(*r=。)a=w;r=t2;while(*r)*found*/*a=*r;a+;r+w+=strlen(t2);else w+;程序函 数fun功能是;将s所指字符串下标为偶数字符删除,串中剩余字符形成新串放在t所指数组中例如:当s所指字符串中内容为:“ABCDEFGHIJK在t所指数组中内容应是“BDFHJ”10、B:data next hea
24、dM:*r r+;P:inti,j=0;for(i-1 ;i strlen(s);i+=2)tU+)=si;tUJ=0;11.填空人员记录有编号和出生年月日构成,N 名人员数据已在主函数中存入构造体数组std中,且编号唯。函数fun功能是:找 出数据中编号为空串。1_ fun(STU*std,char*num)int i;STU a=9999,99,99;for(i=O;iN;i+)/*火 火*火*/if(strcmp(2,num)=0)*found*/return(_ 3一);return a;)修改给 定 程 序MODil.C中函数fun功能是:从s所 指 字 符 串 中,找 出 与t所指
25、字符串相似字串个数作为函数返回值例如,当s所指字符串中内容为:n abc dabfab,t所指字符串内容为:“ab”则 函 数 返 回 整 数3int fun(char*s,char*t)int ii;char*p,*r;n=0;while(*s)p=s;r=t;w hile(*r)if(*r=*p)/*found*/r+;p+Jelse break;/*found*/if(r=Of)n+;s+;return n;函 数fun功能是:将s所 指 字 符 串 中ASCII值为偶数字符删除,串中剩余字符形成一种新串放在t所指数组中例如,若s所指字符串中内容为“A B C D E F G 1 2 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 年度 全国大学生 历年 全国 计算机等级考试 二级 语言 上机 考试 题库 答案
限制150内