国家二级C++机试(选择题)模拟试卷200
选择题
1.下列关于栈叙述正确的是(A)
A. 栈顶元素能最先被删除
B. 栈顶元素最后才能被删除
C. 栈底元素永远不能被删除
D. 以上三种说法都不对
解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。
2.下列选项中不属于结构化程序设计方法的是( )。(D)
A. 自顶向下
B. 逐步求精
C. 模块化
D. 可复用
解析:结构化程序设计方法的主要原则可以概括为:自项向下,逐步求精,模块化,限制使用goto语句。自顶向下是指程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。逐步求精是指对复杂问题应设计一些子目标过渡,逐步细化。模块化是把程序要解决的总目标先分解成分目标,再进一步分解成具体的小目标,把每个小目标称为一个模块。可复用性是指软件元素不加修改成稍加修改便可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要力法,不属于结构化程序设计方法。
3.对数组名作函数的参数,下面描述正确的是( )。(B)
A. 数组名作函数的参数,调用时将实参数组复制给形参数组
B. 数组名作函数的参数,主调函数和被调函数共用一段存储单元
C. 数组名作参数时,形参定义的数组长度不能省略
D. 数组名作参数,不能改变主调函数中的数据
解析:数组作为参数实参传递的是数组的首地址。所以主调函数和被调函数共用一段存储单元。
4.有如下程序:
#include
using namespace std;
class Pair{
int m,n;
public:
Pair(int j,int k):m(j),n(k){}
int get(){retum m;}
int get()const{retum m+n;}
};
int main(){
Pair a(3,5);
const Pair b(3,5);
cout<<a.get()<<b.get();
return 0;
}
运行时的输出结果是( )。(B)
A. 33
B. 38
C. 83
D. 88
解析:在主函数中定义了类Pair的一个实例变量a,并分别对实例变量a的数据成员m,n赋初值3,5。所以调用a.get()成员函数时,输出3。又定义类Pair的一个常实例变量b,并分别对实例变量b的数据成员m,n赋初值3,5。所以调用成员函数b.get()时,输出8。
5.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。
6.在关系模型中,每一个二维表称为一个( )。(A)
A. 关系
B. 属性
C. 元组
D. 主码(键)
解析:每个二维表代表一个关系,由表框架及表的元组组成。
7.下列描述中,错误的是( )。(C)
A. 公有继承时基类中的公有成员在派生类中仍是公有成员
B. 公有继承时基类中的保护成员在派生类中仍是保护成员
C. 保护继承时基类中的公有成员在派生类中仍是公有成员
D. 保护继承时基类中的保护成员在派生类中仍是保护成员
解析:保护继承时基类中的公有成员在派生类中是保护成员。
8.在开发一个C++程序的整个过程中,第3个步骤为( )。(A)
A. 链接
B. 运行
C. 编辑
D. 编译
解析:C++程序的开发过程是编辑、编译、链接、运行和调试。
9.下列有一维数组a的定义中,语法正确的是( )。(D)
A. int a(10);
B. int n=7,a[n];
C. int n;cin>>n;int a[n];
D. const int size=10;int a[size];
解析:定义一维数组的一般格式为:
类型标识符数组名[常量表达式];
常量表达式的值表示元素的个数,即数组长度。常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。也就是说,C++不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
10.有如下程序:
#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];
strcpy(a,aa);
b=bb;
}
char* Geta(){return a;}
int Getb(){return b;}
};
int main(){
char *p1=\\(A)
A. 12
B. 16
C. 14
D. 11
解析:由类XCD的定义可知,成员函数Geta()返回的是字符串的长度,Getb()返回的是参数b的值。在主函数中strlen(x.Geta())的值等于4,y.Getb()的值等于8,所以输出两者的和为12。
11.有如下程序:
#include
#include
using namespace std;
class XCD{
char*a:
int b;
public:
XCD(char*aa,int bb){
a-new char[strlen(aa)+1];
strcpy(a,aa);
b=bb;
}
char*Geta(){return a;}
int Getb(){return b;}
};
int main(){
char*p1=ˊˊabedˊˊ,*p2=ˊˊweirongˊˊ;
int d1=6,d2=8;
XCD x(p1,d1),y(p2,d2);
cout<<strlen(x.Geta())+y.Getb()<<endl;
本文档预览:3600字符,共6056字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载