1、国家二级 C语言机试(操作题)模拟试卷 262及答案与解析 一、程序填空题 1 函数 fun的功能是:输出 a所指数组中的前 11个数据,要求每行输出 5个数。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include stdlib h void fun(int*a, int n) int i ; for(i=0; i n; i+) *found* if(【 1】 =0) *found* printf(“【 2】 “);
2、*found* printf(“ d“, 【 3】 ); main() int a100=0, i, n; n=22; for(i=0; i n; i+) ai=rand() 21; fun(a, n); printf(“ n“); 二、程序修改题 2 下列给定程序中,函数 fun的功能是:按以下递归公式求函数的值。例如,当给 n输入 5时,函数值为 18;当给 n输入 3时,函数值为 14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 !试题程序: #include stdio h *found* fun(n) int c; *
3、found* if(n=1) c=10; else c=fun(n一 1)+2; return(c); main() int n; printf(“Enter n: “); scanf(“ d“, *单精度数 h乘以 1000后再加 5,相当于对 h中的第三位小数进行四舍五入,除以 10后将其赋给一个长整型数时就把第三位小数后的数全部截去 * return(float)tmp 100 0; *除以 100,保留 2位小数 * 【试题解析】 注意:本题要求对 h的值真正进行四舍五人运算,而不是为了输出,即不能用 prinff(“ 7 2f“, h)来直接得到结果。四舍五入算法:如果要求精确到小数点后面的第 n位,则需要对第 n+1位进行运算。方法是将该小数乘以 10的 n+1次方后加 5,然后除以 10并强制转换变量类型为整型,再将该数除以 10的n次方,同时强制转换类型为浮点型。 代码实现如下: int t; *定义整型变量 t* t=(int)(h*10n+1+5) 10; *对 h进行操作, 得到值浮点型, t取值时取整数部分。 10n+1为要扩大的倍数 * h=(noat)t 10n; *将 t缩小 10n倍,并转换成浮点型 *