[计算机类试卷]国家二级(C语言)机试模拟试卷362及答案与解析.doc

上传人:confusegate185 文档编号:503122 上传时间:2018-11-29 格式:DOC 页数:6 大小:31.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试模拟试卷362及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级(C语言)机试模拟试卷362及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级(C语言)机试模拟试卷362及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级(C语言)机试模拟试卷362及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级(C语言)机试模拟试卷362及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级( C语言)机试模拟试卷 362及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:在带有头结点的单向链表中,查找数据域中值为 ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为 ch的结点,函数返回 0值。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行。也不得更改程序的结构 ! #include #include #define N 8 typedef struct list int data; struct list *next; SL

2、IST; SLIST *creatlist(char *); void outlist(SLIST *); int fun(SLIST *h, char ch) SLIST *p; int n=0; p=h-next; /*found*/ while(p!=【 1】 ) n+; /*found*/ if (p-data=ch) return 【 2】 ; else p=p-next; return 0; main() SLIST *head; int k; char ch; char aN=m,p,g,a,w,x,r,d; head=creatlist(a); outlist(head); p

3、rintf(“Enter a letter:“); scanf(“%c“, /*found*/ k=fun(【 3】 ); if (k=0) printf(“nNot found!n“); else printf(“The sequence number is : %dn“,k); SLIST *creatlist(char *a) SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h; void outlist(SLIST *

4、h) SLIST *p; p=h-next; if (p=NULL) printf(“nThe list is NULL!n“); else printf(“nHead“); do printf(“-%c“,p-data); p=p-next; while(p!=NULL); printf(“-Endn“); 二、程序修改题( 30分) 2 给定程序 MODll C中函数 fun的功能是:判断 ch中的字符是否与 str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。 请改正程序中的错误,使它能进行正确的操作。 注意:不要改动 main函数,不得增行或删行,也不得更改程

5、序的结构 ! #include #include /*found*void fun(char *str, char ch)*/ void fun(char str, char ch) while (*str /*found*if(*str !=ch)*/ while (*str !=ch) str 0 = ch; /*found*str1=0;*/ str1=0; main() char s81, c ; printf(“nPlease enter a string:n“); gets (s); printf (“n Please enter the character to search :

6、 “); c = getchar(); fun(s, c); printf(“nThe result is %sn“, s); 三、程序设计题( 40分) 3 编写函数 fun,它的功能是:求 Fiboncci数列中大于 t的最小的一个数,结果由函数返回。其中 Fibonacci数列 F(n)的定义为: F(0)=0, F(1)=1 F(n)=F(n 1)+F(n 2) 例如:当 t=1000时,函数值为: 1597。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #include

7、 int fun(int t) main() /* 主函数 */ int n; void NONO (); n=1000; printf(“n = %d, f = %dn“,n, fun(n); NONO(); void NONO () /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n, s ; fp = fopen(“in.dat“,“r“); wf = fopen(“out.dat“,“w“); for(i = 0 ; i data=ch)”成立,则已经找到数据域中值为 ch的结点,返回顺序号,即 “return n

8、;”。 第三空: fun函数的调用形式是: fun( SLIST *h, char ch),第一个参数是头结点地址,第二个参数是需要寻找的 ch值,因此第三空处应该 是 “k=fun(head,ch);”。 二、程序修改题( 30分) 2 【正确答案】 void fun(char *str, char ch) if(*str !=ch) str1=0; 【试题解析】 ( 1)第一个标识下, “void fun(char str, char ch)”根据主函数中的fun函数的调用 “fun(s,c)”,知道 s为数组名,传的应该是数组地址,所以应改为“void fun(char *str, ch

9、ar ch)”。 ( 2) while循 环中对 ch与 str进行匹配检查,第二个标识下,是当不同时执行连接操作,那么判断 *str与 ch是否不同的表达式应该是 “if(*str !=ch)”。 ( 3)第三个标识下,连接后的新串要添加结尾符,所以正确的表达是将“str1=0;”改为 “str1=0;”。 三、程序设计题( 40分) 3 【正确答案】 int f0=0, f1=1, f; do f=f0+f1; f0=f1; f1=f; while(ft); return f; 【试题解析】 ( 1)在 循环中求得数列,并对数列的值进行判断,看是否符合题干要求。 ( 2)如果求得的数列值不满足题干要求,将当前值赋值给前一项,将前一项赋给前一项的前一项,继续求下一项的数列值,直到满足条件。

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

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

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