【计算机类职业资格】二级C语言机试-242及答案解析.doc

上传人:wealthynice100 文档编号:1325715 上传时间:2019-10-17 格式:DOC 页数:6 大小:33.50KB
下载 相关 举报
【计算机类职业资格】二级C语言机试-242及答案解析.doc_第1页
第1页 / 共6页
【计算机类职业资格】二级C语言机试-242及答案解析.doc_第2页
第2页 / 共6页
【计算机类职业资格】二级C语言机试-242及答案解析.doc_第3页
第3页 / 共6页
【计算机类职业资格】二级C语言机试-242及答案解析.doc_第4页
第4页 / 共6页
【计算机类职业资格】二级C语言机试-242及答案解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、二级 C语言机试-242 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)请补充函数 proc(),该函数的功能是判断一个数是否为回文数。当字符串是回文数时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如,abcdcba。注意:部分源程序已给出。请勿改动主函数 main和其他函数中的任何内容。试题程序:#includestring.h#includestdio.hchar *proc(char*str)char *str1, *str2;int i, t=0;str1=str; st

2、r2=str+str1en(str)-1;for(i=0; (1) ; i+)if( (2) )t=1;break;if( (3) )return(“yes!“);elsereturn(“no!“);void main()char str50;printf(“Input: “);scanf(“%s“, str);printf(“%s/n“, proc(str); (分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、改错题(总题数:1,分数:30.00)1.下列给定的程序中,函数 proc()的功能是:判断字符 ch是否与 str所指字符串中的某个字符相同,若相同,则什么也不做,若

3、不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#includestdlib.h#includeconio.h#includestdio.h#includestring.h/*found*void proc(char str, char eh)while(*str/*found*if(*str=ch)str0=ch;/*found*str1=0;void main()char str81, ch;system(“CLS“);printf(“/nPlease enter a string: “)

4、;gets(str);printf(“/n Please enter the character to search:“);ch=getchar();proc(str, oh);printf(“/nThe result is%s/n“, str);(分数:30.00)填空项 1:_三、编程题(总题数:1,分数:40.00)2.下列程序定义了 MM的二维数组,并在主函数中赋值。请编写函数 proc(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。例如,若 a数组中的值为:a=0 1 2 3 45 9 7 4 54 3 8 3 63 5 6 8 72 1 0 9 8则返

5、回主程序后,S 的值为 3.750000。注意:部分源程序已给出。请勿改动主函数 main和其他函数中的任何内容。试题程序:#includestdio.h#includeconio.h#includestdlib.h#define M 5double proc(int wM)void main()int aMM=0, 1, 2, 3, 4, 5, 9, 7, 4, 5, 4, 3, 8, 3, 6, 3, 5, 6, 8, 7, 2, 1, 0, 9, 8;int i, j;double s;system(“CLS“);printf(“*The array*/n“);for(i=0; iM;

6、i+)for(j=0; jM; j+)printf(“%4d“, aij); printf(“/n“);s=proc(a);printf(“*THE RESULT*/n“);printf(“The sum is: %lf/n“, s);(分数:40.00)_二级 C语言机试-242 答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)请补充函数 proc(),该函数的功能是判断一个数是否为回文数。当字符串是回文数时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如,abcdcba。注意:部分

7、源程序已给出。请勿改动主函数 main和其他函数中的任何内容。试题程序:#includestring.h#includestdio.hchar *proc(char*str)char *str1, *str2;int i, t=0;str1=str; str2=str+str1en(str)-1;for(i=0; (1) ; i+)if( (2) )t=1;break;if( (3) )return(“yes!“);elsereturn(“no!“);void main()char str50;printf(“Input: “);scanf(“%s“, str);printf(“%s/n“,

8、proc(str); (分数:30.00)填空项 1:_ (正确答案:i=strlen(str)/2)解析:填空项 1:_ (正确答案:*str1+! =*str2-)解析:填空项 1:_ (正确答案:t=0)解析:解析 判断字符串是否为回文数,将第一个与最后一个比较,第二个与倒数第二个比较,直到字符串的中间,只有当所有的都相等时为回文数。需要比较字符串长度的 1/2次,因此,1处填i=strlen(str)/2;变量 str1和 str2分别指向字符串的第一个和最后一个字符,每一次比较后 str1后移一个位置,str2 前移一个位置进行比较。变量 t为字符串是否为回文的标志,当对应位置的字符

9、不相等时变量 t赋值为 1。因此,2处填*str1+!=*str2-; 变量 t为 0时,字符串为回文数,因此,3处填 t=0。二、改错题(总题数:1,分数:30.00)1.下列给定的程序中,函数 proc()的功能是:判断字符 ch是否与 str所指字符串中的某个字符相同,若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#includestdlib.h#includeconio.h#includestdio.h#includestring.h/*found*void

10、proc(char str, char eh)while(*str/*found*if(*str=ch)str0=ch;/*found*str1=0;void main()char str81, ch;system(“CLS“);printf(“/nPlease enter a string: “);gets(str);printf(“/n Please enter the character to search:“);ch=getchar();proc(str, oh);printf(“/nThe result is%s/n“, str);(分数:30.00)填空项 1:_ (正确答案:(1

11、)错误:void proc(char str, char ch)正确:void proc(char*str, char ch)(2)错误:if(*str=ch)正确:if(*str=/0)(3)错误:str1=0;正确:str1=/0;)解析:解析 形参的个数和类型由调用该函数的实参的个数和类型决定,由 main函数中调用的函数proc可知,void proc(char str, char ch)应改为 void proc(char * str, char ch);将字符串中的每一个字符与给定字符相比较当字符串结束或者字符串中有与给定字符相同的字符时结束。如果到字符串的最后一个字符仍没找到与给

12、定字符相同的字符,将给定字符插在字符串的最后。因此,if(*str=ch)应改为 if(*str=/0);最后还要为字符串添加一个结束符因此 str1=0;应改为 str1=/0。三、编程题(总题数:1,分数:40.00)2.下列程序定义了 MM的二维数组,并在主函数中赋值。请编写函数 proc(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。例如,若 a数组中的值为:a=0 1 2 3 45 9 7 4 54 3 8 3 63 5 6 8 72 1 0 9 8则返回主程序后,S 的值为 3.750000。注意:部分源程序已给出。请勿改动主函数 main和其他函数中

13、的任何内容。试题程序:#includestdio.h#includeconio.h#includestdlib.h#define M 5double proc(int wM)void main()int aMM=0, 1, 2, 3, 4, 5, 9, 7, 4, 5, 4, 3, 8, 3, 6, 3, 5, 6, 8, 7, 2, 1, 0, 9, 8;int i, j;double s;system(“CLS“);printf(“*The array*/n“);for(i=0; iM; i+)for(j=0; jM; j+)printf(“%4d“, aij); printf(“/n“)

14、;s=proc(a);printf(“*THE RESULT*/n“);printf(“The sum is: %lf/n“, s);(分数:40.00)_正确答案:(double proc(int wN)int i, j, k=0; double av=0.0;for(i=0; iM; i+)for(j=0; jM; j+) /周边元素的特点是行或列下标为 0,或为 N-1, if(i=0|i=M-1|j=0|j=M-1) /if语句判断是否为周边元素av=av+wij; /将其和放到 av变量中k+;return av/k; /平均值返回给主函数中的 s)解析:解析 要求出数组周边元素平均值,首先要求出周边元素的和,周边元素的特点为行或列下标为0,或为 N-1,根据其特点求出所有周边元素的和,再求出其平均值,并返回给主函数。

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

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

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