《2025年全国计算机等级考试二级C语言上机题库(共60套).docx》由会员分享,可在线阅读,更多相关《2025年全国计算机等级考试二级C语言上机题库(共60套).docx(46页珍藏版)》请在第壹文秘上搜索。
1、2025年全国计算机等级考试二级C语言上机题库(共60套)第一套1程序填空人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组Std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指出的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。第1处if(stdi.year=year)第2处kn+=stdi;第3处return(n);1程序修改给定程序MODI1.C中函数fun的功能是:读入一个整数k(2k10000)打印它的所有质因子(即所有为素数的因子)。*found*/IsBrime(intn)*found*/if(!(n%i)2程序设计已知
2、学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写给函数fun,函数的功能是:找出成绩最高的学生的记录,通过形参指针传回主函数(规定只有一个最高分),已给出函数的首部,请完成函数。fun(STUa,STU*s)(inti,max=a0.s,j=0;for(i=1.;iN;i+)if(maxai.s)j=i;max=ai.s;*s=aj;)第:套1程序填空给定程序中,函数fun的功能是:将NXN矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如:若N=3有下列矩阵:123456789交换后:3 214 56987第1处voidfun(intt口N,int
3、n)第2处for(i=0;in;i+)第3处tin-i-1.=s;2程序修改由N个有序整数组成的数列已放在一维数组中,给定程序MOD1.1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其卜标值:反之,返回7.折半查找的基本算法是:短次查找前先确定数组中待查的范围:IoW和high(1.owhigh,查找结束。*found*/fun(inta,intm)*found*/e1.seif(mamid)3程序设计假定输入的字符串中只包含字母和*号,请编写函数fun,它的的功能是:除了尾部的*号之外,将字符串中其他*全部删除。形参P已指向字符串中最后一个字母。住编写函数
4、时,不得使用C语言提供的字符串函数。voidfun(char*a,char*p)char*q=a;intj=0;whi1.e(*q&qp)(if(*q!,*,)aj+=*q:q+;)whi1.e(*p)aj+=*p+;aj=0;)第三套1程序填空给定程序中,函数fun的功能是;求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。SS所指字符串数组中共M个字符串,且串长N。第1处for(i=0;iM;i+)第2处if(1.en*n)第3处return(k);2程序修改给定程序MOD1.1.C中函数fun的功能是:将tt所指字符串中的小写字母都改为对
5、应的大写字母,其他字符不变。*found*/if(a=tti)ft(tti=,z,)*found*/tti-=32;3程序设计请编写函数fun,函数的功能是:将所有大于1小于整数m的非素数存入XX所知数组中,非素数的个数通过k传回。voidfun(intm,int*k,intxx)inti,cnt=O;for(i=0;im;i+)if(isP(i)xxcnt+=i;*k=cnt;)第四套1程序填空给定程序中,函数fun的功能是:对形参SS所指字符串数组中的V个字符串按长度由短到长进行排序。Ss所指字符串数组中共有M个字符,且串长义第1处for(j=i+1.;j=0;j)bi+=sj;strcp
6、y(s,b);)第五套1程序填空给定程序中,函数fun的功能是:计算卜.式前5项的和作为函数值返回。S=IX322-3542+5762-+(-1.)n,(2n-1.)(2n+1.)(2Xn尸例如,当形参n的值为10时,函数返回:0.204491第1处k=1.;第2处t=2*j;第3处k=k*(-1.):2程序修改给定程序MODI1.C中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0*found*/K+:/*found*/if(m=k)3程序设计请编写一个函授fun,它的功能是:找出一维整数组元素中最大的值和他所在的下标,最大的值和它所在的下标通过形参传怛1。数组元素中的值已
7、在主函数中赋予。主函数中X是数组名,n是X中的数据个数,max存放在大值,index存放最大值所在元素的下标。voidfun(inta,intn,int*max,int*d)(inti:*max=a0;*d=0;for(i=1.;in;i+)if(*maxai)*max=ai;*d=i;)第六套1 .程序填空给定程序中,函数fun的功能是:将形参S所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。第一处tj=si;j+;第二处for(i=0;ik;i+)tj+i=pi;第三处tj+k=O;2 .程序修改给定程序MODI1.C中函数fun的功能是:将S所
8、指字符串中地后一次出现的与t1.所指字符串相同的子串替换成t2所指定字符串,所形成的新串放在W所指的数组中。在此处,要求t1.和t2所指字符串的长度相同。*found*/whi1.e(*w)*found*/if(*r=*p)3 .程序设计函数fun的功能是:将s所指字符串中ASCI1.值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。voidfun(char*s,chart)inti,j=0;for(i=0;istr1.en(三);i+)if(si%2=0)tj+=si;tj=O;第七套1 .程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的
9、功能是将形参a所指结构体变量S中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。第一处structstudent*fun(structstudent*a)第二处for(i=0;iscorei+=1.;第三处returna;2 .程序修改给定程序MODT1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。*found*/char*fun(char(*sq)M)*found*/returnsp;3 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在C中。合并的方
10、式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和干位上。Sinc1.udevoidfun(inta,intb,1.ong*c)*c=(h%1.)*1000+(a10)*100+(b/10)*10+a%10;)第八套1 .程序填空函数fun的功能是:将形参观者工所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇书,则中间元素不动。第一处p=(n%2=0)?n/2:n/2+1.:第二处ai=ap+i;第三处ap+i=t;2 .程序修改给定程序VODI1.C中函数fun的功能是:把主函数中输入的三个数,最大的放
11、在a中,最小的放在C中,中间的放在b中。*found*/f1.oatk;*found*/if(*a*c)3 .程序设计学生的记录由学:号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写了函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。intfun(STREC*a,STREC*b)inti,max=a0.s,n=0;for(i=1.;iN;i+)if(maxai.s)max=ai.s;for(i=0:iN;i+)if(max=ai.s)bn+=ai;returnn;)第九套1 .程序填空给定程序中,函
12、数fun的功能是:计算形参X所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均数的移至X所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。第一处for(i=0:iN;i+)av+=xiN第二处yj=i;xi=-1.:j+;)第三处i+:2 .程序修改给定程序MODI1.C中函数fun的功能是:统计字符串各元音字母(即:A、E、I、0、U)的个数。注意字母不分大小写。*found*/numk=0;*found*/switch(*s)3 .程序设计请编写函数fun,函数的功能是:求出二级数组周边元素之和,作为函数值返回
13、。二维数组中的值在主函数中赋予。i11tfun(intaMN)(inttot=0,i,j;for(i=0;iN;i+)(tot+=a0i:tot+=aM-1.i;)for(i=1.:iM-1.;i+)tot+=ai0;tot+=aiN-1.;)returntot;)第十套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。第一处structstudentfun(structstudenta)第二处strcpy(a.name,1.iSim);第三处a.scorei+=1;2程序修改假定整数数列中的数不重熨,并存放在数组中。给定程序MODi1.C中函数un的功能是:删除