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

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

1、二级 C 语言机试 75 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充函数 fun(),该函数的功能是判断一个数是否为回文数。当字符串是回文时,函数返回字符申:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:abcba。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。 试题程序: #includestring.h #includestdio.h char *fun(char*str) cha

2、r *p1,*p2; int i, t=0; p1=str;p2=str+strlen(str)-1; for (i=0;U 【1】 /U;i+) if(U 【2】 /U) t=1; break; if (U 【3】 /U) return(“yes!“); else return(“no!“); main() char str50; printf(“Input;“); scanf(“%s“,str); printf(“%s/n“,fun(str); (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.下列给定的程序中,函数 fun()的功能是:判断字符 ch

3、是否与 str 所指字符串中的某个字符相同;若相同,则什么也不做,若相同,则将其插在申的最后。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include conio.h #include stdio.h #include string.h /*found*/ void fun (char str,char ch) while (*str /*found*/ if(*str=ch) str0=ch; /*found*/ str1=0; main() char s81,c; clrscr(); printf(“

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

5、4 5 2 3 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回土程序后 s 的值应为 3.375。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的仟何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #include stdio.h #includeconio.h #includestdlib.h #define N 5 double fun (int w N) main() int aN N=0,1,2,7,9,1,9,7,4,5,2, 3,8,3,1,4,5,6,8,2,5,9,1,4,1; int i, j; double s; cl

6、rscr(); printf(“*The array*/n “); for (i=0; iN; i+) for (j=0;jN;i+) printf(“%4d “,ai j); printf(“/n “); s=fun(a); printf(“*THE RESULT*/n “); printf(“The sum is : %lf/n “,s); (分数:40.00)_二级 C 语言机试 75 答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充函数 fun(),该函数的功能是判断一个数是否为回文数。当字符串是回文时,函数返回字符申:ye

7、s!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:abcba。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。 试题程序: #includestring.h #includestdio.h char *fun(char*str) char *p1,*p2; int i, t=0; p1=str;p2=str+strlen(str)-1; for (i=0;U 【1】 /U;i+) if(U 【2】 /U) t=1; break; if (U 【3】 /U) ret

8、urn(“yes!“); else return(“no!“); main() char str50; printf(“Input;“); scanf(“%s“,str); printf(“%s/n“,fun(str); (分数:30.00)填空项 1:_ (正确答案:1 i=strlen(sb)/2 或 istrlen(sw)/2 2 *p1+!=*p2- 3 t=20)解析:解析 填空 1:判断回文数就是将第一个字符与最后个字符比较,第二个字符与倒数第二个字符进行比较,依此类推,直到中间的字符,如果比较的结果都是相同,则这个字符串就是回文数,否则不是。所以比较的次数是 strlen(str

9、)/2。填空 2:指针 p1 从第一个字符向后移动,指针 p2 从最后一个字符向前移动,如果两字符不相同,则说明此字符串不是回文数,将标记变量 t 置为 1。填空 3:变量 t 用来标记此字符串是否为回文数,当 t 为 0 时,表示字符串是回文数,当 t 为 1 时,表示字符串不是回文数。二、B改错题/B(总题数:1,分数:30.00)2.下列给定的程序中,函数 fun()的功能是:判断字符 ch 是否与 str 所指字符串中的某个字符相同;若相同,则什么也不做,若相同,则将其插在申的最后。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改

10、程序的结构。 试题程序: #include conio.h #include stdio.h #include string.h /*found*/ void fun (char str,char ch) while (*str /*found*/ if(*str=ch) str0=ch; /*found*/ str1=0; main() char s81,c; clrscr(); printf(“/nPlease enter a strzng : “); gets(s); printf(“/n Please enter the character to search : “); c=getc

11、har(); fun(s,c); printf(“/nThe result is %s/n“,s); (分数:30.00)填空项 1:_ (正确答案:错误;void fun(char str,char ch) 正确:void fun(char *str,char ch))解析:(2) 错误:if(*str=ch) 正确:if(*str=/0) (3) 错误;str1=0; 正确:str1=/0; 解析 该题的重点就是在 while 的循环嵌套语句中,由题干信息“若相同,则什么也不做”很容易就能看出 if(*str=ch)后面的执行语句是错误的。另外,void 指针具有一般性,它们可以指向任何类

12、型的数据。但目前绝大多数 C 编译所提供的这类函数都返回 char 指针,再由题目中的定义得出 void fun(char str,char ch)的错误信息;str1=0;是一个简单的语法错误。三、B编程题/B(总题数:1,分数:40.00)3.下列程序定义了 NN 的二维数组,并在主函数中赋值。请编写函数 fun(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。例如:若 a 数组中的值为 a= 0 1 2 7 9 1 9 7 4 5 2 3 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回土程序后 s 的值应为 3.375。 注意:部分源程序给出如下。

13、 请勿改动主函数 main 和其他函数中的仟何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #include stdio.h #includeconio.h #includestdlib.h #define N 5 double fun (int w N) main() int aN N=0,1,2,7,9,1,9,7,4,5,2, 3,8,3,1,4,5,6,8,2,5,9,1,4,1; int i, j; double s; clrscr(); printf(“*The array*/n “); for (i=0; iN; i+) for (j=0;jN;i+) p

14、rintf(“%4d “,ai j); printf(“/n “); s=fun(a); printf(“*THE RESULT*/n “); printf(“The sum is : %lf/n “,s); (分数:40.00)_正确答案:()解析:double fun (int wN) int i,j,k=0; double av=0.0; for(i=0;iN;i+) for(j=0;jN;j+) if(i=0|i=N-1|j=0|j=N-1) /*只要下标中有一个为 0 或 N-1,则它一定是周边元素*/ av=av+wij; /*将周边元素求和*/ k+; return av/k; /*求周边元素的平均值*/ 解析 该题采用逐一判断的方式,周边元素的下标一定有一个是 0 或 N-1,且只要下标中有一个为 0 或 N-1,则它一定是周边元素。计算周边元素个数的方式是当给 av 加一个值时,则 k 加 1。k 也可用 2*N+2*N-4 求得。

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

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

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