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

上传人:orderah291 文档编号:498346 上传时间:2018-11-28 格式:DOC 页数:4 大小:36.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷3及答案与解析.doc_第1页
第1页 / 共4页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷3及答案与解析.doc_第2页
第2页 / 共4页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷3及答案与解析.doc_第3页
第3页 / 共4页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷3及答案与解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 3及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:计算下式前 n项的和作为函数值返回。例如,当形参 n的值为 10时,函数返回: -0 204491。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1 C中。不得增行或删行,也不得更改程序的结构 !#include stdio h double fun(int n) int i, k;double s, t; s=0; *found* k=_1_; for(i=1; i=n; i+) *found* t=_2_; s=s

2、+k*(2*i-1)*(2*i+1)(t*t); *found* k=k*_3_; return s; mairl() int n=-1; while(n 0) print f(“Please input(n 0): “); scanf(“ d“, &n); printf(“nThe result is: f n“, fun(n); 二、程序修改题 2 给定程序 MODI1 C中 fun函数的功能是:求出以下分数序列的前 n项之和。和值通过函数值返回 main函数。例如,若 n=5,则应输出:8 391667。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删

3、行,也不得更改程序的结构 !#include stdio h*found* fun(int n) int a=2, b=1, c, k; double s=0 0; for(k=1; k =n; k+) s=s+1 0*a b; *found* c=a;a+=b; b+=c; return(s); main() int n=5; printf(“ nThe value of function is:1f n“, fun(n); 三、程序设计题 3 请编写一个函数 fun,它的功能是:比较两个字符串的长度, (不得调用 C语言提供的求字符串长度的函数 ),函数返回较长的字符串。若两个字符串长度相

4、同,则返回第一个字 符串。 例如,输入 beijing CR shanghai CR ( CR为回车键 ),函数将返回shanghai。 注意:部分源程序存在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include stdio h char *fun(char *s, char *t) main() char a20, b20; void NONO(); printf(“Input 1th string: “); gets(a); printf(“Input 2th string: “); gets(b); p

5、rintf(“ s n“, fun(a, b); NONO (); void NONO () *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE *fp, *wf ; int i; char a20, b20; fp=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0 ; i 10; i+) fscanf(fp, “ s s“, a, b); fprintf(wf, “ s n“, fun(a, b); fclose(fp); fclose(wf); 国家二级 C语言机试(操作题)模拟试卷 3答案与解析 一、

6、程序填空题 1 【正确答案】 (1)1 (2)2*i (3)(-1) 【试题解析】 第一空:由 “s=s+k*(2*i-1)*(2*i+1) (t*t); ”可 知 t*t表示的是级数项的分母, t=2*i, t=2, 4, 6 ,故 t的初始化值应为 1,因此第一空处应为 “1”。 第二空:由第一空的分析可知,第二空处应为 “2*i”。 第三空:由 “s=s+k*(2*i-1)*(2*i+1) (t*t); ”可知, k是级数项的 (-1)n-1部分,所以在循环中 k是每次都乘以 -1,故第三处应为 “(-1)”。 二、程序修改题 2 【正确答案】 (1)double fun(int n)

7、(2)c=a; a+=b; b=c; 【试题解析】 (1)fun函数中的语句 “double s=0 0; ”以及 “return(s); ”说明 fun函数具有 double返回值,所以应将 “fun(int n)”改为 “double fun(int n)”。 (2)根据题干中给出的公式可以推出每一项的特点,知道每一项的 b值是前一项的 c值,所以第二个标识下 “b+=c; ”改为 “b=c; ”。 三、程序设计题 3 【正确答案】 int i; char *p=s, *q=t; int n=0, m=0; while(*p) 计算串 s的长度 n,其中 p为临时指针 n+; p+; while(*q) 计算串 t的长度 m,其中 q为临时指针 m+; q+; if(n =m) 比较 m和 n的值,设置 p指向较大的指针 p=s; else p=t; return p; 【试题解析】 进入 fun函数,根据前面的分析: (1)首先求得字符串的长度,设变量 n和 m分别用来求字符串的长度,初值设为O,把字符串中的字符逐个访问,每访问一个字符, n和 m分别加 1,直到字符串结束。 (2)使用两个临时指针变量 p、 q分别作为访问字符串的变量。 (3)根据 m和 n的值返回串,设置指针 p,指向返回串的开始地址。

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

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

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