国家二级C++机试(选择题)模拟试卷507
选择题
1.下列关于栈的叙述正确的是( )。(B)
A. 栈按“先进先出”组织数据
B. 栈按“先进后出”组织数据
C. 只能在栈底插入数据
D. 不能删除数据
解析:栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照“先进后出”的原则组织数据的。
2.执行语句序列
int x=1,&y=x;
cout<<x<<’一’<<y<<end1;
输出结果为( )。(B)
A. x-x
B. 1-1
C. 1-0
D. 异常
解析:程序中的“int x=1”定义x为int型变量,并赋值为l。语句“&y=x”中“&”为引用运算符,&y=x语句可以理解为y具有x的地址,所以y的值也是1,即输出为:1-1。
3.下列对队列的描述中正确的是( )。(D)
A. 队列属于非线性表
B. 队列按“先进后出”原则组织数据
C. 队列在队尾删除数据
D. 队列按“先进先出”原则组织数据
解析:队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾:允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删除;反之,最后插入的元素将最后才能被删除。因此,队列又称“先进先出”或“后进后出”的线性表。
4.阅读下面程序:
#include<iostream.h>
fun(int a,intb)
{
int c;
c=a+b:
return C;
)
void main()
{
int x=6,y=7,z=8,r;
r=fun((x–,y++,x+y),z–);
cout<<r<<endl;
)
则该程序的输出结果是( )。(C)
A. 11
B. 20
C. 21
D. 31
解析:由主函数入手,定义变量x、y、z,然后调用函数fun,其中的参数为(x–,y++,x+y)的计算结果和z一的计算结果,所以调用fun(13,8)计算结果为21。
5.下面程序的运行结果是( )。
#include<iostream>
using namespace std;
class TestClass
{static int n;
public:
TestClass 0
{
n++;
}
static int test()
{
for(int i=0;i<4;i++)
n++;
return n;
}
};
int TestClass::n=0;
intmain()
{tout<<TestClass::test()<<’’’’;
TestClass c1,c2;
tout<<TestClass::test()<<end1;
return 0;
}(A)
A. 4,10
B. 4,6
C. 0,6
D. 0,4
解析:在主函数中首先调用TestClass中的test函数输出,类中的n为静态数据成员,可以为所有的对象共享这些数据,这里调用后n等于4。定义对象c1,c2调用构造函数后n=6,所以主函数再次执行“cout<<TestClass::test()<<end1;”后,n等于10。
6.若有以下定义,说法错误的是( )。
int a=100,*p=&a;(D)
A. 声明变量p,其中*表示p是一个指针变量
B. 变量p经初始化,获得变量a的地址
C. 变量p只可以指向一个整型变量
D. 变量p的值为100
解析:D是一个指针,用来存储a变量的地址,而100是存储在该地址的一个值用p表示的为*p。
7.有如下程序段:
int i=0,j=1;
int&r=i; ∥@
r=j; ∥②
int*p=&i; ∥③
*p=&r; ∥④
其中会产生编译错误的语句是( )。(A)
A. ④
B. ③
C. ②
D. ①
解析:此题考查的是指针和引用。本题中,语句①是一条合法的引用声明语句,使得变量i被r引用;语句②通过引用r将变量j的值赋给变量i;语句③声明了指针变量p,并初始化指向变量i;语句④中*p代表了变量i的值,要将&r赋给*p,这会使编译器产生类型不符的错误提示。
8.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(C)
A. 编译程序
B. 操作系统
C. 教务管理系统
D. 汇编程序
解析:编译软件、操作系统、汇编程序都属于系统软件,只有c教务管理系统才是应用软件。
9.下面叙述中错误的是( )。(A)
A. 软件测试的目的是发现错误并改正错误
B. 对被调试的程序进行“错误定位”是程序调试的必要步骤
C. 程序调试通常也称为Debug
D. 软件测试应严格执行测试计划,排除测试的随意性
解析:软件测试是为了发现错误而执行程序的过程。软件测试要严格执行测试计划,排除测试的随意性。程序调试通常也称Debug,对被调试的程序进行“错误”定位是程序调试的必要步骤。
10.有如下程序:
#include
using namespace std;
class XA{
int a;
public:
static int b:
XA(int aa):a(aa){b++;)
~XA(){}
int get0{return a;}
);
int XA::b=0;
int main() {
XA d1(2),d2(3);
cout<<d1.get0+d2.get0+XA::b<<endl;
return 0:
}
运行时的输出结果是( )。(C)
A. 5
B. 6
C. 7
D. 8
解析:执行xA类的实例变量d1(2)时,成员函数d1.get()的返回值等于2,xA.b的值等于1,执行xA类的实例变量d2(3)时,成员函数d1.get()的返回值等于3,x
本文档预览:3600字符,共10372字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载