【计算机类职业资格】全国计算机二级C语言上机试题25+2015年及答案解析.doc

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

1、全国计算机二级 C语言上机试题 25+2015年及答案解析(总分:30.00,做题时间:90 分钟)1.人员的记录由编号和出生年、月、日组成,N 名人员的数据已在主函数中存入结构体数组 std中,且编号唯一。函数 fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define N 8 typedef struct c

2、har num10; int year,month,day ; STU; /*found*/ _1_ fun(STU *std, char *num) int i; STU a=“,9999,99,99; for (i=0; i /*found*/ if( strcmp(_2_,num)=0 ) /*found*/ return (_3_); return a; main() STU stdN= “111111“,1984,2,15,“222222“,1983,9,21,“333333“,1984,9,1, “444444“,1983,7,15,“555555“,1984,9,28,“6666

3、66“,1983,11,15, “777777“,1983,6,22,“888888“,1984,8,19; STU p; char n10=“666666“; p=fun(std,n); if(p.num0=0) printf(“/nNot found !/n“); else printf(“/nSucceed !/n “); printf(“%s %d-%d-%d/n“,p.num,p.year,p.month,p.day); (分数:10.00)_2.给定程序 MODI1.C中函数 fun的功能是:从 s所指字符串中,找出与 t所指字符串相同的子串的个数作为函数值返回。 例如,当 s所指

4、字符串中的内容为:“abcdabfab“,t 所指字符串的内容为: “ab“,则函数返回整数 3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include int fun (char *s, char *t) int n; char *p , *r; n = 0; while ( *s ) p = s; r = t; while ( *r ) if ( *r = *p ) /*found*/ r+; p+ else break; /*found*/ if ( r = /0 ) n+;

5、s+; return n; main() char s100, t100; int m; printf(“/nPlease enter string S:“); scanf(“%s“, s); printf(“/nPlease enter substring t:“); scanf(“%s“, t); m = fun( s, t); printf(“/nThe result is: m = %d/n“, m); (分数:10.00)_3.函数 fun的功能是:将 s所指字符串中 ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在 t所指的数组中。 例如,若 s所指字符串中的内容为:“A

6、BCDEFG12345“,其中字符 B的 ASCII码值为偶数、字符 2的 ASCII码值为偶数、 都应当删除,其它依此类推。最后 t所指的数组中的内容应是:“ACEG135“。 注意: 部分源程序存在文件 PROG1.C中。请勿改动主函数 main和其它函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 给定源程序: #include #include void fun(char *s, char t) main() char s100, t100; printf(“/nPlease enter string S:“); scanf(“%s“, s); fun(s, t);

7、printf(“/nThe result is: %s/n“, t); NONO(); (分数:10.00)_全国计算机二级 C语言上机试题 25+2015年答案解析(总分:30.00,做题时间:90 分钟)1.人员的记录由编号和出生年、月、日组成,N 名人员的数据已在主函数中存入结构体数组 std中,且编号唯一。函数 fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构!

8、 给定源程序: #include #include #define N 8 typedef struct char num10; int year,month,day ; STU; /*found*/ _1_ fun(STU *std, char *num) int i; STU a=“,9999,99,99; for (i=0; i /*found*/ if( strcmp(_2_,num)=0 ) /*found*/ return (_3_); return a; main() STU stdN= “111111“,1984,2,15,“222222“,1983,9,21,“333333“

9、,1984,9,1, “444444“,1983,7,15,“555555“,1984,9,28,“666666“,1983,11,15, “777777“,1983,6,22,“888888“,1984,8,19; STU p; char n10=“666666“; p=fun(std,n); if(p.num0=0) printf(“/nNot found !/n“); else printf(“/nSucceed !/n “); printf(“%s %d-%d-%d/n“,p.num,p.year,p.month,p.day); (分数:10.00)_正确答案:(第一处:从返回值来看,

10、是返回一个结构型的值,所以应填:STU。 第二处:判断结构变量中的编号 num是否相等,所以应填:stui.num。 第三处:返回编号相等的记录值,所以应填:stdi。)解析:2.给定程序 MODI1.C中函数 fun的功能是:从 s所指字符串中,找出与 t所指字符串相同的子串的个数作为函数值返回。 例如,当 s所指字符串中的内容为:“abcdabfab“,t 所指字符串的内容为: “ab“,则函数返回整数 3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include int fun

11、(char *s, char *t) int n; char *p , *r; n = 0; while ( *s ) p = s; r = t; while ( *r ) if ( *r = *p ) /*found*/ r+; p+ else break; /*found*/ if ( r = /0 ) n+; s+; return n; main() char s100, t100; int m; printf(“/nPlease enter string S:“); scanf(“%s“, s); printf(“/nPlease enter substring t:“); scanf

12、(“%s“, t); m = fun( s, t); printf(“/nThe result is: m = %d/n“, m); (分数:10.00)_正确答案:(第一处:语句后缺少分号。 第二处:判断 r的当前字符是否是字符串结束符,所以应改为:if(*r=0)。)解析:3.函数 fun的功能是:将 s所指字符串中 ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在 t所指的数组中。 例如,若 s所指字符串中的内容为:“ABCDEFG12345“,其中字符 B的 ASCII码值为偶数、字符 2的 ASCII码值为偶数、 都应当删除,其它依此类推。最后 t所指的数组中的内容应是:“

13、ACEG135“。 注意: 部分源程序存在文件 PROG1.C中。请勿改动主函数 main和其它函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 给定源程序: #include #include void fun(char *s, char t) main() char s100, t100; printf(“/nPlease enter string S:“); scanf(“%s“, s); fun(s, t); printf(“/nThe result is: %s/n“, t); NONO(); (分数:10.00)_正确答案:(void fun(char *s, char t) int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2) tj+ = si ; tj = 0 ; )解析:

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

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

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