2013省二级C 选择题(含部分答案)2013-5-24
全国计算机等级考试二级C语言真题2013年3月
全国计算机等级考试二级C语言真题2013年3月(总分40, 做题时间90分钟)一、选择题1. 程序流程图中带有箭头的线段表示的是______。
A 图元关系B 数据流C 控制流D 调用关系答案:C[解析] 在数据流图中,用标有名字的箭头表示数据流。
在程序流程图中,用标有名字的箭头表示控制流。
所以选择C。
2. 结构化程序设计的基本原则不包括______。
A 多态性B 自顶向下C 模块化D 逐步求精答案:A[解析] 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
3. 软件设计中模块划分应遵循的准则是______。
A 低内聚低耦合B 高内聚低耦合C 低内聚高耦合D 高内聚高耦合答案:B[解析] 软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。
模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。
模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
4. 在软件开发中,需求分析阶段产生的主要文档是______。
A 可行性分析报告B 软件需求规格说明书C 概要设计说明书D 集成测试计划答案:B[解析] A错误,可行性分析阶段产生可行性分析报告。
C错误,概要设计说明书是总体设计阶段产生的文档。
D错误,集成测试计划是在概要设计阶段编写的文档。
B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
5. 算法的有穷性是指______。
A 算法程序的运行时间是有限的B 算法程序所处理的数据量是有限的C 算法程序的长度是有限的D 算法只能被有限的用户使用答案:A[解析] 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
有穷性是指算法程序的运行时间是有限的。
6. 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是______。
A 快速排序B 冒泡排序C 直接插入排序D 堆排序答案:D[解析] 除了堆排序算法的比较次数是O(nlog2n),其他的都是n(n-1)/2。
全国计算机等级考试二级C语言真题库之选择题(18)
全国计算机等级考试等级考试真题库之选择题(18)1.下列叙述中正确的是A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关参考答案:B【解析】算法的效率与问题的规模和数据的存储结构都有关,A错误。
算法的时间复杂度,是指执行算法所需要的计算工作量,B正确。
由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的,C错误。
算法的时间复杂度和空间复杂度没有直接的联系,D错误。
2.下列叙述中正确的是A) 线性表链式存储结构的存储空间一般要少于顺序存储结构B) 线性表链式存储结构与顺序存储结构的存储空间都是连续的C) 线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D) 以上说法均错误参考答案:C【解析】线性表的顺序存储结构具备如下两个基本特征:(1)线性表中的所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在存中的任意位置上的。
因此C正确。
3.某二叉树共有12个结点,其中叶子结点只有1个。
则该二叉树的深度为(根结点在第1层)A) 3B) 6C) 8D) 12参考答案:D【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,n0=1,则n2=0,总节点数为12=n0+n1+n2=1+n1+0,则度为1的节点数n1=11,故深度为12,选D。
4.对长度为n的线性表作快速排序,在最坏情况下,比较次数为A) nB) n-1C) n(n-1)D) n(n-1)/2参考答案:D【解析】快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较(n-1)+(n-2)+…+1=n(n-1)/2,选D。
计算机二级c语言题库及答案
2016年计算机二级c语言题库及答案一、选择题(每小题1分,共40小题,共40分)1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。
A.20B.0或35C.15D.162.下列关于栈的叙述中,正确的是( )。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对3.下列链表中,其逻辑结构属于非线性结构的是( )0、A.双向链表B.带链的栈C.二叉链表D.循环链表4.在关系数据库中,用来表示实体间联系的是( )。
A.网状结构B.树状结构C.属性D.二维表5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。
则实体部门和职员间的联系是( )。
A.1:m联系B.m:n联系C.1:1联系D.m:l联系6.右两个关系R和S如下:则由关系R得到关系S的操作是( )。
A.自然连接B.并C.选择D.投影7.数据字典(DD)所定义的对象都包含于( )。
A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图8.软件需求规格说明书的作用不包括( )。
A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解9.下面属于黑盒测试方法的是( )。
A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖10.下面不属于软件设计阶段任务的是( )。
A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计11.以下叙述中正确的是( )。
A.在C语言程序中,main函数必须放在其他函数的最前面B.每个后缀为C的C语言源程序都可以单独进行编译C.在C语言程序中,只有main函数才可单独进行编译D.每个后缀为.C的C语言源程序都应该包含一个main函数12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( )。
2013新疆维吾尔自治区计算机等级考试试题 二级C试题必过技巧
A、进行读写保护设置 B、没有任何作用
C、进行读保护设置 D、进行写保护设置
24、动态RAM的特点是( B )
A、在不断电的条件下,其中的信息保持不变,因而不必定期刷新
A、光存储器 B、磁表面存储器 C、半导体存储器 D、磁芯存储器
39、速度快、分辨率高的打印机类型是( B )
A、非击打式 B、激光式 C、击打式 D、点阵式
C、0.8K个字节 D、288个二进制位
3、在计算机的应用中,“AI”表示( D )
A、管理信息系统 B、决策支持系统
C、办公自动化 D、人工智能
4、不属于计算机数据处理的应用是( B )
C、采用非击打式,噪音较小 D、以上说法都不对
13、在计算机的应用中,“AI”表示( D )
A、管理信息系统 B、决策支持系统
C、办公自动化 D、人工智能
14、汉字国标码在两个字节中各占用( C )位二进制编码。
A、内部总线 B、系统总线 C、扩展总线 D、以上答案都不是
37、不属于计算机数据处理的应用是( B )
A、管理信息系统 B、实时控制
C、办公自动化 D、决策支持系统
38、微型计算机中的内存储器,通常采用( C )
1、计算机病毒是指( D )
A、编制有错误的计算机程序
B、设计不完善的计算机程序
C、计算机的程序已被破坏
D、以系统为目的的特殊的计算机程序
2、400个24×24点阵汉字的字形库存储容量是( A )
A、28800个字节 B、0.23604M个二进制位
29、通常说1.44MB软盘中1.44MB指的是( D )
2013年全国计算机二级C语言考试真题
8、当变量c的值不为2、4、6时,值也为“真”的表达式是()
A(c>=2&&c<=6)&&(c%2!=1)
B)(c>=2&&c<=6)&&!(c%2))
C)(c==2)‖(c==4)‖(c==6)
D)(c>=2&&c<=6)‖(c!=3)‖(c!=5)
9、以下选项中,值为1的表达式是
main()
{ char a='H';
a = ( a>='A' && a<= 'Z' ) ? (a+32) : a;
printf("%c\n",a );
}
程序运行后的输出结果是
A)A
B)a
C)h
D)H
194.以下叙述中正确的是
A)程序可以包含多个主函数,但总是从第一个主函数处开始执行
B)书写源程序时,必须注意缩进格式,否则程序会有编译错误
A."\x7D"
B.1,234
C.123
D.'\123'
60、C语言源程序名的后缀是
A). cp
B).obj
C).exe
D).C
61、阅读以下程序
#include <stdio .h>
main ()
{ int case ;
float printF;
printf ("请输入2个数:");
scanf ( "%d %f",&case, &printF );
全国计算机等级考试二级C语言真题库之选择题(15)
全国计算机等级考试等级考试真题库之选择题〔15〕1.以下链表中,其逻辑构造属于非线性构造的是A) 二叉链表B) 循环链表C) 双向链表D) 带链的栈参考答案:A【解析】在定义的链表中,假设只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。
带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。
在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表〔一个结点中含有两个指针〕,也是线性链表。
循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。
二叉链表是二叉树的物理实现,是一种存储构造,不属于线性构造。
答案为A选项。
Q(1: 35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,那么循环队列中的元素个数为A) 15B) 16C) 20D) 0或35参考答案:D【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。
在循环队列中进展出队、入队操作时,头尾指针仍要加1,朝前移动。
只不过当头尾指针指向向量上界时,其加1操作的结果是指向向量的下界0。
由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。
答案为D选项。
3.以下关于栈的表达中,正确的选项是A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进后出的原那么D) 以上说法均错误参考答案:C【解析】栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
栈的修改是按后进先出的原那么进展的。
因此,栈称为先进后出表,或"后进先出"表,所以选择C。
4.在关系数据库中,用来表示实体间联系的是A) 属性B) 二维表C) 网状构造D) 树状构造参考答案:B【解析】关系模型实体间的联系采用二维表来表示,简称表。
2013计算机等级考试二级C语言程序改错题
1、下列给定程序中,函数fun的功能是:将s所指字符串的郑旭和反序进行连接,形成的新串放在t所指的数组中2、函数fun的功能是:用下面的公式求π的近似值,知道最后一项的绝对值小于指定的数为止。
3、函数fun的功能是:传入一个整数m,计算如下公式的值。
T=1/2-1/m。
4、函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
5、从参数1-55,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的属猪中,这些数的个数作为函数值返回。
规定函数中a1放个位数,a2放十位数。
6、求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未能找到,则函数值为null。
7、按以下递归公式求函数的值fun(n)={10 (n=1)。
8、函数fun和funx的功能是:用二分法求方程2x-4x+3x-6=0的一个根,并要求绝对误差不超过0.001。
9、首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的升序字符接在c所指的数组的尾部。
10、计算整数n的阶乘。
11、计算函数F(x,y,z)=(x+y)的值。
其中x和y的值不相等,z和y的值不相等。
12、利用折半查找法查找整数m在数组中的位置。
若找到,返回其下标值;否则,返回-1。
13、求三个数的最小公倍数。
14、将s所指字符串中最后一次出现的鱼t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。
要求t1和t2所指字符串的长度相同。
15、逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符一次存放到c所指的数组中,形成一个新的字符串。
16、根据以下公示求π值,并作为函数值返回。
17、将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。
计算机国家等级考试二级c试题及答案
计算机国家等级考试二级c试题及答案Ⅰ. 选择题1. 下列选项中,不属于计算机网络分类的是:A. 局域网B. 城域网C. 广域网D. 互联网2. 在Excel中,通过哪个函数可以找到一列或一行中的最大值?A. MAX()B. MIN()C. SUM()D. AVG()3. 下列哪个设备可以用于将数字信号转换为模拟信号?A. 集线器B. 路由器C. 数字调制解调器D. 交换机4. 在计算机网络中,HTTP协议是用于:A. 文件传输B. 邮件传输C. 网页传输D. 数据传输5. 下列选项中,不属于常见的数据库管理系统的是:A. MySQLB. OracleC. PhotoshopD. SQL ServerⅡ. 填空题1. 在计算机网络中,IP地址由__4__个字节组成。
2. 在Python中,使用__print()__函数输出结果。
3. 在Excel中,利用__VLOOKUP()__函数可以进行垂直查找。
4. Windows操作系统中,使用Ctrl+Alt+Delete组合键可以打开__任务管理器__。
5. HTML是用于构建__网页__的标记语言。
Ⅲ. 简答题1. 什么是操作系统?列举几个常见的操作系统。
操作系统是计算机系统中的核心软件,它负责管理计算机硬件和软件资源,提供给应用程序和用户友好的接口。
常见的操作系统有Windows、macOS、Linux等。
2. 什么是数据库?简述关系型数据库和非关系型数据库的区别。
数据库是用于存储和组织数据的系统。
关系型数据库基于关系模型,使用表格结构来存储数据,并通过SQL语言进行操作和查询。
非关系型数据库则不依赖于表格结构,可以采用键值对、文档、图形等方式存储数据。
3. 请简要介绍一下计算机网络的层次结构。
计算机网络的层次结构包括物理层、数据链路层、网络层、传输层和应用层。
物理层负责传输比特流;数据链路层处理帧的传输和错误检测;网络层建立不同网络之间的连接;传输层提供可靠的、面向连接的数据传输;应用层为用户提供服务。
2013年9月全国计算机等级《二级C语言程序设计》上机模考试卷(5)-中大网校
2013年9月全国计算机等级《二级C语言程序设计》上机模考试卷(5)总分:100分及格:60分考试时间:120分一、选择题(每小题1分,共40分)(1) 下列叙述中正确的是( )。
A. 在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B. 实型变量中允许存放整型数C. 若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变D. 在C程序中,求余算符“%”两边的类型相同时才能进行运算(2) 软件生命周期中,花费最多的阶段是( )。
A. 详细设计B. 软件编码C. 软件测试D. 软件维护(3) 假定X和Y为double型,则表达式x=2,y=x+3/2的值是( )。
A. 3.500000B. 3C. 2.000000D. 3.000000(4) 有如下程序:main(){ int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++.b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是( )。
A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=2(5) 设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是( )。
A. x&&yB. x<=yC. x||y+z&&y—ZD. !((x<y)&&!z||1)(6) 有下列程序:main(){ char s[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是( )。
A. 输出字符a的ASCII码B. 输出字符c的ASCII码C. 输出字符cD. 程序出错(7) 设有以下定义union data{int d1;float d2;)demo;则下面叙述中错误的是( )。
A. 变量demo与成员d2所占的内存字节数相同B. 变量demo中各成员的地址相同C. 变量demo和各成员的地址相同D. 若给demo.d1赋99后,demo.d2中的值是99.0(8) 要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是( )。
2013江苏省计算机等级考试二级C语言考试模拟试卷一教案资料
2013江苏省计算机等级考试二级C语言考试模拟试卷一第一部分计算机基础知识1. 下列有关信息技术和信息产业的叙述中,错误的是_____(1)____ 。
A.信息技术与传统产业相结合,对传统产业进行改造,极大提高了传统产业的劳动生产率B.信息产业专指生产制造信息设备的行业与部门,不包括信息服务业C.信息产业已经成为世界范围内的朝阳产业和新的经济增长点D.我国现在已经成为世界信息产业的大国2. 下列有关数字技术与微电子技术的叙述中,错误的是___(2)___ 。
A.数字技术的处理对象是"比特",它只有两种状态(取值)B.在计算机中,经常使用称为"触发器"的双稳态电路来存储比特,一个触发器可以存储1个比特C.微电子技术以集成电路为核心,现代集成电路所使用的半导体材料主要是硅D.所有的IC卡均只能存储数据,不能处理和收发数据3. 下列四个不同进位制的数中,数值最小的是___(3)___。
A.十进制数63.1B.二进制数.101C.八进制数77.1D.十六进制数3F.14. 下列有关PC机CPU的叙述中,错误的是___(4)___。
A.长期以来,多数PC机采用Intel公司生产的CPU芯片B.Intel Core i7是高端的CPU产品,其中i7表示它采用7个内核的结构C.目前部分PC机使用AMD公司的CPU芯片,它们与Intel公司的CPU芯片指令系统基本一致,因此这些PC机相互兼容D.目前我国也能设计、生产PC机的CPU芯片。
5. 下列有关PC机主板上CMOS和BIOS的叙述中.错误的是___(5)___ 。
A.主板上的CMOS芯片是一种易失性存储器,它通常使用电池供电B.BIOS是存储在主板上闪烁存储器中的一组程序.每次机器加电时总是首先执行其中的程序C.CMOS设置程序存储在CMOS存储器中,它与BIOS无关D.CMOS芯片中存储了许多配置信息,包括当前的日期与时间、开机密码等6. 下列是PC机使用的四种外设接口,其中最新的一种是___(6)___。
二级C语言100道经典选择题与答案
【1.1】以下不正确的C语言标识符是____。
A) intB) a_1_2C) ab1exeD) _x【1.2】以下是正确的C语言标识符是____。
A) #defineB) _123C) %dD) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。
A) print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line#pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。
A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type【1.5】下列不属于C语言关键字的是。
A) defaultB) registerC) enumD) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。
A) 32768B) 0C) 037D) 0xAF【1.9】执行语句 printf("%x",-1);屏幕显示____。
A) -1B) 1C) -ffffD) ffff【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。
A) -1B) -32768C) 1D) 32768【1.11】已知 long i=65539;执行语句printf("%d",i);屏幕显示____。
全国计算机等级考试二级C语言课后习题
第二章C程序设计的初步知识一、选择题1。
以下选项中正确的整型常量是()。
A。
12. B.—20 C.1,000 D.4 5 62.以下选项中正确的实型常量是().A。
0 B。
3. 1415 C。
0。
329×102 D. .8713。
以下选项中不正确的实型常量是()。
A。
2.607E—1 B.0.8103e 2 C。
—77。
77 D.456e—24。
以下选项中不合法的用户标识符是()。
A。
abc.c B.file C。
Main D.PRINTF5. 以下选项中不合法的用户标识符是().A._123B.printf C。
A $ D.Dim6。
C语言中运算对象必须是整型的运算符是().A。
% B。
/ C.! D.* *7。
可在C程序中用作用户标识符的一组标识符是().A。
void define WORD B。
as_b3 _123 IfC.For —abc case D。
2c DO SIG8.若变量已正确定义并赋值,符合C语言语法的表达式是()。
A.a=a+7;B.a=7+b+c,a++ C。
int(12.3%4) D。
a=a+7=c+b9.以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但可以这样说:实型变量中允许存放整型值B。
在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C。
执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为310.以下叙述中正确的是()。
A。
在C程序中无论是整数还是实数,只要在允许的范围内部都能准确无误的表示B.C程序由主函数组成C.C程序由若干函数组成D.C程序中只允许包含一个函数11.VC6。
0中int类型变量所占字节数是()。
A.1 B。
2 C.3 D。
412.合法的八进制数是()。
A。
0 B。
028 C.-077 D.01。
二级C语言真题2013年09月-(4)
二级C语言真题2013年09月-(4)(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是______。
(分数:1.00)A.栈与队列都只能顺序存储B.循环队列是队列的顺序存储结构√C.循环链表是循环队列的链式存储结构D.栈是顺序存储结构而队列是链式存储结构解析:[解析] 栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。
为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构,故B选项正确。
2.设某二叉树的前序序列为ABC,中序序列为CBA,则该二叉树的后序序列为______。
(分数:1.00)A.BCAB.CBA √C.ABCD.CAB解析:[解析] 二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。
前序序列为ABC,则A为根节点。
中序序列为CBA,则C和B均为左子树节点或右子树节点,且C为B父节点,可知后序序列为CBA,故B选项正确。
3.下列排序方法中,最坏情况下时间复杂度最小的是______。
(分数:1.00)A.冒泡排序B.快速排序C.堆排序√D.直接插入排序解析:[解析] 在最坏情况下,对长度为n的线性表排序,冒泡排序、快速排序、直接插入排序的时间复杂度均为O(n2),堆排序时间复杂度为O(nlog 2 n),复杂度最小。
故C选项正确。
4.为了对有序表进行对分查找,则要求有序表______。
(分数:1.00)A.只能顺序存储√B.只能链式存储C.可以顺序存储也可以链式存储D.任何存储方式解析:[解析] 二分法查找也称拆半查找,是一种高效的查找方法。
计算机二级C语言选择题
1、以下选项中,能用作数据常量的是________。
(标准答案:C)(A)o115 (B)0118 (C)115L (D)1.5e1.52、下列叙述中错误的是_______。
(标准答案:A)(A)一个C语言程序只能实现一种算法(B)一个C函数可以单独作为一个C程序文件存在(C)C程序可以由一个或多个函数组成(D)C程序可以由多个程序文件组成3、设变量已正确定义并赋值,以下正确的表达式是_______。
(标准答案:B)(A)int(15.8%5) (B)x=y+z+5, ++y (C)x=25%5.0 (D)x=y*5=x+z4、以下叙述中错误的是_____________。
(标准答案:A)(A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令(B)C语言源程序经编译后生成后缀为.obj的目标程序(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中(D)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件5、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是___________。
(标准答案:D)(A)大写字母(B)下划线(C)数字字符(D)连接符6、以下选项中,合法的一组C语言数值常量是__________。
(标准答案:D)(A) 0x8A 10,000 3.e5 (B).177 4e1.5 0abc(C) 028 .5e-3 -0xf (D)12. 0Xa23 4.5e07、以下选项中不合法的标识符是__________。
(标准答案:C)(A)print (B)FOR (C)&&a (D)_008、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是(A)i=(a+k)<=(i+k); (B)a=a++,i++; (C)i=a%11; (D)i=!a;标准答案:C11、设有定义:int x=2;,以下表达式中,值不为6的是(A)x*=(1+x) (B)x*=x+1 (C)x++,2*x (D)2*x, x+=2标准答案:D12、有以下程序#include <stdio.h>main(){ int x, y, z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是(A)2,3,3 (B)2,2,1 (C)2,3,2 (D)2,3,1标准答案:D13、以下叙述中错误的是(A)使用三种基本结构构成的程序只能解决简单问题(B)C语言是一种结构化程序设计语言(C)结构化程序由顺序、分支、循环三种基本结构组成(D)结构化程序设计提倡模块化的设计方法标准答案:A14、以下选项中,能用作用户标识符的是(A)8_8 (B)unsigned (C)_0_ (D)void标准答案:C15、C源程序中不能表示的数制是(A)二进制(B)十六进制(C)十进制(D)八进制标准答案:A16、若有定义语句:int x=10; ,则表达式x-=x+x的值为(A)0 (B)10 (C)-20 (D)-1017、以下选项中不合法的标识符是(A)&a (B)print (C)_00 (D)FOR标准答案:A18、以下关于结构化程序设计的叙述中正确的是(A)一个结构化程序必须同时由顺序、分支、循环三种结构组成(B)有三种基本结构构成的程序只能解决小规模的问题(C)在C语言中,程序的模块化是利用函数实现的(D)结构化程序使用goto语句会很便捷标准答案:C19、对于一个正常运行的C程序,以下叙述中正确的是(A)程序的执行总是从main函数开始,在程序的最后一个函数中结束(B)程序的执行总是从程序的第一个函数开始,在main函数结束(C)程序的执行总是从main函数开始(D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束标准答案:C20、以下选项中能表示合法常量的是(A)1.5E2.0 (B)“\007” (C)1, 200 (D)‘\ ’标准答案:B21、以下定义语句中正确的是(A)float a=1,*b=&a,*c=&b; (B)int a=b=0;(C)double a=0.0;b=1.1; (D)char A=65+1,b=’b’;标准答案:D22、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是(A)double(x)/10 (B)x=x+10=x+y (C)x+1=y (D)++x,y=x-- 标准答案:D23、计算机能直接执行的程序是(A)可执行程序(B)目标程序(C)源程序(D)汇编程序标准答案:A24、以下叙述中正确的是(A)C语言规定必须用main作为主函数名,程序将从此开始执行(B)C语言程序将从源程序中第一个函数开始执行(C)main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等(D)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行标准答案:A25、以下选项中可用作C程序合法实数的是(A)E9 (B)9.12E (C)3.0e1.2 (D) .1e0标准答案:D26、下列定义变量的语句中错误的是(A)float US$; (B)double int_; (C)char For; (D)int _int; 标准答案:A27、表达式:(int)((double)9/2)-9%2的值是(A)5 (B)4 (C)0 (D)3标准答案:D28、以下叙述中错误的是(A)算法正确的程序对于相同的输入一定有相同的结果(B)算法正确的程序可以有零个输入(C)算法正确的程序可以有零个输出(D)算法正确的程序最终一定会结束29、以下叙述中正确的是(A)C语言程序中的注释必须与语句写在同一行(B)简单C语句必须以分号结束(C)C语句必须在一行内写完(D)C程序中的每一行只能写一条语句标准答案:B30、以下选项中关于C语言常量的叙述错误的是(A)经常被使用的变量可以定义成常量(B)常量分为整型常量、实型常量、字符常量和字符串常量(C)所谓常量,是指在程序运行过程中,其值不能被改变的量(D)常量可分为数值型常量和非数值型常量标准答案:A31、以下选项中,不合法的C语言用户标示符是(A)AaBc (B)a_b (C)_1 (D)a--b标准答案:D32、若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)x=y==5; (B)x=5=4+1; (C)x+n=i; (D)x=n%2.5;标准答案:A33、以下选项中关于程序模块化的叙述错误的是(A)把程序分成若干相对独立的模块,可便于编码和测试(B)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序(C)把采用分成若干相对独立、功能单一的模块,可便于重复使用这些模块(D)可采用自顶向上、逐步细化的设计方法把若干独立模块组装成所要求的程序标准答案:D34、以下叙述中正确的是(A)C程序中的注释只能出现在程序的开始位置和语句的后面(B)C程序书写格式严格,要求一行内只能写一个语句(C)用C语言编写的程序只能放在一个程序文件中(D)C程序书写格式自由,一个语句可以写在多行上标准答案:D35、以下不合法的数值常量是(A)1e1 (B)0xabcd (C)8.0E0.5 (D)011标准答案:C36、以下关于C语言数据类型使用的叙述中错误的是(A)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(B)若要保存带有多位小数的数据,可使用双精度类型(C)整数类型表示的自然数是准确无误差的(D)若要处理“人员信息”等含有不同类型的相关数据,应自定义结构体类型标准答案:A37、设有定义int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是(A)++k (B)k++ (C)k+1 (D)k+=1标准答案:C38、以下叙述中错误的是(A)C程序在运行过程中所有计算都以二进制方式进行(B)C程序在运行过程中所有计算都以十进制方式进行(C)C程序中字符变量存放的是字符的ASCII值(D)所有C程序都需要编译链接无误后才能运行标准答案:B39、以下关于C语言的叙述中正确的是(A)C语言中的注释不可以夹在变量名或关键字的中间(B)C语言中的变量可以再使用之前的任何位置定义(C)在C语言算数表达式的书写中,运算符两侧的运算数类型必须一致(D)C语言的数值常量中夹带空格不影响常量值的正确表示标准答案:A40、以下不合法的字符常量是(A)‘\018’(B)‘\”’(C)‘\\’(D)‘\xcc’标准答案:A41、以下选项中正确的定义语句是(A)double a=7,b=7; (B)double a;b; (C)double,a,b; (D)double a=b=7; 标准答案:A42、若有定义语句int a=3,b=2,c=1;以下选项中错误的赋值表达式是(A)a=(b=4)=3; (B)a=1+(b=c=4); (C)a=(b=4)+c; (D)a=b=c+1;标准答案:A43、下列叙述中错误的是(A)一个C语言程序只能实现一种算法(B)一个C函数可以单独作为一个C程序文件存在(C)C程序可以由一个或多个函数组成(D)C程序可以由多个程序文件组成标准答案:A44、C语言源程序名的后缀是(A) .c (B) .cp (C) .obj (D) .exe标准答案:A45、以下选项中不能用作C程序合法常量的是(A)123 (B)‘\123’(C)“\x7D”(D)1,234标准答案:D46、表达式a+=a-=a=9的值是(A)0 (B)-9 (C)18 (D)9标准答案:A47、若有定义语句:int x=12,y=8,z;在其后执行语句z=0.9+x/y;则z的值为(A)2.4 (B)2 (C)1.9 (D)1标准答案:D48、以下选项中合法的标识符是(A)1-1 (B)1__(C)1_1 (D)_11标准答案:D49、表达式3.6-5/2+1.2+5%2的值是(A)4.8 (B)4.3 (C)3.8 (D)3.3标准答案:C50、有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是(A)a=x<>y (B)a%(int)(x-y) (C)y=x+y=x (D)(a*y)%b 标准答案:B51、有以下程序#include <stdio.h>main(){ int a=0,b=0; /*给a赋值b=20; /*给b赋值*/printf(“a+b=%d\n”,a+b); /*输出计算结果*/}程序运行后的输出结果(A)出错(B)a+b=0 (C)a+b=30 (D)a+b=10 标准答案:A52、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令,关于转换以下说法错误的是(A)一条C语句可能会被转换成零条机器指令(B)某种类型和格式的C语句被转换成机器指令的条数是固定的(C)一条C语句可能会被转换成多条机器指令(D)一条C语句对应转换成一条机器指令标准答案:D53、关于C语言的符号常量,以下叙述中正确的是(A)符号常量在整个程序中其中都不会被重新定义(B)符号常量的符号名是标识符,但必须大写(C)符号常量的符号名必须是常量(D)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量标准答案:D54、若有以下程序#include <stdio.h>main(){int b=10,a=-11;a%=b%=4;printf(“%d %d\n”,a,b);}则程序的输出结果是(A)1 2 (B)-1 2 (C)1 -2 (D)-1 -2标准答案:B55、若有以下程序#include <stdio.h>main(){int a=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);printf(“%d,%d,%d\n”,a,b,c);}则程序的输出结果是(A)0,4,0 (B)0,4,4 (C)1,4,4 (D)1,4,1标准答案:A56、若有以下程序#include <stdio.h>main(){int a=0,b=0,c=0,d;c=(a+=b,,b+=a); /*第4行*/d=c;; /*第5行*/; /*第6行*/printf(“%d,%d,%d\n”,a,b,c); /*第7行*/}编译时出现错误,你认为出错的是(A)第6行(B)第5行(C)第7行(D)第4行标准答案:D57、关于算法,以下叙述中错误的是(A)一个算法对于某个输入的循环次数是可以事先估计出来的(B)同一个算法对于相同的输入必须得出相同的结果(C)某个算法可能会没有输入(D)任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕标准答案:D58、关于C语言的变量,以下叙述中错误的是(A)由三条下划线构成的符号名是合法的变量名(B)所谓变量是指在程序运行过程中其值可以被改变的量(C)程序中用到的所有变量都必须先定义后才能使用(D)变量所占的存储单元地址可以随时改变标准答案:D59、若有以下程序#include <stdio.h>main(){int a=-11,b=10;a/=b/=4;printf(“%d %d\n”,a,b);}(A)4 -3 (B)5 -3 (C)-1 -2 (D)-5 2标准答案:D60、#include <stdio.h>main(){int a=0,b=0,c=0;c=(a+=++b,b+=4);printf(“%d,%d,%d\n”,a,b,c);}则程序的输出结果是(A)1,5,1 (B)-1,4,-1 (C)-1,4,4 (D)1,5,5标准答案:D61、以下选项中不属于C语言标识符的是(A)关键字(B)预定义标识符(C)用户标识符(D)常量标准答案:D62、以下选项中不属于C语言程序运算符的是(A)&& (B)()(C)sizeof (D)<>标准答案:D63、若变量已正确定义并赋值,以下不能构成C语句的选项是(A)A=a+b; (B)B++; (C)A?a:b; (D)a=a+b标准答案:D64、若有以下程序段double x=5.16894;printf(“%f\n“,(int)(x*1000+0.5)/(double)1000);则程序段的输出结果是(A)5.169000 (B)5.175000 (C)5.170000 (D)5.168000 标准答案:A65、以下不能用于描述算法的是(A)文字叙述(B)伪代码和流程图(C)程序语句(D)E-R图标准答案:D66、以下叙述中合法的实型常量是(A)2.0*10 (B) .914 (C)0 (D)3.13e-2.1 标准答案:B67、以下叙述中正确的是(A)若有int 4,b=9;执行了a=b;b=a;之后,a的值为9,b的值为4(B)在赋值表达式中,赋值号的右边可以是变量,也可以是表达式(C)若有int 4,b=9;执行了a=b后,a的值已由原值改变为b的值,b的值变为0(D)a是实型变量,a=10在C语言中是允许的,因此可以说:实型变量中可以存放整型数标准答案:B68、以下选项中合法的常量是(A)sizeof (B)A% (C)5a (D)_10_标准答案:D69、不能正确表示数学式的表达式是(A)a*b/c (B)a*(b/c) (C)a/c*b (D)a/b*c 标准答案:D70、#include <stdio.h>main(){int a=3;printf(“%d\n”,a+=a-=a*a);}程序运行后的输出结果是(A)9 (B)-12 (C)0 (D)3标准答案:B71、以下叙述中正确的是(A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构(B)N-S流程图只能描述简单的顺序结构的程序(C)计算机可以直接处理C语言程序,不必进行任何转换(D)程序的算法只能使用流程图来描述标准答案:A71、以下叙述中正确的是(A)书写源程序时,必须注意缩进格式,否则程序会有编译错误(B)程序的主函数名除了main外,也可以使用Main或_main(C)程序可以包含多个主函数,但总是从第一个主函数处开始执行(D)在C程序中,模块化主要是通过函数来实现的标准答案:D72、C语言中double类型数据占字节数为(A)12 (B)8 (C)4 (D)16标准答案:B73、以下叙述中正确的是(A)用户自定义标识符必须“见名知意”,如果随意定义,则会出编译错误(B)语言中的关键字不能作变量名,但可以作为函数名(C)标识符的长度不能任意长,最多只能包含16个字符(D)标识符总是有字母、数字和下划线组成,且第一个字符不得是数字标准答案:D74、以下叙述中正确的是(A)空语句就是指程序中的空行(B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的(C)复合语句在语法上包含多条语句,其中不能定义局部变量(D)当用scanf从键盘输入数据时,每行数据在没有按下回车键(Enter键)前,可以任意修改标准答案:D75、以下叙述中正确的是(A)程序必须包含所有三种基本结构才能成为一种算法(B)如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达(C)只有简单算法才能在有限的操作步骤之后结束(D)我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令标准答案:D76、以下叙述中正确的是(A)在C语言程序设计中,所有函数必须保存在一个源文件中(B)结构化程序必须包含所有的三种基本结构,缺一不可(C)只要包含了三种基本结构的算法就是结构化程序(D)在算法设计时,可以把复杂任务分解成一些简单的子任务标准答案:D77、以下叙述中正确的是(A)预定义的标识符是C语言关键字的一种,不能另作他用(B)只能在函数体内定义函数,其他地方不允许定义变量(C)常量的类型不能从字面形式上区分,需要根据类型名来决定(D)整型常量和实型常量都是数值型常量标准答案:D78、以下叙述中正确的是(A)八进制数的开头要使用英文字母o,否则不能与十进制区分开(B)英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符(C)在C程序中的八进制和十进制,可以是浮点数(D)整型变量可以分为int型、short型、long型、unsigned型四种标准答案:D79、以下叙述中正确的是(A)C语言程序总是从main函数开始执行(B)C语言程序所调用的函数必须放在main函数的前面(C)C语言程序中main函数必须放在程序开始位置(D)C语言程序总是从最前面的函数开始执行标准答案:A80、C语言程序中,运算对象必须是整型数的运算符是(A)% (B)/ (C)* (D)&&标准答案:A81、#include <stdio.h>main(){int sum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf(“%d\n”,pad);}程序的输出结果是(A)7 (B)5 (C)8 (D)6 标准答案:D82、以下四个程序中,完全正确的是(A)#include <stdio.h> main();{/*/ programming /*/printf("programming!\n"); } (B)#include <stdio.h> main(){/* programming */printf("programming!\n"); } (C)#include <stdio.h> main(){/*/* programming */*/printf("programming!\n"); } (D)include <stdio.h>main(){/* programming */printf("programming!\n"); }标准答案:B83、有以下程序#include <stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序运行后的输出结果是(A)1,0 (B)0,0 (C)1,2 (D)3,2标准答案:C84、有以下程序#include <stdio.h>main(){ char a,b,c,d;scanf("%c%c",&a, &b);c=getchar(); d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是(A)12(B)123(C)1234(D)1234标准答案:B85、有以下程序#include <stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf( "%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是(A)输出无定值(B)E,D (C)D,69 (D)E,68标准答案:D86、有以下程序#include <stdio.h>main(){ int a1,a2; char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b 则正确的输入格式是(以下ㄩ代表空格,<CR>代表回车)(A)12a34b<CR> (B)12ㄩa34ㄩb<CR> (C)12,a,34,b<CR> (D)12ㄩaㄩ34ㄩb<CR>标准答案:A87、若变量已正确定义为int型,要通过语句Scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中语法错误的是(注:□代表一个空格符)(A)□□□1,2,3<回车> (B)1□2□3<回车>(C)1,2,3<回车> (D)1,□□□2,□□□3<回车>标准答案:B88、设变量均已正确定义,若通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c和c2赋字符X和Y,以下所示的输入形式正确的是(A)10□X<回车>20□Y<回车>(B)10□X□20□Y<回车>(C)10X<回车>20Y<回车>(D)10□X20□Y<回车>标准答案:C89、设有定义int a; float b;执行scanf(“%2d%f”,&a,&b);语句时,若从键盘输入876 543.0<回车>则a和b的值分别是(A)76和543.0(B)87和543.0(C)876和543.0(D)87和6.0标准答案:D90、有如下程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y)其输出结果是(A)123.141593 (B)12 3.141593 (C)123.1415930 (D)12,3.141593标准答案:A91、若有定义:int a,b;通过语句scanf(“%d;%d”,&a,&b);能把整数3赋值给变量a,5赋值给变量b的输入数据是(A)35 (B)3 5 (C)3,5 (D)3;5标准答案:D92、阅读以下程序#include <stdio.h>main(){ int case;float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&printF);printf(“%d %f\n”,case,printF);}该程序在编译时产生错误,其出错原因是(A)定义语句出错,case是关键字,不能用作用户自定义标识符(B)定义语句出错,scanf不能作为输入函数使用(C)定义语句出错,printf不能输出擦色的值(D)定义语句出错,printF不能用作用户自定义标识符标准答案:A93、若有定义int a;float b;double c;程序运行时输入:3 4 5<回车>能把3输入给变量a、4输入给变量b、5输入给变量c的语句是(A)scanf(“%d%f%f”,&a,&b,&c);(B)scanf(“%d%lf%lf”,&a,&b,&c);(C)scanf(“%lf%lf%lf”,&a,&b,&c);(D)scanf(“%d%f%lf”,&a,&b,&c);标准答案:D94、设有定义double a,b,c;若要求通过分别给a、b、c输入1、2、3,输入形式如下(注:此处□代表一个空格)则能进行正确输入的语句是(A)scanf(“%f%f%f”,&a,&b,&c); (B)scanf(“%lf%lf%lf”,a,b,c);(C)scanf(“%5.11lf%5.11lf%5.11lf”,&a,&b,&c); (D)scanf(“%lf%lf%lf”,&a,&b,&c);标准答案:D95、以下叙述中正确的是(A)scanf和printf是C语言提供的输入和输出语句(B)由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定(C)由printf输出的数据都隐含左对齐(D)赋值语句是一种执行语句,必须放在函数的可执行部分标准答案:D96、以下叙述中正确的是(A)在使用scanf函数输入整型或实数时,输入数据之间只能用空格来分隔(B)在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上(C)使用printf函数无法输入百分号%(D)在printf函数中,各个输出项只能是变量标准答案:B97、以下叙述中正确的是(A)复合语句也被称为语句块,它至少要包含两条语句(B)在scanf函数的格式中,必须有与输入项一一对应的格式说明(C)scanf函数中的字符串,是提示程序员的。
全国计算机等级考试二级C语言笔试试题及答案
全国计算机等级考试二级C语言笔试试题及答案一、选择题(每小题2分,共70分)(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是 A)编译程序B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是A)提高耦合性降低内聚性有利他哦高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为A)选择C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)对C++编译器区分重载函数无任何意义的信息是A)参数类型B)参数个数C)返回值类型D)常成员函数关键字coast(12)有如下类定义和变量定义:class A{publie:A(){data=0;}~A(){}int GetData () coast { return data;}void SetData(int n) {data=n;}private:int data;};ccnst A a;A b;下列函数调用中错误的是A)a .GetData();B)a .SetData(10);C)b .GetData();D)b .SetData(10);(13)有如下类定义和变量定义:class Parents{public:int publicuata;private:int privateData;};class ChildA:public Parents{/*类体略*/};class ChildB:private Parents{/*类体略*/);ChildA a;ChildBb;下列语句中正确的是A)cout<<a.publicData <<endl ;B)cout<<a.privateData <<endl ;C)cout<<b.publicData <<endl ;D)cout<<b.privateData <<endl ;(14)运算符重载时不需要保持的性质是A)操作数个数B)操作数类型C)优先级D)结合性(15)下列关于函数模板的描述中,错误的是A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D)模板参数表不能为空(16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是 A)ifstream fin=ifstream.open(“file.dat”);B)ifstream*fir.=new ifstream(“file.dat”);C)ifstream fin; fin.open(“file.dat”);D)ifstream *fin=new ifstream();fin一>open(“file.dat”);(17)下列描述中,不属于面向对象思想主要特征的是A)封装性B)跨平台性C)继承性D)多态性(18)有如下程序段:Tnt i=4;int j=l;int main(){int i=8,j=i;cout<<i<<j<<endl;}运行时的输出结果是A)44B)41C)88D)81(19)有如下程序段:int i=5;while(int i=0){cout《'*';i--;}运行时输出“*”的个数是A)0B)1C)5D)无穷(20)己知有数组定义char a[3][4];下列表达式中错误的是A)a[2]=“WIN”B)strcpy(a[2],“WIN”)C)a [2][3]='W'D)a[0][1]=a[0][1](21)已知函数fun的原型为int fun(int,int,int);下列重载函数原型中错误的是A)char fun(int,int);B)double fun(int,int,double);C)int fun(int,char*);D)float fun (int, int, int);(22)建立一个类对象时,系统自动调用A)析构函数B)构造函数C)静态函数D)友元函数(23)通过派生类的对象可直接访问其A)公有继承基类的公有成员C)私有继承基类的公有成员D)私有继承基类的私有成员(24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为A)a .orerator++(1)B)operator++(a)C)operator++(a,l)D)a.operator++()(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是A)()B)[ ]C)< >D){ }(26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 A)ios_base::inB)ios_base::in|ios_base::outC)ios_base::outD)ios_base::in&ios_base::out(27)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCD{char* a;int b;public:XCD(char* aa, int bb){a=new char[strlen(aa)+1];strcpty(a,aa);b=bb;}Char* Geta (){return a;)int Getb(){ return b;}};int main(){char *pl=“abcd”,*p2=“weirong”;int dl=6, d2=8;XCD x(pl,dl),Y(p2,d2);cout<<strien (x .Geta())+y. Getb()+endl;return 0;}运行时的输出结果是A)12B)16C)14D)11(28)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCF{int a;XCF(int aa=0):a (aa){cout<<“1”;}XCF(XCF& x){a=x .a; cout<<“2”;)~XCF(){cout<<a;}int Geta(){return a;}};int main(){XCF dl(5),d7 (dl);XCF *pd=new XCF(8);cout<<pd一>Geta();delete pd;return 0;}运行时的输出结果是A)121SS88B)12188SSC)12185D)128512(29)已知类MyClass声明如下:class MyClass{int n;public;MyClass(int k):n(k){}int getValue()const{return n;}};在下列数组定义中正确的是A)MyClass x1[2];B)MyClass x2[2]={new MyClass(1),new MyClass(2)};C)MyClass *x3[2];D)MyClass *x4[2]={MyClass(1),MyClass(2)};(30)有如下程序:#include<iostream>using namespace std;class AA{lilt k;protected:int n;void setK(int k){ this->k=k;}public:void setN(int n){ this->n=n;}};class BB: public }{/*类体略*/};int main(){BB x_ ; //1x .n=1; //2x.setN (2); //3x.k=3; //4x .setK(4);return 0;}在标注号码的四条语句中正确的是A)1B)2C)3D)4(31)有如下类定义:class XX{int xx;public:XX():xx(0){cout<<' A';}XX(int n):xx ( n){tout<<' B';}};Class YY:public XX{Int yy;public:YY():yy ( 0){cout+yy;}YY(int n):XX(n+1),yy(n){cout<<yy;}YY (int m, int n):XX (m),yy(n){cout<<yy;} };下列选项中,输出结果为A0的语句是A)YY y1(0,0);B)YY y2(1);C)YY y3(0);D)YY y4;(32)有如下程序:#include<iostream>Using namespace std;class A{public:virtual void f(){cout+1;}void g(){cout<<2;}};class B:public A{public:virtual void f(){cout<<3;}void g(){ecut<<4;}};void show(A &a){a.f();a.g();}int main(){B b;show(b);return 0;}运行时的输出结果是A)12B)34C)14D)32(33)有如下程序:#include<iostream>using namespace std;class Pair{int m;int n;public:boot operator >(pair p)const; //须在类体外给出定义};int main(){Pair Al(3,4),p2(4,3);p3(4,5);Cout<<(pl>p2)<<(P2>P1)<<(p2>p3)<<(p3>p2);return 0;}运算符函数。
二级C语言 5套 选择题的副本
(1)下列叙述中错误的是A)在带链队列中,队头指针和队尾指针都是在动态变化的B)在带链栈中,栈顶指针和栈底指针都是在动态变化的C)在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D)在带链队列中,队头指针和队尾指针可以指向同一个位置答案:B【解析】带链的队列就是用一个单链表来表示队列,队列中的每一个元素对应链表中的一个节点,在入队和退队过程中,队头指针和队尾指针都是在动态变化的,A选项叙述正确,循环队列中当队列满或者空时,队头指针和队尾指针指向同一个位置,D选项叙述正确。
栈也可以采用链式存储结构表示,把栈组织成一个单链表,这种数据结构可称为带链的栈,入栈和退栈过程中栈底指针不变,栈顶指针随之变化,B选项叙述错误,C选项叙述正确。
故选择B选项。
(2)某二叉树共有12个结点,其中叶子结点只有1个。
则该二叉树的深度为(根结点在第1层)A)3B)6C)8D)12答案:D【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,n0=1,则n2=0,总节点数为12=n0+n1+n2=1+n1+0,则度为1的节点数n1=11,故深度为12,选D。
(3)A)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ答案:C【解析】前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
前序遍历描述为:若二叉树为空,则执行空操作。
否则:①访问根结点;②前序遍历左子树;③前序遍历右子树,C正确。
(4)对长度为n的线性表作快速排序,在最坏情况下,比较次数为A)nB)n-1C)n(n-1)D)n(n-1)/2答案:D【解析】快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较(n-1)+(n-2)+…+1=n(n-1)/2,选D。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一份1、以下叙述错误的是(B)。
A、C源程序必须包含一个main()函数。
B、语句必须在一行内写完。
C、以一对“/*”和“*/”为定界符括起来的文字为注释部分。
D、所有语句都必须以分号“;”结束。
2、整型常量三种表示形式中不含(D)。
A、十进制B、八进制C、十六进制D、二进制3、以下表达式中,(B)无法正确表示右图所示的代数式:(a+b)(a-c)/3a (a <> 0)A、(a+b)/a*(a-c)/3B、(a+b)*(a-c)/3*aC、(a+b)*(a-c)/(3*a)D、(a+b)/(3*a)*(a-c)4、运算符(C)不能用于非整型数据运算。
A、/B、+C、%D、*5、(A)可产生(0,0.9)之间的随机数。
A、rand()%10/10.0B、srand()%10/10.0C、srand()*10%10D、rand()%10/106、能正确表示2<t<10的逻辑表达式是(D)。
A、2<t<10B、10>t>2C、t>2 || t<10D、t>2 && t<107、定义:int a=1,b=2,c ; 语句c=1.0/b*4; 执行后,变量 c的值为(2)。
8、以下程序段的运行结果是(C)。
int x=10,y;if(x>20)y=9;else if(x>10)y=6;else if(x>5)y=3;elsey=1;printf(“%d\n”,y);A、9B、6C、3D、19、以下程序段的运行后sum的值为(D。
int i,j ,sum=0;for(i=1; i<=3;i++) I=1 J=I=1 SUM=2 J=2 SUM=2+1+2=5 J=3 SUM=5+1+3=9 for(j=i; j<=3; j++) I=2 J=2 SUM=9+2+2=13 J=3 SUM=13+2+3=18sum=sum+i+j; I=3 J=3 SUM=18+3+3=24J=4 I=4A、18B、12C、20D、2410、(B)语句能正确定义a为整型数组。
A、int a[n] ,n=10;B、int a[10];C、int n=10,a[n];D、int a(10)11、以下程序段的运行结果是(C)。
int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,a[0][0]-a[2][3]);A、-1B、10C、-11D、813、以下叙述错误的是(B)。
A、函数体内复合语句中定义的变量只在该复合语句内有效。
B、在一个程序源文件中定义的全局变量,在程序的其它源文件中必不可见。
C、全局变量的作用域是从其定义处起至程序结束处。
D、函数体内定义的变量,其生命期是函数执行期。
14、以下叙述错误的是(A)。
A、宏定义必须放置在它所在的源程序文件的最前面。
B、宏定义中的宏名一般用大写字母表示。
C、宏定义不占用程序运行时间,但与程序中的语句一样需要编译。
D、一个C语言源程序可以有多条预处理命令。
15、若已定义:int a[5], *p=a; 无法引用数组元素a[4]的是()。
A、*p+4B、*(p+4)C、*(&p[0]+4)D、p[4]16、以下程序的运行结果是()。
#include <stdio.h>void main(){char str[]=”abcd”, * p=str;while(*p){(*p)++;p++;}Printf(“%s\n”,str);}A、bcdeB、cdbaC、dcbaD、abcd17、若有如下结构类型定义,以下错误的语句是()。
struct PERSON{int num;char name[10];};A、struct PERSON *p; p->name=”1234”;B、struct PERSON person; person.num=123C、struct PERSON people[100]; (people+5)->num=1234;D、struct PERSON *p;18、以下程序的输出结果是()。
#include <stdio.h>struct Student{ int num, grade;} s[]={{111,80},{112,90},{113,70}};void main(){struct Student *ps=s+2;while(ps>=s){ps->grade+=5;ps--;}printf(“%d\n”,(ps+1)->grade);}A、90B、95C、85D、7019、以下程序段运行后,输出结果是(D)。
int a=2,b=3,c=10;/* a=00000000 00000010 b=00000000 00000011 c=00000000 00001010 */ 00000000 0000000100000000 000001100000000000000111c=(a>>1)| (b<<1);printf(“%d %d %d\n”,a,b,c);A、2 5 7B、2 3 10C、3 2 5D、2 3 720、以下程序的可执行文件名为do.exe。
#include <stdio.h>#include <stdlib.h>void main(int argc,char *argv[]){if(argc!=2){printf(“Bad command found !\n”);exit(1);}printf(“hello %s\n”,argv[1]);getch();}在Dos命令行输入:do me<回车>,则输出结果是()。
A、hello doB、hello meC、Bad command found !D、hello dome第二份2、(B)合法的用户标识符A、h2.7B、_3treeC、8duD、struct3、若已定义:int a, b=3,c ; 则(A)是不正确。
A、c=((2=a)+b);B、b*=b+=2*b;C、c=(a=10,a+=6)D、c=6*b;4、若已定义:float a=1.2 ; int b=3; 则表达式b%5-a的值是( C )A、-1.2B、-0.2C、1.8D、25、若已定义:char c1,c2,c3; 使用语句scanf(“%c%c%c”,&c1,&c2,&c3); 给c1,c2,c3分别赋‘h‟, …u‟, …b‟,正确的输入形式是(C)A、‟h‟…u‟…b‟B、‟h‟, …u‟, …b‟C、hubD、h,u,b6、若已定义:int a; 条件表达式(D )等价于求a的绝对值。
A、a<0?a:-aB、a>0?--a : aC、a>0?-a : aD、a<0?-a:a7、以下运算符优先级最高的是(B)A、>B、+C、=D、==8、若已定义:int a=3, b=2; 以下程序段运行结果是(A)。
if( a==2){ if(b==1){ a+=b;printf(“%d\n”,a);}else{ a-=b;printf(“%d\n”,a);}}elseprintf(“%d\n”,a+3);A、6B、1C、5D、39、以下程序运行后k的值为(D )int i,k=3;for(i=1; i<=5; i++) i=1 k=4 i=2 k=5+2=7 i=3{k+=1;if(k%2==0)continue;k+=2;}A、11B、9C、10D、1210、以下程序段的运行结果是(C)。
int a[3], k=3;a[0]=k;a[1]= a[0]+2;a[2]= a[0]*a[1];printf(“%d\n”,a[2]);A、9B、6C、15D、1211、正确定义二维数据a的语句是(B)A、int a[4,5]B、float a[2+2][5]C、int a(4,3)D、float a[4][];12、若已定义char b[20]=”How do you do!”; 实现输出字符串”do you do!”的语句是( C );A、puts(“%c”,b[20]);B、printf(“%c”,b+4);C、printf( “%s”,b+4);D、puts(“%s”,b);13、以下叙述错误的是(C)。
A、定义函数时必须指明函数名B、函数原型中可以不指明参数的类型C、定义函数时必须指明函数类型D、函数原型中可以不指明参数的名字14、不正确的宏定义命令是(?AC)。
A、#define N*N 100B、#define SUM(x,y) (x+y)C、#define K=100D、#define K 3.1415、若已定义:int a=12, *pa=&a; 以下描述错误的是(C);A、&(*pa)等价于paB、*(&pa)等价于&aC、&pa等价于*(&a)D、*pa等价于a16、以下程序的运行结果是()。
#include <stdio.h>void main(){int a[2][3]={{1,2,3}{4,5,6}}, *p=a[0], *q=p+5;for(; q>=p; q--) printf(“%d”,*q);}A、4 5 6 3 2 1B、1 2 3 4 5 6C、6 5 4 3 2 1D、3 2 1 4 5 617、若已定义:struct teacher{int num;char name[20];}t[50], *p=t;以下对结构变量t1中成员num非法的引用是( )。
A、t[10].numB、(*t)->numC、(p+10)->numD、(*p).num18、若已定义:int a[3]={-3,10,-9}, *p=a+2; 则对数组元素a[1]错误引用的是( ).A、*(--p)B、*(p-1)C、*p--D、p[-1]19、若有以下结构类型定义:typedef struct student{int num ;float score;} STU, * pstu;以下变量声明中,错误的是()。
A、STU *ps;B、student *psC、pstu ps;D、struct student *ps;20、若已定义:int d ; FILE *fp; 要从fp所指向的已经打开的文件中读取一个整数数据到变量d中,正确的语句是( ) .A、scanf(fp, “%d”,d );B、fscanf(fp, “%d”,&d );C、fscanf(fp, “%d”,d );D、fscanf(fp, &d );第三份1、C源程序由函数构成,而函数的基本组成单元是(A)。