《2023年全国计算机等级考试二级C语言上机题库(共70套).docx》由会员分享,可在线阅读,更多相关《2023年全国计算机等级考试二级C语言上机题库(共70套).docx(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年全国计算机等级考试二级C语言上机题库(共70套)第一套1程序填空给定程序中,函数fun的功能是:反形参a所指数组中的最大值放在 a0中,接着求出a所指数组中的最小值放在a国中;再把a所指数 组元素中的次大值放在a2中,吧a组元素中的次小值放在a网中, 依此类推。第 1 处 void fun (int *a, int n)第 2 处 for (i=0; in-l; i+=2)第 3 处 for(j=i+l; jn;j+)2程序修改给定程序modil.c中函数fun函数功能是:按顺序给s所指数组中元 素赋予从2开始的偶数,然后再按顺序对每五个元素求平均值,并将 这些值依次存放在w所指的数
2、组中,若s所指数组中元素个数不是5 的倍数,多余部分忽略不计。/*found*/sum=0.0;/*found*/if(i+l)%5=0)3程序编写学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结 构体数组s中,低于平均分的学生人数通过形参n传回。平均分通过 函数值返回。double fun (STREC *a, STREC *b, int *n)(int i;double ave=0. 0;*n=0;for (i=0; iN; i+)int fun(STREC *a,STREC *b) int iJ=09min=a0.s;for(i=0;iai.s)j=0;b j+ =ai; m
3、in=a i .s;else if(min=ai.s)bj+=ai;return j;第十一套1 .程序填空给定程序中,函数fun的功能是:计算形参x所指数组中N 个数的平均值,(规定所有数均为正数),将所指数组中大于平均值的 数据移至数据的前部,小于等于平均数的移至x所指数组的后部,平 均值作为函数值返回,在主函数中输出平均值和移动后的数据。第一处 av=s/N;第二处 yj+=xi;xi=l;第三处 if(xi!=-l)yj+l=xi;2 .程序修改给定程序MODI1.C中函数fun的功能是:读入一行英文文 本行,将其中每个单词的第一个字母改成大写,然后输出次文本行(这 里的“单词”是指由
4、空格隔开的字符串 /*found*/#include/*found*/upfst (char *p)3 .程序设计程序定义了 NxN的二级数组,并在主函数中赋值,请编写函 数fun ,函数的功能是:求出数组周边元素的平均值并作出函数值饭 给主函数中的s0double fun(int wN)int i,j,n=0;double sum=0;for(i=0;iN;i+) sum+=w0 i+wN-l i;n+=2;for(i=l ;iN-l ;i+) sum+=wi 0+wi N-l;n+=2;return sum/n;第十二套1 .程序填空给定程序中,函数fun的功能是:将自然数110以及它们
5、的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在 屏幕上。第一处 fprintf(fp,%d%fn,i,sqrt(double)i);第二处 fclose(fp);第三处 if(fp=fopen(fname,r,)=NULL).程序修改给定程序MODH.C中函数fun的功能是:将n个无序整数 从小到大排序。/*found*/for(i=j+1; in; i+)/*found*/P=i;2 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新 的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量 c的个位和百位上,b中的十位和个位数依次放在变量c的十
6、位和千 位上。#include void fun(int a,int bjong *c)*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);第十三套1 .程序填空给定程序中,函数fun的功能是:找出N*N矩阵中每列元素 中的最大值,并按顺序一次存放于形参b所指的一维数组中。第一处 bi=aOi;第二处 if(biaji)bi=aUi;第三处fun(x,y);2 .程序修改给定程序MODI1.C中函数fun的功能是:交换主函数中的 两个变量的值。/*found*/int fun(int *x,int *y)/*found*/t=*x;*x=*y;*y=t;3 .
7、程序设计编写函数fun ,函数的功能是求出小于或等于lim的所有素 数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给 出的语句仅供参考。#include #define MAXI 00int fun(int lim9int aaMAX)int ij,k=0;for(i=2; i=lim; i+)forg=2;j(i/2)aak+=i; return k;第十四套.程序填空函数fun的功能是进行字母转换。若形参ch中小写英文字 母,则转换成相应的大写英文字母;若形参ch中是大写英文字母,则转换成相应的小写英文字母;并将转换的结果作为函数值返回。第一处 if(ch=,a,)&(ch=
8、,z,)第二处 returnch+-,A,第三处return ch;1 .程序修改给定程序MODH.C中函数fun的功能是:给一维数组a输 入任意四个整数并按下列的规律输出。例如输出1、2、3、4 ,程序 输出一下方阵。a) 1 2 32 4123 3 4 112 3 4/*found*/ void fun(int *a) /*found*/ aj=aj-l;3.程序设计请编写函数fun ,函数的功能是:计算并输出给定整数n的 所有因子(不包过1和n本身)之和。规定n的值不大于1000. int fun(int n) int s=04; for(i=2;in;i+) if(n%i=0)s+=i
9、;return s;第十五套1 .程序填空给定程序中,函数的功能是:把形参S所指字符串下标为奇数的字符右移到下一个奇书位置,最右边呗移出字符串的字符绕回放 到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于 等于2 X例如,形参S所指的字符串为:abcdefgh,执行结果为: ahcbedgo第一处 if(n%2=0) k=n-l;第二处 c=sk;第三处sl=c;.程序修改给定程序 MODI1.C中函数fun的功能是:求 s=aa.aa.aaaaaa(止匕处 aa.aa 表示 n 个 a , a 和 n 的值在 1至9之间工 /*found*/ long s=0,t=0;/*fou
10、nd*/ t=t/10;2 .程序设计请编写一个函数void fun ( char*tt , int pp),统计在tt所 指字符串中/至,26个小写字母各自出现在的次数,并依次放在pp 数组中。void fun(chartt, int pp)(char *p=tt;int i;for(i=0; i2 6; i+)PPi=0;while(*p)pp*p-a+=l;p+;) ) 第十六套1 .程序填空人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函 数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出 指定编号人员数据,作为函数值返回,由主函数输出,若指定编号不 存在,返
11、回数据中编号为空串。第 1 处 STU fun(STU *std, char *num)第 2 处 if(strcmp (stdi.num, num)=0)第 3 处 return (stdi);2 .程序修改给定程序MODI1.C中函数fun的功能是:从s所指字符串 中,找出与t所指字符串相同的子串的个数作为函数值返回。 /*found*/ r+; p+;/*found*/if(*r= =0 ).程序设计函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。#include #includestring. h void fun (char
12、ts, char t)int i, j=0;for(i=0;i=,0,&si=,9,) n+;第3处*t=n;.程序修改给定程序MODI1.C中函数fun的功能是:通过某种方式实 现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的 值原为8 , b中的值原为3 ,程序运行后a中值为3 , b中的值为8. /*found*/ t=*x;*x=y;/*found*/ return(t);1 .程序设计请编写函数fun ,函数的功能是:求出1到1000之间能被7 或11整除,但不能同时被7和11整除的所有整数并将它们放在a所 指的数组中,通过n返回这些数的个数。#include viod
13、fun (int *%int *n) int i;*n=0;for(i=7;i1000;i+)if(i%7)= =0 | |(i%ll)=0 &(i%77)!=0) a(*n)+=i;第十八套.程序填空给定程序中,函数fun的功能是:有NxN矩阵,根据给定的(m=n )值,将每行元素中的值均右移m个位置,左边值为0.第 1 处 for(i=0;iN;i+)第 2 处第 3 处 for(j=0;jm;j+).程序修改给定程序MODI1.C中函数fun的功能是:计算并输出high 以内最大的10个素数之和。high的值由主 函数传给fun函数。/*found*/while(2=high)&(n0.
14、000001);return xl;第十九套1 .程序填空给定程序中,函数fun的功能是:将a所指的3x5矩阵中第 k列的元素左移到第0歹I,第k列以后的每列元素行依次左移,原来 左边的各列依次绕到右边。第 1 处 for(p=l;p=k;p+) 第 2 处 for(j=0;jvN-l;j+) aij=aij+l;第 3 处 aiN-l=temp;2 .程序修改给定程序MODI1.C中函数fun的功能是:根据形参m的值 (2V=mv=9 ),在m行m列的二维数组中存放如下所示规律的数据, 由main函数输出。例如,若输入2则输出: 1 2 2 4/*found*/fun(int a MJnt
15、m) /*found*/aUk=(k+l)*a+l);3 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新 的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量 c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百 位上。void fun(int a,int b,int*c) (*c=(a% 10) *1000+(b % 10)* 100 +(a/10)*10+(b/10);第二十套1 .程序填空给定程序中,函数fun的功能是:对形参s所指字符串中下 标为奇数的字符ASCH码大小递增排序,并将排序后的下标为奇数 的字符取出,形成一个新串。第1处t=i;第 2
16、处 for(j=i+2;j=num) /*found*/ t=s/n.程序设计请编写个函数void fun ( char a ,char b ,int n ),其功能 是:删除一个字符串指定下标的字符。其中,a指向原字符串,删除 指定字符后的字符串放在b所指的n中存入指定的下标。viod fun (char a Jchar b3nt n ) strncpy (b声,n);bn=0;strcat(b,a+n+l);第二十一套1.程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组 中,将所有串长超过k的字符串右边的字符删去,只保留左边的k 个字符。ss所指字符串数组中共有N个字符串,
17、且串小于M。第一处 void fun(char (*ss)M, int k)第二处 while (in)ave =ave=a i S;ave /=N;for( i=0 ; iN : i+) if (a i. s2 )的素数的个 数,素数的个数作为函数值返回。第 1 处 for(j=2; j=i)2程序修改数列中,第一项值为3 ,后一项都比前一项的增5 ;给定程序modil.c 中函数fun函数功能是:计算前n ( 4nl&n=100)i=n;j=k;for(;aj!=0;j+)ai+=aj;ai=O;第二十二套1.程序填空给定程序中,函数fun的功能是:a所指4x3矩阵中第k行 的元素与第0行
18、元素交换。例如:有下列矩阵1 2 345 678 910 11 12若k为2 ,程序执行结果为7894561 2310 11 12第一处 void fun(int (*a)N,int k)第二处 for(i=0;iN;i+)第三处 a0i=aki;.程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度=9 &*pv=)*p=32;P+;i+;)第二十三套L程序填空给定程序的功能是:调用函数fun将指定源文件中的内容复 制到指定的目标文件中,复制成功时函数的返回值是1,失败是返回 值是0.在复制的过程中,把复制的内容输出到终端屏幕。主函数源文 件名放在变量sfname中,目标
19、文件放在变量tfname中。第一处if(fs=fopen(source,r,)=NULL) 第二处 while(!feof(fs)第三处 fputc(ch,ft);.程序修改给定程序MODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位, 低位仍在低位。/*found*/if(d%2=0)/*found*/s/=10;2 .程序设计函数fun的功能是:将两位正整数a、b合并形成一个新的整 数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的 十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。 void fun(int a
20、,int b Jong*c)c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);第二十四套1 .程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和 三门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据 赋给函数中的结构体变量b ,并修改b中的学号和姓名,最后输出修 改后的数据。第一处b=a;第二处 strcpy(b.name,LiSF,)第三处 for (i=0;i3;i+)printfC0;n)*q+=,*,;*q=,0; 第二十五套.程序填空用筛选法可得到2-n( n10000 )之间的所有素数,方法是: 首先从素数2开始,将所有2的倍数
21、的数从数表中删去(把数表中相 应位置的值置成0 );接着从数表中找下一个非0数,并从数表中删 去该数的所有倍数,依此类推,直到所找的下一个数等于n为止。这 样会得到一个序列:2、3、5、7、11、13、17、19、23函数fun 用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值 返回。第一处 for(j=ai*2;j=n;j+=ai)第二处 while(ai= =0)第三处 if(ai!=0).程序修改给定程序MODI1.C中函数fun的功能是:为一个偶数寻找 两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指 针传回主函数。/*found*/*foune*/ d=a-i
22、;1 .程序设计请编写函数fun ,它的功能是:计算并输出n (包括n )以内 能被5或9整除的所有自然数的倒数之和。double fun(int n) int i;double sum=0.0;for(i=l;in;i+)if(i%5= =0|i%9=0)sum+=1.0/i; return sum;第二十六套1 .程序填空给定程序中,函数fun的功能是建立一个NxN的矩阵。矩 阵元素的构成规律是:最外层元素的值全部是1 ;从外向内第二层元 素的值全部为2 ;第三层元素的值全部是3,依此类推。第一处 void fun(int(*a)N)第二处 for(j=i;jN-i;j+)第二处 aki=
23、akN-i-l=i+l;.程序修改给定程序MODI1.C中函数fun的功能是:将十进制正整数 m转换成k ( 2=k=9 )进制数,并按高位到低位顺序输出。/*found*/aai=m%k;/*found*/printfC%daai-l);3.程序设计编写一个函数,从num个字符串中找出最长的一个字符串, 并通过形参指针max传回该串地址。(注意:主函数中用*作为结 束输入的标志,函数fun中给出的语句仅供参考fun(char (*a)813nt numchar *max) (int i5k=05maxlen;maxlen=strlen(ak);for(i=l ;imaxlen)maxlen=
24、strlen(ai);k=i;*max=ak;第二十七套1 .程序填空函数fun的功能是计算f ( x ) =l+x-2/2 ! +3/3 ! -4/4 ! + 的前n项和。若x=2.5,n=15时,函数值为1.917914。 第一处f=l;第二处 t*=(-l)*x/i;第三处f+=t;2 .程序修改给定程序MODI1.C中函数fun的功能是:从三个红球,5 个白球,6个黑球中任意取出8个作为一组,进行输出。在没组中, 可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正 确的组合数应该是15.程序中i的值代表红球数,j代表白球数,k代 表黑球数。 /*found*/ for(i=l
25、 ;i=0&k=6) 3.程序设计请编写函数fun ,它的功能是:计算并输出下列多项式的值: Sn=l+1/1 ! +1/2!+1/3!+1/4!+l/n!o例如:在主函数中从键盘给n输入15 ,则输出为:s=2.718282o注意:要求n的值大于1但不大于 100。double fun(int n) (double s=l long t=l;int i;for(i=1; i0.001).程序设计假定输入的字符串中只包含字母和*号。请编写函数fun , 它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部 删除。形参h已指向字符串中的第一个字母,形参p已指向字符串中 最后一个字母。在
26、编写函数时,不得使用c语言提供的字符串函数。 void fun(char *a,char *h,char *p) (int j=0;char *q=a;while(*q&qh)aj+=*q+;(if(*h!=,*,)aj+=*h;h+;while(*p)aj+=*p+;aj=O;第二十九套1 .程序填空给定程序中,函数fun的功能是:有N*N矩阵,将矩阵的 外围元素顺时针旋转。操作的顺序是:首先将第一行元素的值存入临 时数组r ,然后使第一列成为第一行,最后一行成为第一列,最后一 列成为第一行,临时数组中和元素成为最后一列。第一处 tON-j-l=tjO;第二处 fora=N-l;j=0;j-
27、)第三处 tjN-l=rj;.程序修改给定程序MODI1.C中函数fun的功能是:计算s=f (-n ) +f ( -n+1 ) +f(0 )+f(l)+f(2) +f(n )的值。例如,当 n为5时,函数值应该是:10.407143。/*found*/double f(double x)/*found*/return s;2 .程序设计编写一个函数fun,它的功能是计算:s=根号下(In ( 1 ) +ln (2 ) +ln ( 3 ) +In (m)S作为函数返回,在C语言中可以调 用 log ( n )求 In ( n 力 log 函数引用说明是:Double log ( double
28、x ) 例如,若m的值为:20 , fun函数值为:60506583。double fun(int m) double s=0.0;int i;for(i=0; i=m; i+) s+=log(L0*i);s=sqrt(s);return s;第三十套1 .程序填空函数fun的功能是:反形参a所指数组中的奇数按原顺序依次存放到a0、alx a2中,把偶数从数组中删除,奇数个数通过函数值返回。例如: 若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7 , 删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。第一处 if(ai%2=l)第二处j+;第三处return j
29、;.程序修改给定程序MODI1.C中函数fun的功能是:求出两个非零正 整数的最大公约数,并作为函数值返回。/*found*/t=a;a=b;b=t;/*found*/return (b);2 .程序设计假定输入的字符串中只包含字母和*号。请编写函数fun ,它 的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语 言提供的字符串函数。void fun(char *a)int j=0;char *p=a;while(*p)if(*p!=*)aJ+l=*p;p+;aj=O;)第三十一套1 .程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数 组中,删除所有串长超过k的字符串,
30、函数返回所剩字符串的个数。 Ss所指字符串数组中共有N个字符串,且串长小于M。第一处 for(i=0;iN;i+)第二处 if(lendata=x; for (i=l ; i=n; i+)sum +=L 0/(2*i - 1)- 1. 0/(2* i);return sum;第三套1程序填空给定程序中,函数fun的功能是:f(x)=l+x+x2/+.+xI7n!直到 |x/n!|10-6,若 x=2.5,函数值为:12.182494。第 1 处 f=l. 0+x ;第 2 处 t*=x/n第3处f+=t;2程序修改给定程序MODI1.C中fun函数的功能是:计算n的5次方的值(规 定n的值大于
31、2小于8 ),通过形参指针传向主函数,并计算该值的 个位、十位、百位上的数字之和作为函数值返回。/*found*/d=l ; s=0 ;/*found*/d=d/10 ;3程序设计请编写一个函数fun ,它的功能是:计算并输出给定数组(长度为9 ) 中每相邻两个元素之平均值的平方根之和。double fun (double x9) (int i;double avg=0. 0, sum=0. 0 ;for (i=0 ; inext=s;2.程序修改给定程序MODI1.C中函数fun的功能是:计算正整数num 的各位上的数字之积。/*found*/long k=l;/*found*/ num/=
32、10 3.程序设计请编写函数fun ,它的功能是:计算n门课程的平均分,计 算结果作为函数返回。float fun(float *a,int n) int i;float ave=0.0;for(i=0;in;i+)ave=ave+ai;ave=ave/n;return ave; 第三十三套1 .程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数 组中,查找含有形参substr所指子串的所有字符串并输出,若没找 到输出相应信息。Ss所指字符串数组中共有N个字符,且串长小于 Mo程序中库函数strstr ( si. s2 )的功能是早si串中查找s2子串, 若没有,函数值为0 ,若有
33、,为非0。第一处 for(i=0;iN;i+)第二处 if(strstr(ssi,substr)!=NULL)第三处 if(find=0).程序修改给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。/*found*/fun(int x,int y,int z)/*found*/return j;2 .程序设计假定输入的字符串中只包含字母和*号。请编写函数fun ,它 的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不 删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号 的个数。在编写函数时,不得使用C语言提供的字符串函数。void fun(char *a,
34、int njnt hjnt e)(char *p=a;int j=OJen=O;while(*p)p+;len+;while(j len-h-e) aj=ah+j;j+;aj=O;第三十四套.程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串中 内容不同的字符串,且串长小于M。的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个第一处 for(i=0;inext ; 第三处 fun(head,&num); 2.程序修改给定程序MODI1.C中函数fun的功能是:求出s所指字符 串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数 中输出从此地址开始的字符串;若未找到,则函数值NULL。 /*found*/ a=NULL ; /*found*/ if(*r=*p)3.程序设计函数fun的功能是:将s所指字符串中除了下标为偶数,同 时ASCII指也