《2019年计算机二级C语言题库.docx》由会员分享,可在线阅读,更多相关《2019年计算机二级C语言题库.docx(157页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2019年计算机二级C语言上机题库第一套1 .程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩.函数fun的功能是将存放学生数据的结构体数组, 按照姓名的字典序(从小到大排序)请在程序的下划线处壊入正确的内容并把下划线删除,使程序得出正确的结果。第一处 struct student t;第二处 for(i=0;i0)2 程序修改给定程序M0DI1.C中函数fun的功能是:在p所指字符串中找出ASCH码值最大的字符,将其放在第一个位置上;并将该字符前的原字 符向上顺序移动。/founds/q=p+i;/found3*8*/while(qp)3程序设计学生的记录由学号
2、和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分 数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。int fun (STREC *a, STREC *b, int 1, int h)int i, j=0;for(i=0;i=l&ai. snext;第三处 q=q-next;2 .程序修改给定程序MODU. C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。/found3*/P=j;/found3*/P=i;3 .程序设计请编写个fun函数,它的功能是:求出1到m之间(含通能被7或11整除的所有整
3、数放在数组a中,通过n返回这些数的个数。void fun(int m, int *a, int *n)int i;n=0;for(i=7;i=m; i+)if(i%7=0)|(i%ll=0)a(*n)+=i;第三套1.程序填空函数fun的功能是:逆置数组元素是的值.例如:若a所指数组中的数据依次为:1、2、3、4, 5, 6、7、8、9,则逆置后依次为,9、 8, 7、6、5、4, 3、2, 1.形参n给出数组中数组中数据的个数。第一处 for(i=0;in/2;i+)第二处 ai=an-l-i;第三处 an-i-l=t;2程序修改给定程序M0DI1.C中函数fun的功能是:将一个由八进制数字
4、字符串组成的字符串转换为与其面值相等的十进制整数。规定输 入的字符串最多只能包含5位八进制数字字符。/founds/n=*p- ;/found3*8*/n=n*8+*p- ;3.程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回 指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置1,作为函数值 返回。(用于字符串比较的函数是strcmp)。STREC fun(STREC*a, char *b)(STREC c;Int i;c.num【=0;c. s=-l;for(i=0
5、;idata=ch)return n;第三处 k=fun (head, ch);2 .程序修改给定程序MODU.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用 结束输入。/found*/for(i=0,t=0;pi;i+)/found*/ct= 0;3 .程序设计请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。void fun(char *ss) int i;for(i=l;i=, a &ssi=, z)ssi-=32;第五套1 .程序填空给定程序中,函数fun的功能是:计算下式
6、前n项的和作为函数值返回。例如:当形参n的值为10的时,函数返回:9.6125588。 第一处s=0;第二处 for(i=l;i=eps)s+=t;n+;t=t*n/ 0*n+l);return(s*2.0);弟篡1 .程序填空给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首 地址作为函数值返回。第一处 tj=si; j+;第二处 for(i=0;ik;i+)tj+i=pi;第三处tj+k=O;2 .程序修改给定程序M0DI1. C中函数fun的功能是:将s所指字符串中最后一次出现的与tl所指字符串相同的子串替换成t2所指定字符
7、串,所形成的新串放在w所指的数组中.在此处,要求tl和t2所指字符串的长度相同./*found*/while(*w)/found1*/if(+r=*p)3 .程序设计函数fun的功能是:将s所指字符串中ASCH值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。 void fun (char *s, char t) int i, j=0;for(i=0; istrlen(s); i+)if(si%2=0)tj+=si;tj=O;)第七套1 .程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a所指结构体变量s中的 数据进行修改,并把
8、a中地址作为函数值返回主函数,在主函数中输出修改后的数据.第一处 struct student *fun(struct student*a)第二处 for(i=0;iscorei+=l:第三处 return a;2 .程序修改给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数 中输入,并放在个字符串数组中./*found*/char *fun(char (*sq) M) /found*/return sp;3 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中,合并的方式是:将a中的十位和个位依次
9、放在变 量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上.include void fun (int a, int b, long c)和=(b%10) 1000+ (a/10) 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 .程序修改给定程序M0DI1.C中函数fun的功能是:把主函数中输入的三个数,最大的放在a中,最
10、小的放在c中,中间的放在b中. /founds/ float k;/founds/if (杭0)3 .程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最 髙的学生数据放在b所指的数组中,注意:分数最髙的学生可能不止个,函数返回分数最髙的学生的人数。int fun(STREC *a, STREC *b) int i, max二a0. s, n=O;for(i=l;iN;i+)if (maxai. s)max=ai. s;for(i=0;iN;i+)if (max=ai. s)bn+=ai;return n;第九套1 .程序填
11、空给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中小于平均值 的数据移至数据的前部,大于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 第一处 for(i=0;iN;i+) av+=xi/N第二处 yj=xi;xi=-l; j+;第三处i+;2 .程序修改给定程序MODILC中函数fun的功能是:统计字符串各元音字母(即:A、E、I、0、U)的个数。注意字母不分大小写。/found3*/numk=0;/founds/switch (林)3 .程序设计请编写函数fun,函数的功能是:求出级数组周
12、边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。int fun(int a MN)int tot=0, i, j;for(i=0;iN;i+)tot +=a0i;tot +=aM-li;for(i=l;iM-l;i+)tot +=ai0;tot +=aiN-1;)return tot;)第十套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a中的数据进行修改,把 修改后的数据作为函数值返回主函数进行输出。第一处 struct studentfun(struct student a)第二处 strcpy (a. name, n Li
13、Si n );第三处 a. score i+=l;2程序修改假定整数数列中的数不重复,并存放在数组中。给定程序M0DILC中函数fun的功能是:删除数列中值为x的元素N中存放 的是数列中元素的个数./*found*/if (p=n) return-1/found*/ai=ai+l:3.程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最 低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止个,函数返回分数最低的学生的人数。int fun(STREC *a, STREC *b) (int i, j=0, min=a0.
14、 s;for(i=0;iai. s) j=0;bj+=ai ;min=ai. s;else if (min=ai. s) bj+=ai;return j;第H套1 .程序填空给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中大于平均值 的数据移至数据的前部,小于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 第一处 av=s/N;第二处 yj+=xi;xi=-l;第三处 if(xi!=-l)yj+=xi;2 .程序修改给定程序M0DU. C中函数fun的功能是:读入一行英文文本行,将其中每个单词
15、的第一个字母改成大写,然后输出次文本行(这 里的“单词”是指由空格隔开的字符串)。/found3*0*5/#include/found*/ upfst (char *p)3 .程序设计程序定义了 NXN的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出数组周边元素的平均值并作出函数值 饭给主函数中的s。double fun(int wN) int i, j, n=0;double sum=O;for(i=0;iN;i+) sum+=w0 i+wN-l i;n+=2;for(i=l;iN-l;i+) sum+=wi O+wi N-1;n+=2;)return sum/n;第十二套
16、1 .程序填空给定程序中,函数fun的功能是:将自然数1-10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显 示在屏幕上第一处 fprintf (fp, %d%fn , i, sqrt( (double) i);第二处 fclose(fp);第三处 if (fp=fopen(fname, rn )=NULL)2 .程序修改给定程序M0DI1. C中函数fun的功能是:将n个无序整数从小到大排序。/found*/for(i=j+l;in;i+)/founds/P=i;3 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:
17、将a中的十位和个位依次放在变 量c的个位和百位上,b中的十位和个位数依次放在变量c的十位和千位上。include void fun(int a, int b, long *c)(c=(b%10) +1000+ (a%10)+100+ (b/10) 10+(a/10);第十三套1 .程序填空给定程序中,函数fun的功能是:找出WN矩阵中每列元素中的最大值,并按顺序一次存放于形参b所指的一维数组中。第一处 bi=a0i;第二处 if (biajij)bi=aji;第三处fun(x, y):2 .程序修改给定程序M0DU. C中函数fun的功能是:交换主函数中的两个变量的值。/founds/int
18、fun (int 桃,int +y)/founds/t=*x;M=*y;y=t;3 .程序设计编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中 给出的语句仅供参考。include ftdefine MAX100int fun(int lim, int aaMAX)int i, j, k=0;for(i=2;i=lim;i+) for(j=2;j(i/2)aak+=i; return k;第十四套1 .程序填空函数fun的功能是进行字母转换。若形参ch中小写英文字母,则转换成相应的大写英文字母;若形参ch中是大写英文字母, 则转
19、换成相应的小写英文字母;并将转换的结果作为函数值返回。第一处 if(ch=* a* )&(ch=, z)第二处 return ch+ a - A 第三处return ch;2 .程序修改给定程序MODH.C中函数fun的功能是:给维数组a输入任意四个整数并按下列的规律输出。例如输出1、2、3、4,程序 输出下方阵。a) 1 2 33 4124 3 4 112 3 4/found*/void fun(int *a)/found*/ aj=aj-l;3.程序设计请编写函数fun,函数的功能是:计算并输出给定整数n的所有因子(不包过1和n本身)之和。规定n的值不大于1000. int fun(int
20、 n) ( int s=0, i;for(i=2;in;i+)if(n%i=0)s+=i: return s;第十五套1 .程序填空给定程序中,函数的功能是:把形参S所指字符串下标为奇数的字符右移到下一个奇书位置,最右边呗移出字符串的字符绕回 放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为: ahcbedgo第一处 if (n%2=0) k=n-l;第二处 c=sk;第三处sl=c;2 .程序修改给定程序M0DI1. C中函数fun的功能是:求s=aa-aaaaaaaa (此处aaaa表示n个a, a和n的值在1
21、至9之间)。/found*/ long s=0, t=0;/found*/t=t/10;3 .程序设计请编写个函数void fun (char*tt, intpp),统计在tt所指字符串中a至z 26个小写字母各自出现在的次数,并 依次放在pp数组中。void fun(char*tt, int pp) char *p=tt: int i;for(i=0:i= a &*p= z) pp*p- a +=l;P+; 第十六套 1.程序填空 人员的记录由编号和出生年、月、日组成,N名人员的数据己在主函数中存入结构体数组std中,且编号唯一函数fun的功能是:找 出指定编号人员数据,作为函数值返回,由主
22、函数输出,若指定编号不存在,返回数据中编号为空串.第!,处 STU fun (STU *std, char *num)第 2 处 if (strcmp (stdi. num, num) =0)第3处 return (stdi);4 .程序修改给定程序M0DI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。 /*found*/ r+; p+;/*found*/if(*r= =0)5 .程序设计函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。include include void fun
23、(char*s, char t) (int i, j=0;for(i=0:i=, &si=, 9)n+;第3处*t=n;2 .程序修改给定程序M0DI1. C中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的 值原为8, b中的值原为3,程序运行后a中值为3, b中的值为8./found*/ t=+x;x=y; /found*/ return(t);3 .程序设计请编写函数fun,函数的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a 所指的数组中,通过n返回这些数的个数。 include viod f
24、un (int *a, int *n) int i;*n=0;for(i=7;i1000;i+)if(i*7)= =0 I I (i%ll)= =0&(i%77)!=0) a(*n)+=i;第十八套1 .程序填空给定程序中,函数fun的功能是:有NXN矩阵,根据给定的m (m=n)值,将每行元素中的值均右移m个位置,左边值为. 第 1处 for(i=0;iN;i+) 第 2 处 ti j+m=tij;第 3 处 for(j=0; jm;j+)2 .程序修改给定程序M0DI1.C中函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。/*found*
25、/while(2=high)&(n0.000001):return xl;第十九套1 .程序填空给定程序中,函数fun的功能是:将a所指的3X5矩阵中第k列的元素左移到第。列,第k列以后的每列元素行依次左移,原 来左边的各列依次绕到右边。第 1 处 for(p=l;p=k;p+)第 2 处for(j=0;jN-l;j+)ai j=ai j+1:第 3 处 aiN-l=temp;2 .程序修改给定程序M0DI1.C中函数fun的功能是:根据形参m的值(2刊=9),在m行m列的二维数组中存放如下所示规律的数据,由 main函数输出。例如,若输入2则输出:1 22 4/found1*/fun(int
26、 a M, int m)/founds/aj k=(k+l) + (j+D:3 .程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中.合并的方式是:将a中的十位和个位依次放在变 量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上.void fun (int a, int b, intc)(c= (a%10)1000+(b%10)+100+ (a/10)+10+(b/10);第二十套1 .程序填空给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符ASCH码大小递增排序,并将排序后的下标为奇数 的字符取出,形成一个新串.第 litt=i
27、;第2处for(j=i+2;j=num)/founds/t=s/n3 .程序设计请编写个函数void fun (char a , char b , int n),其功能是:删除个字符串指定下标的字符.其中,a指向原字符 串,删除指定字符后的字符串放在b所指的n中存入指定的下标。viod fun (char a , charb, int n)(strncpy (b, a, n);bn=0;strcat (b, a+n+1);第二十一套1 .程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k 个字符。ss所指字符串数组中共有N
28、个字符串,且串小于M.第一处 void fun (char (*ss) M, int k)第二处 while (in)i=n;j=k;for(;aj!=0;j+)ai+=aj;ai=0;)第二十二套1.程序填空给定程序中,函数fun的功能是:a所指4X3矩阵中第k行的元素与第。行元素交换。例如:有下列矩阵123456789101112若k为2,程序执行结果为7894561 23101112第一处 void fun (int (*a) N, int k)第二处 for(i=0;itj+U)3 .程序设计请编写函数fun,函数的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位
29、置上不是字母,则不转 换)。void fun(char ss) (char xss;inr i=0;while(p) if(i%2)&(p=, a &+p=f z)p-=32;p+; i+; 第二十三套 1.程序填空给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数的返回值是1,失败是返回 值是。.在复制的过程中,把复制的内容输出到终端屏幕.主函数源文件名放在变量sfname中,目标文件放在变量tfname中 第一处if (fs=f open (source, n rn )=NULL) 第二处 while(!feof(fs) 第三处 fputc (ch,
30、 ft): 2.程序修改给定程序M0DI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中.高位仍在高位, 低位仍在低位./found*/if(d%2=0)/found*/ s/=10;4 .程序设计函数fun的功能是:将两位正整数a、b合并形成一个新的整数放在c中.合并的方式是:将a中的十位和个位依次放在变量c 的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上.void fun (int a, int b, long*c) (*c= (a%10) *1000+ (b/10) *100+ (a/10) *10+(b%10); 第二十四套1 .程
31、序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩.函数fun的功能是将形参a所指结构体变量中的数 据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据.第一处b=a:第二处 strcpy (b. name, n LiSi)第三处 for (i=0;i 0* ;3 .程序设计假定输入的字符串中只包含字母和号。请编写函数fun,它的功能是:将字符串的前导号全部移到字符串的尾部。函数fun 中给出的函数仅供参考.void fun(char *a) char *p, *q;int n=0;P=a;while(*p= *)n+;p-H-;q 二a;while(*
32、p)*q=*p;p+;q+;)for(;n0;n)*q+=, *,;*q= 、;)第二十五套1 .程序填空用筛选法可得到2n (n10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中 相应位置的值置成。);接着从数表中找下个非。数,并从数表中删去该数的所有倍数,依此类推,直到所找的下个数等于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)2 .
33、程序修改给定程序M0DI1.C中函数fun的功能是:为个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指 针传回主函数。/found*/y=l;/*foune*/d=a-i;3 .程序设计请编写函数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+=l. 0/i;return sum;第二十六套1 .程序填空给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素
34、的值全部是1:从外向内第二层元 素的值全部为2;第三层元素的值全部是3,依此类推。第一处 void fun(int (*a) N)第二处 for(j=i; jN-i; j+)第二处 ak i=ak N-i-l=i+l;2 .程序修改给定程序M0DI1.C中函数fun的功能是:将十进制正整数m转换成k (2=k=9)进制数,并按高位到低位顺序输出。/*found*/aai=m%k;/*found*/printf (, aai-l);3 .程序设计编写个函数,从num个字符串中找出最长的个字符串,并通过形参指针max传回该串地址。(注意:主函数中用*作为 结束输入的标志,函数fun中给出的语句仅供
35、参考)。fun (char (*a) 81, int num, char *max) (int i, k=0, 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个作为组,
36、进行输出。在没组中, 可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15.程序中i的值代表红球数,j代表白球数,k 代表黑球数。/found5*0*5/for(i=l;i=0&k=6)3 .程序设计请编写函数fun,它的功能是:计算并输出下列多项式的值:s=l+l/l! +1/2!+1/3!+1/4!+1/n!。例如:在主函数中从键盘 给n输入15,则输出为:s=2. 718282c注意:要求n的值大于1但不大于100。double fun(int n) (double s=Vlong t=l;int i;for(i=l;i=n;i+)t=t+i;s+=l. 0/t;