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

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

1、二级 C 语言机试 94 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:把一个整数插入到一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组 bbN=12,23,31,44,51,63,71,79,85,95中插入 93,结果为: bbN11,21,31,41,51,61,7l,79,8l,93,95 注意:部分源程序给出如下 请勿改动主函数main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestd/o. h

2、#define N 10 main() int i,j; int n; int bb IN+l = t2,23, 31, 44, 51, 63, 71, 79,85,95; clrscr (); printf(“/nInput n /n“); scanf (“%d“, printf (“/nn=%d “,n); printf(“/n* original list *In“); for (i=0; iN; i+) printf (“%4d “,bb ii ); for (i=0; iN; i+) if (n=bb i ) for(j=N;U 【1】 /U;j-) U【2】/U; bb j =n;

3、 U【3】/U; if (i=N) bbi=n; printf(“/n* new list *In“); for (i=0;iN+l; i+) printf (“%4d “,bb i); (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:删除字符串 s 中所有空白字符(包括 Tab 字符、回车符及换行符)。输入字符串时用#结束输入。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构 试题程序: #include string.h #include stdi

4、o.h #include ctype.h fun(char *p) int !i, t; char c80; for(i=0,t=0;pi;i+) if(!isspace(*(p+i) ct+=pi; /*/ ct=/0; strcpy(p,c); main() char c,s80; int i=0; printf(“Input a string: “); c=getchar(); while(c!=#) ( si=c;i+;c=getchar(); si=“/0“; fun(s); puts(s); (分数:30.00)填空项 1:_三、B编程题/B(总题数:1,分数:40.00)3.已知

5、学生的记录由学号和学习成绩构成,N 名学生的数据已存入 a 结构体数组中。请编写函数 fun(),该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。己给出函数的首部,请完成该函数。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #includestdio. h #includestring. h #includeaonio .h #define N 10 typedef struct ss char num10; iht s; STU; fun(STU ail, ST

6、U *s) main() STU aN= “A01“,81, “A02“,89, “A03“, 66 , “A04“, 87 , “A05“, 77 , “A06“, 90 , “A07“, 79, “A08“, 61 , “A09“, 80 ), “Al 0“, 71 , m; int i; clrscr 0; printf (“*The original data*“); for (i=0; iN; i+) printf (“No=%s Mark=%d/n“, ail .num, ai .s); fun (a, printf (“*THE RESULT*/n“); printf (“The

7、 lowest :%s, %d/n“,m.num, m.s); (分数:40.00)_二级 C 语言机试 94 答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:把一个整数插入到一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组 bbN=12,23,31,44,51,63,71,79,85,95中插入 93,结果为: bbN11,21,31,41,51,61,7l,79,8l,93,95 注意:部分源程序给出如下 请勿改动主函数main 和其他函数中的任何内容,仅在 main 函数的

8、横线上填入所编写的若干表达式或语句。 试题程序: #includestd/o. h #define N 10 main() int i,j; int n; int bb IN+l = t2,23, 31, 44, 51, 63, 71, 79,85,95; clrscr (); printf(“/nInput n /n“); scanf (“%d“, printf (“/nn=%d “,n); printf(“/n* original list *In“); for (i=0; iN; i+) printf (“%4d “,bb ii ); for (i=0; iN; i+) if (n=bb

9、 i ) for(j=N;U 【1】 /U;j-) U【2】/U; bb j =n; U【3】/U; if (i=N) bbi=n; printf(“/n* new list *In“); for (i=0;iN+l; i+) printf (“%4d “,bb i); (分数:30.00)填空项 1:_ (正确答案:1 ji 2bbj=bbj-1 3break)解析:解析 填空 1:因为原数组是按从小到大排列,所以从第一个元素开始,遂一与待插入的元素进行比较,第一个大于待插入元素 n 的元素 bbi的下标 i 即为插入位置。所以,从 bbi到 bbN-1都要依次向后移动一个位置,使待插入元素

10、 n 存于 bbi。 这里,for 循环中 j 取值从 N 到 i+1。填空 i+1。为了实现从 bbi到 bbN-1依次向后移动一个位置,将当前元素赋给下一个元素,要注意,为了不覆盖未经处理的元素,应该从最后一个元素开始移动。填空 3:将整数 n 插入数组后,函数功能已经实现,应使用 break 语句跳出 for 循环。二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:删除字符串 s 中所有空白字符(包括 Tab 字符、回车符及换行符)。输入字符串时用#结束输入。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或

11、删行,也不得更改程序的结构 试题程序: #include string.h #include stdio.h #include ctype.h fun(char *p) int !i, t; char c80; for(i=0,t=0;pi;i+) if(!isspace(*(p+i) ct+=pi; /*/ ct=/0; strcpy(p,c); main() char c,s80; int i=0; printf(“Input a string: “); c=getchar(); while(c!=#) ( si=c;i+;c=getchar(); si=“/0“; fun(s); put

12、s(s); (分数:30.00)填空项 1:_ (正确答案:错误:ct=“/0“, 正确:ct=/0)解析:解析 注意,该程序的 if 条件中应用了 isspace 函数,该函数的功能是检查 ch 是否空格、跳格符(制表符)或换行符。三、B编程题/B(总题数:1,分数:40.00)3.已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入 a 结构体数组中。请编写函数 fun(),该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。己给出函数的首部,请完成该函数。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun

13、的花括号中填入所编写的若干语句。 试题程序: #includestdio. h #includestring. h #includeaonio .h #define N 10 typedef struct ss char num10; iht s; STU; fun(STU ail, STU *s) main() STU aN= “A01“,81, “A02“,89, “A03“, 66 , “A04“, 87 , “A05“, 77 , “A06“, 90 , “A07“, 79, “A08“, 61 , “A09“, 80 ), “Al 0“, 71 , m; int i; clrscr

14、0; printf (“*The original data*“); for (i=0; iN; i+) printf (“No=%s Mark=%d/n“, ail .num, ai .s); fun (a, printf (“*THE RESULT*/n“); printf (“The lowest :%s, %d/n“,m.num, m.s); (分数:40.00)_正确答案:()解析:fun(STU a, STU *s) int i; *s=a 0; for (i=0; iN; i+) /*先认为第 1 个值最小*/ if (s-sa Ii . s) /*如果在循环的过程中再发现比第 1 个值更小的则赋给*s*/ *s=a i; 解析 我们先认为第 1 个值最小,即*s=a0语句,如果在循环的过程中再发现比第 1 个值更小的随即赋给该*s就可以了。另外,还涉及到结构体中的指向运算符,请学习者注意。若要找出最高成绩则 if()中的条件改成 s-sai.s 即可。

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

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

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