【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷429及答案解析.doc

上传人:explodesoak291 文档编号:1332243 上传时间:2019-10-17 格式:DOC 页数:3 大小:33KB
下载 相关 举报
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷429及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷429及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】国家二级C语言机试(操作题)模拟试卷429及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 429及答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.给定程序中,函数 fun的功能是: 把形参 s所指字符串中最右边的 n个字符复制到形参 t所指字符数组中,形成一个新串。若 s所指字符串的长度小于 n,则将整个字符串复制到形参 t所指字符数组中。 例如,形参 s所指的字符串为:abodefgh,n 的值为 5,程序执行后 t所指字符数组中的字符串应为: defgh。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1C 中。 不得增行或删行,也

2、不得更改程序的结构! 试题程序: #include stdioh #include stringh #define N 80 void fun(char,* s,int n,char*t) int fen,i,j=0; len=str1en(s); /*found*/ if(n =1en)strcpy( 【1】 ); else /*found*/ for(i=1en一 n;i =1en 一 1;i+) tj+= 【2】 ; /*found*/ tj= 【3】 ; main() char sN,tN;int n; printf(“Enter a string:“); gets(s); print

3、f(“Enter n:“); scanf(“d“,&n); fun(s,n,t); printf(“The string t:“); puts(t); (分数:2.00)_二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:找出一个大于给定整数 m且紧随 m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 NOD11C 中,不要改动 main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include stdlibh #include conioh #include stdioh int fun(int

4、 m)int i,k; for(i=m+1;i+) for(k=2; k i;k+)/*found*/ if(ik!=0) break;/*found*/ if(k i) return(i); void main()int n; system(“CLS“); printf(“/nPlease enter n:“); scanf(“d“,&n); printf(“d/n“,fun(n);(分数:2.00)_三、程序设计题(总题数:1,分数:2.00)3.请编写函数 void fun(int x,int pp ,int*n),它的功能是:求出能整除 x且不是偶数的各整数,并按从小到大的顺序放在 p

5、p所指的数组中,这些除数的个数通过形参 n返回。 例如,若 x中的值为30,则有 4个数符合要求,它们是 1、3、5、1 5。 注意:部分源程序在文件 PROG1C 中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序:#include conioh #include stdioh #include stdlibh v02d fun(int x,int pp,int,* n)void main() FILE*wf; int x,aa1 00 0,n,i; system(“CLS“); printf(“/nPlease enter an

6、integer number:/n“); Scanf(“d“,&x); fun(x,aa,&n); for(i=0 ; i n;i+) printf(“d“,aai);printf(“/n“);/*found*/ wf=fopen(“outdat“,“w“); fun(30,aa,&n); for(i=0;i n;i+) fprintf(wf,“d“,aai);fclose(wf);/*found*/(分数:2.00)_国家二级 C语言机试(操作题)模拟试卷 429答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.给定程序中,函数 fun的功能是:

7、 把形参 s所指字符串中最右边的 n个字符复制到形参 t所指字符数组中,形成一个新串。若 s所指字符串的长度小于 n,则将整个字符串复制到形参 t所指字符数组中。 例如,形参 s所指的字符串为:abodefgh,n 的值为 5,程序执行后 t所指字符数组中的字符串应为: defgh。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! 试题程序: #include stdioh #include stringh #define N 80 void fun(char,* s,int n,ch

8、ar*t) int fen,i,j=0; len=str1en(s); /*found*/ if(n =1en)strcpy( 【1】 ); else /*found*/ for(i=1en一 n;i =1en 一 1;i+) tj+= 【2】 ; /*found*/ tj= 【3】 ; main() char sN,tN;int n; printf(“Enter a string:“); gets(s); printf(“Enter n:“); scanf(“d“,&n); fun(s,n,t); printf(“The string t:“); puts(t); (分数:2.00)_正确答

9、案:(正确答案:(1)t,s (2)si (3)0 或/0)解析:解析:填空 1:当给定的长度 n大于该字符串 s的长度,那么把该字符串直接拷贝到 t就可以了,所以应填 t,s。 填空 2:使用 for循环语句,把最右边 n个字符依次添加到 t中,所以应填 si。 填空 3:字符串操作结束,需要给 t加一个字符串结束符,所以应填 0或/0。二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:找出一个大于给定整数 m且紧随 m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 NOD11C 中,不要改动 main函数,

10、不得增行或删行,也不得更改程序的结构! 试题程序:#include stdlibh #include conioh #include stdioh int fun(int m)int i,k; for(i=m+1;i+) for(k=2; k i;k+)/*found*/ if(ik!=0) break;/*found*/ if(k i) return(i); void main()int n; system(“CLS“); printf(“/nPlease enter n:“); scanf(“d“,&n); printf(“d/n“,fun(n);(分数:2.00)_正确答案:(正确答案:

11、(1)if(ik=0) (2)if(k=i)解析:解析:(1)判断当前数是否为素数,若存在一个数(除 1和其自身)能整除当前数,则跳出本次循环,所以 if条件应为 ik=0。 (2)如果 i是素数,则循环结束时 k=i,将该值返回。三、程序设计题(总题数:1,分数:2.00)3.请编写函数 void fun(int x,int pp ,int*n),它的功能是:求出能整除 x且不是偶数的各整数,并按从小到大的顺序放在 pp所指的数组中,这些除数的个数通过形参 n返回。 例如,若 x中的值为30,则有 4个数符合要求,它们是 1、3、5、1 5。 注意:部分源程序在文件 PROG1C 中。 请勿

12、改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序:#include conioh #include stdioh #include stdlibh v02d fun(int x,int pp,int,* n)void main() FILE*wf; int x,aa1 00 0,n,i; system(“CLS“); printf(“/nPlease enter aninteger number:/n“); Scanf(“d“,&x); fun(x,aa,&n); for(i=0 ; i n;i+) printf(“d“,aai);prin

13、tf(“/n“);/*found*/ wf=fopen(“outdat“,“w“); fun(30,aa,&n); for(i=0;i n;i+) fprintf(wf,“d“,aai);fclose(wf);/*found*/(分数:2.00)_正确答案:(正确答案:void fun (int x, int pp, int *n) int i,j =0; for(i=1;i =x;i=i+2) /*1 的初始值为 1,步长为 2,确保 i为奇数*/ if(xi=0)/*将能整除 x的数存入数组 pp中*/ ppj+=i; *n=j;/*传回满足条件的数的个数*/ )解析:解析:本题考查:偶数的判定方法;整除的实现。 本题题干信息是:能整除 x且不是偶数的所有整数。循环语句中变量 i从 1开始且每次增 2,所以 i始终是奇数。 整除的方法,已经讲过多次,这里就不再赘述了。对于本题目要求的不是偶数的判定方法,即该数对 2求余不为 0。除本题描述的方法外,还可以通过 for循环语句直接把偶数筛出去,确保参与操作的数均为奇数。

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

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

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