[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编16及答案与解析.doc

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

1、国家二级( C语言)机试历年真题试卷汇编 16及答案与解析 一、选择题 1 设栈的顺序存储空间为 S(0:49),栈底指针 bottom=49,栈顶指针 top=30(指向栈顶元素 )。则栈中的元素个数为 ( )。 ( A) 30 ( B) 29 ( C) 20 ( D) 19 2 下列与队列结构有关联的是 ( )。 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 3 下列叙述中正确的是 ( )。 ( A)有一个以上根结点的数据结构不一定是非线性结 构 ( B)只有一个根结点的数据结构不一定是线性结构 ( C)循环链表是非线性结构 ( D)

2、双向链表是非线性结构 4 面向对象方法中,继承是指 ( )。 ( A)一组对象所具有的相似性质 ( B)一个对象具有另一个对象的性质 ( C)各对象之间的共同性质 ( D)类之间共享属性和操作的机制 5 数据库设计中反映用户对数据要求的模式是 ( )。 ( A)内模式 ( B)概念模式 ( C)外模式 ( D)设计模式 6 程序测试的目的是 ( )。 ( A)为被测程序设计正确的测试用例 ( B)发现并改正程序中的错误 ( C)发现程序中的错误 ( D)改正程序中的错误 7 在数据库中,数据模型包括数据结构、数据操作和 ( )。 ( A)数据约束 ( B)数据类型 ( C)关系运算 ( D)查

3、询 8 以下叙述中正确的是 ( )。 ( A)程序的算法只能使用流程图来描述 ( B)结构化程序的三种基本结构是循环结构、选择结构、顺序结构 ( C) N-S流程图只能描述简单的顺序结构的程序 ( D)计算机可以直接处理 C语言程序,不必进行任何转换 9 以下选项中不能用于描述算法的是 ( )。 ( A)伪代码和流程图 ( B)程序语句 ( C) ER图 ( D)文字叙述 10 层次型、网状型和关系型数据库的划分原则是 ( )。 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 11 有三个关系 R、 S和 T加下: 则由关系 R和 S得到关系 T的操作

4、是 ( )。 ( A)自然连接 ( B)差 ( C)交 ( D)并 12 以下叙述中正确的是 ( )。 ( A)不同函数的形式参数不能使用相同名称的标识符 ( B)用户自己定义的函数只能调用库函数 ( C)实用的 C语言源程序总是由一个或多个函数组成 ( D)在 C语言的函数内部,可以定义局部嵌套函数 13 以下选项中叙述正确的是 ( )。 ( A) C程序必须由 main语句开始 ( B)函数体必须由 开始 ( C) C程序中的注释可以嵌套 ( D) C程序中的注释必须在一行里完成 14 下列选项中正确的标识符是 ( )。 ( A)一 a1 ( B) ai ( C) a2_i ( D) in

5、t 15 有以下程序 (字母 A的 ASCII代码为 65): #include stdio h main() char c1=A, c2=Y; printf(“ d d n“, c1, c2); 程序运行后的输出结果是 ( )。 ( A)输出格式不合法,输出出错信息 ( B) A Y ( C) 65 90 ( D) 65 89 16 有以下程序: #include stdio h main() int a; a=(int)(一 1 53*3); printf(“ d n“, a); 程序的运行结果是 ( )。 ( A)一 3 ( B)一 4 ( C)一 5 ( D)结果不确定 17 以下叙述

6、中正确的是 ( )。 ( A)在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 ( B)在使用 scan函数输入整数或实数时,输入数据之间只能用空格来分隔 ( C)在 printf函数中,各个输出项只能是变量 ( D)使用 printf函数无法输出百分号 18 设有定义: double x=2 12;,以下选项中不能完整输出变量 x值的语句是( )。 ( A) printf(“x= 5 0f n“, x); ( B) printf(“x= f n“, x); ( C) printf(“x= 1f n“, x); ( D) printf(“x= 0 5f n“, x);

7、19 关于 “while(条件表达式 )循环体 ”,以下叙述正确的是 ( )。 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数一样 ( D)条件表达式的执行次数与循环体的执行次数无关 20 有以下程序: #include stdio h main() int a, b; for(a=0; a 3; a+) scanf(“ d“, r=f(p, q); printf(“ d, d, d, d, d n“, i, j, *p, *q, *r); 则程序的输出结果是 ( )。 ( A)

8、 5, 3, 3, 5, 5 ( B) 3, 5, 5, 3, 5 ( C) 3, 5, 3, 5, 5 ( D) 5, 3, 5, 3, 5 37 有以下程序: #include stdio h int a=1, b=2; void fun1(int a, int b) printf(“ d d“, a, b); void fun2() a=3; b=4; main() fun1(5, 6); fun2(); printf(“ d d n“, a, b); 程序运行后的输出结果是 ( )。 ( A) 5 6 1 2 ( B) 3 4 5 6 ( C) 1 2 5 6 ( D) 5 6 3 4

9、 38 设有定义: structint n; float x; ) s2, m2=(10, 2 8, 0, 0 0; 则以下赋值语句中正确的是 ( )。 ( A) s0=m1; ( B) s=m; ( C) s 13=m n; ( D) s2 x=m2 x; 39 有以下程序: #include stdio h #include string h struct S char name10; ; void change(struct S*data, int value) strcpy(data name, “#“); value=6; main() struct S input; int num

10、=3; strcpy(input name, “OK“); change( input, num); printf(“ s d n“, input name, num); 程序运行后的输出结果是 ( )。 ( A) #3 ( B) #6 ( C) OK 3 ( D) OK 6 40 有以下程序: #include stdio h typedef structint b, p; )A; void f(A c) *注意 :c是结构变量名 * int j; c b+=1; c p+=2; main() int i; A a=1, 2; f(a); printf(“ d d n“, a b, a p)

11、; 程序运行后的输出结果是 ( )。 ( A) 2 4 ( B) 1 2 ( C) 1 4 ( D) 2 3 二、程序填空题 41 程序通过定义学生结构体数组,存储若干名学生的学号、姓名和三门课的成绩。函数 fun的功能是:将存放学生数据的结构体数组,按姓名的字典序 (从小到大 )排序。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行, 也不得更改程序的结构 ! 试题程序: #include #include struct student long sno; char name10; float score3; ; void fun(struct stu

12、dent a, int n) *found* 【 1】 t; int i, j; *found* for(i=0; i0) t=ai; ai=aj; aj=t; ) main() struct student s4=10001,“ZhangSan”, 95, 80, 88), 10002, “LiSi“, 85, 70,78), 10003, “CaoKai“, 75, 60, 88, 10004, “FangFang“, 90, 82, 87; int i, j; printf(“The original data: n“); for(j=0; j #include double fun(d

13、ouble eps) double s, t; int n=1; s=0 0; *found* t=0: while(teps) s+=t: t=t*n (2*n+1); n+: *found* return(s); main() double x: printf(“Please enter a precision: “); scanf(“ 1f“, hi=hj; hj=tt; for(i=0; in; i+) fprintf(out, “ d n“, hi s); fprintf(out, “ n“); fclose(out); 国家二级( C语言)机试历年真题试卷汇编 16答案与解析 一、

14、选择题 1 【正确答案】 C 【试题解析】 栈底指针 bottom=49,栈顶指针 top=30,则栈中的元素个数为4930+1=20个,答案选 C。 2 【正确答案】 D 【试题解析】 队列的修改是依 “先进先出 ”的原则进行的,故 D选项正确。 3 【正确答案】 B 【试题解析】 线性结构应满足: 有且只有一个根结点; 每个结点最多有一个前驱,也最多有一个后继,所以 B选项正确。有一个以上根结点的数据结构一定是非线性结构,所以 A选项错误。循环链表和双向链表都是线性结构的数据结构,所 以 CD选项错误。故 B选项正确。 4 【正确答案】 D 【试题解析】 继承是面向对象的方法的一个主要特征

15、,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,因此继承是指类之间共享属性和操作的机制,选项 D正确。 5 【正确答案】 C 【试题解析】 数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户 的局部数据描述,因此选择 C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取的方法。 6 【正确答案】 C 【试题解析】 程序测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是

16、否满足规定的需求或是弄清预期结果与实际结果之间的差别,即为发现错误而执行程序的过程,而不是改正错误。故正确答案为 C。 7 【正确答案】 A 【试题解析】 数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架,即描述了 数据结构、数据操作及数据约束。故正确答案为 A。 8 【正确答案】 B 【试题解析】 程序的算法可以用流程图、程序语句、伪代码和流程图以及文字进行描述,选项 A错误; NS能完整描述程序的所有结构,不仅仅包括简单的顺序结构,选项 C错误; C语言的源文件需要经过编译、链接生成可执行文件后才可以被计算机执行,

17、选项 D错误;循环结构、选择结构、顺序结构是结构化程序的三种基本结构,所以答案选 B。 9 【正确答案】 C 【试题解析】 E-R图即 “实体一联系图 ”将现实世界中的要求转化成实体、联系、属性等基本 概念,描述的是实体之间的联系,而不能对算法进行描述,相对而言,程序语句、伪代码和流程图以及文字都能描述算法的基本思想,所以答案选C。 10 【正确答案】 D 【试题解析】 层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,因此三种数据库的划分原则是数据之间的联系方式,选项 D正确。 11 【正确答案】 B 【试题解析】 关系 T中的元组是 R关系中有

18、而 S关系中没有的元组的集合,进行的是差的运算。 12 【正确答案】 C 【试题解析】 一个 C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,选项 C正确;除了 main函数不能被其他函数调用之外,用户自定义函数可以调用其他任意函数,选项 B错误;函数是一个独立的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项 A错误;函数体内部只可以调用但是不可以定义其他函数,选项 D错误;答案选 C。 13 【正确答案】 B 【试题解析】 编写函数的时候需要用 “”将其函数体括起来,表示是该函数的一部分,所以函数体必须由 “”开始,选项 B正确; C程序必须由 main函数开始,

19、而不是 main语句,选项 A错误; C程序中的注释有单行注释 “ ”和多行注释“ * ”,多行注释以 “ *”开始,直到遇到 “* ”结束,只是寻找配套,而不能嵌套,选项 C、 D错误;答案选 B。 14 【正确答案】 C 【试题解析】 本题考查标识符的命名规则。标识符只能由字母、数字、下画线组成;数字不能作为标识符的开头;关键字不能作为标识符。 A选项中 “一 ”和 B选项中 “”和 “”均不满足标识符的构成条件; D选项中 int是关键字,故 C选项正确。 15 【正确答案】 D 【试题解析】 考查字符型数据。字符常量 与其 ASCII码值一一对应,在计算的时候,一般是字符数据对应的 A

20、SCII码参与运算,输出时会根据格式控制符输出对应的字符或者 ASCII码。所以答案选 D。 16 【正确答案】 B 【试题解析】 考查数据类型之间的强制转换,程序中将表达式 (一 1 53*3)的值一 4 59强制转换成 int型,然后赋值给 a,处理方法是直接将小数部分舍去,保留带有符号的整数部分,所以答案选 B。 17 【正确答案】 A 【试题解析】 scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到 屏幕上,所以 A选项正确。 scanf()的格式控制串可以使用其他非空自字符,如逗号,但在输入时必须输入这些字符以保证匹配,所以 B选项错误。 print

21、f函数可以输出常量,也可以输出变量,所以 C选项错误。 printf函数可以通过 printf(“ ”)来输出百分号,所以 D选项错误。 18 【正确答案】 A 【试题解析】 本题考查 printf函数的格式输出, “格式控制字符串 ”部分为 “ f”表示按照浮点型输出,选项 B正确;加入长度格式符 1即 “ 1”表示按照双精度浮点型输出,选项 C正确;若要控制输出精度,则 需以 “ ”开头,后跟十进制整数,如 “ 2f”或 “ 0 2f”,选项 D正确;控制输出宽度则是用整数表示,如 “5f”。选项 A中 “ 5 0f”表示输出宽度为 5,右对齐,小数点后保留位数为 0,所以结果输出为 2,

22、不能完整输出 x,答案选 A。 19 【正确答案】 B 【试题解析】 while循环是先判断条件,满足条件后执行循环体,执行完后接着判断条件,执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,故 B选项正确。 20 【正确答案】 A 【试题解析】 本题是一个循环结构嵌套选择结构,按照外层循环,内层选择一步一步处理即可。重点注意地是, switch语句中并没有出现 break语句,所以内层循环是不会跳出的。 21 【正确答案】 D 【试题解析】 本题考查条件分支结构和 C语言中条件成立与否的判定方式。在C语言中,变量值为零则表示假,非零则表示真。因此

23、, if(!x)与 else if(x=0)均不成立,程序执行 else语句,即 y+=3。得到答案为 D。 22 【正确答案】 A 【试题解析】 这是对 for循环的基本考查。 for语句中 +a为判 断条件,当 a=一1时,由 +a得到 a=0, 0代表假,退出循环,执行 printf语句,此时 a=0, b=一1,故 A选项正确。 23 【正确答案】 A 【试题解析】 A选项中, a!=b表示 a不等于 b时,运算结果为 1,或者为 0;而a=a!b是一种语法错误, !是非运算,且是单目运算符,只要求有一个操作数,故两者不等价,故 A选项正确。 24 【正确答案】 B 【试题解析】 A选

24、项中, if语句的嵌套没有规定层数; C选项中,可以在 else子句中再嵌套 if语句; D选项中,改变 if-else语句的缩进格式, 不会改变程序的执行流程,需要注意 if和 else的配对问题。故 B选项正确。 25 【正确答案】 D 【试题解析】 定义语句 “int array5=5, 3, 1; ”使得数组前三个元素的值分别为 5、 3、 1,其余元素为 0,所以输出的结果分别为 A+5、 A+3、 A+1对应的字符以及两个 X,所以输出答案为 D。 26 【正确答案】 B 【试题解析】 strlen(s)长度的计算是从 s0开始到 0结束,因此,一共有 8个。所以 strlen(s

25、)=8 27 【正确答案】 A 【试题解析】 f是函数指针,它指向的函数接受一个 int型的形参,并且返回值是 int类型。 28 【正确答案】 B 【试题解析】 for循环的条件判断是只要 a为 0就退出循环体。初始值 a的值为6,满足条件,执行完循环体后, b的值为 6, a一 =+c,即 a=a一 (+c),所以 a的值为 5, c的值为 1。第二次循环后 b的值为 11, a的值为 3, c的值为 2。第三次也是最后循环后, a的值为 0, b的值为 14, c的值为 3。 29 【正确答案】 A 【试题解析】 函数 m1()返回两个参数中较小的数值,函数 m2()返回两个参数中较大的数值,函数 fun()返回两个参数之和,所以 fun(m1(x, y), m2(y,z)=fun(m1(2, 3), m2(3, 1)=fun(2, 3)=5,答案选 A。 30 【正确答案】 B 【试题解析】 本题主要考查指针与数组。观察题目,可以发现, *p= return j; *返回分数范围内的学生人数 * 【试题 解析】 本题考查:结构体数组操作;循环判断结构。 本题使用循环判断结构实现程序操作,循环语句用于遍历结构体数组,条件语句用于判断当前元素是否符合条件,若符合条件则将其存入结构体数组 b中。

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

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

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