1、国家二级( C语言)机试模拟试卷 269及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:计算出形参 s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。 例如,形参 s所指的字符串为: This is a C languageprogram,函数的返回值为6。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结 构 ! #include int fun(char*s) int n=0, flag=0; while(*s!
2、= 0) if(*s!= void NONO (); n=1000; printf(“n = %d, f = %dn“,n, fun(n); NONO(); void NONO () /* 本函数用于打开文件,输入数据,调用函数,输出数 据,关闭文件。 */ FILE *fp, *wf ; int i, n, s ; fp = fopen(“in.dat“,“r“); wf = fopen(“out.dat“,“w“); for(i = 0 ; i c,则进行对调,又把大数放在 c中,这样的逻辑显然是混乱的。因此第二个 标识下 “if*a*c)“应该改为 “if(*a8c)“。 三、程序设计题( 40分) 3 【正确答案】 int f0=0, f1=1, f; do f=f0+f1; f0=f1; f1=f; while(ft); return f; 【试题解析】 ( 1)在循环中求得数列,并对数列的值进行判断,看是否符合题干要求。 ( 2)如果求得的数列值不满足题干要求,将当前值赋值给前一项,将前一项赋给前一项的前一项,继续求下一项的数列值,直到满足条件。