1、国家二级 C语言机试(操作题)模拟试卷 488及答案与解析 一、程序填空题 1 给定程序中,函数 fun的作用是:不断从终端读入整数,由变量 a统计大于 0的个数,用变量 c来统计小于 0的个数,当输入 0时结束输入,并通过形参 pa和pb把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include void fun(int *px, int *py) *found* int 【 1】 ; scanf(“ d“, k); *found*
2、 while 【 2】 if(k0)a+; if(k typedef struct list int data; struct list *next; LTST; int fun(LIST *h) LTST *p; *found* int t; p=h; *found* while(*p) *found* t=t+p data; p=(*p) next; return t; main() (LIST a, b, c, *h; a data=34; b data=51; c clara=87; c next= 0; h= *a=0; *c=0; for( i=0; iM; i+ ) for( j
3、=0; jM; j+) if(tij=A)*a=*a+l; else if (ti j=C) *c=*c+l; 【试题解析】 本题首先需要一个二维数组,二维数组的大小在程序开始就进行了定义 “define=14”,这个大小比较 合适,然后利用 gets函数得到数组,然后数据就可以进入 fun函数中进行处理应用。进入 fun函数, fun函数首先肯定需要 for循环语句将二维数组中的数据进行排序使用,然后需要条件语句进行判断处理, 这两步是一体,见程序第 9 11行, for循环保证全部使用了二维数组中数据,并且是依次使用, if语句判断了字母是否为 A或者 C或者都不是,并且进行了统计相加得到了 A的个数 a, C的个数 c,这样循环完成后, A和 C的个数 a、 c就能继续返回主函数进行输出了,见程序 26行,最终得到结果。