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

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

1、国家二级( C语言)机试模拟试卷 294及答案与解析 一、程序填空题( 30分) 1 函数 fun的功能是:计算 的前 n项之和。若x=2 5, n=15时,函数值为: 1 917914。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANKl C中。 不得增行或删行,也不得更改程序的结构 !#inolude#inoludedouble fun(double x, int n)double f, t, int i;/*found*/ f= 【 1】; t=一 1; for(i=1; i 二、程序修改题( 30分) 2 给定程序 MO

2、Dll C中函数 fun的功能是:对 N名学生的学习成绩,按从高到低的顺序找出前 m(m10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include #include #define N 10 typedef struct ss char num10; int s; STU; STU*fun(STU a, int m) (STU bN, *t; int i, j, k; *found* t=

3、(STU*)calioc(sizeof(STU), m) for(i=0; ibj s) j=i; *found* t(k)=b(j); bj s=0; return t; outresult(STU a, FILE*pf) int i; for(i=0; i10) printf(” nGive the number of the students who have better scOre: ”); scanf(” d”, &m); pOrder=fun(a, m); printf”*THE RESULT * n”); printf(”The top: n”); for(i=0; im; i

4、+) printf(” s d n”, pOrderi num, pOrderi s); free(pOrder); 三、程序设计题( 40分) 3 请编写函数 fun,其功能是:计算并输出 例如,在主函数中从键盘给 n输入 20后,输出为: s=534 188884。 注意:要求 n的值大于 1但不大于 100。 部分源程序在文件 PROGl C中。 请勿改动 主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。#include#includedouble fun(int n)main() int n; double s; printf(“ n nInput

5、 n:“); scanf(“ d“, &n); s=fun(n); printf(“ n ns= f n n“, s); NONO(); NONO() *请在此函数内打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * FILE*rf, *wf; int n, i; double s; rf=fopen(“in dat“, “r“), wf=fopen(“out dat“, “w“); for(i=0; i 国家二级( C语言)机试模拟试卷 294答案与解析 一、程序填空题( 30分) 1 【正确答案】 (1)1 (2)一 1 (3)t 【试题解析】 第一空:由 “retum f

6、; “可知 f是级数和,由审题分析可知,级数从第二项开始规律变化,因此循环从第二项开始计算,故 f初始化应为第一项的值,故第一空应为 “1“。 第二空:由审题分析可知,级数的后一项在前一 项的基础上乘以 (-1)*x,除以n,故第二空处应为 “-1“。 第三空: t是级数项, f把各个级数项累加起来,故第三空处应为 “t“。 二、程序修改题( 30分) 2 【正确答案】 (1)t=(STU*)calloc(sizeof(STU), m); (2)tk=bj; 【试题解析】 (1)题干中要求结构体 STU类型的 m个学生放在动态分配的连续存储区中, “t=STU*)callot(sizeof(S

7、TU), m)“语句没有使用分号 “; “结束,因此需要在语句结尾处加分号。 calloc函数是 C语言的动态分配函数。分配存储空间。 (2)第二个标识下是将 b数组拷贝到 t数组,在 C语言中,数组元素的访问使用中括号 “而不是元括弧 “()“,因此第二标识下应改成 “tk=bj; “ 三、程序设计题( 40分) 3 【正确答案】 int i; double fac=1 0; double sum=1 0; for(i=2; i=n; i+) fac+=sqrt(i); sum+=fac; return sum; 【试题解析】 (1)根据题干中给出的数列,推出每一项 是在前一项的基础上加当前项数的平方根,第 n项的项数为 n。 (2)在循环中求得每一项,然后对其进行累加求和。

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

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

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