国家二级C++机试(选择题)模拟试卷489
选择题
1.下列字符串中可以用作C++标识符的是( )。(D)
A. 2009var
B. goto
C. test_2009
D. _123
解析:标识符是用户为程序中各种需要命名的“元素”所起的名字。标识符的组成要符合一定的规则:
①标识符是一个以字母或下划线开头的,由字母、数字、F划线组成的字符串。
②标识符不能与任意一个关键字同名。
③标识符中的字母区分大小写。
④标识符不宜过长。c++语言一般设定一个标识符的有效长度为32个字符。
由这四条规则可知,选项D)为正确答案。
2.下列叙述中正确的是( )。(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
3.有如下程序:
#include<iostream>
using namespace std;
int main()
{
int*p;
*p=9;
cout<<\\(D)
A. 编译时出现语法错误,不能生成可执行文件
B. 运行时一定输出:The value at p:9
C. 运行时一定输出:The value at p:*9
D. 运行时有可能出错
解析:题目程序中“int,*p;”是定义了一个指针变量p,“*p=9;”是将p当前指向的指针赋为9。指针p在执行这个赋值操作前并没有初始化这个变量p,所以会有p未初始化的警告错误。
4.以下程序的输出的结果是( )。
#include<iostream.h>
int x=3;
void main()
{
void fun();
int i;
for(i=1;i<x;i++)
fun();
}
void fun()
{static int x=1;
x*=x+1;
cout<<x<<’’ ’’;
}(C)
A. 3,3
B. 2,2
C. 2,6
D. 2,5
解析:由主函数入手,在for循环中调用fun函数,其中调用次数为2次。fun中x为静态变量,有效到文件结束,所以第一次调用为x=x*(x+1)=1*(1+1)=2,第二次调用2*(2+1)=6。
5.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次人栈,然后再依次出栈,则元素出栈的顺序是( )。(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDEl2345
D. 54321 EDCBA
解析:栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B。
6.有如下程序:
#include<iostream>
using namespace std;
class Test{
public:
Test(){n+=2;}
~Test(){n-=3;}
static int getNum(){return n;}
private:
static int n;
};
int Test::n=1;
int main()
{
Test*p=new Test;
delete p;
cout<<\\(A)
A. n=0
B. n=1
C. n=2
D. n=3
解析:语句Test*p=new Test;会调用类的构造函数Test() {n+=2;},使n的值由原来的1变为3,然后delete p调用类的析构函数~Test() {n-=3;},因为n是static型变量,所以会在3的基础上减3使得输出结果为0。
7.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(C)
A. log2n
B. n/2
C. n
D. n+1
解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。
8.有如下程序:
#include
using namespace std;
class ONE{
int c;
public:
ONE():c(0){cout<<l;}
ONE(int n):c(n){cout<<2;)
);
class TWO{
ONE onel;
ONE one2;
public:
TWO(int m):one2(m){cout<<3;}
};
int main(){
TWO t(4);
return 0;
)
运行时的输出结果是( )。(C)
A. 3
B. 23
C. 123
D. 213
解析:由类TWO的定义可知,其成员为类ONE的两个对象onel和one2。所以在主函数中构建类TWO的对象t(4)时,先后调用类ONE的构造函数ONE():c(0){tout<l<1;}和ONE(int n):c(n){cout<<2;}输出12,然后再调用类TWO的构造函数T’WO(int m):one2(m){cout<<3;},输出3。
9.在E—R图中,用来表示实体的图形是( )。(A)
A. 矩形
B. 椭圆形
C. 菱形
D. 三角形
解析:在E—R图中,用矩形表示实体集,在矩形内写上该实体集的名字:用椭圆形表示属性;用菱形(内部写上联系名)表示联系。
10.有如下程序:
撕nclude
using namespace std;
class AA{
int k;
protected:
int n;
void setK(int k){this一>k=k;}
public:
void setN(int n){this一>n=n;}
};
class BB:public AA{/*类体略*/};
int main()
{
BB x;
本文档预览:3600字符,共9482字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载