1、国家二级( C语言)机试模拟试卷 343答案与解析 一、程序填空题( 30分) 1 【正确答案】 struct student* a-scorei a 【试题解析】 第一空:主函数内 fun函数的调用形式是 “t=fun(”, t是student结构体指针,故 fun函数的返回值是 student结构体指针,因此第一空为“struct student *”。 第二空: “for (i=0; iscorei”。 第三空:此处补充返回值,由第一空的分析可知,返回值是指针, a是指针变量,所以返回值为 a,即第三空为 “a”。 二、程序修改题( 30分) 2 【正确答案】 sum=0.0; if(i
2、+1)%5= 0) 【试题解析】 ( 1)在第一标识下 “sun=0.0;”,根据题意,这是给 sum赋值,而sun没有定义编译时会提示错误,应改为 “sum=0.0;”。 ( 2)错误标识下的 if判断语句是依顺序取五个字符, if中的逻辑表达式语法有误,由于 1%5恒等于 1,所以 i+1%5也就等价于 i+1了,所以将 “if(i+1%5=0)”改为 “if(i+1)%5= 0)”,此处主要注意的是运算符的优先级。 三、程序设计题( 40分) 3 【正确答案】 int i, j; for(i=0; iN; i+) for(j=0; j=i; j+) aij=0; 【试题解析】 进入 fun函数,根据前面的分析: ( 1)对二维数组常用双重循环 结构来处理:外层循环控制二维数组的行处理,内层循环控制二维数组的列处理。 ( 2)左下半三角元素的下标特点是列下标小于或等于行下标,即 j=i。 ( 3)依次访问二维数组,把符合以上条件的元素的值赋 0。 该题是对矩阵操作的考查。