《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程序修改假
14、定整数数列中的数不重熨,并存放在数组中。给定程序MODi1.C中函数un的功能是:删除数列中值为X的元素。N中存放的是数列中元素的个数。*found*/if(p=n)return-1,*found*/ai=ai+1.;3.程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,清编写了函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。intfun(STREC*a,STREC*b)(inti,j=0,min=a0.s;for(i=0;iai.s)(j=0;bj+=aijmin=ai.s:e1.
15、seif(min=ai.s)bj+=ai;)returnj;第十一套1 .程序填空给定程序中,函数fun的功能是:计尊形参X所指数组中K个数的F均值,(规定所有数均为正数),将所指数组中大于平均值的数据移至数据的前部,小于等于平均数的移至X所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。第一处av=sN;第二处yj+=xi;xi=-1.;第三处if(xi!=-1.)yj+=xi;2 .程序修改给定程序VODI1.C中函数fun的功能是:读入一行英文文本行,将其中每个单词的第一个字母改成大写,然后输出次文本行(这里的“单词”是指由空格隔开的字符串。*found*/#in
16、c1.ude*found*/ufst(char*p)3 .程序设计程序定义了NXN的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出数组周边元素的平均值并作出函数值饭给主函数中的Sodoub1.efun(intwN)inti,j,n=0;doub1.esum=0;for(i=0:iN;i+)sum+=w0i+wN-1.i;n+=2;for(i=1.:iN-1.;i+)su三+=wi0+wiN-1.;n+=2;)returnsum/n;)第十二套1 .程序填空给定程序中,函数fun的功能是:将自然数1-10以及它们的平方根写到名为myfi1.e3.txt的文本文件中,然后再顺序读
17、出显示在屏幕上。第一处fprintf(fp,i,sqrt(doub1.e)i);第二处fc1.ose(fp);第三处if(fp=fopen(fname,wrw)=NU1.1.)2 .程序修改给定程序VOD1.1.C中函数fun的功能是:将n个无序整数从小到大排序。*found*/for(i=j+1.;in;i+)*found*/P=i;3 .程序设计函数fn的功能是:将a、b中的两位正整数合并形成一个新的整数放在C中。合并的方式是:将a中的十位和个位依次放在变量c的个位和百位上,b中的十位和个位数依次放在变量C的十位和干位上。#inc1.udevoidfun(inta,intb,1.ong*c
18、)(*c=(b%10)*1.000+(a%10)*100+(b10)*10+(a10);第十三套1 .程序填空给定程序中,函数fun的功能是:找出N*.矩阵中每列元素中的最大值,并按顺序一次存放于形参b所指的一维数组中。第一处bi=a0i:第二处if(biaji)bi=aji;第三处fun(x,y);2 .程序修改给定程序MODI1.C中函数fun的功能是:交换主函数中的两个变量的值。*found*/intfun(int*x,int*y)*found*/t=*x;*x=*y;*y=t;3 .程序设计编写函数fun,函数的功能是求出小于或等于Iin1.的所有素数并放在aa数组中,函数返回所求出的
19、素数的个数。函数fun中给出的语句仅供参考。#inc1.udedefineMAX1.OOintfun(int1im,intaaMAX)i11ti,j,k=0;for(i=2:i=1.imji+)(for(j=2;j(i2)aak+=i:returnk;第十四套1 .程序填空函数fun的功能是进行字母转换。若形参ch中小写英文字母,则转换成相应的大写英文字母;若形参ch中是大写英文字母,则转换成相应的小写英文字母;并将转换的结果作为函数值返回。第一处if(ch三,a)ft(ch=z,)第二处returnch+a-A第三处returnch;2 .程序修改给定程序MOD1.1.C中函数fun的功能是
20、:给维数组a输入任意四个整数并按下列的规律输出。例如输出1、2、3、4,程序输出一下方阵。a)1233 4124 3411234*found*/voidfun(int*a)*found*/aj=aj-1.;3.程序设计请编写函数fun,函数的功能是:计算并输出给定整数n的所有因了(不包过1和n本身)之和。规定n的值不大于1000.intfun(intn)ints=0,i;for(i=2;in;i+)if(n%i=O)s+=i:returns;)第十五套1 .程序填空给定程序中,函数的功能是:把形参S所指字符串卜标为奇数的字符右移到下一个奇书位置,最右边呗移出字符串的字符绕回放到第一个奇数位置,
21、下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参S所指的字符串为:abcdefgh,执行结果为:ahcbedg0第一处if(n%2=0)k=n-1.;第二处c=sk:第三处s1.=c;2 .程序修改给定程序MOD1.1.C中里数fun的功能是:求s=aa-aa-aaaaaa(此处aaaa表示n个a,a和n的值在1至9之间)。*found*/1.ongs=0,t=0;*found*/t=t10;3 .程序设计清编写一个函数voidfun(char*tt.intpp),统计在tt所指字符串中a至z26个小写字母各自出现在的次数,并依次放在pp数组中。voidfun(char*tt,i
22、ntpp)(char*p=tt;inti;for(i=0;i=a&*p=z)pp*p-a+=1.;P+:)第十六套1 .程序填空人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组Std中,旦编号唯一。函数fun的功能是:找出指定编号人员数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中编号为空串。第1处STUfun(STU*std,char*nun)第2处if(strcmp(stdi.num,num)=0)第3处return(stdi);2 .程序修改给定程序MODI1.e中函数fun的功能是:从S所指字符串中,找出与t所指字符串相同的广串的个数作为函
23、数值返回。*found*/r+;p+;*found*/if(*r=0)3 .程序设计函数fun的功能是:将S所指字符串中ASe1.I值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。Jtinc1.udeinc1.udevoidfun(char*s,chart)inti,j=0;for(i=0;i三,0,&si=*9)n+;第3处*t=n;2 .程序修改给定程序VOD1.1.C中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b中的值为8.*found*/t=*x;*x=y;/found*/
24、return(t);3 .程序设计请编写函数fun,函数的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。#inc1.udeviodfun(int*a,i11t*n)inti;*n=0;for(i=7;i1000;i+)if(i%7)=0II(i%1.1.)=0ft(i%77)!=0)a(*n)+=i;第十八套1 .程序填空给定程序中,函数fun的功能是:有NXN矩阵,根据给定的m(m=n)值,将每行元素中的值均右移m个位置,左边值为0.第1处for(i=0;iN;i+)第2处tij+m=tij;第3处for(
25、j=0;jm;J+)2 .程序修改给定程序MODI1.C中函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。*found*/whi1.e(2=high)&(nO.000001);returnx1.;第十九套1 .程序填空给定程序中,函数fun的功能是:将a所指的3X5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。第1处for(p=1.;p=k:p+)第2处for(j=0;jNT;j+)aij=aij1.;第3处aiN-1.=temp;2 .程序修改给定程序MOD1.1.C中函数fun的功能是:根据形
26、参m的值(2=m=9),在In行m列的二维数组中存放如下所示规律的数据,由main函数输出。例如,若输入2则输出:1224*found*/fun(intaM,intm)*found*/ajk=(k+1.)*(j+1.);3 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在C中。合并的方式是:将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量C的个位和百位上。voidfun(inta,intb,int*c)*c=(a%10)*1000+(b%10)*100+(a10)*10+(b10);)第二十套1 .程序填空给定程序中,函数fun的功能是
27、:对形参s所指字符串中下标为奇数的字符ASC1.1.码大小递增排序,并将排序后的下标为奇数的字符取出,形成一个新串。第1处t=i;第2处for(j=i+2;j=nun)*found*/t=sn3 .程序设计请编写个函数Voidfun(chara,charb,intn),其功能是:删除一个字符串指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串放在b所指的n中存入指定的下标。Viodfun(chara,charb,int11)strncpy(b,a,n);bn=O;strcat(b,a+n+1.):)第二十一套1 .程序填空给定程序中,函数fun的功能是:在形参SS所指字符串数组中,将
28、所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。SS所指字符串数组中共有N个字符串,且串小于V。第一处voidfun(char(*ss)M,intk)第二处whi1.e(in)(i=n;j=k:for(;aj!=0;j+)ai+=aj;ai=0;第二十二套1.程序填空给定程序中,函数fun的功能是:a所指4X3矩阵中第k行的元素与第0行元素交换。例如:有卜列矩阵323456789101112若k为2,程序执行结果为7894561 23101112第一处voidfun(int(*a)Ntintk)第二处for(i=0:iN;i+)第三处a0i=aki;2 .程序修改给定程序MODI1
29、.C中函数fun的功能是:读入一个字符串(长度tj+1.)3 .程序设计请编写函数fun,函数的功能是:将SS所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。voidfun(char*ss)(char*p=ss;inri=0:whi1.e(*p)(if(i%2)(*p三,a*p三,z)*p-=32;p+;i+;)第二十三套1 .程序填空给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数的返回值是1,失败是返回值是0.在复制的过程中,把复制的内容输出到终端屏幕。主函数源文件名放在变量sfname中,目标文件放在变量tfna
30、me中。第一处if(fs=fopen(source,mr,)=NU1.1.)第二处whi1.e(!feof(fs)第三处fpu1.e(ch,ft);2 .程序修改给定程序VODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在I中。高位仍在高位,低位仍在低位。*found*/if(d%2=0)*found*/s=10;3 .程序设计函数fun的功能是:将两位正整数a、b合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量C的百位和个位上。voidfun(inta,intb,1.ong*c)*
31、c=(a%10)*1000+(b10)*1.00+(a10)*10(b%1.0);第二十四套1 .程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。第一处b=a;第:处strcpy(b.name,n1.iSi)第三处for(i=0;iO;n-)*q+三,*;*q=0,;)第二十五套1 .程序填空用筛选法可得到2n(n10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0):接着从数表中找卜一个非
32、0数,并从数表中删去该数的所有倍数,依此类推,直到所找的卜一个数等于n为止。这样会得到一个序列:2、3、5、7、11、13、17、19、23函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。第一处for(j=ai*2J=nJ+=ai)第:处whi1.e(ai=0)第三处if(ai!=0)2 .程序修改给定程序VODT1.C中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。*found*/y=1.:/*foune*/d=a-i;3 .程序设计请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除
33、的所有自然数的倒数之和。doub1.efun(intn)doub1.esum=0.0;for(i=1.:in;i+)if(i%5=0Ii%9=0)sum+=1.0/i;returnsum;)第二十六套1 .程序填空给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素的值全部是1;从外向内第:层元素的值全部为2;第三层元素的值全部是3,依此类推。第一处Voidfun(int(*a)N)第二处for(j=i;jN-i;j+)第二处aki=akN-i-1.=i+1.;2 .程序修改给定程序MOD1.1.C中函数fun的功能是:将十进制正整数m转换成k(2=k=9)进制
34、数,并按高位到低位顺序输出。*found*/aai=m%k;*found*/printf(%dw,aai-1.);3 .程序设计编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用*作为结束输入的标志,函数fun中给出的语句仅供参考)。fun(char(*a)811intnum,char*max)(inti,k=0,max1.en;max1.en=str1.en(ak);for(i=1.;imax1.en)max1.en=str1.en(ai);k=i;)*max=ak;)第二十七套1 .程序填空函数fun的功能是计算f(x)=1.+-22
35、!+3/3!-4/4!+的前n项和。若x=2.5,n=15时,函数值为1.917914。第一处f=1.:第二处t*=(-1.)*xi;第三处f+=t;2 .程序修改给定程序VODI1.C中函数fun的功能是:从三个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在没组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15.程序中i的值代表红球数,j代表白环数,k代表黑球数。*found*/for(i=1.;i=O4k=6)3.程序设计请编写函数fun,它的功能是:计算并输出下列多项式的值:sn=1.+1.1.!+12!+13!+14+1.n0例如:在主函数中从键盘给n输入15,则输出为:s=2.718282。注意:要求n的值大于1但不大于1000doub1.efun(intn)doub1.es=1.,1.ongt=1.;inti;for(i=1.;i0.001)3 .程序设计假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中的第一个字母,形参P已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。void
链接地址:https://www.desk33.com/p-1672584.html