全国计算机等级考试二级C语言选择题2

上传人:宝路 文档编号:23744947 上传时间:2017-12-03 格式:DOCX 页数:14 大小:74.33KB
返回 下载 相关 举报
全国计算机等级考试二级C语言选择题2_第1页
第1页 / 共14页
全国计算机等级考试二级C语言选择题2_第2页
第2页 / 共14页
全国计算机等级考试二级C语言选择题2_第3页
第3页 / 共14页
全国计算机等级考试二级C语言选择题2_第4页
第4页 / 共14页
全国计算机等级考试二级C语言选择题2_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《全国计算机等级考试二级C语言选择题2》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言选择题2(14页珍藏版)》请在金锄头文库上搜索。

1、1一个栈的初始状态为空。现将元素1、2、3、4、5、A 、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是() 。A) 12345ABCDE B) EDCBA54321C) ABCDE12345 D) 54321EDCBA参考答案:B【解析】栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择 B)。下列叙述中正确的是()。A) 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B) 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C) 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D) 循环队列中元素的个数是由队头指针和队尾指针共同决定参考答

2、案:D【解析】循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A)错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B)与C)错误。在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是() 。A) O(n)B) O(n2)C) D) 参考答案:C【解析】当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较 次,而顺序查找需要比较n次。下列叙述中正确的是()。A) 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储

3、结构只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间参考答案:A【解析】链式存储结构既可以针对线性结构也可以针对非线性结构,所以 B)与 C)错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以 D)错误。数据流图中带有箭头的线段表示的是() 。A) 控制流B) 事件驱动C) 模块调用D) 数据流参考答案:D【解析】数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般2在旁边标注数据流名。在软件开发中,需求分析阶段可以使用的工具是() 。A) NS图B) DFD图C) PAD图D)

4、 程序流程图参考答案:B【解析】在需求分析阶段可以使用的工具有数据流图 DFD 图,数据字典 DD,判定树与判定表,所以选择 B)。在面向对象方法中,不属于对象基本特点的是() 。A) 一致性B) 分类性 C) 多态性D) 标识唯一性参考答案:A【解析】对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A)。一间宿舍可住多个学生,则实体宿舍和学生之间的联系是() 。A) 一对一B) 一对多C) 多对一D) 多对多参考答案:B【解析】因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。在数据管理技术发

5、展的三个阶段中,数据共享最好的是() 。A) 人工管理阶段B) 文件系统阶段C) 数据库系统阶段D) 三个阶段相同参考答案:C【解析】数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C)。有三个关系R、S和T如下:由关系R和S通过运算得到关系T,则所使用的运算为()。3A) 笛卡尔积B) 交C) 并D) 自然连接参考答案:D【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T关

6、系中的有序组可知R与S进行的是自然连接操作。下列叙述中错误的是()。A) C程序可以由多个程序文件组成B) 一个C语言程序只能实现一种算法C) C程序可以由一个或多个函数组成D) 一个C函数可以单独作为一个 C程序文件存在参考答案:B【解析】在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B)错误。以下选项中,能用作数据常量的是() 。A) 115LB) 0118 C) 1.5e1.5D) o115参考答案:A【解析】A) 选项中 115L表示115是长整型数据,合法。B) 选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B)错误。C)选项中e后面应该是整数不

7、能是小数1.5,所以C)错误。D)选项中八进制常量应该是数字 0开始,而不是字母 o开始。按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A) 大写字母B) 下划线C) 数字字符D) 连接符参考答案:D【解析】C 语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。4设变量已正确定义并赋值,以下正确的表达式是() 。A) xyz5, y B) int(15.8%5)C) xy*5xzD) x25%5.0参考答案:A【解析】B)与 D)选项中取模运算符 %的左右两个操作数均应为整数,所以 B)、D)错误。C)选项中不能将 xy 的值赋给表

8、达式 y*5,所以 C)错误。设有定义:int x2;,以下表达式中,值不为6的是()。A) 2*x,x+=2B) x,2*xC) x*(1x)D) x*x1参考答案:A有以下程序:#include main()int x, y, z;xy1;zx,y,y;printf(%d, %d,%dn,x,y,z);程序运行后的输出结果是( ) 。A) 2,3,3B) 2,3,2C) 2,3,1D) 2,2,1参考答案:C【解析】zx,y,y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(zx) ,(y),( y)。然后从左向右先计算表达式zx,因为 x先使用后自增,所以 z 的值

9、为 1,x 的值为 2。再计算逗号表达式第二个表达式 y,此时 y 的值为 2,最后计算第三个表达式y,y 的值为 3。5有以下程序:#include main() char c1,c2;c1A84 ;c2A85 ;printf( %c,%dn ,c1,c2);已知字母A的ASCII码为65,程序运行后的输出结果是()。A) E,68 B) D,69C) E,DD) 输出无定值参考答案:A【解析】本题目中字符变量 c1 是字符A 的 ASCII 码加上 4,即 69 所对应的字符E。 字符变量 c2 是字符A 的 ASCII 码加上 3,即 68 所对应的字符D。但是打印输出时,c1 以%c的

10、格式输出,所以是 E,c2 以%d 的格式输出,所以是 68。若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(xy) ?(x) : (y)中的条件表达式(x y) 等价的是()。A) (xy0)B) (xy0)D) (xy0)参考答案:A【解析】条件表达式:x表达式1?表达式2:表达式3 的含义是:先求解表达式1,若为非0( 真) ,则求解表达式2,将表达式2的值赋给x。若表达式 1的值为0(假),则求解表达式3,将表达式3的值赋给x。在本题中与表达式1:(xy)等价的是(xy0)。有以下程序:#include main() int x1, y0;if (!x) y;els

11、e if (x0)if (x) y2;else y3;printf(%dn, y);程序运行后的输出结果是( ) 。A) 3B) 26C) 1D) 0参考答案:D【解析】 在 if else 语句中 else 总是与离它最近的 if 配对。本题目中 x 为 1 所以!x 为0,所以执行 else if 语句中的内容,判断(x0) 是否成立,因为 x 为 1 所以条件不成立,所以 else if 内部的 ifelse 语句不再执行,所以 y 的值还是初始值 0。若有定义:float x1.5; int a1,b3,c2; 则正确的 switch语句是()。A) switch(ab) case 1

12、: printf(*n);case 21: printf(*n); B) switch(int)x); case 1: printf(*n);case 2: printf(*n); C) switch(x) case 1.0: printf(*n);case 2.0: printf(*n); D) switch(ab) case 1: printf(*n);case c: printf(*n); 参考答案:A【解析】B)选项中 switch(int)x);语句中不应该有最后的分号。switch(expr1) , 中的 expr1不能用浮点类型或 long 类型,也不能为一个字符串,所以 C)错

13、误。case 后面常量表达式的类型必须与 switch 后面表达式的类型一致,所以 D)错误。有以下程序:#include main() int y9;for( ; y0; y)if(y%30) printf(%d, y) ;程序的运行结果是()。A) 852 B) 963C) 741D) 875421参考答案:A【解析】第一次 for 循环,y 的值为 9,y%3 的值为 0,满足条件打印 y,即先减一后打印,所以打印 8;第二次 for 循环,y 的值为 7, y%3 的值为 1,不执行打印语句;第三次 for 循环,y 的值为 6,y%3 的值为 0,满足条件打印y,即先减一后打印,所以

14、打印 5;第四次 for 循环,y 的值为 4,不满足 if 条件,不执行打印语句;第五次 for 循环,y 的值为 3,满足 if 条件,打印输出 2;第六次 for 循环, y 的值为 1,不满足条件,不执行打印语句。7有以下程序:#include main()int i,j,m1;for(i 1;i0 ;j ) if(i*j3) break ;m*i*j;printf(m%dn,m);程序运行后的输出结果是( ) 。A) m4B) m2C) m6 D) m5参考答案:C【解析】 第一次外循环 i 的值为 1,第一次内循环 j 的值为 3,不满足条件执行m*i*j 即 m 的值为 3;第二

15、次 j 的值为 2,不满足条件执行 m*i*j,即 m 的值为 6;第三次 j 的值为 1,不满足条件执行 m*i*j,即 m 的值仍为 6。第二次外循环 i 的值为 2,j的值为 3,满足条件,执行 break 语句,跳出循环。有以下程序:#include int fun (int x, int y )if (x!y) return ( (xy) /2 );else return ( x );main()int a4, b5, c6;printf( %dn , fun(2*a,fun(b,c);A) 6B) 3C) 8D) 12参考答案:A【解析】 本题中第一次调用为 fun(8,fun(5,6),因为 fun(5,6)返回值为 5,所以第二次调用为 fun(8,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号