【计算机类职业资格】二级C语言-392 (1)及答案解析.doc
《【计算机类职业资格】二级C语言-392 (1)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-392 (1)及答案解析.doc(8页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-392 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的作用是:不断从终端读入整数,由变量 a 统计大于 0 的个数,用变量 c 来统计小于 0 的个数,当输入 0 时结束输入,并通过形参 pa 和 pb 把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构! #include stdio. h void fun(int *px, int *py) /
2、*found*/ int 1; scanf(“%d“, /*found*/ while 2 (if(k0) a+; if(k0) b+; /*found*/ 3; *px=a; *py=b; main( ) int x, y; fun( printf(“x=%d y=%d/n“, x, y); (分数:30.00)二、程序修改题(总题数:1,分数:30.00)2.给定程序 modil. c 的主函数中,将 a、b、c 三个结点链成一个单向链表,并给各结点的数据域赋值,函数 fun( )的作用是:累加链表结点数据域中的数据作为函数值返回。 请改正函数 fun 中指定部位的错误,使它能得出正确的结
3、果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 #include stdio. h typedef struct list; int data; struct list *next; LIST; int fun(LIST *h) LIST *P; /*found*/ int t; p=h; /*found*/ while(*p) /*found*/ t=t+p. data; p=(*p). next; return t; main( ) LIST a, b, c, *h; a. data=34; b. data=51; c. data=87; c. next=“/
4、0“; h=a. next= b. next= printf(“总和=%d/n“, fun(h); (分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是分别统计形参 t 所指二维数组中字母 A 和 C 的个数。 注意:部分源程序存在 PROG1. C 中,请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 #include stdio. h #include stdlib. h #define M 14 void NONO( ); void fun(char(*t) M, int *a, int
5、*c) void get(char(*s)M) int i, j; for(i=0; iM; i+) for(j=0; jM; j+) sij=65+rand( )%12; printf(“%c“, sij); printf(“/n“); main( ) char aMM; int x, y; get(a); fun(a, printf(“A=%d C=%d/n“, x, y); NONO( ); void NONO( ) /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *fp, *wf; int i, j, x, y; char a MM; fp=fopen
6、(“C:/WEXAM/24990001/in. dat“, “r“); wf=fopen (“C:/WEXAM/24990001/out. dat“, “w“); for(i=0; iM; i+) for(j=0; jM; j+) fscanf(fp, “%c“, ) Fun (a, fprintf(wf, “A=%d/n“, x); fprintf(wf, “c=%d/n“, y); fclose(fp); fclose(wf); (分数:40.00)_二级 C 语言-392 (1)答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序
7、中,函数 fun 的作用是:不断从终端读入整数,由变量 a 统计大于 0 的个数,用变量 c 来统计小于 0 的个数,当输入 0 时结束输入,并通过形参 pa 和 pb 把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构! #include stdio. h void fun(int *px, int *py) /*found*/ int 1; scanf(“%d“, /*found*/ while 2 (if(k0) a+; if(k0) b+; /*
8、found*/ 3; *px=a; *py=b; main( ) int x, y; fun( printf(“x=%d y=%d/n“, x, y); (分数:30.00)解析:a=0, c=0, k (k!=0) scanf(“%d“, 答案考生文件夹 解析 本题中函数 fun 的功能是不断从终端读入整数,由变量 a 统计大于 0 的个数,用变量 c 来统计小于 0 的个数,当输入 0 时结束输入,然后通过形参 pa 和 pb 把统计的数据传回主函数进行输出。因为此函数对于数字的大小有不同的处理方式,所以根据题意首先要区别大于 0、小于 0 和等于 0的数字,然后进行统计和程序的进行。然后
9、我们就能想到要使用条件语句来进行,while 或者 if 都可,再利用自增运算符既可以统计,得到结果。 第一空:“int -|_|-;”这一空出现在 fun 函数最开始的定义阶段,我们可以看到这里定义的是 int 整型数据,而在这下面的一步为 sscanf(“%d“, 即让我们输入 k 的数据,再根据题意,就可以知道这里的 k 是我们不断输入的整数,而整个程序也仅仅需要这一个数据的输入,所以这一空定义的就是我们需要输入的数据 k,同时下面出现在 a,c 也都没有定义,所以这一空应该填 a=0, c=0, k。 第二空:“while -|_|-;”这一空出现在 fun 函数中的 while 循环
10、中,是要给出 while循环的条件语句。根据题意我们就可以知道,这里循环是只要数字不 0 就一直进行,而 while 循环内部也能看到 k0 和 k0 时的统计步骤,所以这里 while 循环应该就是 while 循环的终止条件,k 不等于即可,即这一空应该填“(k!=0)”(注意这里应该加上条件语句应有的括号)。 第三空:“ -|_|-;”这一空在 while 循环中,此 while 循环是数字的判定函数。这一空前面已经有了对于数字大于 0 或者小于 0 的判断,也有相应的 a+和 c+来进行个数统计,但是我们会发现这里功能已经齐全,只不过没有达到题目要求的不断的输入,所以这里循环还要继续输
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 3921 答案 解析 DOC
