- 相关推荐
2016年12月计算机二级C++备考题及答案
为了帮助大家提高计算机考试成绩,今天百分网小编特地为大家收集了以下2016年12月计算机二级C++备考题及答案,欢迎阅读!
单选题一
(1)循环链表的主要优点是
A)不再需要头指针了
B)从表中任一结点出发都能访问到整个链表
C)在进行插入、删除运算时,能更好的保证链表不断开
D)已知某个结点的位置后,能够容易的找到它的直接前件
(2)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是
A)ABCED
B)DCBEA
C)DBCEA
D)CDABE
(3)n个顶点的强连通图的边数至少有
A)n-1
B)n(n-1)
C)n
D)n+1
(4)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的
A)安全性
B)一致性
C)可理解性
D)合理性
(5)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的
A)抽象和信息隐蔽
B)局部化和封装化
C)内聚性和耦合性
D)激活机制和控制方法
(6)软件开发的结构化生命周期方法将软件生命周期划分成
A)定义、开发、运行维护
B)设计阶段、编程阶段、测试阶段
C)总体设计、详细设计、编程调试
D)需求分析、功能定义、系统设计
(7)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是
A)路径的集合
B)循环的集合
C)目标的集合
D)地址的集合
(8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
A)特定的数据模型
B)数据无冗余
C)数据可共享
D)专门的数据管理软件
(9)数据库设计包括两个方面的设计内容,它们是
A)概念设计和逻辑设计
B)模式设计和内模式设计
C)内模式设计和物理设计
D)结构特性设计和行为特性设计
(10)实体是信息世界中广泛使用的一个术语,它用于表示
A)有生命的事物
B)无生命的事物
C)实际存在的事物
D)一切事物
参考答案:
(1)B
解析: 循环链表就是将单向链表中最后一个结点的指针指向头结点,使整个链表构成一个环形,这样的结构使得从表中的任一结点出发都能访问到整个链表。
(2)B
解析: 栈操作原则上"后进先出",栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。
(3)C
解析: 在有向图中,若任意两个顶点都连通,则称该图是强连通图,这样的有向图的形状是环状,因而至少应有n条边。
(4)C
解析: 结构化程序设计方法设计出的程序具有明显的优点。其一,程序易于理解、使用和维护;其二,提交了编程工作的效率,降低了软件开发成本。其中,人们更重视前者。
(5)C
解析: 模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。
(6)A
解析: 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。
(7)A
解析: 软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
(8)A
解析: 在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。
(9)A
解析: 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的设计内容。
(10)C
解析: 实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。
单选题二
(1)以下都是C++语言标识符的是
A)dsfa,df4,f$
B)huhj,a^,k2
C)3k,h,j_9
D)_ok,jk,k8
(2)C++语言中用于定义类的关键字是
A)class
B)struct
C)default
D)sizeof
(3)设以下变量均为int类型,则值不等于7的表达式是
A)(x=y=6,x+y,x+1)
B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)
D)(y=6,y+1,x=y,x+1)
(4)以下程序的输出结果是
#include
void main()
{ int a=21,b=11;
cout << --a+b;}
A)30
B)31
C)32
D)33
(5)while 和do-while循环的主要区别是
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件更严格
C)do-while允许从外部转到循环体内
D)do-while 的循环体不能是复合语句
(6)与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是
A)if (x>0)y=1;
else if(x<0)y=-1;
else y=0;
B)if(x)
if(x>0)y=1;
else if(x<0)y=-1;
C)y=-1;
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D)y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
(7)若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上)
A)i*m+j
B)j*m+i
C)i*m+j-1
D)i*m+j+1
(8)下面程序段的运行结果是
#include
void main()
{ char *s="abcde";
s+=2;
cout << &s;}
A)cde
B)字符′c′
C)字符′c′的地址
D)无确定的输出结果
(9)下面叙述不正确的是
A)派生类一般都用公有派生
B)对基类成员的访问必须是无两义性的
C)赋值兼容规则也适用于多重继承的组合
D)基类的公有成员在派生类中仍然是公有的
(10)下面程序应能对两个整型变量的值进行交换。以下正确的说法是
#include
void swap(int p,int q)
{ int t;
t=p;
p=q;
q=t;}
void main()
{ int a=10,b=20;
cout << a << " " << b;
swap(&a,&b);
cout << a << " " << b;}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D)以上说法都不对
答案解析:
(1)D
解析: C++语言标识符只能由数字,字母和下划线组成,并且只能以字母和下划线为开头。
(2)A
解析: C++中类定义的关键字是class。class不能大写。
(3)C
解析: C++语言中逗号","也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:表达式1, 表达式2,其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,…,表达式n,它的值为表达式n的值。
(4)B
解析: 自减运算符位于变量之前时,先使变量的值减1,再进行运算。
(5)A
解析: while是先判断条件再执行语句;do-while则是先执行一次语句再判断条件,从而决定是否继续再执行循环体中的语句,这正是二者主要区别。
(6)A
解析: 条件运算符要求有三个操作对象,它是C++语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3,先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。本题中用了两次三目运算符。
(7)A
解析: a[i][j]元素之前有i行元素(每行有m个元素),在a[i][j]的前面还有j个元素,因此a[i][j]之前共有i*m+j个元素。
(8)C
解析: 对于字符串指针,其保留的是整个串的首地址,即为第一个字符的起始地址,当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。
(9)D
解析: C++语言中如果基类的成员是公有的,它被继承后在子类中该成员可能是公有的,也可能不是,主要看继承的权限。
(10)D
解析: 本题应该把swap()函数改成这样:swap(int *p,int *q){int t; t=*p;*p=*q;*q=t;}执行程序时,先将a的地址传递给指针变量p,b的地址传递给指针变量q,然后将*p(a的值)的值传递给t,将*q(b的值)传递给*p,将t的值传递给*q,从而将a值和b值互换。
【12月计算机二级C++备考题及答案】相关文章: