1、国家二级( C语言)机试模拟试卷 305及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:将形参 n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n传回所指变量。 例如,输入一个数: 27638496,新的数:为 739。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK C中。 不得增行或删行,也不得更改程序的结构 ! #include void fun(unsigned long*n) unsigned Long x=0, i; int t;
2、 i=l; while(*n) *found* t=*n 【 1】; *found* if(t 2 !=【 2】 ) x=x+t(i; i=i*10; *n=*n 10; *found* *n= 【 3】; main() unsiqned long n=一 1; while(n99999999| n int fun(unsigned n, int*zero) int count=0, max=0, t; do t=n 10; *found* if(t=0) count+; if(maxshanghai(为回车键 ),函数将返回 shanghai。 注意:部分源程序存在文件 PROGl C中。
3、请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include char*fun(char*s, char*t) main() char a20, b20; void NONO(); printf(“Input lth string: “); gets(a); printf(“Input 2th string: “); gets(b); printf(“ s n“, fun(a, b); NONO(); void NONO() ( *本函数用于打开文件,输入数据,调用函 数,输出数据,关闭文件。 * FILE*fp, *wf; int i ;
4、 char a20, b20; fp=fopen(“in dat“, “r“); wf=fopen(“out dat“, “W“); for(i=0; i=m) 比较 m和 n的值,设置 p 指向较大的指针 p=s; else p=t; return p; 【试题解析】 进入 fun函数,根据前面的分析: (1)首先求得字符串的长度,设变量 n和 m分别用来求字符串的长度,初值设为0,把字符串中的字符逐个访问,每访问一个字符, n和 m分别加 1,直到字符串结束。 (2)使用两个临时指针变量 p、 q分别作为访问字符串的变量。 (3)根据 m和 n的值 返回串,设置指针 p,指向返回串的开始地址。