【计算机类职业资格】二级C语言机试-141及答案解析.doc

上传人:syndromehi216 文档编号:1325650 上传时间:2019-10-17 格式:DOC 页数:5 大小:31KB
下载 相关 举报
【计算机类职业资格】二级C语言机试-141及答案解析.doc_第1页
第1页 / 共5页
【计算机类职业资格】二级C语言机试-141及答案解析.doc_第2页
第2页 / 共5页
【计算机类职业资格】二级C语言机试-141及答案解析.doc_第3页
第3页 / 共5页
【计算机类职业资格】二级C语言机试-141及答案解析.doc_第4页
第4页 / 共5页
【计算机类职业资格】二级C语言机试-141及答案解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C 语言机试-141 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:33.00)1.请完成函数 fun(),它的功能是:用选择法对数组中 n 个元素按从大到小的顺序进行排序。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在下划线上填入所需的内容。#includestdio.h#define N 20void fun(int a,int n)int i,j,t,p;for(j=0;jn-1; 1 )p=j;for(i=j;in;i+)if(ai 2 app=i;t=ap;ap=aj;a 3 =t;main()int aN

2、11,32,-5,2,14,i,m=5;for(i=0;im;i+)printf(“%d/n“,ai);fun(a,m);for(i=0;im;i+)printf(“%d“ai);(分数:33.00)填空项 1:_二、改错题(总题数:1,分数:33.00)2.给定程序 MODllC 中函数 fun 的功能是:输出 M 行 M 列整数方阵,然后求两条对角线上各元素之和,返回此和数。#inCludecoMo.h#inCludestdio.h#dehne M 5/*found*/int fun(int n,int xx)int i,j,sum=0;printf(“/n The%dx%d matri

3、x:n“M,M);for(i=0;iM;i+)for(j=0;jM;j+)/*found*/printf(“%f“,xxij);printf(“/n“);for(i=0;in;i+)sum+=xxii+XXin-i-1;return(sum);main( )int aaMM=1,2,3,4,5),4,3,2,1,0),6,7,8,9,0,9,8,7,6,5,3,4,5,6,7;clrscr( );printf(“/n The sum Of all elements On 2 diagnals is %d.“fun(M,aa);(分数:33.00)填空项 1:_三、设计题(总题数:1,分数:34

4、00)3.请编写函数 fun,它的功能是:求任意两个正整数的最小公倍数和最大公约数,最小公倍数放在指针变量 bei 所指的变量中,最大公约数放在指针变量 yue 所指的变量中。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。void fun(int m,int n,int*bei,int *yue)int s=l,i;if(mn)s=m;m=n;n=S;for(i=2,s=1;im i+)if(m%i=0)jn-1; 1 )p=j;for(i=j;in;i+)if(ai 2 app=i;t=ap;

5、ap=aj;a 3 =t;main()int aN=11,32,-5,2,14,i,m=5;for(i=0;im;i+)printf(“%d/n“,ai);fun(a,m);for(i=0;im;i+)printf(“%d“ai);(分数:33.00)填空项 1:_ (正确答案:void fun(int a,int n)int i,j,t,p;for(j=0;jn-1;j+) p=j;for(i=j;in;i+)if(aiap)p=i;t=ap;aP=aj;aj=t;)解析:解析 程序的基本思路是依次用当前取得的元素和它后面的其他元素进行比较,这样在比较完后,可以保证当前位置的当前元素存放着最

6、大数。按同样方法取得次最大数。空白 1 处填 j+,循环变量 j 依次增 1,取出每个数;空白 2 处填,按照题目要求是从大到小排序:空白 3 处填 j,借助中间变量交换两个数。二、改错题(总题数:1,分数:33.00)2.给定程序 MODllC 中函数 fun 的功能是:输出 M 行 M 列整数方阵,然后求两条对角线上各元素之和,返回此和数。#inCludecoMo.h#inCludestdio.h#dehne M 5/*found*/int fun(int n,int xx)int i,j,sum=0;printf(“/n The%dx%d matrix:n“M,M);for(i=0;iM

7、i+)for(j=0;jM;j+)/*found*/printf(“%f“,xxij);printf(“/n“);for(i=0;in;i+)sum+=xxii+XXin-i-1;return(sum);main( )int aaMM=1,2,3,4,5),4,3,2,1,0),6,7,8,9,0,9,8,7,6,5,3,4,5,6,7;clrscr( );printf(“/n The sum Of all elements On 2 diagnals is %d.“fun(M,aa);(分数:33.00)填空项 1:_ (正确答案:int fun(int n,int xx) 改为 int

8、fun(int n,int xxM)printf(“%f,xxij); 改为 printf(“%d,“xxij);)解析:解析 二维数组作为函数形参时,二维长度不可缺省,只能省略一维的长度。在格式输出函数中,血型数据输出时对应的控制符是%d.三、设计题(总题数:1,分数:34.00)3.请编写函数 fun,它的功能是:求任意两个正整数的最小公倍数和最大公约数,最小公倍数放在指针变量 bei 所指的变量中,最大公约数放在指针变量 yue 所指的变量中。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。v

9、oid fun(int m,int n,int*bei,int *yue)int s=l,i;if(mn)s=m;m=n;n=S;for(i=2,s=1;im i+)if(m%i=0)&(n%i=0)*yue=s;*bei=S*m*n;main( )int a,b,beishu,yueshu;chscr( );printf(“please input a,b:“);scanf(“%d,%d,“&a,&b);fun(a,b,&beishu,&yueshu); printf(“a,b beishu:%d/n“,beishu);printf(“a,b yueshu:%d/n“,Yueshu);(分数:34.00)_正确答案:(void fun(int m,int n,int*bei,int*yue)int s=l,i;if(mn)s=m;m=n;n=s;for(i=2,s=1;im;i+)if(m%i=0)&(n%i=0)m=m/i; n=n/i;s=s*i: i=1:*yue=s;*bei=s*m*n;)解析:解析 本题考查编程解决一般数学问题的能力。本题函数 fun 的实现了拐除法,在 2 m 之间从小到大依次取数 i 同时整除 m 和 n,若能整除,则累乘到 s 中,最后的 s 就是最大公约数,s*m*n 就是最小公倍数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1