1、全国计算机二级 C语言上机试题 62+2015年及答案解析(总分:30.00,做题时间:90 分钟)1.给定程序中,函数 fun的功能是:把形参 s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参 s所指的字符串为:abcdefgh,执行结果为:ahcbedgf。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(cha
2、r *s) int i, n, k; char c; n=0; for(i=0; si!=/0; i+) n+; /*found*/ if(n%2=0) k=n-_1_ ; else k=n-2; /*found*/ c=_2_ ; for(i=k-2; i=1; i=i-2) si+2=si; /*found*/ s1=_3_ ; main() char s80=“abcdefgh“; printf(“/nThe original string is : %s/n“,s); fun(s); printf(“/nThe result is : %s/n“,s); (分数:10.00)_2.给定
3、程序 MODI1.C中 fun 函数的功能是:求 s = aa aa - . - aaa - aa - a (此处 aa aa 表示 n 个 a, a 和 n 的值在 1 至 9 之间) 例如 a = 3, n = 6, 则以上表达式为: s = 333333 - 33333 - 3333 - 333 - 33 - 3 其值是:296298 a 和 n 是 fun 函数的形参,表达式的值作为函数值传回 main 函数。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include long fun (in
4、t a, int n) int j ; /*found*/ long s = 0, t = 1 ; for ( j = 0 ; j =1; i=i-2) si+2=si; /*found*/ s1=_3_ ; main() char s80=“abcdefgh“; printf(“/nThe original string is : %s/n“,s); fun(s); printf(“/nThe result is : %s/n“,s); (分数:10.00)_正确答案:(第一处:首先判断字符串的长度是奇数还是偶数,如果是奇数,则 k=n-1,所以应填:1。 第二处:取字符串最后一个奇数位的字
5、符,并由变量 c保存,所以应填:sk。 第三处:第 1位奇数位用最一个奇数位字符替换,所以应填:c。)解析:2.给定程序 MODI1.C中 fun 函数的功能是:求 s = aa aa - . - aaa - aa - a (此处 aa aa 表示 n 个 a, a 和 n 的值在 1 至 9 之间) 例如 a = 3, n = 6, 则以上表达式为: s = 333333 - 33333 - 3333 - 333 - 33 - 3 其值是:296298 a 和 n 是 fun 函数的形参,表达式的值作为函数值传回 main 函数。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include long fun (int a, int n) int j ; /*found*/ long s = 0, t = 1 ; for ( j = 0 ; j = a p+ ; )解析: