国家二级(C++)机试模拟试卷292
选择题
1.有如下程序:
int x=3:
do{
x-=2:
cout<<x;
}while(!(–x));
执行这个程序的输出结果是( )。(C)
A. 1
B. 3 0
C. 1-2
D. 死循环
解析:本题考查do…while语句,执行do…while语句时,先执行循环体内的语句,然后判断while中表达式的值,表达式为非零时,返回重新执行循环体语句。存本题中,先执行循环体内的语句,输出1,然后判断表达式,为非零,且此时x为0;再次执行循环体时,输出-2,然后判断表达式为0,不执行,退出,所以答案为C。
2.以下程序的执行结果是( )。
#include
int fun(int b[],int n)
{
int i,r==l;
for(i=0;i<n;i++)
r=r,b[i];
return r;
}
void main()
{
int x,a[]={1,2,3,4,5,6,7,8);
x=fun(a,3);
cout<<x<<endl;
}(B)
A. 5
B. 6
C. 7
D. 8
解析:由程序的main函数入手,调用fun函数,其中参数为数组a和3。如n函数的功能是for循环中由第一个数组元素开始到第三个元素进行累积。
3.有如下类声明:
class SAMPLE
{
int n;
public:
SAMPLE(int i=0):n(i){}
void setValue(int n0);
};
下列关于getValue成员函数的定义中,正确的是( )。
B
解析:本题考查在类外定义类的成员函数,需要使用作用域限定符“::”,属于基础知识,本题答案为B。
4.有如下程序:
#include
using namespace std;
class Base
{
public:
void fun1(){cout<<\\(B)
A. Base
Base
B. Base
Derived
C. Derived
Base
D. Derived
Derived
解析:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个派生类对象obj,执行f函数后,将派生类对象obj转化为基类对象,由于fun1不是虚函数,所以输出基类的fun1;而fun2是虚函数,所以输出派生类的fun2,所以本题答案为B。
5.下列运算符不能重载为友元函数的是( )。(A)
A. = () [] ->
B. + – ++ —
C. > = <=
D. += -= *= /=
解析:此题考查的是运算符重载的概念。C++语言规定,=、[]、()、->以及所有的类型转换运算符只能作为成员函数重载,如果要重载为友元函数就必须重载为非成员函数。
6.下面关于算法的叙述中,正确的是( )。(B)
A. 算法的执行效率与数据的存储结构无关
B. 算法的有穷性是指算法必须能在执行有限个步骤之后终止
C. 算法的空间复杂度是指算法程序中指令(或语句)的条数
D. 以上三种描述都正确
解析:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤以后结束。
7.下列叙述中正确的是( )。(D)
A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定
解析:循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中需要队头指针与队尾指针来共同反映队列中元素的动态变化情况,所以B与c错误。
8.数据库系统在其内部具有3级模式,用来描述数据库中全体数据的全局逻辑结构和特性的是 ( )。(B)
A. 外模式
B. 概念模式
C. 内模式
D. 存储模式
解析:概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户应用公共数据视图。它不涉及具体的硬件环境与平台,与具体的软件环境也无关。
9.在学校中,“班级”与“学生”两个实体集之间的联系属于( )关系。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。
10.下面关于虚函数的描述中,正确的是( )。(A)
A. 基类中利用virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加virtual来说明
B. 虚函数是非成员函数
C. 虚函数是static类型的成员函数
D. 派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型
解析:虚函数是非static类型的成员函数,基类中可以利用Virtual关键字来声明虚函数,派生类中定义相同原型函数时可不必加virtual说明,直接重写基类中的函数。在派生类中的虚函数必须与基类中的虚函数具有相同的参数个数与类型。
11.下面关于函数模板的表述中不正确的是( )。(C)
A. 类模板的成员函数都是模板函数
B. 类模板本身在编译过程中不会产生任何代码
C. 类模板只能有虚拟类型的参数
D. 用类模板定义一个对象时,实参不能省略
解析:类模板本身在编译时是不会产生代码的,只有在其实例化以后才产生代码。定义一个对象时,不能省略其实参。
12.有如下程序:
#include
using namespaee std;
class Base{
proteeted:
Base(){eout<<’A’;}
Base(char c){eout<<c;}
};
class Derived:public Base{
public:
Derived(char c){Cotlt<<C;}
本文档预览:3600字符,共19702字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载