1、国家二级 C 语言机试(操作题)模拟试卷 364(无答案)一、程序填空题1 给定程序中,函数 fun 的功能是:把形参 s 所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于 2)。例如,形参 s 所指的字符串为:abcdefgh,执行结果为:ahcbedgf。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!#include void fun (char *s) int i,n k; ch
2、ar c ;n=0;for(i=0;si!=0 ;i+)n+;/*found*/ if(n2=0) k=n _1_ ;else k=n2;c= _2_ ;for (i=k2; 1=1; i=i2) s i+2 =si;/*found*/ s1=_3_;main () char s80=“abcdefgh“;printf(“nThe original stringis : sn“ ,s) ;fun (s) ;printf (“nThe result is : sn“,s) ;二、程序修改题2 给定程序 MODI1C 中 fun 函数的功能是:求S=aa“ aa aaa aa a(此处 aa “a
3、a 表示 n 个 a,a 和 n 的值在 1 至 9 之间)例如 a=3,n=6,则以上表达式为:S= 333333 33333 3333 333 33 3其值是:296298a 和 n 是 fun 函数的形参,表达式的值作为函数值传回 main 函数。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include long fun (int a,int n) int j ;/*found*/ long s = 0,t = 1 ;t = t * 10 + a ;s=t;for(j=1;j#include void fun(ch
4、ar *tt,int pp)main()char aa1000 ;int bb 26, k;void NONO ();printf( “nPlease enter a charstring:“); scanf( “s“, aa);fun (aa, bb);for (k=0; k26 ; k+) printf(“d“,bbk);printf(”n”);NONO ();void NONO ()(/*本函数用于打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/char aa1000 ;int bb26, k,i ;FILE *rf,*wf ;rf = fopen(“indat“ ,“r“);wf=fopen (“outdat“, “w“);for(i = 0 ; i 10 ; i+) fscanf (rf, s“, aa);fun (aa, bb);for (k=0;k26;k+) fprintf(wf, “d“, bb k);fprintf (wf, “n“);fclose (rf);fclose (wf);