1、国家二级( C语言)机试模拟试卷 286及答案与解析 一、程序填空题( 30分) 1 函数 fun的功能是:计算 直到 。若 x=2 5,函数值为: 12 182494。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行。也不得更改稗序的结构 !#include#includedouble fun(double x)double f,t; int n; /*found*/ f=1 0+ 【 1】; t=x; n=1; do n+; /*found*/ t*=x 【 2】;/*found*/ f+=【
2、3】; while(fabs(t)=le-6); return f; main() double x, y; x=2 5; y=fun(x); printf(“ nThe result is: n“); printf(“x=一 12 6t: y=一 12 6f n“, x, y); 二、程序修改题( 30分) 2 给定程序 MODll C中函数 fun的功能是:把主函数中输入的 3个数,最大的放在 a中,最小的放在 c中,中间的放在 b中。 例如,输入的数为: 55 12 34,输出结果应当是: a=55 0, b=34 0,e=12 0。 请改正程序中的错误,使它能得出正确结果。 注意:不要
3、改动 main函数,不得增行或删行,也不得更改程序的结构。 #include void fun(float * a, float * b, float * c) *found* float*k; if(*a*c) k=*c; *c=*a; *a=k; if(*b #include void fun(char*s, char t) main() char s100, t100; void NONO(); printf(“ nPlease enter string s: “); scanf(“ s“, s); fun(s, t); printf(“ nThe result is: s n“, t)
4、; NONO(), void NONO() *本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 * char s100, t100; FTLE*rf, *wf; int i ; rf=fopen(“in clat“, “r“); wf=fopen(“out dat“, “w“); for(i=0 ; ic,则进行对调,又把大数放在 c中,这样的逻辑显然是混乱的。因此第二个标识下 “if*a*c)“应该改为 “if(*a8c)“。 三、程序设计题( 40分) 3 【正确答案】 int i, j=0; for(i=0; istrlen(s); i+) if(!(i 2)=0&(si 2)tj+ =si; tj= 0; 【试题解析】 (1)判断一个字符串中的某一字符下标 i是否为偶数,可用 “i2=0“来判断,而判断字符中的 ASC 码值是否为奇数,则可用 “si 2 !=0“来判定。 (2)对串 s中各个字符逐个进行考查,满足条件的字符就顺序放在新串 t中,否则就不存放。 (3)所有字符处理完后,记得在新串 t的末尾加上结束符 “0“。