计算机二级新增的八个考点.docx
- 文档编号:23975005
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:39
- 大小:255.97KB
计算机二级新增的八个考点.docx
《计算机二级新增的八个考点.docx》由会员分享,可在线阅读,更多相关《计算机二级新增的八个考点.docx(39页珍藏版)》请在冰豆网上搜索。
计算机二级新增的八个考点
第43套:
给定程序中,函数fun的功能是:
在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:
1572387582145
按升序排列时的中间数为:
8
处理后主函数中输出的数列为:
8882387882145
给定源程序:
#include
#defineN9
intfun(intx[])
{inti,j,k,t,mid,b[N];
for(i=0;i for(i=0;i<=N/2;i++) {k=i; for(j=i+1;j if(k! =i) { /**********found**********/ t=b[i];b[i]=___1___;b[k]=t;填写: b[k] } } /**********found**********/ mid=b[___2___];填写: N/2 for(i=0;i /**********found**********/ if(x[i]___3___mid)x[i]=mid;填写: < returnmid; } main() {inti,x[N]={1,5,7,23,87,5,8,21,45}; for(i=0;i printf("\nThemiddatais: %d\n",fun(x)); for(i=0;i printf("\n"); } ********************************************************************** 给定程序MODI1.C中,fun函数的功能是: 删除b所指数组中小于10的数据。 主函数中输出删除后数组中余下的数据。 给定源程序: #include #include #defineN20 intfun(int*b) { /**********found**********/ intt[N],i,num改成intt[N],i,num=0; for(i=0;i if(b[i]>=10) /**********found**********/ t[++num]=b[i];改成t[num++]=b[i]; /**********found**********/ for(i=0;i b[i]=t[i]; return(num); } main() {inta[N],i,num; printf("a数组中的数据: \n"); for(i=0;i printf("\n"); num=fun(a); for(i=0;i printf("\n"); } ********************************************************************** 请编写函数fun,其功能是: 统计s所指字符串中的数字字符个数,并作为函数值返回。 例如,s所指字符串中的内容是: 2def35adh253kjsdf7/kj8655x, 函数fun返回值为: 11 给定源程序: #include voidNONO(); intfun(char*s) { } main() {char*s="2def35adh253kjsdf7/kj8655x"; printf("%s\n",s); printf("%d\n",fun(s)); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; inti; chars[256]; fp=fopen("c: \\test\\in.dat","r"); wf=fopen("c: \\test\\out.dat","w"); for(i=0;i<10;i++){ fgets(s,255,fp); fprintf(wf,"%d\n",fun(s)); } fclose(fp); fclose(wf); } ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 第44套: 函数fun的功能是: 输出a所指数组中的前n个数据,要求每行输出5个数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果 #include #include voidfun(int*a,intn) {inti; for(i=0;i { /**********found**********/ if(___1___==0) /**********found**********/ printf("___2___"); /**********found**********/ printf("%d",___3___); } } main() {inta[100]={0},i,n; n=22; for(i=0;i fun(a,n); printf("\n"); } 【微答案】 (1)x (2)p(3)s ********************************************************************** 给定程序MODI1.C中,函数fun的功能是: 在任意给定的N个正整数中,从左 到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与 该组数对应的原三个数中的中间位置的数。 处理后原数列中首尾2个数不变。 处理 后的数列在主函数中输出。 例如,有10个正整数如下: 给定源程序: #include #defineN10 intfindmid(inta,intb,intc) {intt; t=(a>b)? (b>c? b: (a>c? c: a)): ((a>c)? a: ((b>c)? c: b)); /**********found**********/ returnb; } voidfun(intx[]) {inti,a,b,c,t[N]; /**********found**********/ for(i=0;i for(i=0;i {a=t[i];b=t[i+1];c=t[i+2]; /**********found**********/ t[i+1]=findmid(a,b,c); } } main() {inti,x[N]={6,5,7,23,18,5,8,21,45,38}; for(i=0;i printf("\n"); fun(x); for(i=0;i printf("\n"); } ********************************************************************** 请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值 返回,若x不存在,则返回-1。 #include #include #defineN15 voidNONO(); intfun(int*s,intx) { } main() {inta[N]={29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index; printf("a数组中的数据: \n"); for(i=0;i printf("给x输入待查找的数: ");scanf("%d",&x); index=fun(a,x); printf("index=%d\n",index); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; inti,j,a[10],x,index; fp=fopen("c: \\test\\in.dat","r"); wf=fopen("c: \\test\\out.dat","w"); for(i=0;i<10;i++){ for(j=0;j<10;j++){ fscanf(fp,"%d",&a[j]); } fscanf(fp,"%d",&x); index=fun(a,x); fprintf(wf,"%d\n",index); } fclose(fp); fclose(wf); } 【微答案】 floatfun(float*a,intn) { inti; floatav=0.0; for(i=0;i av=av+a[i]; return(av/n);/*返回平均值*/ } ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 第45套: 给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是: 将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。 给定源程序: #include typedefstructlist {chardata; structlist*next; }Q; voidfun(Q*pa,Q*pb,Q*pc) {Q*p; /**********found**********/ pa->next=___1___; pb->next=pc; p=pa; while(p) { /**********found**********/ printf("%c",____2_____); /**********found**********/ p=____3____; } printf("\n"); } main() {Qa,b,c; a.data='E';b.data='F';c.data='G';c.next=NULL; fun(&a,&b,&c); } 【微答案】 (1)pb (2)p->data(3)p->next ********************************************************************** 给定程序MODI1.C中,函数fun()的功能是统计s所指一维数组中0的个数(存 在变量zero中)和1的个数(存在变量one中),并输出结果。 #include voidfun(int*s,intn) { /**********found**********/ inti,one=0,zero; for(i=0;i /**********found**********/ switch(s[i]); { /**********found**********/ case0: zero++; case1: one++; } printf("one: %dzero: %d\n",one,zero); } main() {inta[20]={1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0},n=20; fun(a,n); } 【微答案】 (1)inti,one=0,zero=0; (2)switch(s[i])(3)case0: zero++;break; ********************************************************************** 请编写函数fun,其功能是将形参s所指的字符串放入形参a所指的字符数组 中,使a中存放同样的字符串。 说明: 不得使用系统提供的字符串函数。 注意: 部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任 何内容,仅在函数fun指定的部位填入所编写的若干语句。 给定源程序: #include #defineN20 voidNONO(); voidfun(char*a,char*s) { } main() {chars1[N],*s2="abcdefghijk"; fun(s1,s2); printf("%s\n",s1); printf("%s\n",s2); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; inti; chars1[256],s2[256]; fp=fopen("c: \\test\\in.dat","r"); wf=fopen("c: \\test\\out.dat","w"); for(i=0;i<10;i++){ fgets(s2,255,fp); fun(s1,s2); fprintf(wf,"%s",s1); } fclose(fp); fclose(wf); } 【微答案】 voidfun(char*a,char*s) { while(*s){ *a=*s;a++;s++;} *a=*s; } ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 第46套: 围绕山顶一圈有N个山洞,编号为0、1、2、3、……、N-1,有一只狐狸和一只兔子在洞中居住。 狐狸总想找到兔子并吃掉它,它的寻找方法是先到第一个洞 (即编号为0的洞)中找;再隔1个洞,即到编号为2的洞中找;再隔2个洞,即 到编号为5的洞中找;下次再隔3个洞;即到编号为9的洞中找;……。 若狐狸找 一圈,请为兔子指出所有不安全的洞号。 程序中用a数组元素模拟每个洞,数组 元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不 安全。 例如,当形参n的值为30时,不安全的洞号是0、2、5、9、14、20、27。 给定源程序: #include #defineN100 voidfun(int*a,intn) {inti,t; for(i=0;i /**********found**********/ a[i]=___1___; i=0; /**********found**********/ ___2___=1; while(i {a[i]=1; t++; /**********found**********/ i=___3___; } } main() {inta[N],i,n=30; fun(a,n); for(i=0;i if(a[i]==1)printf("不安全的洞号是: %d\n",i); } 【微答案】 (1)0 (2)t(3)i+t ********************************************************************** 给定程序MODI1.C中规定输入的字符串全部为字母,fun函数的功能是: 统计 a所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将 出现次数最高的字母输出(如果有多个相同,输出一个即可)。 例如对于字符串: dadbcdbabdb,对应的输出应为: b或d。 给定源程序: #include #include #include voidfun(chara[]) {intb[26],i,n,max; for(i=0;i<26;i++) /**********found**********/ a[i]=0; n=strlen(a); for(i=0;i if(a[i]>='a'&&a[i]<='z') /**********found**********/ b[a[i]-'A']++; elseif(a[i]>='A'&&a[i]<='Z') b[a[i]-'A']++; max=0; for(i=1;i<26;i++) /**********found**********/ if(b[max]>b[i]) max=i; printf("出现次数最多的字符是: %c\n",max+'a'); } main() {chara[200]; printf("请输入一个待统计的字符串: ");scanf("%s",a); fun(a); } 【微答案】 (1)b[i]=0; (2)b[a[i]-'a']++;(3)if(b[max] ********************************************************************** 请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整 数。 可调用strlen函数求字符串的长度。 例如: 在键盘输入字符串2345210,函 数返回长整型数2345210。 给定源程序: #include #include voidNONO(); longfun(char*s) { } main() {chars[10];longr; printf("请输入一个长度不超过9个字符的数字字符串: ");gets(s); r=fun(s); printf("r=%ld\n",r); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; inti;longr; chars[10],*p; fp=fopen("c: \\test\\in.dat","r"); wf=fopen("c: \\test\\out.dat","w"); for(i=0;i<10;i++){ fgets(s,10,fp); p=strchr(s,'\n'); if(p)*p=0; r=fun(s); fprintf(wf,"%ld\n",r); } fclose(fp); fclose(wf); } 【微答案】 longfun(char*s) { inti,n;longt=0; n=strlen(s); for(i=0;i { t=t*10;t=t+(s[i]-'0');} returnt; }。 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 第47套: 给定程序中,函数fun的作用是: 统计整型变量m中各数字出现的次数,并存放到数组a中,其中: a[0]存放0出现的次数,a[1]存放1出现的次数,……a[9] 存放9出现的次数。 例如,若m为14579233,则输出结果应为: 0,1,1,2,1,1,0,1,0,1, 给定源程序: #include voidfun(intm,inta[10]) {inti; for(i=0;i<10;i++) /**********found**********/ __1__=0; while(m>0) { /**********found**********/ i=___2___; a[i]++; /**********found**********/ m=___3___; } } main() {intm,a[10],i; printf("请输入一个整数: ");scanf("%d",&m); fun(m,a); for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n"); } 【微答案】 (1)a[i] (2)m%10(3)m/10 ********************************************************************** 给定程序MODI1.C中,函数fun的功能是求矩阵(二维数组)a[N][N]中每行 的最小值,结果存放到数组b中。 给定源程序: #include #defineN4 voidfun(inta[][N],intb[]) {inti,j; for(i=0;i { /**********found**********/ b[i]=a[0][0]; /**********foun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 新增 八个 考点