1、国家二级( C语言)机试模拟试卷 282及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:将形参 s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。 例如,形参 s所指的字符串为: abs5defl26jkm8,程序执行后的输出结果为:22。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #include #include int fun(char *s) int sum=0; while(*s
2、) /*found/*/ if(isdigit(*s)sum+=s【 1】; /*found*/ 【 2】; *found* return 【 3】; main() char s81; int n; printf(“ nEnter a string: n n“); gets(s); n=fun(s), printf(“ nThe result is: d n n“, n); 二、程序修改题( 30分) 2 给定程序 MODll C中函数 fun的功能是:根据整型形参 m,计算如下公式的值。 例如,若 m=2000,则应输出: 0 000160。 请改正程序中的语法错误,使它能计算出正确的结果。
3、 注意:不要改动 main函数,不得增行或删行,也不得更改程 序的结构 !#inclucle*found* fun(int m)double y=0, d; int i ;*found* for(i=100, i 三、程序设计题( 40分) 3 编写函数 fun,其功能是:根据以下公式求 p的值,结果由函数值带回。 m与 n为两个正整数且要求 mn。 例如: m=12, n=8时,运行结果为495 000000。 注意:部分源程序在文件 PROGl C文件中。 请勿 改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。#includefloat fun(i
4、nt m, int n)main() *主函数 * void NONO(); pzintf(“p= f n“, fun(12, 8); NONO(); VOid NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*fp, *wf; int i, m, n ; float s; fp=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i 国家二级( C语言)机试模拟试卷 282答案与解析 一、程序填空题( 30分) 1 【正确答案】 (1)48或 /0 (2)s+ (3)sum 【试题解析】
5、第一空: “if(isdigit(*s)sum+=*s【 1】; “如果 *s是数字字符的话,sum累加其对应的数字的和,第一空处是将 *s转化为对应的数字,由审题分析可知,第一空为 “0“或 “48“, 0的 ASC 码值为 48。 第二空: “while(*s)“循环的终止条件是达到 s字符串的结束,因此在循环体内 s应该不断往字 符串尾移动,故第二空处应为 “s+“。 第三空: “return 【 3】: “是返回累加和 sum,故第蔓空处为 “sum“。 二、程序修改题( 30分) 2 【正确答案】 (1)double fun(in七 m) (2)for(i=100; i=m; i+=
6、100) 【试题解析】 (1)第一个标识下的 fun函数的定义,根据题干中给出的公式中的分数部分。可知应该具有 double类型返回值。所以应将 “。 fun(int m)“改为 “double fun(int m)“。 (2)第二个标识下的 for循环过程是实现对公式的求解, C语句中 for循环中的多个循环条件表达式是以分号为分隔符,所以第二个标识下 “for(,净100,i=m,i+=100)“改为 “for(i=100; i=m; i+=100)“。 三、程序设计题( 40分) 3 【正确答案】 float result, temp=1 0; int i; for(i=1; i=m;
7、i+) temp=temp*i; 求 m! result=temp; result=m! for(temp=1 0, i=l; i=n; i+) temp=temp*i; 求 n! result=result temp; 求 m! n! for(temp=1 0, i=1; i=m n; i+) temp=temp*i; 求 (m n)! result=result temp; 求 m! 【试题解析】 进入 fun函数,根据前面的分析: 首先,计算 m!的值,先定义一个放阶乘值的变量 temp,初值为 1 0,通过循环的方法,用累乘器 “temp=temp*i; “实现 n!。同理可以求得 n!、 (m-n)!。 其中, result用来存放计算结果。 最后,根据题意,函数 fun的函数体以 return语句结束。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1