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

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

1、国家二级( C语言)机试模拟试卷 277及答案与解析 一、程序填空题( 30分) 1 给定程序中。函数 fun的功能是:找出 100至 x(x999)之间各位上的数字之和为15的所有整数,然后输出;符合 条件的整数个数作为函数值返回。 例如,当 n值为 500时,各位数字之和为 15的整数有: 159、 168、 177、 186、 195、 249、 258、 267、 276、 285、 294、 339、 348, 357, 366, 375, 384, 393, 429、 438, 447、 456、 465、 474、 483、 492。共有 26个。 请在程序的下划线处填入正确的内

2、容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行。也不得更改程序的结构 ! #include int fun(int x) int n, s1, s2, s3, t; /*found*/ n= 【 1】; t=100; /*found*/ while(t999| x #include *found* void fun(int a, int b, int c) if(a+bc&b+ca&a+cb) if(a=b&b=c) return 3; else if(a=b|b=c| a=c) return 2; *found* else r

3、etuEn 1 else return 0; main() int a, b, c, shape; printf(“ nTnput a, b, c: “); scanf (“ d d d“, &a, &b, &c); printf(“ na= d, b=96d, c= d n“, a, b, c); shape=fun(a, b, c); printf(“ n nThe shape: d n“, shape); 三、程序设计题( 40分) 3 编写函数 fun,它的功能是:求小于形参 n同时能被 3 与 7整除的所有自然数之和的平方根,并作为函数值返回。 例如若 n为 1000时,程序输出应为

4、: s=153 909064。 注意:部分源程序在文件 PROGl C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #include double fun(int n) main() *主函数 * void NONO(); printf(“s= f n“, fun(1000); NONO(); void NONO() *本函数用于打开文件,输入数据,调用 函数,输出数据,关闭文件。 * FILE *fp, *wf; int i, n; double s; fp=fopen(“in clat“, “r“); wf=f

5、open(“out dat“, “w“); for(i=0 ; i #include double fun(double x, int n) main() void NONO(); printf(“ f n“, fun(0 3, 10); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 * FILE*fp, *wf; int i, n ; double s, x; fp=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i10; i+) fscanf(fp, “ lf, d

6、“, &x, &n); s=fun(x, n); fprintf(wf, “ f n“, s); fclose(fP); fclose(wf); 国家二级( C语言)机试模拟试卷 277答案与解析 一、程序填空题( 30分) 1 【正确答案】 (1)0 (2)x (3)t+或 t=t+1 【试题解析】 第一空:由 “return n; “可知, n是返回值, n计数了满足题干条件的 x的个数,故第一空处 n的初始化为 0,因此第一空应为 “0“。 第二空:根 据主函数中 fun函数的调用 “fun(x)“,可知 fun函数的参数 x是循环的终止条件,即循环变量 t从 100开始到 x结束,故第

7、二空处应为 “x“。 第三空:在 while循环体内没有 t变化的语句,因此第三空处是 t自增,因此第三空处应为 “t+“或 “t=t+1“。 二、程序修改题( 30分) 2 【正确答案】 (1)int fun(int a, int b, int c) (2)else return 1; 【试题解析】 (1)主函数内 fun函数的调用形式是: “shape=fun(a, b, c); “,函数有返回值,且返回值类型是整型,故第一标识下应改为 “int fun(int a, int b, int c)“。 (2)第二个标识下的 else语句应该是指除了等边及等腰三角形之外的三角形,在c语言中,语

8、句是以分号 “; “结束,而第二标识下的语句没有以分号结束,故第二标识下应改为 “else return 1: “。 三、程序设计题( 40分) 3 【正确答案】 double sum=0 0; int i; for(i=21; i=n; i+) if(i 3=0)&(i 7=0)sum+=i; return sqrt(sum); 【试题解析】 (1)首先,利用循环逐个选出能同时被 3与 7整除的所有自然数。 (2)然后,对这些自然数求和。最后求得平方根,并返回这个值。 4 【正确答案】 double s=1 0, y=x; int i ; long k=1; for(i=1; i=n; i+) k=k*i; s+=y k; y*=x; return s ; 【试题解析】 (1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以 x,分母是每一项的阶 乘,它可以在前一项的基础上乘以当前项的项数,即第n项是 n。 (2)在循环中求得每一项,然后对其进行累加求和。

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

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

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