[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编5及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编5及答案与解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试历年真题试卷汇编 5及答案与解析 一、选择题 1 下列叙述中错误的是 ( )。 ( A)数据结构中的数据元素不能是另一数据结构 ( B)数据结构中的数据元素可以是另一数据结构 ( C)空数据结构可以是线性结构也可以是非线性结构 ( D)非空数据结构可以没有根节点 2 为了降低算法的空间复杂度,要求算法尽量采用原地工作 (in place)。所谓原地工作是指 ( )。 ( A)执行算法时所使用的额外空间固定 (即不随算法所处理的数据空间大小的变化而变化 ) ( B)执行算 法时所使用的额外空间随算法所处理的数据空间大小的变化而变化 ( C)执行算法时不使用额外空间 ( D
2、)执行算法时不使用任何存储空间 3 某循环队列的存储空间为 Q(1: m),初始状态为 front=rear=m。现经过一系列的入队操作和退队操作后, front=m, rear=m1,则该循环队列中的元素个数为( )。 ( A) m一 1 ( B) m ( C) 1 ( D) 0 4 某棵树只有度为 3的节点和叶子节点,其中度为 3的节点有 8个,则该树中的叶子节点数为 ( )。 ( A) 15 ( B) 16 ( C) 17 ( D)不存在这样的树 5 某二叉树共有 530个节点,其中度为 2的节点有 250个,则度为 1的节点数为( )。 ( A) 29 ( B) 30 ( C) 249
3、 ( D) 251 6 若某二叉树中的所有节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,则该二叉树遍历序列中有序的是 ( )。 ( A)前序序列 ( B)中序序列 ( C)后序序列 ( D)以上说法均可以 7 将 C语言的整数设为整数类 I,则下面属于类 I实例的是 ( )。 ( A)一 103 ( B) 10E3 ( C) 10 3 ( D) “0103” 8 下列叙述中正确的是 ( )。 ( A)软件包括程序、数据和文档 ( B)软件包括程序和数据 ( C)软件包括算法和数据结构 ( D)软件包括算法和程序 9 软件生命周期是指 ( )。 ( A)软件的定义和开发阶段 (
4、 B)软件的需求分析、设计与实现阶段 ( C)软件的开发阶段 ( D)软件产品从提出、实现、使用维护到停止使用退役的过程 10 下列叙述中正确的是 ( )。 ( A)数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能 ( B)数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件 ( C)数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少 ( D)数据库系统独立性较差,而文件系统独立性较好 11 关于程序模块化,以下叙述错误的是 ( )。 ( A)程序模块化可以提高程序运行的效率 ( B)程序模块化可以提高程序编制的效率 ( C)程序模块化可以提高程序代码复用率 ( D)
5、程序模块化可以提高调试程序的效率 12 以下正确使用 C语言标识符的是 ( )。 ( A) 3 ( B) #3 ( C) _3 ( D)一 3 13 若有定义: int a, b, c;以下程序段的输出结果是 ( )。 a=11; b=3; c=0; printf(“ d n“, c=(a b, a b); ( A) 2 ( B) 0 ( C) 3 ( D) 1 14 以下选项中合法的 C语言常量是 ( )。 ( A) CSTR ( B) 2014 1 ( C) 1 0 ( D) 2EK 15 设有定义: int x, y, z;,且各变量已赋正整数值,则以下能正确表示代数式“ ”的 C语言表
6、达式是 ( )。 ( A) 1 0 x y z ( B) 1 x*y*z ( C) 1 (x*y*z) ( D) 1 x y (double)z 16 有以下程序: #include main() char a, b, c, d; scarf(“ c c“, a, b); C=setchar(); d=getchar(); printf(“ c c c c n“, a, b, c, d); 当执行程序时,按下列方式输入数据 (从第 1列开始, 代表回车 ,注意:回车也是一个字符 ) 12 34 则输出结果是 ( )。 ( A) 12 ( B) 12 3 ( C) 1234 ( D) 12 34
7、 17 有以下程序: #include main() int a, b; for(a=0; a,则输出结果是 ( )。 ( A) 2, 2, 3, 4, 4, 4, ( B) 2, 3, 4, ( C) 2, 2, 3, 4, ( D) 2, 3, 3, 4,5, 6, 18 有以下程序: #include #include main() double x, y, z; scanf(“ If If“, x, y); z=x y; while(1) if(fabs(z)1 0) x=y; y=x; z=x y; else break; printf(“y= f n“, y); 执行时输入: 3
8、6 2 4,则输出结果是 ( )。 ( A) 2 400000 ( B) 1 500000 ( C) 1 600000 ( D) 2 000000 19 有以下程序: #include main() int i; char c; scanf(“ c“, c); for(i=0; ic)continue; printf(“ d, “, i); 执行时输入: 0后,则输出结果是 ( )。 ( A) 5, ( B) 0, 0, 0, 0, 0, ( C) 0, 1, 2, 3, 4, ( D) 0, 1, 20 以下程序拟实现计算 sum=1+1 2+1 3+1 50。 #include main(
9、) int i; double 8um; sum=1 0; i=1; do i+; sum+=1 i; while(i int fun(int*b, int n) int i, r=1; for(i=0; i void change(char*array, int len) for(len一一; len=0; len一一 ) arraylen+=1; main() int i; char array5=“ABCD“; change(array, 4); for(i=0; i main() int a4, p, x, i; , for(i=3; i0; i一一 )ai一 1=i*21; scan
10、f(“ d“, x); i=0; while(aip; i一一 )ai: ai一 1; ap=x; for(i=0; i,则输出结果是 ( )。 ( A) 1 2 3 4 ( B) 5 4 3 1 ( C) 1 2 3 5 ( D) 3 2 1 4 28 有以下程序: #include int fun(int a, int n, int x) int*p=a; while(p main() char w20, a510=“abcde“, “fghij“, “klmno“, “pqrst“, “uvwxy“; int i; for(i=0; i #include void fun(char *8
11、, int ml, int m2) char t, *p; p=s+ml; s=s+m2; while(8 int m=1, n=2; void subl(int m, int n) m+=2; n+; void sub2() m+; n+=2; main() printf(“ d, d, “, m, n); subl(4, 5); printf(“ d, d, “, m, n); sub2(); printf(“ d, d n“, m, n); 程序运行后的输出结果是 ( )。 ( A) 1, 2, 1, 2, 2, 4 ( B) 1, 2, 6, 6, 7, 8 ( C) 1, 2, 2,
12、 4, 2, 4 ( D) 1, 2, 6, 6, 2,4 33 有以下程序: #include #nclude long fun(char s) long n; int sign; for(; isspace(*s); s+); sign=(*s=一 )?一 1: 1; if(* s=+ *s=一 )s+; for(n=0; isdigit(木 s); s+) n=10*n+(*s一 0); return sign*n; main() char S=“一 26a3“; printf(“ d n“, fun(s); 程序运行后的输出结果是 ( )。 ( A)一 263 ( B) 2 ( C)
13、0 ( D)一 26 34 设有定义: struct complex int real, unreal; datal=1, 8, data2; 则以下赋值语句中错误的是 ( )。 ( A) data2=(2, 6); ( B) data2=datal; ( C) data2.real=datal real; ( D) data2 real=datal.unreal; 35 有以下程序: #include #define S(x)x * x x main() int k=6, j=3; printf(“ d, d n“, S(k+j+2), S(j+k+2); 程序运行后的输出结果是 ( )。
14、( A) 11, 11 ( B) 29, 29 ( C) 26, 29 ( D) 121, 121 36 若有定义: typedef int*T10; Ta; 则以下选项与上述定义中 a的类型完全相同的是 ( )。 ( A) int, * a10; ( B) int(*a)10; ( C) int a10; ( D) int(*a10)(); 37 有以下程序: #include main() FILE*fp; int i, a6=1, 2, 3, 4, 5, 6, k; fp=fopen(“data dat“, “w+“); for(i=0; i #include void fun(doub
15、le*p1, double*02, double * s) s=(double*)calloc(1, sizeof(double); *s=*p1+* 02; main() double aE 2=1 1, 2 2, b2=10 0, 20 0, *q=NULL; fun(a, b, q); printf(“ 5 2f n“, *q); 程序运行后的结果是 ( )。 ( A)有运行错误 ( B)输出 11 10 ( C)输出 12 10 ( D)输出 21 10 39 若文件指针 fp已正确指向文件, ch为字符型变量,以下不能把字符输出到文件中的语句是 ( )。 ( A) fget(fp,
16、ch); ( B) fputc(ch, fp); ( C) fprintf(fp, “ c“, ch); ( D) fwrite( ch, sizeof(ch), 1, fp); 40 有以下程序: #include struet ball char color10; int dim; ; main() struct ball list2=“white“, 2, “yellow“, 3; printf(“ s: d n“, (list+1)一 color, list一 dim); 程序运行后的输出结果是 ( )。 ( A) yellow: 3 ( B) yellow: 2 ( C) white
17、: 2 ( D) white: 3 二、程序填空题 41 函数 fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数 is leap用来判别某一年是否为闰年。 例如,若输入: 2008 5 1,则程序输出: 2008年 5月 1日是该年的第 122天。 请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include int isleap(int year) int leap; leap=(year 4=0 year 1
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 历年 汇编 答案 解析 DOC
