1、国家二级(C 语言)机试-试卷 66 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.给定程序中,函数 fun 的功能是:找出 100 至 x(x999)之间各位上的数字之和为 15 的所有整数,然后输出;符合条件的整数个数作为函数值返回。例如,当 n 值为 500 时,各位数字之和为 15 的整数有:159、168、177、186、195、249、258、267、276、285、294、339,348,357、366,375、384,393,429,438,447,456,465、474、483、492
2、。共有 26 个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_4.给定程序 MODllC 中函数 fun 的功能是:统计 substr 所指子字符串在 str 所指字符串中出现的次数。例如,若字符串为 aaas lkaaas,子字符串为 as,则应输出 2。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分
3、数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为:1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0 则函数值为 61。注意:部分源程序存在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 66 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题
4、数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.给定程序中,函数 fun 的功能是:找出 100 至 x(x999)之间各位上的数字之和为 15 的所有整数,然后输出;符合条件的整数个数作为函数值返回。例如,当 n 值为 500 时,各位数字之和为 15 的整数有:159、168、177、186、195、249、258、267、276、285、294、339,348,357、366,375、384,393,429,438,447,456,465、474、483、492。共有 26 个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放
5、在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)0 (2)x (3)t+或 t=t+1)解析:解析:本题函数 fun 的功能是找出 100 至 x(x999)之间各位上的数字之和为 15 的所有整数,需要求一个三位数 x 的个位、十位和百位,x10,x10 再对 10 求余、x100 分别得到 x 个位、十位和百位。二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中函数 fun 的功能是:统计 substr 所指子字符串在 str 所指字符串中出现的
6、次数。例如,若字符串为 aaas lkaaas,子字符串为 as,则应输出 2。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)for(i=0;stri;i+)(2)if(substrk+1=O)解析:解析:本题中函数的功能是统计子字符串 substr 在字符串 str 中出现的次数。解题过程是在 str中查找指定的子串,并且统计子串出现的次数。三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_解析:6.请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为:1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0 则函数值为 61。注意:部分源程序存在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:该程序功能是求出二维数组周边元素之和。其中周边元素是指数组的最上和最下的两行,最左和最右的两列。数组第一行元素的行下标为 0,最后一行元素的行下标为 M-1,第一列的列下标为 0,最后一列的列下标为 N-1。