1、国家二级( C语言)机试模拟试卷 316及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:判定形参 a所指的 NN(规定 N为奇数 )的矩阵是否是 “幻方 ”,若是,函数返回值为 1: 不是,函数返回值为 0。 “幻方 ”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下33的矩阵就是一个 “幻方 ”: 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANKl C中。 不得增行或删行,也不得更改程序的结构 !#include#define N 3int fun(int(*a)N
2、) int i, j, m1, m2, row, colum; m1=m2=0 ; for(i=0; i 二、程序修改题( 30分) 2 给定程序 MODll C中函数 fun的功能是:根据形参 m的值 (2m9),在 m行 m列的二维数组中存放如下所示规律的数据,由 main函数输出。 例如,若输入 2则输出: 若输入 4则输出: 请改正程序函数中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 !#include#include#define M 10int aMM=0;*found* void fun(int*a, int m)( int
3、 j, k; for(j=0 ; j 三、程序设计题( 40分) 3 请编写函数 fun,函数的功能是:统计各年龄段的人数。 N个年龄通过调用随机函数获得,并放在主函数的 age数组中;要求函数把 0至 9岁年龄段的人数放在d0中,把 10至 19岁年龄段的人数放在 d1中,把 20至 29岁年龄段的人数放在d2中,其余依此类推,把 100岁 (含 100)以上年龄的人数都放在 d10中。结果在主函数中输出。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #define N 50 #define M 11 void fun(int*a, int *b) double rnd() static t=29, c=217, m=1024, r=0; r=(r*t+c) m; return(double)r m); main() int ageIN, i, dM; void NONO (int dM); for(i=0; i=0&ai=10&ai: 20&ai=30&ai=39 【试题解析】 (1)首先,初始化不同年龄段的计数统计器。 (2)然后在 for循环中,利用多重选择结构,依次对年龄进行判断,同时将对应的计数器值加 1操作。