1、国家二级 C语言机试(操作题)模拟试卷 155及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include typedef struct int num; char name10; PERSON; *found* void fun(PERSON_1_) *found* _2_temp; if(std0 numstd1 num) temp=s
2、td0; std0=std1; std1=temp; if(std0 numstd2 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, “LinMin“); int i; *found* fun(_3_); printf(“ nThe result is: n“); for(i=0; i #include void fun (char str10, int m, ch
3、ar *pt) *found* Int k q f i; for (k=0; kstd1 num)”可知形参名为 std,故第一空处应为 “void fun(PERSON*std)”。 第二空: temp变量用来进行交换时临时保存变量值,由 “temp=std0; ”可知temp是 PERSON结构体变量,故第二空处的 temp结构体定义应为 “PERSON temp; ” 第三空:这里是调用 fun函数, fun函数的参数是结构体变量指针, std是结构体数组,数组名相当于数组的首地址,故第三空处应为 “fun(std); ”。 二、程序修改题 2 【正确答案】 (1)int k, q, i
4、; (2)pti=strki; 【试题解析】 函数的功能是将 m(1m10)个字符串连接起来。 (1)第一标识下是整型变量 k、 q和 i的定义,根据 C语言中整型变量的定义方式,第一标识下应为 “int k, q, i; ”。 (2)第二个标识下的 “pti=strk, i; ”语句应该将 s仃中的字符依次拷贝到 pt中,根据 C语言中对二维数组每一位的取值,应该是 strki,所以 “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)左下半三角元素的下标特点是列下标小于或等于行下标,即 j=i。 (3)依次访问二维数组,把符合以上条件的元素的值赋 0。 该题是对矩阵操作的考 查。