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

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

1、二级 C 语言-395 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序的主函数中,已给出由结构体构成的链表结点 a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将 a、b、c 三个结点链接成一个单向链表,并输出链表结点中的数据。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h typedef struct list char data; struct list *next; Q; void fun(Q

2、 *pa,Q *pb,Q *pc) Q*p; /*found*/ pa-next= 1; pb-next=pc; p=pa; while(p) /*found*/ printf(“%c“, 2); /*found*/ p= 3; printf(“/n“); main() Q a,b,c; a.data=“E“;b.data=“F“; c.data=“G“;c.next=NULL; fun( (分数:30.00)二、程序修改题(总题数:1,分数:30.00)2.给定程序中,函数 fun()的功能是统计 s 所指一维数组中 0 的个数(存在变量 zero 中)和 1 的个数(存在变量 one 中)

3、,并输出结果。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdio.h void fun(int*s,int n) /*found*/ int i,one=0,zero; for(i=0;in;i+) /*found*/ switch(si); /*found*/ case 0:zero+; case 1:one+; printf(“one:%d zero:%d/n“,one,zero); main() int a20=1,1,1,0,1,0,0,0,1,0,0,1,1,0

4、,0,1,0,1,0,0,n=20; fun(a,n); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是将形参 s 所指字符串放入形参 a 所指的字符数组中,使 a 中存放同样的字符串。说明:不得使用系统提供的字符串函数。 注意:请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 指定的部位填入所编写的若干语句。试题程序: #includestdio.h #define N 20 void NONO(); void fun(char*a,char*s) main() char s1N,*s2=“abcdefghijk“; fu

5、n(s1,s2); printf(“%s/n“,s1); printf(“%s/n“,s2); NONO(); void NONO() /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp,*wf; int i; char s1256,s2256; fp=fopen(“in.dat“,“r“); wf=fopen(“out.dat“,“w“); for(i=0;i10;i+) fgets(s2,255,fp); fun(s1,s2); fprintf(wf,“%s“,s1); fclose(fp); fclose(wf); (分数:40.00)_二级 C 语言-

6、395 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序的主函数中,已给出由结构体构成的链表结点 a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将 a、b、c 三个结点链接成一个单向链表,并输出链表结点中的数据。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h typedef struct list char data; struct list *next; Q; void fun(Q *pa,Q *p

7、b,Q *pc) Q*p; /*found*/ pa-next= 1; pb-next=pc; p=pa; while(p) /*found*/ printf(“%c“, 2); /*found*/ p= 3; printf(“/n“); main() Q a,b,c; a.data=“E“;b.data=“F“; c.data=“G“;c.next=NULL; fun( (分数:30.00)解析:(1)pb (2)p-data (3)p-next 解析 填空 1:将三个结点连接起来,即将 pa 的指针域指向 pb,pb 的指针域指向 pc。 填空 2:输出链表结点中的数据,表示为 p-dat

8、a。 填空 3:指针后移,指向下一个结点,即 p=p-next。二、程序修改题(总题数:1,分数:30.00)2.给定程序中,函数 fun()的功能是统计 s 所指一维数组中 0 的个数(存在变量 zero 中)和 1 的个数(存在变量 one 中),并输出结果。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdio.h void fun(int*s,int n) /*found*/ int i,one=0,zero; for(i=0;in;i+) /*found*/ swi

9、tch(si); /*found*/ case 0:zero+; case 1:one+; printf(“one:%d zero:%d/n“,one,zero); main() int a20=1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0,n=20; fun(a,n); (分数:30.00)解析:(1)int i,one=0,zero=0; (2)switch(si) (3)case 0:zero+;break; 解析 (1)变量 zero 用来统计数字 0 的个数,应将其初始化为 0。 (2)语法错误,switch 语句后不加分号。 (3)当数字为 0 时

10、,变量 zero 加 1,此时应使用 break 语句跳出 switch 语句,进行下一次循环,否则会继续执行 case 1 语句,使程序不能得出正确结果。三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是将形参 s 所指字符串放入形参 a 所指的字符数组中,使 a 中存放同样的字符串。说明:不得使用系统提供的字符串函数。 注意:请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 指定的部位填入所编写的若干语句。试题程序: #includestdio.h #define N 20 void NONO(); void fun(char*a,char*s

11、) main() char s1N,*s2=“abcdefghijk“; fun(s1,s2); printf(“%s/n“,s1); printf(“%s/n“,s2); NONO(); void NONO() /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp,*wf; int i; char s1256,s2256; fp=fopen(“in.dat“,“r“); wf=fopen(“out.dat“,“w“); for(i=0;i10;i+) fgets(s2,255,fp); fun(s1,s2); fprintf(wf,“%s“,s1); fclose(fp); fclose(wf); (分数:40.00)_正确答案:()解析:void fun(char*a,char*s) while(*s!=“/0“) *a=*s; a+; s+; *a=“/0“; 解析 要将 s 所指的字符串存入 a 所指的字符串中,程序要求不能使用系统提供的字符串函数,本题可以使用循环语句,依次取出 a 所指字符串中的元素,将其存入 s 所指的字符串中,最后为 s 所指的字符串添加结束标识“/0“。

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

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

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