1、国家二级( C语言)机试模拟试卷 317及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:将 a所指 35矩阵中第 k列的元素左移到第 00列,第 k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。 例如,有下列矩阵: 若 k为 2,程序执行结果为 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 !#include #define M 3#define N 5void fun(int(*a)N, int k)int i, j, p,temp
2、; *found* for(p=1; p 二、程序修改题( 30分) 2 给定程序 MODll C中函数 fun的功能是:在字符串的最前端加入 n个 *号,形成新串,并且覆盖原串。 注意:字符串的长度最长允许为 79。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include void fun(char s, int n) char a80, *p; int i; *found* s=p; for(i=0; i #include int fun(int score, int m, in
3、t below) main() int i, n, below9; void NONO(); int score9=10, 20, 30, 40, 50 , 60 , 70, 80, |90; n=fun(score, 9, below); printf(“ nBelow the average score are: “); for(i=0; iscorei)belowj+=scorei; return j ; 【试题解析】 进入 fun函数,根据前面的分析: 首先,定义变量 av,通过循环,用 av+=scorei计算总分数,然后通过 av =m语句来计算平均分。 其次,通过循环,让每个分数和平均分比较,低于平均分数的分数给below(belowi+=scorei)。在进行以上循环的同时,定义 了一个变量 i,每当发现一个小于平均分的分数, j自动加 1(j+; )。 最后,返回 j值,即是数组 score中低于平均分的元素个数。