1、国家二级 C语言机试(操作题)模拟试卷 103及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:将形参指钳所指结构体数组中的三个元素按num成员进行升序排列。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include typedef struct int num; char name10; PERSON; /*found*/ void fun(PERSON _1 _ ) /*found*/ _2 _temp; if(std0 numstd1 num
2、) temp=std0; std0=std 1; std1=temp; if(std0 numsid2 num) temp=std0; std0=std2; std2=temp; if(std1 numstd2 num) (temp=std1; std1=std2; std2=temp; main() PERSON std=5, “Zhanghu“, 2, “WangLi“, 6, “LinNin“; int i; /*found*/ fun( _3 _); printf(“nThe result is: n“); for(2=0; 2 #include void fun (char str1
3、0, int m, char*pt) /*found*/ Int k, q, i; for (k=0; kstd1 hum)”可知形参名为std,故第一空处应为 “voidfun(PERSON*std)”。 第二空: temp变量用来进行交换时临时保存变量值,由 “temp=std0; ”可知temp是 PERSON结构体变量,故第二空处的 temp结构体定义应为 “PERSON temp; ”。 第三空:这里是调用 fun函数, fun函数的参数是结构体变量指针, std是结构体数组,数组名相当于数组的首地址,故第三空处应为 “fun(std); ”。 二、程序修改题 2 【正确答案】 (1
4、)int k, q, i; (2)pti=strki; 【试题解析】 函数的功能是将 m(1m10)个字符串连接起来。 (1)第一标识下是整型变量 k、 q和 i的定义,根据 C语言中整型变量的定义方式,第一标识下应为 “int k, q, i; ”。 (2)第二个标识下的 “pti=strk, i; ”语句应该将 s仃中的字符依次拷贝到 pt中,根据 C语言中对二维数组每一位的取值,应该是 s仃 ki,所以 “pti=strk,i; ”改为 “pti=strki; ”。 三、程序设计题 3 【正确答案】 int i, j; for(i=0; iN; i+) for(j=0; j=i; j+) aij=0; 【试题解析】 程序功能是使数组左下半三角元素的值全部置成 0。 (1)对二维数组常用双重循环结构来处理:外层循环控制二维数组的行处理,内层循环控制二维数组的列处理。 (2)左下半三角元素的下标特点是列下标小于或等于行下标,即 i=i。 (3)依次访问二维数组,把符合以上条件的元素的值赋 0。该题是对矩阵操作的考查。