《2023年全国计算机等级考试二级C语言上机题库(共75套).docx》由会员分享,可在线阅读,更多相关《2023年全国计算机等级考试二级C语言上机题库(共75套).docx(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年全国计算机等级考试二级C语言上 机题库(共75套)第一套1程序填空在给定程序中,函数fun的功能是在形参s所指字符串中寻找与参数 c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的 字符则函数不做任何处理。第 1 处 for (i=0; s i !=,0, ;i+)第2处n=0;第 3 处 sj+l =c ;2程序修改在主函数中键盘输入若干个数放入数组中,用0结束输入并放在最后 一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元 素中值为正数的平均值(不包括零) /*found*/double sum =0. 0;sum/=c;3程序设计编写程序fun ,它
2、的功能是:根据以下分工计算s ,计算结果作为函 数值返回:n通过形参传入。float fun (int n) ( int ij, t; float s=0; for(i=l; i=n;i+) t=0;for (j=l; j=i; j+)t+=j;s=s+L 0/t;return s; 中放入结构体数组S中,请编写了函数fun ,它的功能是:把分数最 低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止 一个,函数返回分数最低的学生的人数。int fun(STREC *a,STREC *b)(int iJ=09min=a0.s;for(i=0;iai.s)j=0;b j+=ai; min
3、=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)ylj+l=xi;2 .程序修改给定程序MODI1.C中函数fun的功能是:读入一行英文文 本行,将其中每个单词的第一个字母改成大写,然后输出次文本行(这 里的“单词”是指
4、由空格隔开的字符串X /*found*/#include/*found*/upfst (char *p)3 .程序设计程序定义了 NxN的二级数组,并在主函数中赋值,请编写函 数fun ,函数的功能是:求出数组周边元素的平均值并作出函数值饭 给主函数中的se double 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).程序修改给定程序MODI1.C中函数fun的功能是:将n个无序整数 从小到大排序。/*found*/for(i=j+1; in; i+)/*found*/P=i;2 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新 的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量 c的个位和百位上,b中的十位和个位数依次放在变量
6、c的十位和千 位上。#include void fun(int a,int b Jong *c)(*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);第十三套.程序填空给定程序中,函数fun的功能是:找出N*N矩阵中每列元素 中的最大值,并按顺序一次存放于形参b所指的一维数组中。第一处 bi=a0i;第二处 if(biaji)第三处fun(x,y);.程序修改给定程序MODI1.C中函数fun的功能是:交换主函数中的 两个变量的值。/*found*/int fun(int *xjnt *y)/*found*/t=*x;*x=*y;*y=t;1 .程序设计编写函
7、数fun ,函数的功能是求出小于或等于lim的所有素 数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给 出的语句仅供参考。#include #define MAXI 00int fun(int limint aaMAX)int i,j,k=O;for(i=2; i=lim; i+)(forg=2;j(i/2)aak+=i; return k;第十四套.程序填空函数fun的功能是进行字母转换。若形参ch中小写英文字 母,则转换成相应的大写英文字母;若形参ch中是大写英文字母, 则转换成相应的小写英文字母;并将转换的结果作为函数值返回。 第一处 if(ch=,a,)&(ch=,z,)
8、第二处 returnch+a-A第三处return ch;1 .程序修改给定程序MODI1.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=O)s+=i;return
9、 s;第十五套.程序填空给定程序中,函数的功能是:把形参S所指字符串下标为奇数的字符右移到下一个奇书位置,最右边呗移出字符串的字符绕回放 到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于 等于2 1例如,形参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;/*found*/ t=t/10;1 .程
10、序设计请编写一个函数void fun ( char*tt , int pp),统计在tt所 指字符串中,至,26个小写字母各自出现在的次数,并依次放在pp 数组中。void fun(char*tt, int pp)char *p=tt;int i;for(i=0;i26;i+)PPi=0; while(*p)pp*p-6a+=l;P+;) 第十六套.程序填空人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函 数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出 指定编号人员数据,作为函数值返回,由主函数输出,若指定编号不 存在,返回数据中编号为空串。第 1 处 STU f
11、un(STU *std, char *num)第 2 处 if(strcmp (stdi.num, num)=0)第 3 处 return (stdi);1 .程序修改给定程序MODI1.C中函数fun的功能是:从s所指字符串 中,找出与t所指字符串相同的子串的个数作为函数值返回。 /*found*/ r+; p+;/*found*/if(*r= =0 ).程序设计函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。#include #includestring. h void fun (char*s, char t)int i, j=0
12、;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 fun (int *ajnt *n) int
13、 i;*n=0;for(i=7;i1000;i+)if(i%7)= =0 | |(i%H)=0 &(i%77)!=0) a(*n)+=i;)第十八套.程序填空给定程序中,函数fun的功能是:有NxN矩阵,根据给定的 m ( m=n )值,将每行元素中的值均右移m个位置,左边值为0. 第 1 处 for(i=0;iN;i+) 第 2 处第 3 处 for(j=0;jm;j+)1 .程序修改给定程序MODI1.C中函数fun的功能是:计算并输出high 以内最大的10个素数之和。high的值由主 函数传给fun函数。/*found*/while(2=high)&(n0.000001);return
14、 xl;第十九套.程序填空给定程序中,函数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 处 ai N-l=temp;.程序修改给定程序MODI1.C中函数fun的功能是:根据形参m的值 (2=m=9 ),在m行m列的二维数组中存放如下所示规律的数据, 由main函数输出。例如,若输入2则输出:1 24/*found*/fun(int a M3nt m)/*found*/ajk=(k+l)*G+l
15、);2 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新 的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量 c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百 位上。void fun(int a9int b,int*c)(*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);第二十套1 .程序填空给定程序中,函数fun的功能是:对形参s所指字符串中下 标为奇数的字符ASCII码大小递增排序,并将排序后的下标为奇数 的字符取出,形成一个新串。第1处t=i;第 2 处 for(j=i+2;j=num)/*found*/t=s/
16、n2 .程序设计请编写个函数void fun ( char a ,char b ,int n ),其功能 是:删除一个字符串指定下标的字符。其中,a指向原字符串,删除 指定字符后的字符串放在b所指的11中存入指定的下标。viod fun (char a J,charb3nt n )(strncpy (b,即n);bn=0;strcat(b5a+n+l);)第二十一套1 .程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组 中,将所有串长超过k的字符串右边的字符删去,只保留左边的k 个字符。ss所指字符串数组中共有N个字符串,且串小于Mo 第一处 void fun(char (*s
17、s)M, int k) 第二处 while (in) . i=n;j=k;for(;aj!=0;j+)ai+=aj;ai=O;第二十二套1.程序填空给定程序中,函数fun的功能是:a所指4x3矩阵中第k行 的元素与第0行元素交换。例如:有下列矩阵 1 2 3 45 678 910 11 12若k为2 ,程序执行结果为78945612310 H 12第一处 void fun(int (*a)N,int k)第二处 for(i=0;iN;i+)第三处 a0i=aki;.程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串 (长度=9 &*pv=,T)*p=32;P+; i+;) 第二
18、十三套1 .程序填空给定程序的功能是:调用函数fun将指定源文件中的内容复 制到指定的目标文件中,复制成功时函数的返回值是1 ,失败是返回 值是0.在复制的过程中,把复制的内容输出到终端屏幕。主函数源文 件名放在变量sfname中,目标文件放在变量tfname中。第一处if(fs=fopen(source,r,)=NULL)第二处 while(!feof(fs)第三处 fputc(ch,ft);2 .程序修改给定程序MODI1.C中函数fun的功能是:将长整型中每一 位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位, 低位仍在低位。/*found*/if(d%2=0)/*found*
19、/ s/=10;.程序设计函数fun的功能是:将两位正整数a、b合并形成一个新的整 数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的 十位和千位上,b中的十位和个位数依次放在变量C的百位和个位上。 void fun(int a9int b Jong*c)(*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);第二十四套1 .程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和 三门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据 赋给函数中的结构体变量b ,并修改b中的学号和姓名,最后输出修 改后的数据。第一处b=a;第二处 str
20、cpy(b.name,LiSf,)第三处 for (i=0;i0;n-)*q+=,*,;*q=,(T;)第二十五套.程序填空用筛选法可得到2-n( n10000 )之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相 应位置的值置成0 );接着从数表中找下一个非0数,并从数表中删去该数的所有倍数,依此类推,直到所找的下一个数等于n为止。这 样会得到一个序列:2、3、5、7、11、13、17、19、23函数fun 用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值 返回。第一处 for(j=a i *2;j =n;j+=a i)第二处 while(ai=
21、 =0)第三处 if(ai!=0).程序修改给定程序MODI1.C中函数fun的功能是:为一个偶数寻找 两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指 针传回主函数。/*found*/y=i;/*foune*/ d=a-i;.程序设计请编写函数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+=LO/i;return sum;)第二十六套1 .程序填空给定程序中,函数fun的功能是建立一个Nx
22、N的矩阵。矩 阵元素的构成规律是:最外层元素的值全部是1 ;从外向内第二层元 素的值全部为2 ;第三层元素的值全部是3,依此类推。第一处 void fun(int(*a)N)第二处 forG=i;jN-i;j+)第二处 aki=akN-i-l=i+l;.程序修改给定程序MODI1.C中函数fun的功能是:将十进制正整数 m转换成k ( 2=k=9 )进制数,并按高位到低位顺序输出。/*found*/aai=m%k;/*found*/3.程序设计编写一个函数,从num个字符串中找出最长的一个字符串, 并通过形参指针max传回该串地址。(注意:主函数中用*作为结 束输入的标志,函数fun中给出的语
23、句仅供参考Xfun(char (*a)81,int num,char *max) (int i,k=O,maxlen;maxlen=strlen(ak);for(i=l ;imaxlen)maxlen=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个作
24、为一组,进行输出。在没组中, 可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正 确的组合数应该是15.程序中i的值代表红球数,j代表白球数,k代 表黑球数。 /*found*/ for(i=l ;i=0&k=6) 3.程序设计请编写函数fun ,它的功能是:计算并输出下列多项式的值: sn=l+l/l ! +1/2!+1/3!+1/4!+l/n!o例如:在主函数中从键盘给n 输入15 ,则输出为:3=2.718282。注意:要求n的值大于1但不大于 100。double fun(int n) double s=l long t=l;int i;for(i=1; i0.001).程序
25、设计假定输入的字符串中只包含字母和*号。请编写函数fun , 它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部 删除。形参h已指向字符串中的第一个字母,形参p已指向字符串中 最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。 void fun(char *a,char *h,char *p) (intj=0;char *q=a;while(*q&qh)aj+=*q+;while(*h&*p&h=0;j-)第三处 tjN-l=rj;.程序修改给定程序MODI1.C中函数fun的功能是:计算s=f (-n ) +f (-n+1 )+f ( 0 ) +f ( 1 ) +f (
26、 2 ) +f(n)的值。例如,当 n为5时,函数值应该是:10.407143。/*found*/double f(double x)/*found*/return s;2 .程序设计编写一个函数fun ,它的功能是计算:7艮号下(ln(l)+ln (2 ) +ln ( 3 ) +In (m)S作为函数返回,在C语言中可以调 用 log ( n )求 In ( n log 函数引用说明是:Double log ( double x ) 例如,若m的值为:20 , fun函数值为:60506583。double fun(int m)(double s=0.0;int i;for(i=0; i=m
27、; i+)s+=log(1.0*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;.程序修改给定程序MODI1.C中函数fun的功能是:求出两个非零正 整数的最大公约数,并作为函数值返回。/*found*/t=a;a=b;b=t;/*found*
28、/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的字符串,函数返回所剩字符串的个数。 Ss所指字符串数组中共有N个字符串,且串长小于Mo第一处 for(i=0;iN;i+) 第二处 if(len=k) 第三处 strcpy
29、(ssj+,ssi);2 .程序修改给定程序MODILC中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值或相等的字符依次 存放在c所指数组中,形成一个新的字符串。/*found*/int k=0;/*found*/while(*p|*q)3 .程序设计假定输入的字符串中只包含字母和*号。请编写函数fun ,它 的功能是:除了字符串前导*号之外,将串中其它*号全部删除。在编 写函数时,不得使用C语言提供的字符串函数。函数fun中给出的 语句仅供参考。void fun(char *a)int i=0,k;while(a i !=,* )i+;k=i;while(a
30、i!=509ak+=ai;i+;)ak=,(T;)第三十二套L程序填空给定程序中已建立一个带头结点的单向链表,链表中的各结 点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍1给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点 数写到的文本文件中,再用字符方式从此文本文件中逐个读入并显示 在终端屏幕上。请在程序的下划线处填入正确的内容分并把下划线删 除,使得程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。第 1 处 FILE * fp;第 2 处 while (Ifeof(fp) 第 3 处
31、 putchar (ch); ch= fgetc (fp);2程序修改给点那个程序MODI1.C中函数fun的功能是给点那个程序MODI1.C中函数fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。 /*found*/s j+=s I i ;/*found*/3程序设计题请编写函数fun ,函数的功能是:将M行N列的二维数组中的字符 数据,按列的顺序依次放到一个字符串中。void fun (char s N 5 char *b)(int i, j, n=0;for (i=0; iN; i+)/*请填写其相应语句完成其功能*/(for (j=0 ; jdata=x;
32、第二处q=p;第三处 q-next=s;.程序修改给定程序MODI1.C中函数fun的功能是:计算正整数num 的各位上的数字之积。/*found*/long k=l;/*found*/num/=102 .程序设计请编写函数fun ,它的功能是:计算n门课程的平均分,计算结果作为函数返回。float fun(float *ajnt n) float ave=0.0;for(i=0;in;i+)ave=ave+ai;ave=ave/n;return ave;)第三十三套.程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数 组中,查找含有形参substr所指子串的所有字符串并输出,若没
33、找 到输出相应信息。Ss所指字符串数组中共有N个字符,且串长小于 M。程序中库函数strstr ( slx s2 )的功能是早si串中查找s2子串, 若没有,函数值为0 ,若有,为非0。第一处 for(i=0;iN;i+)第二处 if(strstr(ss i,substr) !=NULL)第三处 if(find=0).程序修改给定程序MODI1.C中函数fun的功能是:求三个数的最小 公倍数。/*found*/fun(int x,int y,int z)/*found*/return j;1 .程序设计假定输入的字符串中只包含字母和*号。请编写函数fun ,它 的功能是:只删除字符串前导和尾部
34、的*号,串中字母之间的*号都不 删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号 的个数。在编写函数时,不得使用C语言提供的字符串函数。void fun(char *a,int nnt h,int e)(char *p=a;int j=OJen=O;while(p) p+;len+;while(j len-h-e) aj=ah+j;j+;aj=O;)第三十四套1 .程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数 组中查找与形参t所指字符串相同的串,找到后返回该串在字符串中 的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个 内容不同的字符串,且串长小于M。第处 for(i=0;inext ;第三处 fun(head,&num);.程序修改给定程序MODH.C中函数fun的功能是:求出s所指字符 串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数 中输出从此地址开始的字符串;若未找到,则函数值NULL。 /*found*/a=NULL ;/*found*/ if(*r=*p) 3.程序设计函数fun的功能是:将s所指字符串中除了下标为偶数,同 时ASCII指也为偶数的