ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:38KB ,
资源ID:1335818      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1335818.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】数组(三)及答案解析.doc)为本站会员(proposalcash356)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】数组(三)及答案解析.doc

1、数组(三)及答案解析(总分:100.00,做题时间:90 分钟)一、程序修改(总题数:1,分数:20.00)1.给定程序 MODI1.C中 fun()函数的功能是:将 n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。#includestdio.h#includestdlib.hfun(int n,int *a)int i,j,p,t;for(j=0;jn-1;j+)p=j;/*found*/for(i=j+1;in-1;i+)if(apai)/*found*/t=i;if(p!=j)t=aj;aj=ap;ap=t;)putarr(int n,int *z)int i;for

2、(i=1;i= n;i+,z+)printf(“%4d“,*z);if(!(i%10)printf(“/n“);printf(“/n“);main()int aa20=(9,3,0,4,1,2,5,6,8,10,7,n=11;printf(“/n/nBefore sorting %d numbers:/q“,n);putarr(n,aa);fun(n,aa);printf(“/nAfter sorting %d numbers:/n“,n);putarr(n,aa);(分数:20.00)_二、程序设计(总题数:3,分数:60.00)2.编写一个函数 fun(),其功能是求出一个 2M整型二维数

3、组中最大元素的值,并将此值返回调用函数。#includestdio.h#define M 4int fun(int aM)main()int arr2M=5,8,3,45,76,-4,12,82);void NONO();printf(“max=%d/n“,fun(arr);(分数:20.00)_3.函数 fun()的功能是:将 s所指字符串中除了下标为奇数,同时 ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在 t所指的数组中。例如,若 s所指字符串中的内容为“ABCDEFG12345”,其中字符 A的 ASCII码值虽为奇数,但所在数组中的下标为偶数,

4、因此必须删除;而字符 1的 ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他以此类推。最后 t所指数组中的内容应是“135”。#includestdio.h#includestring.hvoid fun(char *s,char t)main()char s100,t100;void NONO();printf(“/nPlease enter string s:“);scanf(“%s“,s);fun(s,t);printf(“/nThe result is:%s/n“,t);NONO();(分数:20.00)_4.请编写一个函数 fun(),其功能是找出一维整型数组元素

5、中最大的值和它所在的下标,并将它们通过形参传回。数组元素中的值已在主函数中赋予。在主函数中,x 是数组名,n 是 x中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。#includestdlib.h#includestdio.hvoid fun(int a,int n,int *max,int *d)main()int i,x20,max,index,n=10;void NONO();for(i=0;in;i+)xi=rand()%50;printf(“%4d“,xi);)printf(“/n“);fun(x,n,printf(“Max=%5d,Index=%4d/n“,

6、max,index);NONO();(分数:20.00)_三、程序填空(总题数:1,分数:20.00)5.给定程序中,函数 fun()的功能是找出 NN矩阵中每列元素中的最大值,并按顺序依次存放于形参 b所指的一维数组中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#includestdio.h#define N 4void fun(int(*a)IN,int *b)int i,j;for(i=0;iN;i+)/*found*/bi= (1) ;for(j=1;jN;j+)/*found*/if(bi (2) ajj)bi=ajj;main()int xNN=12,5

7、,8,7,6,1,9,3,1,2,3,4,2,8,4,3,yN,i,j;printf(“/nThe matrix:/a“);for(i=0;iN;i+)for(j=0;jN;j+)printf(“%4d“,xij);printf(“/n“);/*found*/fun (3) ;printf(“/nThe result is:“);for(i=0;iN;i+)printf(“%3d“,yi);printf(“/n“);(分数:20.00)填空项 1:_数组(三)答案解析(总分:100.00,做题时间:90 分钟)一、程序修改(总题数:1,分数:20.00)1.给定程序 MODI1.C中 fun(

8、)函数的功能是:将 n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。#includestdio.h#includestdlib.hfun(int n,int *a)int i,j,p,t;for(j=0;jn-1;j+)p=j;/*found*/for(i=j+1;in-1;i+)if(apai)/*found*/t=i;if(p!=j)t=aj;aj=ap;ap=t;)putarr(int n,int *z)int i;for(i=1;i= n;i+,z+)printf(“%4d“,*z);if(!(i%10)printf(“/n“);printf(“/n“);main(

9、)int aa20=(9,3,0,4,1,2,5,6,8,10,7,n=11;printf(“/n/nBefore sorting %d numbers:/q“,n);putarr(n,aa);fun(n,aa);printf(“/nAfter sorting %d numbers:/n“,n);putarr(n,aa);(分数:20.00)_正确答案:(1)for(i=j+1;in;i+) (2)p=i;)解析:解析 本题中函数的功能是将 n个无序整数从小到大排序。题目中利用 for循环对无序数进行了比较排序。排序功能是要对 n个无序整数进行比较排序,内层 for循环中的循环限制应该是小于

10、n,所以第一个错误标识下的“for(i=j+1;in-1;i+)”应改为“for(i=j+1;in;i+)”。“for(j=0;jn-1;j+)”循环中以 j为下标的元素与其他元素进行比较,当“if(apai)”时,应该是将 i的值赋值给 p,而不是 t,所以“t=i;”应改为“p=i;”。考点 函数关系,逻辑关系。二、程序设计(总题数:3,分数:60.00)2.编写一个函数 fun(),其功能是求出一个 2M整型二维数组中最大元素的值,并将此值返回调用函数。#includestdio.h#define M 4int fun(int aM)main()int arr2M=5,8,3,45,76

11、,-4,12,82);void NONO();printf(“max=%d/n“,fun(arr);(分数:20.00)_正确答案:(int i,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+0)if(maxaij)max=aij;return max;)解析:解析 该程序的功能是寻找二维数组中最大元素的值。其中求最大元素的方法:用最大值变量max标记第一个待找数据,然后逐个把所有待找数据和 max进行比较,并用 max标记当前最大值及其所在位置,从而找出最大值。进入 fun()函数,根据前面的分析进行如下操作。首先设置变量 max,用来记录最大值,然后赋予该变量初

12、值。遍历整个数组,将每一个元素与 max进行比较,若大于 max,则将此新值存入 max。当数组遍历完成后,max中存放的即为数组中的最大元素。使用 return语句返回 max数值。考点 数组操作,for 循环语句,if 条件语句。3.函数 fun()的功能是:将 s所指字符串中除了下标为奇数,同时 ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在 t所指的数组中。例如,若 s所指字符串中的内容为“ABCDEFG12345”,其中字符 A的 ASCII码值虽为奇数,但所在数组中的下标为偶数,因此必须删除;而字符 1的 ASCII码值为奇数,所在数组中的下

13、标也为奇数,因此不应当删除,其他以此类推。最后 t所指数组中的内容应是“135”。#includestdio.h#includestring.hvoid fun(char *s,char t)main()char s100,t100;void NONO();printf(“/nPlease enter string s:“);scanf(“%s“,s);fun(s,t);printf(“/nThe result is:%s/n“,t);NONO();(分数:20.00)_正确答案:(int i,j=0;for(=1;istrlen(s);i+=2)if(i%2=0tj=/0;)解析:解析 该程

14、序的功能是将字符串中除了下标为奇数、ASCII 值也为奇数的字符外,其余的全都删除。解题过程:利用 if判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。判断一个字符串中的某一字符下标 i是否为奇数,可用“!%2!=0”来判定,也可以从下标 1开始,每次移动 2个位置:而判断字符的 ASCII码值是否为奇数,则可用“si%2 1=0”来判定。对串 s中各个字符串逐个进行考查,满足条件的字符就顺序放在新串 t中,否则就不存放。所有字符处理完后,记得在新串 t的末尾加上结束符“/0”。考点 数组操作,函数传值,if 条件语句,for 循环语句。4.请编写一个函数 fun(),其功

15、能是找出一维整型数组元素中最大的值和它所在的下标,并将它们通过形参传回。数组元素中的值已在主函数中赋予。在主函数中,x 是数组名,n 是 x中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。#includestdlib.h#includestdio.hvoid fun(int a,int n,int *max,int *d)main()int i,x20,max,index,n=10;void NONO();for(i=0;in;i+)xi=rand()%50;printf(“%4d“,xi);)printf(“/n“);fun(x,n,printf(“Max=%5d,I

16、ndex=%4d/n“,max,index);NONO();(分数:20.00)_正确答案:(int i;*max=a0;*d=0; /*把数组的第 1个元素值赋值给最大值变量*max*/for(i=1;in;i+)if(*maxai) /*判断*max 是否小于当前值*/*max=ai; /*重新把最大值赋值给*max*/*d=i; /*记住下标*/)解析:解析 该程序的功能是求一维整型数组元素中最大的值和它所在的下标。其中求最大元素的方法:用最大值变量 max标记第一个待找数据,然后逐个把所有待找数据和 max进行比较,并用 max标记当前最大值及其所在位置,从而找出最大值。进入 fun(

17、)函数,根据前面的分析进行如下操作。*max 指针变量首先指向数组 a的第一个数据,同时将标志位*d 初始值赋为 0。利用 for循环对每一个当前数组数据与 max标记的数据进行比较。在循环中将求得的最大数据 ai赋值给指针变量*max,并将 ai下标值(即“i”)赋给标志位变量*d。考点 数组操作,指针操作。三、程序填空(总题数:1,分数:20.00)5.给定程序中,函数 fun()的功能是找出 NN矩阵中每列元素中的最大值,并按顺序依次存放于形参 b所指的一维数组中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#includestdio.h#define N 4v

18、oid fun(int(*a)IN,int *b)int i,j;for(i=0;iN;i+)/*found*/bi= (1) ;for(j=1;jN;j+)/*found*/if(bi (2) ajj)bi=ajj;main()int xNN=12,5,8,7,6,1,9,3,1,2,3,4,2,8,4,3,yN,i,j;printf(“/nThe matrix:/a“);for(i=0;iN;i+)for(j=0;jN;j+)printf(“%4d“,xij);printf(“/n“);/*found*/fun (3) ;printf(“/nThe result is:“);for(i=0

19、;iN;i+)printf(“%3d“,yi);printf(“/n“);(分数:20.00)填空项 1:_ (正确答案:(1)a0i (2) (3)x,y)解析:解析 本题中函数 fun()的功能是找出 NN矩阵中每列元素中的最大值,并按顺序依次存放于形参 b所指的一维数组中。在 fun()函数内,多次寻找最大值,两个循环嵌套就可以满足题干要求。第一空:第二个循环是寻找每列的最大值,方法是用最大值变量 bi标记第一个待找数据,然后逐个把所有待找数据和 bi进行比较,并用 bi标记其当前最大值,从而找出最大值。因此,第一空处为第一个待找数据“a0i。第二空:由上述的分析可知,如果 bi小于 aji,那么用 bi标记其当前最大值,故第二空处为“”。第三空:fun()函数的声明格式为:void fun(int(*a)N,int *b)。函数的两个参数均是指针,故在主函数内 fun()函数的调用格式为“fun(x,y)”,x 是二维数组首地址,y 是一维数组首地址。因此,第三空处应填写“x,y”。考点 函数功能,指针操作。

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