笔试部分
一、选择题
1.串的长度是( )
A.串中不同字符的个数
B.串中不同字母的个数
C.串中所含字符的个数且字符个数大于零
D.串中所含字符的个数
【参考答案】 D
2.以下不属于对象的基本特点的是( )
A.分类性 B.多态性 C.继承性 D.封装性
【参考答案】 C
3.下面不属于软件设计原则的是( )
A.抽象 B.模块化 C.自底向上 D.信息隐蔽
【参考答案】 C
4.下列SQL语句中,用于修改表结构的是( )
A.ALTER B.CREATE C.UPDATE D.INSERT
【参考答案】 A
5.关系模型允许定义3类数据约束,下列不属于数据约束的是( )
A.实体完整性约束 B.参照完整性约束
C.域完整性约束 D.用户自定义的完整性约束
【参考答案】 C
6.非空的循环单链表head的尾结点(由p所指向),满足( )
A.p->next==NULL B.p==NULL
C.p->next=head D.p=head
【参考答案】 C
7.对建立良好的程序设计风格,下面描述正确的是( )
A.程序应简单、清晰、可读性好 B.符号名的命名只要符合语法
C.充分考虑程序的执行效率 D.程序的注释可有可无
【参考答案】 A
8.在软件生产过程中,需求信息的给出是( )
A.程序员 B.项目管理者 C.软件分析设计人员 D.软件用户
【参考答案】 D
9.NULL是指( )
A.0 B.空格 C.未知的值或无任何值 D.空字符串
【参考答案】 C
10.下列说法中,不属于数据模型所描述的内容的是( )
A.数据结构 B.数据操作 C.数据查询 D.数据约束
【参考答案】 C
.
www.59wj.com
11.C++语言中标点符号中表示一条预处理命令开始的是( )
A.# B.; C.* D.{
【参考答案】 A
12.sizeof(float)是( )
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
【参考答案】 B
13.设有程序段
int k=10;
while(k=0)k=k-1;
则下面描述中正确的是( )
A.循环执行10次 B.无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
【参考答案】 C
14.以下不正确的定义语句是( )
A.double x[5]={2.0,4.0,6.0,8.0,10.0};
B.int y[5]={0,1,3,5,7,9};
C.char c1[]={′1′,′2′,′3′,′4′,′5′};
D.char c2[]={′\x10′,′\xa′,′\x8′};
【参考答案】 B
15.下列函数的运行结果是( )
#include
int f(int a,int b)
{ int c;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);}
void main()
{ int i=2,j=3;
int p=f(i,j);
cout<
A.-1 B.1 C.2 D.编译出错,无法运行
【参考答案】 A
16.关于静态数据成员的描述中正确的是( )
A.类的静态数据成员不是类的所有对象共享的数据
B.类的静态数据成员不能被类的成员函数调用
C.类的静态数据成员不能被类的构造函数调用
D.类的静态数据成员必须进行初始化
【参考答案】 D
.
www.59wj.com
17.下表正确的是( )
类中的访问属性 访问修饰符 在子类中的访问属性
A. public private 不能直接访问
B. protect public public
C. private public 不能直接访问
D. protect private protect
【参考答案】 C
18.下列运算符中全都可以被友元函数重载的是( )
A.=,+,-,\ B.[],+,(),new C.->,+,*,>> D.<<,>>,+,*
【参考答案】 D
19.对于下面的程序
ifstream fin(c:\test.txt);
if(fin)
cout<<″ok″;
else
cout<<″wrong″;
对于if语句中的内容可以换为( )
A.fin.fail(); B.fin.bad(); C.fin.good(); D.fin.eof();
【参考答案】 C
20.不合法的main函数命令行参数表示形式是( )
A.main(int a,char *c[])
B.main(int arc,char **arv)
C.main(int argc,char *argv)
D.main(int argv,char *argc[])
【参考答案】 C
21.下面叙述不正确的是( )
A.基类的保护成员在派生类中仍然是保护的成员
B.基类的保护成员在公有派生类中仍然是保护的
C.基类的保护成员在私有派生类中仍然是私有的
D.对基类成员的访问必须是无二义性
【参考答案】 A
.
www.59wj.com
22.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处填入的选项是( )
#include
void main()
{ int a,b,t;
cin>>a>>b;
while(________)
{ if(a>b)
{ t=a;a=b;b=t}
cout<
cin>>a>>b;
} }
A.!a=b B.a!=b C.a==b D.a=b
【参考答案】 B
23.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )
A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型 D.引进了类和对象的概念
【参考答案】 D
24.设有定义int x;float y;,则10+x+y值的数据类型是( )
A.int B.double C.float D.不确定
【参考答案】 C
25.下面程序的运行结果为( )
#include
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{a++;}
cout<
}
A.10 B.11 C.12 D.0
【参考答案】 C
.
www.59wj.com
26.下面关于数组的初绐化正确的是( )
A.char str[]={′a′,′b′,′c′}
B.char str[2]={′a′,′b′,′c′}
C.char str[2][3]={{′a′,′b′},{′c′,′d′},{′e′,′ f′}}
D.char str()={′a′,′b′,′c′}
【参考答案】 A
27.决定C++语言中函数的返回值类型的是( )
A.return语句中的表达式类型 B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型 D.在定义该函数时所指定的数据类型
【参考答案】 D
28.下列程序的运行结果为( )
#include
void print(double a)
{cout<<++a;}
void print(int a,int b)
{cout< void main()
{
print(1,2);
cout<<″ ″;
print(3,4);
}
A.1.2 34 B.2.2 34 C.1.2 43 D.2.2 43
【参考答案】 D
29.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初实化并执行其他内部管理操作的函数是( )
A.友元函数 B.虚函数 C.构造函数 D.析构函数
【参考答案】 C
.
www.59wj.com
30.下列说法正确的是( )
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
【参考答案】 B
31.下面对于友元函数描述正确的是( )
A.友元函数的实现必须在类的内部定义
B.友元函数是类的成员函数
C.友元函数破坏了类的封装性和隐藏性
D.友元函数不能访问类的私有成员
【参考答案】 C
32.下面程序的运行结果为( )
#include
class A
{public:
A(){cout<<″1″;}
~A(){cout<″2″;}};
class B:public A
{public:
B(){cout<<″3″;}
~B(){cout<<″4″;}};
void main()
{B b;}
A.1234 B.1324 C.1342 D.3142
【参考答案】 C
33.下列关于多态性的描述,错误的是( )
A.C++语言中的多态性分为编译时的多态性和运行时的多态性
B.编译时的多态性可通过函数重载实现
C.运行时的多态性可通过模板和虚函数实现
D.实现运行时多态性的机制称为动态绑定
【参考答案】 C
34.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )
A.ios::in B.ios::out C.ios::in|ios::out D.以上都不对
【参考答案】 D
.
www.59wj.com
35.下面程序的输出结果是( )
#include
class example
{
int a;
public:
example(int b){a=b++;}
void print(){a=a+1;cout<
void print() const{cout<
};
void main()
{
example x(3);
const example y(2);
x.print();
y.print();
}
A.2 2 B.4 3 C.4 2 D.3 2
【参考答案】 C
.
www.59wj.com
二、填空题
1.用树结构表示实体类型及实体间联系的数据模型称为【1】。
【参考答案】
【1】层次模型
2.数据流图的类型有【2】和事务型。
【参考答案】
【2】变换型
3.在最坏情况下,堆排序需要比较的次数为【3】。
【参考答案】
【3】O(nlog2n)
4.软件开发环境是全面支持软件开发全过程的【4】集合。
【参考答案】
【4】软件工具
5.冒泡排序算法在最好的情况下的元素交换次数为【5】。
【参考答案】
【5】0
6.C++语言标识符是以字母或【6】开头的,由字母,数字和下划线组成的字符串。
【参考答案】
【6】下划线
7.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。
int mystrlen(char *str)
{ int i;
for(i=0;【7】!=′\0′;i++);
return(i);}
【参考答案】
【7】*(str+i)或str[i]
8.如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是【8】。
【参考答案】
【8】类的成员对象
.
www.59wj.com
9.C++在重载运算符中,如用成员函数重载一元运算符参数表中需要【9】个参数,如用友元函数重载一元运算符参数表中需要【10】个参数。
【参考答案】
【9】0 【10】1
10. 假设int a=1,b=2;,则表达式(++a/b)*b--的值为【11】。
【参考答案】
【11】2
11.C++语句const char *const p=″hello″;,所定义的指针p和它所指的内容都不能被【12】。
【参考答案】
【12】改变
12.对于下面定义的类MyClass,请在函数f()中添加对象成员把n的值修改为50。
class MyClass
{
public:
MyClass(int x){n=x;}
void SetNum(int nl){n=nl;}
private:
int n;
};
int f()
{
MyClass *ptr=new MyClass(45);
【13】
}
【参考答案】
【13】ptr->SetNum(50);
13.表达式operator+(x,y)还可以表示为【14】。
【参考答案】
【14】x+y
14.通过使用new和delete两个运算符进行的分配为【15】存储分配。
【参考答案】
【15】动态
.
www.59wj.com
上机部分
一、改错题
使用VC6打开考生文件夹下的工程kt4_1,此工程包含一个源程序文件kt4_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
1:
weight:5
age:0
2:
weight:7
age:9
源程序文件kt4_1.cpp清单如下:
#include
classanimal
{
public:
/****************found*******************/
friendvoidsetvalue(animal&,int);
/****************found*******************/
viodprint();
protected:
intitsweight;
intitsage;
};
voidanimal::print()
{
cout<<"weight:"< cout<<"age:"< } voidsetvalue(animal&ta,inttw) { ta.itsweight=tw; ta.itsage=0; }
.
如果觉得《2017年全国计算机等级考试二级C++模拟试题(4)》二级C++模拟试题,jsj不错,可以推荐给好友哦。