二级C++语言程序设计模拟试题及答案解析17.docx
《二级C++语言程序设计模拟试题及答案解析17.docx》由会员分享,可在线阅读,更多相关《二级C++语言程序设计模拟试题及答案解析17.docx(45页珍藏版)》请在冰豆网上搜索。
![二级C++语言程序设计模拟试题及答案解析17.docx](https://file1.bdocx.com/fileroot1/2022-11/27/736a4417-5c73-4d5d-9dca-b7a153977396/736a4417-5c73-4d5d-9dca-b7a1539773961.gif)
二级C++语言程序设计模拟试题及答案解析17
二级C++语言程序设计模拟试题及答案解析(17)
(1/40)单项选择题
第1题
下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除
B.栈顶元素最后才能被删除
C.栈底元素永远不能被删除
D.栈底元素最先被删除
下一题
(2/40)单项选择题
第2题
下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.以上说法都不正确
上一题下一题
(3/40)单项选择题
第3题
某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3
B.4
C.6
D.7
上一题下一题
(4/40)单项选择题
第4题
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( )。
A.学生成绩管理系统
B.C语言编译程序
C.UNIX操作系统
D.数据库管理系统
上一题下一题
(5/40)单项选择题
第5题
结构化程序所要求的基本结构不包括( )。
A.顺序结构
B.GOTO跳转
C.选择(分支)结构
D.重复(循环)结构
上一题下一题
(6/40)单项选择题
第6题
下面描述中错误的是( )。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
上一题下一题
(7/40)单项选择题
第7题
负责数据库中查询操作的数据库语言是( )。
A.数据定义语言
B.数据管理语言
C.数据操纵语言
D.数据控制语言
上一题下一题
(8/40)单项选择题
第8题
一个教师叮讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( )。
A.1:
1联系
B.1:
m联系
C.m:
1联系
D.m:
n联系
上一题下一题
(9/40)单项选择题
第9题
有三个关系R、S和T如下:
图片
则由关系R和S得到关系T的操作是( )。
A.自然连接
B.并
C.交
D.差
上一题下一题
(10/40)单项选择题
第10题
定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。
A.-369
B.369
C.0.369
D.整数集合{l,2,3,4,5}
上一题下一题
(11/40)单项选择题
第11题
C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。
A.增加了一些新的运算符
B.允许函数重载,并允许设置默认参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
上一题下一题
(12/40)单项选择题
第12题
下列( )是C++语言的有效标识符。
A._Nol
B.No.1
C.12345
D.int
上一题下一题
(13/40)单项选择题
第13题
没有定义intx;floaty;,则10+x+y值的数据类型是( )。
A.int
B.double
C.float
D.不确定
上一题下一题
(14/40)单项选择题
第14题
下列程序的执行结果为( )。
#include
voidmain()
{
inta:
3,b=0;
int*p=&a;
b=+a++:
cout<<*p<<´´,´´< }
A.3,4
B.4,3
C.3,4
D.4,4
上一题下一题
(15/40)单项选择题
第15题
下面程序的运行结果为( )。
#inclu({e
voidmain()
{
f()r(inta=0,x=0;!
x&&a<=10;a++)
{
a++:
}
cout< }
A.10
B.11
C.12
D.0
上一题下一题
(16/40)单项选择题
第16题
下面有关for循环的正确描述是( )。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.C在for循环中,不能用break语句跳出循环体
D.往for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
上一题下一题
(17/40)单项选择题
第17题
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是( )。
#include
wildmajn()
{in!
*p,*q,a,h;
p=&a;
cout<<´´inputa:
´´;
cin>>p;
A.*p表示的是指针变量p的地址
B.p表示的是变量a的地址,而不是变量a的值
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
上一题下一题
(18/40)单项选择题
第18题
假定int类型变量占用两个字节,其有定义intx[10]={0,2,4};,则数组x在内存中所占字节数是( )。
A.3
B.6
C.10
D.20
上一题下一题
(19/40)单项选择题
第19题
下列选项,不正确的是( )。
A.for(inta=1;a<=10;a++);
B.inta=1;do{a++:
}while(a<=10);
C.inta=1;while(a<=10){a++:
}
D.for(inta:
1;a<=10;a++)a++;
上一题下一题
(20/40)单项选择题
第20题
下面关于数组的初始化正确的是( )。
A.charstr[]:
{´a´,´b´,´c´}
B.charstr[2]={´a´,´b´,´c´}
C.charstr[2][3]={{´a´,´b´},{´e´,´d´},{´e´,´f´}
D.charstr()={´a´,´b´,c´}
上一题下一题
(21/40)单项选择题
第21题
下列程序的输出结果为( )。
#include
voidmain()
{
char*a[]={´´heHo´´,´´the´´,´´world´´};
char **pa=a:
pa++;
cout<<*pa< }
A.hello
B.the
C.world
D.hellotheworld
上一题下一题
(22/40)单项选择题
第22题
决定C++语言中函数的返回值类型的是( )。
A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
上一题下一题
(23/40)单项选择题
第23题
有以下程序:
#include
voidfun(inta,intb,intc)
{a=456,b=567,c=678;}
voidmain()
{
intx=10,y=20,z=30;
fun(x,y,z);
eout< }
输出结果是( )。
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456
上一题下一题
(24/40)单项选择题
第24题
以下叙述正确的是( )。
A.函数可以嵌套定义但不能嵌套调用
B.函数既可以嵌套调用也可以嵌套定义
C.函数既不可以嵌套定义也不可以嵌套调用
D.函数可以嵌套调用但不可以嵌套定义
上一题下一题
(25/40)单项选择题
第25题
下列程序的输出结果是( )。
#include
intmin(inta,intb)
{
if(a elsereturnb;
return0;
}
voidmain()
{
eout< }
A.0
B.1
C.2
D.3
上一题下一题
(26/40)单项选择题
第26题
下列程序的运行结果为( )。
#include
voidprint(doublea)
{
cout<<++a:
}
voidprint(inta,intb)
{
cout< }
voidmain()
{
print(1.2);
cout<<””:
print(3,4);
}
A.1.234
B.2.234
C.1.243
D.2.243
上一题下一题
(27/40)单项选择题
第27题
对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )。
A.公有类型
B.私有类型
C.保护类型
D.友元类型
上一题下一题
(28/40)单项选择题
第28题
在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。
A.友元函数
B.虚函数
C.构造函数
D.析构函数
上一题下一题
(29/40)单项选择题
第29题
类的析构函数的作用是( )。
A.一般成员函数的初始化
B.类的初始化
C.对象的初始化
D.删除类创建的对象
上一题下一题
(30/40)单项选择题
第30题
下列说法正确的是( )。
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编泽时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
上一题下一题
(31/40)单项选择题
第31题
下面对静态数据成员的描述中,正确的是( )。
A.静态数据成员可以在类体内进行初始化
B.静态数据成员不可以被类的对象调用
C.静态数据成员不能受prirate控制符的作用
D.静态数据成员可以直接用类名调用
上一题下一题
(32/40)单项选择题
第32题
下面对于友元函数描述正确的是( )。
A.友元函数的实现必须在类的内部定义
B.友元函数是类的成员函数
C.友元函数破坏了类的封装性和隐藏性
D.友元函数不能访问类的私有成员
上一题下一题
(33/40)单项选择题
第33题
在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
上一题下一题
(34/40)单项选择题
第34题
下面程序的运行结果为( )。
#include
classA
{
public:
A(){cou|<<´´1´´;}
~A(){cout<<´´2´´;}
};
classB:
publicA
{
public:
B(){cout<<´´3´´;}
~B(){cout<<´´4´´;}
};
voidnlain()
{
Bb:
}
A.1234
B.1324
C.1342
D.3142
上一题下一题
(35/40)单项选择题
第35题
下列关于虚基类的描述,错误的是( )。
A.设置虚基类的目的是为了消除二义性
B.虚基类的构造函数在非虚基类之后调用
C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用
D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数
上一题下一题
(36/40)单项选择题
第36题
下列关于多态性的描述,错误的是( )。
A.C++语言中的多态性分为编译时的多态性和运行时的多态性
B.编译时的多态性可通过函数重载实现
C.运行时的多态性可通过模板和虚函数实现
D.实现运行时多态性的机制称为动态绑定
上一题下一题
(37/40)单项选择题
第37题
下列运算符中,在C++语言中不能重载的是( )。
A.*
B.>=
C.:
:
D./
上一题下一题
(38/40)单项选择题
第38题
当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。
A.ios:
:
in
B.ios:
:
out
C.los:
:
in|ios:
:
out
D.以上都不对
上一题下一题
(39/40)单项选择题
第39题
下列程序的运行结果是( )。
#include
classA
{
inta:
public:
A(){a=0;}
A(intaa)
{
a=aa:
cout< }
};
voidmain()
{
Ax,y
(2),z(3);
cout< }
A.00
B.23
C.34
D.25
上一题下一题
(40/40)单项选择题
第40题
下面程序的输出结果是( )。
#include
classexample
{
inta:
public:
example(intb){a=b++;}
voidprint(){a=a+1;cout< voidprint()const{cout< };
voidmain()
{
examplex(3);
constexampley
(2);
x.print();
y.print();
}
A.22
B.43
C.42
D.32
上一题下一题
(1/1)基本操作题
第41题
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,该工程含有一个源程序文件proj1.cpp。
其中位于每个注释“//ERROR ****found****”之后的一行语句存在错误。
请改正这些错误,使程序的输出结果为:
Thevalueis10
注意:
只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include
usingnamespaeestd;
classMyClass{
intvalue;
public:
//ERROR ********found********
voidMyClass(intval):
value(val){}
intGetValue()const{returnvalue;}
voidSetValue(intval);
};
//ERROR ********found********
inlinevoidSetValue(intval){value=val;}
intmain()
{
MyClassobj(0);
obj.SetValue(10);
//ERROR********found********下列语句功能是输出obj的成员value的值eout<<"Thevalueis" < return0;
}______
上一题下一题
(1/1)简单应用题
第42题
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中定义了vehicle类,并派生出motorcar类和bicycle类。
然后以motorcar和bicycle作为基类,再派生出motorcycle类。
要求将vehicle作为虚基类,避免二义性问题。
请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。
此程序的正确输出结果应为:
80
150
100
1
注意:
只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include
classvehicle
{
private:
intMaxSpeed;
intWeight;
public:
//**********found**********
vehicle(intmaxspeed,intweight):
______
~vehicle(){};
intgetMaxSpeed(){returnMaxSpeed;}
intgetWeight(){returnWeight;}
};
//**********found**********
classbicycle:
_______publicvehicle
{
private:
intHeight;
public:
bicycle(intmaxspeed,intweight,intheight):
vehicle(maxspeed,weight),Height(height){}
intgetHeight(){returnHeight;};
};
//**********found**********
classmotorcar:
______publicvehicle
{
private:
intSeatNum;
public:
motorcar(intmaxspeed,intweight,intseatnum):
vehicle(maxspeed,weight),SeatNum(seatnum){}
intgetSeatNum(){returnSeatNum;};
};
//**********found**********
classmotorcycle:
_____
{
public:
motorcycle(intmaxspeed,intweight,intheight):
vehicle(max,speed,weight),bicycle(maxspeed,weight,height),motorcar(maxspeed,weight,1){}
};
voidmain()
{
motorcyclea(80,150,100);
cout< cout< cout< cout< }______
上一题下一题
(1/1)综合应用题
第43题
请使用菜单命令或直接用VC6打开考生文件夹下的工程prj03。
请完善下列程序,实现一个Number类。
Add函数计算2个Number类对象之和,并将和作为Number对象返回。
这2个Number对象中各包含一个用字符串表示的10进制正整数,均不超过int的表示范围。
在main函数中给出了一组测试数据,使用这组数据进行测试时程序的输出应该是:
100
注意:
只需在//********333********和//********666********之间填入所编写的若干语句,不要改动程序中的其他内容。
#include
#include
#include
#include´´proj3.h´´
usingnamespacestd;
Number:
:
Number(char*n){
num=newchar[strlen(n)+1];
strcpy(num,n);
}
Number:
:
Number(Number&n){
Ruin=newchar[strlen(n.num)+1];
strcpy(num,n.Bum);
}
Number:
:
Number(intn){
char*tmp=newchar[30];
itoa(n,tmp,10);//函数itoa的功能是将n转换为字符串,存放于tmp指向的数组中
Rum=newchar[strlen(tmp)+1];
strcpy(num,tmp);
}
Number:
:
~Number(){
if(num)
delete[]num;
}
NumberNumber:
:
Add(Numbern){
//****333****
//*******666******
}
ntmain(){
Numbernum1(´´32´´);
Numbernum2(´´68´´);
Number&num3=num1.Add(num2);
cout< writeToFile(´´c:
\test\´´);
return0;
}
//proj3\proj3.h
classNumber{
private:
char*num;//具体数字,num[0]表示最高位的数
public:
~Number();
Number(char*n);
Number(Number&n);
Number(intn);
NumberAdd(Numbern);
char*GetNum(){returnnum;}
};
voidwriteToFile(constchar*path);______
上一题交卷
交卷
答题卡
答案及解析
(1/40)单项选择题
第1题
下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除
B.栈顶元素最后才能被删除
C.栈底元素永远不能被删除
D.栈底元素最先被删除
参考答案:
A您的答案:
未作答
答案解析:
栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。
栈底元素最先入栈却最后被删除。
所以选择A。
下一题
(2/40)单项选择题
第2题
下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化