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

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

1、二级 C 语言机试 98 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,改函数的功能是,把一个二维字符数组每行字符串最大的字符拷贝到字符数组 s 中。例如,如果 str3=“efjh“,“cfimls“,“owys“,则 s;“hsy“。 注意:部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: #inc ludestdio, h main() int i=0; char *str 3 = “efjh“, “efknls“

2、 “owys“ ;char *p; char s 8; clrscr 0; U【1】/U; for (i=O; i3; i+) s i =*p i; while (*p i ) if (S i *p i ) s i =*pi; U【2】/U; U【3】/U; printf(“ new string /n“); puts (s); (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:判断一个整数 m 是否是素数,若是返回 l,否则返回 0。在main()函数中,若 fun()返回 1 则输出 YES,若 fun()返回

3、 0 则输出 NO! 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构 试题程序: #include conio.h #include stdio.h int fun(int m) int k=2; while (k=m(m%k) /*found*/ k+ /*found*/ if(m=k) return 1; else return O; main ( ) iht n; clrscr (); printf(“/nPlease enter n: “); scanf (“%d“, if (fun (n) printf (“YES/n

4、); else printf (“NO! /n“); (分数:30.00)填空项 1:_三、B编程题/B(总题数:1,分数:40.00)3.请编写函数 fun(),该函数的功能是:将 s 所指字符串中 ASCII 值为偶数的字符删除,串中剩余字符形成一个新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为 ABCDEFGl2345,其中字符 B 的ASC码值为偶数、字符 2 的 ASC码值为偶数、,都应当删除,其他依次类推。最后 t 所指的数组中的内容应是 ACEGl35。 注定:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中

5、填入所编写的若干语句。 试题程序; #include stdio. h #includestring.h #includeconio. h void fun(char *s, char t) main ( ) char s100,t 100; clrscr (); printf (,/nPlease enter string S: “); scanf (“%s“, s); fun(s,t); printf (“/nThe result is :%s/n“,t); (分数:40.00)_二级 C 语言机试 98 答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分

6、数:30.00)1.请补充 main 函数,改函数的功能是,把一个二维字符数组每行字符串最大的字符拷贝到字符数组 s 中。例如,如果 str3=“efjh“,“cfimls“,“owys“,则 s;“hsy“。 注意:部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: #inc ludestdio, h main() int i=0; char *str 3 = “efjh“, “efknls“, “owys“ ;char *p; char s 8; clrscr 0; U【1】/U; for (i=O;

7、 i3; i+) s i =*p i; while (*p i ) if (S i *p i ) s i =*pi; U【2】/U; U【3】/U; printf(“ new string /n“); puts (s); (分数:30.00)填空项 1:_ (正确答案:1 p=str 2pi+ 3si=/0)解析:解析 填空 1:sb 是一个大小为 3 的指针数组,每个指针指向一个字符串,p 是指向指针的指针,首先要使指针 p 指向数组 sb 的首地址。填空 2:通过 pi+使 pi指向第 i 个字符串的下一个字符。填空 3:将每行字符串的最大字符都拷贝到字符数组 s 中后,不要忘了在数组 s

8、 最后加上字符串结束标记符/0。二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:判断一个整数 m 是否是素数,若是返回 l,否则返回 0。在main()函数中,若 fun()返回 1 则输出 YES,若 fun()返回 0 则输出 NO! 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构 试题程序: #include conio.h #include stdio.h int fun(int m) int k=2; while (k=m(m%k) /*found*/ k+ /*found

9、/ if(m=k) return 1; else return O; main ( ) iht n; clrscr (); printf(“/nPlease enter n: “); scanf (“%d“, if (fun (n) printf (“YES/n“); else printf (“NO! /n“); (分数:30.00)填空项 1:_ (正确答案:(1)错误:k+ 正确:k+)解析:(2)错误:if(m=k) 正确:if(m=k) 解析 函数 fun()的功能是判断 m 是否为素数:m 从 2 开始作为除数,并对 m 取余,若不存在一个数使得余数为 0,则 m 为素数,程序的

10、错误在于 if(m=k)语句中的逻辑表达式写成了赋值表达式。三、B编程题/B(总题数:1,分数:40.00)3.请编写函数 fun(),该函数的功能是:将 s 所指字符串中 ASCII 值为偶数的字符删除,串中剩余字符形成一个新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为 ABCDEFGl2345,其中字符 B 的ASC码值为偶数、字符 2 的 ASC码值为偶数、,都应当删除,其他依次类推。最后 t 所指的数组中的内容应是 ACEGl35。 注定:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程

11、序; #include stdio. h #includestring.h #includeconio. h void fun(char *s, char t) main ( ) char s100,t 100; clrscr (); printf (,/nPlease enter string S: “); scanf (“%s“, s); fun(s,t); printf (“/nThe result is :%s/n“,t); (分数:40.00)_正确答案:()解析:void fun(char *s, char t) int i=0; for (;*s!=/0 ;s+) /*找出 AS

12、CII 值为奇数的字符依次存入数组 t 中*/ if (*s%2=1) t i+ =*s; ti=/0; /*在字符串的末尾口上串结束符*/ 解析 要删除 ASCH 值为偶数的字符,也就是要留下 ASCH 值为奇数的字符,由于最终是要求求出剩余字符(BPASC值为奇数)形成的新串,所以本题程序的算法是从原字符串的头到尾扫描并找出 ASC值为奇数的字符依次存入数组冲。此外,还要注意数组 t 的下标变化和下标的初值(初值必须为 0,即 i=0),ti+州的作用是先使用 ti然后再使自增 1。任何字符串的末尾都要有串结束符。这种算法在很多题中都要用到,学习者可以举一反三地找一些其他相关习题练习一下。

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

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

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