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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】二级C语言-358 (1)及答案解析.doc

1、二级 C 语言-358 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充 main()函数,该函数的功能是:把一个整数插入一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组 bbM=10 20 30 40 50 60 70 80 85 95中插入 75,结果为 bbM=10 20 30 40 50 60 70 75 80 85 95 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdli

2、b.h #includestdio.h #define M 10 void main() int i,j; int n; int bbM+1=10,20,30,40,50,60,70,80,85,95; system(“CLS“); printf(“/nlnput n/n“); scanf(“%d“, printf(“/nn=%d“,n); printf(“/n*original list*/n“); for(i=0;iM;i+) printf(“%4d“,bbi); for(i=0;iM;i+) if(n=bbi) for(j=M; 1;j-) 2; bbj=n; 3; if(i=M) bb

3、i=n; printf(“/n*new list*/n“); for(i=0;iM+1;i+) printf(“%4d“,bbi); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 proc()的功能是:用冒泡法对 6 个字符串按由小到大的顺序进行排序。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdlib.h #includestring.h #includeconio.h #includestdio.h #define MAX 20 /*fo

4、und* proc(char*pstr6) int i,j; char*p; for(i=0;i5;i+) for(j=i+1;j6;j+) /*found* if(strcmp(*(pstr+i),pstr+j)0) p=*(pstr+i); /*found* *(pstr+i)=pstr+j; *(pstr+j)=p; void main() int i; char * pstr6,str6MAX; system(“CLS“); for(i=0;i6;i+)pstri=stri; printf(“/nEnter 6 string(1 string at eachline):/n“); fo

5、r(i=0;i6;i+)scanf(“%s“,pstri); proc(pstr); printf(“The strings after sorting:/n“); for(i=0;i6;i+)printf(“%s/n“,pstri); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.下列程序定义了 MM 的二维数组,并在主函数中自动赋值。请编写函数 proc(int aM),该函数的功能是:使数组左下半三角元素中的值全部置成 0。例如,a 数组中的值为: a=1 7 4 0 9 4 8 8 2 4 5 5 1 7 1 1 5 2 7 6 1 4 2 3 2 则返回主程序

6、后 a 数组中的值应为: 0 7 4 0 9 0 0 8 2 4 0 0 0 7 1 0 0 0 0 6 0 0 0 0 0 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includeconio.h #includestdio.h #includetime.h #includestdlib.h #define M 5 void proc(int aM) void main() int arrMM,i,j; srand(unsigned)time(NULL); system(“CLS“); p

7、rintf(“*The array*/n“); for(i=0;iM;i+) /产生一个随机的 5*5 矩阵 for(j=0;jM;j+) arrij=rand()%10; printf(“%4d“,arrij); printf(“/n“); proc(arr); printf(“THE RESULT/n“); for(i=0;iM;i+) for(j=0;jM;j+) printf(“%4d“,arrij); printf(“/n“); (分数:40.00)_二级 C 语言-358 (1)答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请

8、补充 main()函数,该函数的功能是:把一个整数插入一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组 bbM=10 20 30 40 50 60 70 80 85 95中插入 75,结果为 bbM=10 20 30 40 50 60 70 75 80 85 95 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h #define M 10 void main() int i,j; int n; int bbM

9、1=10,20,30,40,50,60,70,80,85,95; system(“CLS“); printf(“/nlnput n/n“); scanf(“%d“, printf(“/nn=%d“,n); printf(“/n*original list*/n“); for(i=0;iM;i+) printf(“%4d“,bbi); for(i=0;iM;i+) if(n=bbi) for(j=M; 1;j-) 2; bbj=n; 3; if(i=M) bbi=n; printf(“/n*new list*/n“); for(i=0;iM+1;i+) printf(“%4d“,bbi); (

10、分数:30.00)解析:ji bbj=bbj-1 break解析 要把一个整数插入一个已经按从小到大排序的数组中,插入后,数组仍然有序。首先要找到应该插入的位置,将该位置的元素以及其后的元素向后移动一个位。因此,第一处填“ji”;第二处填“bbj=bbj-1”。然后将指定元素插入,结束循环,因此,第三处填“break”。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 proc()的功能是:用冒泡法对 6 个字符串按由小到大的顺序进行排序。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #

11、includestdlib.h #includestring.h #includeconio.h #includestdio.h #define MAX 20 /*found* proc(char*pstr6) int i,j; char*p; for(i=0;i5;i+) for(j=i+1;j6;j+) /*found* if(strcmp(*(pstr+i),pstr+j)0) p=*(pstr+i); /*found* *(pstr+i)=pstr+j; *(pstr+j)=p; void main() int i; char * pstr6,str6MAX; system(“CLS“

12、); for(i=0;i6;i+)pstri=stri; printf(“/nEnter 6 string(1 string at eachline):/n“); for(i=0;i6;i+)scanf(“%s“,pstri); proc(pstr); printf(“The strings after sorting:/n“); for(i=0;i6;i+)printf(“%s/n“,pstri); (分数:30.00)解析:错误:proc(char*pstr6) 正确:void proc(char*pstr6) 错误:if(strcmp(*(pstr+i),pstr+j)0) 正确:if(

13、strcmp(*(pstr+i),*(pstr+j)0) 错误:*(pstr+i)=pstr+j; 正确:*(pstr+i)=*(pstr+j); 解析 由主函数的调用可知,函数 proc()没有返回值。因此,“proc(char*pstr6)”应改为“void proc(char*pstr6)”。题目中要求按字符串由小到大的顺序进行排序,需要比较每一个字符串的大小,因此,“if(strcmp(*(pstr+i),pstr+j)0)”应改为“if(strcrop(*(pstr+i),*(pstr+j)0)”。顺序不对的 2 个字符串要互换其指针所指向的地址,赋值的两个变量其类型应该相同,因此,

14、pstr+i)=pstr+j;”应改为“*(pstr+i)=*(pstr+j);”。三、程序设计题(总题数:1,分数:40.00)3.下列程序定义了 MM 的二维数组,并在主函数中自动赋值。请编写函数 proc(int aM),该函数的功能是:使数组左下半三角元素中的值全部置成 0。例如,a 数组中的值为: a=1 7 4 0 9 4 8 8 2 4 5 5 1 7 1 1 5 2 7 6 1 4 2 3 2 则返回主程序后 a 数组中的值应为: 0 7 4 0 9 0 0 8 2 4 0 0 0 7 1 0 0 0 0 6 0 0 0 0 0 注意:部分源程序给出如下。 请勿改动 ma

15、in()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includeconio.h #includestdio.h #includetime.h #includestdlib.h #define M 5 void proc(int aM) void main() int arrMM,i,j; srand(unsigned)time(NULL); system(“CLS“); printf(“*The array*/n“); for(i=0;iM;i+) /产生一个随机的 5*5 矩阵 for(j=0;jM;j+) arrij=rand()%1

16、0; printf(“%4d“,arrij); printf(“/n“); proc(arr); printf(“THE RESULT/n“); for(i=0;iM;i+) for(j=0;jM;j+) printf(“%4d“,arrij); printf(“/n“); (分数:40.00)_正确答案:()解析:void proc(int aM) int i,j; ror(i=0;iM;i+)/i 表示行下标 for(j=0;j=j;j+) /j 表示列下标 aij=0; /数组左下半三角元素中的值全部置成 0 解析 要使数组左下半三角元素中的值全部置成 0,先要找出数组的下半三角元素,再将其值全部赋值为 0。二维数组中下半三角元素的特点为,其列下标小于其行下标。根据这个特点,将二维数组的下半三角元素都赋值为 0。

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