计算机类 二级 C++
全国计算机等级考试 二级C++ 笔试模拟试题(二) 48 题 含答案 C++
1 单选题 1 / 48
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A log2n B n2 C O(n1.5) D n(n-1)/2
查看答案 D. n(n-1)/2
2 单选题 2 / 48
算法分析的目的是
A 找出数据结构的合理性 B 找出算法中输入和输出之间的关系 C 分析算法的易懂性和可靠性 D 分析算法的效率以求改进
查看答案 D. 分析算法的效率以求改进
3 单选题 3 / 48
线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是
A 每个元素都有一个直接前件和直接后件 B 线性表中至少要有一个元素 C 表中诸元素的排列顺序必须是由小到大或由大到小 D 除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
查看答案 D. 除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
4 单选题 4 / 48
在单链表中,增加头结点的目的是
A 方便运算的实现 B 使单链表至少有一个结点 C 标识表结点中首结点的位置 D 说明单链表是线性表的链式存储实现
查看答案 A. 方便运算的实现
5 单选题 5 / 48
软件工程的出现是由于
A 程序设计方法学的影响 B 软件产业化的需要 C 软件危机的出现 D 计算机的发展
查看答案 C. 软件危机的出现
6 单选题 6 / 48
软件开发离不开系统环境资源的支持,其中必要的测试数据属于
A 硬件资源 B 通信资源 C 支持软件 D 辅助资源
查看答案 D. 辅助资源
7 单选题 7 / 48
在数据流图(DFD)中,带有名字的箭头表示
A 模块之间的调用关系 B 程序的组成成分 C 控制程序的执行顺序 D 数据的流向
查看答案 D. 数据的流向
8 单选题 8 / 48
分布式数据库系统不具有的特点是
A 数据分布性和逻辑整体性 B 位置透明性和复制透明性 C 分布性 D 数据冗余
查看答案 D. 数据冗余
9 单选题 9 / 48
关系表中的每一横行称为一个
A 元组 B 字段 C 属性 D 码
查看答案 A. 元组
10 单选题 10 / 48
下列数据模型中,具有坚实理论基础的是
A 层次模型 B 网状模型 C 关系模型 D 以上3个都是
查看答案 C. 关系模型
11 单选题 11 / 48
下列字符串中可以用作C++语言标识符的是
A _1234 B foo~~bar C virtual D 34var
查看答案 A. _1234
12 单选题 12 / 48
关于C++语言与C语言关系描述中错误的是
A C++语言是C语言的超集 B C++语言对C语言进行了扩充 C C++语言包含C语言的全部语法特征 D C++语言与C语言都是面向对象的程序设计语言
查看答案 D. C++语言与C语言都是面向对象的程序设计语言
13 单选题 13 / 48
下列语句的输出结果 cout << strlen("\t\"\065\xff\n");
A 5 B 14 C 8 D 输出项不合法,无正常输出
查看答案 A. 5
14 单选题 14 / 48
在C++语言中,不合法的实型数据的是
A 0.123 B 123e3 C 2.1e3.5 D 123.0
查看答案 C. 2.1e3.5
15 单选题 15 / 48
若有如下语句 #include<iostream.h> void main() { int x=3; do{ x=x-2; cout << x; }while(!(--x)); } 则上面程序段
A 输出的是1 B 输出的是1和-2 C 输出的是3和0 D 是死循环
查看答案 B. 输出的是1和-2
16 单选题 16 / 48
下面有关for循环的正确描述是
A for循环只能用于循环次数已经确定的情况 B for循环是先执行循环体语句,后判断表达式 C 在for循环中,不能用break语句跳出循环体 D for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
查看答案 D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
17 单选题 17 / 48
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是 #include<iostream.h> void main() { int *p,*q,a,b; p=&a; cout << "input a:"; cin >> p; }
A *p表示的是指针变量p的地址 B p表示的是变量a的地址,而不是变量a的值 C *p表示的是指针变量p的值 D *p只能用来说明p是一个指针变量
查看答案 B. p表示的是变量a的地址,而不是变量a的值
18 单选题 18 / 48
假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在内存中所占字节数是
A 3 B 6 C 10 D 20
查看答案 D. 20
19 单选题 19 / 48
有以下程序 #include<iostream.h> void fun(int a,int b,int c) { a=456,b=567,c=678;} void main() { int x=10,y=20,z=30; fun(x,y,z); cout << x << ′,′ << y << ′,′ << z << endl; } 输出结果是
A 30,20,10 B 10,20,30 C 456,567,678 D 678,567,456
查看答案 B. 10,20,30
20 单选题 20 / 48
以下叙述正确的是
A 函数可以嵌套定义但不能嵌套调用 B 函数既可以嵌套调用也可以嵌套定义 C 函数既不可以嵌套定义也不可以嵌套调用 D 函数可以嵌套调用但不可以嵌套定义
查看答案 D. 函数可以嵌套调用但不可以嵌套定义
21 单选题 21 / 48
下列定义中p指向的地址可更改,但*p不能够更改的是
A const int *p; B int * const p; C const int *const p; D int *p;
查看答案 A. const int *p;
22 单选题 22 / 48
下面的语句中错误的是
A int a = 5; int x[a]; B const int a = 5; int x[a]; C int n = 5; int *p = new int [a]; D const int n = 5; int *p = new int [a];
查看答案 A. int a = 5; int x[a];
23 单选题 23 / 48
下面程序的结果是 #include<iostream.h> class A { int a; public: A():a (1){} void showa(){cout << a;} }; class B { int a; public: B():a (2){} void showa(){cout << a;} }; class C : public A, public B { int a; public: C():a (3){} void showa(){cout << a;} }; void main() { C c; c.showa(); }
A 1 B 2 C 3 D 程序有错误
查看答案 C. 3
24 单选题 24 / 48
关于二义性的描述错误的是
A 一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性 B 解决二义性可以用对成员名的限定法 C 父类和子类中同时出现同名函数,也可能存在二义性 D 一个子类是从两个父类派生出来的,而这两个父类又有一个共同的父类,对该父类成员进行访问时,可能出现二义性
查看答案 C. 父类和子类中同时出现同名函数,也可能存在二义性
25 单选题 25 / 48
如果表达式x*y+z中,"*"是作为友元函数重载的,"+"是作为友元函数重载的,则该表达式还可为
A operator+( operator*(x, y),z) B x.operator+( operator*(x, y),z) C y.operator*( operator+(x, y),z) D x.operator+( operator*(x, y))
查看答案 A. operator+( operator*(x, y),z)
26 单选题 26 / 48
函数模板:template<class T> T add(T x,T y){return x+y;} 下列对add函数的调用不正确的是
A add<>(1,2) B add<int>(1,2) C add(1.0,2) D add(1.0,2.0)
查看答案 C. add(1.0,2)
27 单选题 27 / 48
对于语句cout << setfill(′*′)<< setw(10)<< 1 << setfill(′*′)<< setw (2)<< 2;的输出结果是
A *********1*2 B ********12 C *******1*2 D 12********
查看答案 A. *********1*2
28 单选题 28 / 48
this指针是C++语言实现什么的一种机制?
A 抽象 B 封装 C 继承 D 重载
查看答案 B. 封装
29 单选题 29 / 48
有如下程序 #include<iostream.h> int func(int a,int b) { return(a+b);} void main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); cout << r; } 该程序的输出的结果是
A 12 B 13 C 14 D 15
查看答案 D. 15
30 单选题 30 / 48
下列程序的输出结果是 #include<iostream.h> class Myclass{ public:Myclass(int i=0,int j=0) { x=i; y=j; } void show(){cout<<"x="<<x<<""<"y="<<y<<endl;} void show()const{cout<<"x="<<""<<"y="<<y<<endl;} privated: int x; int y; }; void main() { Myclass my1(3,4); const my2(7,8) my1.show();my2.show();}
A x=4 ,y=3;x=7 ,y=8 B x=3 ,y=4;x=7 ,y=8 C x=7 ,y=8;x=4 ,y=3 D x=8 ,y=7;x=7 ,y=8
查看答案 A. x=4 ,y=3;x=7 ,y=8
31 单选题 31 / 48
下列描述中,抽象类的特性是
A 可以说明虚函数 B 可以定义友元函数 C 可以进行构造函数重载 D 不能说明其对象
查看答案 D. 不能说明其对象
32 单选题 32 / 48
在C++语言中,打开一个文件就是将这个文件与一个什么建立关联?
A 流 B 类 C 结构 D 对象
查看答案 A. 流
33 单选题 33 / 48
下列程序的运行结果是 #include<iostream.h> void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } void main() { int a=3, b=6, *x=&a, *y=&b; fun(x,y); cout << a << " " << b; }
A 6 3 B 3 6 C 编译出错 D 0 0
查看答案 B. 3 6
34 单选题 34 / 48
执行语句 for(i=1;i++<4;);,后变量 i 的值是
A 3 B 4 C 5 D 不定
查看答案 C. 5
35 单选题 35 / 48
判断char型变量c是否为小写字母的正确表达式是
A ′a′<=c<=′z′ B (c>=A)&&(c<=z) C (′a′>=c)||(′z′<=c) D (c>=′a′)&&(c<=′z′)
查看答案 D. (c>=′a′)&&(c<=′z′)
36 填空题 36 / 48
在算法正确的前提下,评价一个算法的两个标准是__ 。
查看答案 时间复杂度和空间复杂度
37 填空题 37 / 48
将代数式Z=
转换成程序设计中的表达式为
__ 。
查看答案 SQR(x^2+y^2)/(a+b)
38 填空题 38 / 48
软件危机出现于60年代末,为了解决软件危机,人们提出了__ 的原理来设计软件,这就是软件工程诞生的基础。
查看答案 软件工程学
39 填空题 39 / 48
__ 是数据库设计的核心。
查看答案 数据模型
40 填空题 40 / 48
在关系模型中,把数据看成一个二维表,每一个二维表称为一个__ 。
查看答案 关系
41 填空题 41 / 48
一个C++语言程序的开发步骤通常包括编辑、__ 、链接、运行和调试。
查看答案 编译
42 填空题 42 / 48
若已知a=10,b=20,则表达式!a<b的值为__ 。
查看答案 1
43 填空题 43 / 48
下面程序的运行结果是__ 和__ 。 #include<iostream.h> #define N 10 #define s(x)x*x #define f(x)(x*x) void main() { int i1,i2; i1=1000/s(N); i2=1000/f(N); cout << i1 << " " << i2; }
查看答案 44 填空题 44 / 48
友元类的所有成员函数都是另一个类的__ 。
查看答案 友元函数
45 填空题 45 / 48
__ 是实现C++语言编译时多态性的机制,__ 是实现C++语言运行时多态性的机制。
查看答案 46 填空题 46 / 48
表达式x.operator++()还可写成__ 。
查看答案 ++x
47 填空题 47 / 48
以下程序的输出结果是__ 。 #include<iostream.h> void main() { int a=0; a+=(a=8); cout << a; }
查看答案 16
48 填空题 48 / 48
若要在C盘根目录下作为二进制文件打开文件test.dat,则应该用的语句是__ 。
查看答案 ifstream fin("C:\test.dat" ,ios_binary);`ifstream