[计算机类试卷]国家二级C语言机试(操作题)模拟试卷674及答案与解析.doc

上传人:priceawful190 文档编号:498650 上传时间:2018-11-29 格式:DOC 页数:6 大小:30KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷674及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷674及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷674及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷674及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷674及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 674及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:利用指针数组对形参 ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。 ss所指字符串数组中共有 N个字符串,且串长小于 M。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include string h #define N5 #define M8 void fun(char(*ss)1) char*psN, *tp; int i, j, k;

2、 for(i=0; i N; i+) psi=ssi; for(i=0; i N-1; i+) *found* k=_1_; for(j=i+1; j N; j+) *found* if(strlen(psk) strlen(_2_) k=j; tp=psi; psi=psk; *found* psk=_3_; printf(“ nThe string after sorting by length: n n“) for(i=0; i N; i+)puts(psi); main() char chN1=“red“, “green“, “blue“, “yellow“, “black“; int

3、 i; printf(“ nThe original string n n“); for(i=0; i N; i+)puts(chi); printf(“ n“); fun(ch); 二、 程序修改题 2 下列给定程序中,函数 fun的功能是:在整数 10到 55之间,查找能被 3整除且有一位上的数值是 5的数,把这些数放在 b所指的数组中,这些数的个数作为函数值返回。规定函数中 a1放个位数, a2放十位数。 请改正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改的程序的结构 ! 试题程序: #include stdio h int fun(int*b) int k,

4、a1, a2, i=0; for(k=10; k =55; k+) *found* a2=k 10; a1=k-a2*10: if(k 3=0&a2=5)| (k 3=0&a1=5) bi=k; i+; *found* return k; main() int a100, k, m; m=fun(a); printf(“The result is: n“); for(k=0; k m; k+) printf(“ 4d“, ak); printf(“ n“); 三、程序设计题 3 下列程序定义了 NN的二维数组,并在主函数中自 动赋值。请编写函数 fun(int a N),该函数的功能是:将数组

5、左下半三角元素中的值全部置 0。例如 a数组中的值为: 1 9 7 2 3 8 4 5 6 则返回主程序后 a数组中的值应为: 0 9 7 0 0 8 0 0 0 注意:请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include (20hio h #include stdio h #include stdlib h #define N5 void fun(int aN) void main() FILE*wf; int aNN, i, j; int bNN=1, 9, 7, 2, 4, 2, 3, 8, 1, 2, 4, 5,

6、6, 7, 5, 4, 0, 6, 8, 0,2, 7, 1, 6, 4; system(“CLS“); printf(“*The array* n“); for(i=0; i N; i+) *产生一个随机的 5*5矩阵 * for(j=0; j N; j+) aij=rand() 10; printf(“ 4d“, aij); printf(“ n“); fun(a); printf(“THE RESULT n“); for(i=0; i N; i+) for(j=0; j N; j+) printf(“ 4d“, aij); printf(“ n“); * wf=fopen(“out da

7、t“, “w“); fun(b); for(i=0; i N; i+) for(j=0; j N; j+) fprintf(wf, “ 4d“, bij); fprintf(wf, “ n“); fclose(wf); * 国家二级 C语言机试(操作题)模拟试卷 674答案与解析 一、程序填空题 1 【正确答案】 (1)i (2)psj (3)tp 【试题解析】 本题考查:按字符串的长短进行排序。 填空 1:外循环每循环一次, k应保存当前的 i值,所以应填 i。 填空 2:使用内循环对 i+1后面的字符串长度进行比较,所以应填 psj。 填空 3:此处的作用是交换两个变量的值,所以应填 tp

8、。 二、程序修改题 2 【正确答案】 (1)a2=k 10; (2)return i; 【试题解析】 本题考查:取数值 n的各个位; return语句,将需要返回的函数值返回给函数 main。 (1)a2存放十位数,所以是 a2=k 10,此处是一个书写错误。 (2)根据题意,要返回能被 3整除的数的个数,从循环体中可以知道其个数是由 i来计算的,所以返回的是 i。 三、程序设计题 3 【正确答案】 void fun(int aN) int i, j; for(i=0; i N; i+) for(j=0; j =i; j+) aij=0; *将数组左下半三角元素中的值全部置 0* 【试题解析】 本题考查: for循环语句,使用嵌套循环语句遍历二维数组的各个元素;二维数组元素的引用。对于 NN二维数组,如何表示其左下半三角元素,可以通过以下语句实现: for(i=0; i n; i+) for(j=0; j =i; j+) 外层循环用来控制矩阵的行下标,内层循环控制矩阵的列下标。注意列下标的取值范围,因为要表示下三角元素,所以 j的范围是 0 i。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1