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

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

1、全国计算机二级 C 语言上机试题 37+2015 年及答案解析(总分:30.00,做题时间:90 分钟)1.给定程序中,函数 fun 的功能是:在形参 ss 所指字符串数组中,查找含有形参 substr 所指子串的所有字符串并输出,若没找到则输出相应信息。ss 所指字符串数组中共有 N 个字符串,且串长小于 M。程序中库函数 strstr(s1, s2)的功能是在 s1 串中查找 s2 子串,若没有,函数值为 0,若有,为非 0。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结

2、构! 给定源程序: #include #include #define N 5 #define M 15 void fun(char (*ss)M, char *substr) int i,find=0; /*found*/ for(i=0; i _1_ ; i+) /*found*/ if( strstr(ssi, _2_) != NULL ) find=1; puts(ssi); printf(“/n“); /*found*/ if (find=_3_) printf(“/nDont found!/n“); main() char xNM=“BASIC“,“C langwage“,“Jav

3、a“,“QBASIC“,“Access“,strM; int i; printf(“/nThe original string/n/n“); for(i=0;i printf(“/nEnter a string for search : “); gets(str); fun(x,str); (分数:10.00)_2.给定程序 MODI1.C 中函数 fun 的功能是:求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3 分别输入 15 11 2,则输出结果应当是:330。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。

4、 给定源程序: #include /*found*/ fun(int x, y, z ) int j,t ,n ,m; j = 1 ; t=j%x; m=j%y ; n=j%z; while(t!=0|m!=0|n!=0) j = j+1; t=j%x; m=j%y; n=j%z; /*found*/ return i; main( ) int x1,x2,x3,j ; printf(“Input x1 x2 x3: “); scanf(“%d%d%d“, printf(“x1=%d, x2=%d, x3=%d /n“,x1,x2,x3); j=fun(x1,x2,x3); printf(“T

5、he minimal common multiple is : %d/n“,j); (分数:10.00)_3.假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参 n 给出了字符串的长度, 形参 h 给出了字符串中前导*号的个数,形参 e给出了字符串中最后*号的个数。在编写函数时,不得使用 C 语言提供的字符串函数。 例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:A*BC*DEF*G。 注意: 部分源程序在文件 PROG1.C 文件中。请勿改动主函数 main 和其它函数中的任何内容

6、仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #include void fun( char *a, int n,int h,int e ) main() char s81,*t,*f; int m=0, tn=0, fn=0; printf(“Enter a string:/n“);gets(s); t=f=s; while(*t)t+;m+; t-; while(*t=*)t-;tn+; while(*f=*)f+;fn+; fun( s , m,fn,tn ); printf(“The string after deleted:/n“);puts(s); NONO(

7、); (分数:10.00)_全国计算机二级 C 语言上机试题 37+2015 年答案解析(总分:30.00,做题时间:90 分钟)1.给定程序中,函数 fun 的功能是:在形参 ss 所指字符串数组中,查找含有形参 substr 所指子串的所有字符串并输出,若没找到则输出相应信息。ss 所指字符串数组中共有 N 个字符串,且串长小于 M。程序中库函数 strstr(s1, s2)的功能是在 s1 串中查找 s2 子串,若没有,函数值为 0,若有,为非 0。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行

8、或删行,也不得更改程序的结构! 给定源程序: #include #include #define N 5 #define M 15 void fun(char (*ss)M, char *substr) int i,find=0; /*found*/ for(i=0; i _1_ ; i+) /*found*/ if( strstr(ssi, _2_) != NULL ) find=1; puts(ssi); printf(“/n“); /*found*/ if (find=_3_) printf(“/nDont found!/n“); main() char xNM=“BASIC“,“C l

9、angwage“,“Java“,“QBASIC“,“Access“,strM; int i; printf(“/nThe original string/n/n“); for(i=0;i printf(“/nEnter a string for search : “); gets(str); fun(x,str); (分数:10.00)_正确答案:(第一处:利用 for 循环,从几个字符串中进行查找,程序中已经给定了 N 个字符串,所以应填:N。 第二处:查找子串,子串由形参 substr 传递,所以应填:substr。 第三处:试题要求,若没有找到,函数值为 0,所以应填:0。)解析:2.给

10、定程序 MODI1.C 中函数 fun 的功能是:求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3 分别输入 15 11 2,则输出结果应当是:330。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 给定源程序: #include /*found*/ fun(int x, y, z ) int j,t ,n ,m; j = 1 ; t=j%x; m=j%y ; n=j%z; while(t!=0|m!=0|n!=0) j = j+1; t=j%x; m=j%y; n=j%z; /*found*/ return i

11、 main( ) int x1,x2,x3,j ; printf(“Input x1 x2 x3: “); scanf(“%d%d%d“, printf(“x1=%d, x2=%d, x3=%d /n“,x1,x2,x3); j=fun(x1,x2,x3); printf(“The minimal common multiple is : %d/n“,j); (分数:10.00)_正确答案:(第一处: 函数中形参的定义不正确,应改为:fun(int x,int y, int z)。 第二处: 程序中三个数的最小公倍数是用 j 处理的,所以应返回 j 的值。)解析:3.假定输入的字符串中只包含

12、字母和*号。请编写函数 fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参 n 给出了字符串的长度, 形参 h 给出了字符串中前导*号的个数,形参 e给出了字符串中最后*号的个数。在编写函数时,不得使用 C 语言提供的字符串函数。 例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:A*BC*DEF*G。 注意: 部分源程序在文件 PROG1.C 文件中。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #include void fun( char *a, int n

13、int h,int e ) main() char s81,*t,*f; int m=0, tn=0, fn=0; printf(“Enter a string:/n“);gets(s); t=f=s; while(*t)t+;m+; t-; while(*t=*)t-;tn+; while(*f=*)f+;fn+; fun( s , m,fn,tn ); printf(“The string after deleted:/n“);puts(s); NONO(); (分数:10.00)_正确答案:(void fun( char *a, int n,int h,int e ) char *p=a ; int j=0,len=0; while(*p) p+; len+; while(j aj=ah+j; j+; aj=0; )解析:

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

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

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