1、【
单选题
】
索引属于( )。
[1分]
答案:
2、【
单选题
】
下列语句中,与语句“n=(a>b?(b>c?1:0):0);”的功能等价的是( )。
[1分]
、
if(a<=b)n=0;
、
if((a>b)‖(b>c))n=1;elsen=0;
、
if(a>b)if(b>c)n=1;elsen=;elsen=0;
、
if(a>b)n=1;elseif(b<=c)n=1;elseif(b>c)n=1;elsen=0;
答案:
3、【
单选题
】
有以下程序:
#include
usingnamespacestd;
classR
{public:
R(intr1,intr2)
{R1=r1;
R2=r2;}
voidprint();
voidprint()const;
private:
intR1,R2;};
voidR::print()
{cout<<r1<<","<<r2<<endl;}
voidR::print()const
{cout<<r1<<","<<r2<<endl;}
intmain()
{Ra(5,4);
constRb(20,52);
print();
return0;}
执行后的输出结果是( )。
[1分]
、
5,4
、
20,52
、
0,0
、
4,5
答案:
4、【
单选题
】
已经有“语句intm=10;”则下列表示引用的表示中正确的是( )。
[1分]
、
int&x=m;
、
int&y=10;
、
int&z;
、
float&t=8m;
答案:
5、【
单选题
】
有下列程序:
#include
voidmain( )
{intx=1,y=2,z=3;
if(x>y)
if(y
elseprintf("%d",++y);
printf(”%d\n”,x++);
}
程序的运行结果是( )。
[1分]
答案:
6、【
单选题
】
下列关于析构函数的描述中,错误的是( )。
[1分]
、
析构函数可以重载
、
析构函数由系统自动调用
、
每个对象的析构函数只被调用一次
、
每个类都有析构函数
答案:
7、【
单选题
】
派生类的成员函数不能访问基类的( )。
[1分]
、
公有成员和保护成员
、
公有成员
、
私有成员
、
保护成员
答案:
8、【
单选题
】
有如下程序:
#include
usingnamespacestd;
classDA{
intk;
public:
DA(intx=1):k(x){}
~DA(){cout<<k;}
};
intmain(){
DAd[]={DA(3),DA(3),DA(3));
DA+p=newDA[2];
delete[]p;
return();
}
这个程序的输出结果是( )。
[1分]
、
111
、
333
、
11333
、
11133
答案:
9、【
单选题
】
有如下程序:
#include
usingnamespacestd;
classToy{
public:
Toy(char*_n){strcpy(name,_n);count++;)
~Toy( ){count一一;)
char*GetName( ){returnname;}
staticintgetCount( ){returncount;)
private:
charname[10];
staticintcount;
};
intToy::count=0;
intmain( ){
Toyt1("snoopy"),t2("Mickey"),t3("Barbie");
tout<<
return0;
)
运行时的输出结果是( )。
[1分]
答案:
10、【
单选题
】
下列选项中不属于结构化程序设计方法的是( )。
[1分]
、
自顶向下
、
逐步求精
、
模块化
、
司复用
答案:
11、【
单选题
】
下列叙述中正确的是( )。
[1分]
、
C程序中的注释只能出现在程序的开始位置和语句的后面
、
C程序书写格式严格,要求一行内只能写一个语句
、
C程序书写格式自由,一个语句可以写在多行上
、
用C语言编写的程序只能放在一个程序文件中
答案:
12、【
单选题
】
有如下程序:
#include
usingnamespacestd;
classTestClass
{public:
virtualvoidfunl()
{cout<<"funlTestClass";}
virtualvoidfun2()
{cout<<“fun2TestClass”;}};
classTestClassl:publicTestClass
{voidfun()
{cout<<“funlTestClassl”;}};
intmain()
{TestClassobj1,*P;
TestClasslobj2;
p=&obj2;
p->fun1();
p->fun2();
return0;}
该程序执行后的输出结果是( )。
[1分]
、
funlTestClasslfun2TestClass
、
funlTestClass1fun2TestC1ass1
、
funlTestClassfun2TestClass
、
funlTestClassfun2TestClassl
答案:
13、【
单选题
】
下面关于运算符重载的描述错误的是( )。
[1分]
、
运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构
、
不是所有的运算符都可以进行重载
、
运算符函数的调用必须使用关键字0perator
、
在C++语言中不可通过运算符重载创造出新的运算符
答案:
14、【
单选题
】
有如下程序:
#include
usingnamespacestd;
classMyClass{
public:
MyClass(intx):val(x){}
voidPrint()const{cout<<"const:val="<<<val<<'\t';}
voidPrint(){cout<<"val="<<val<<'t';}
private:
intval;
};
intmain(){
constMyClassobj1(10);
MyClassobj2(20);
obj1.Print();
obj2.Print();
return0;
}
程序的输出结果是( )。
[1分]
、
va1=10const:va1=20
、
const:va1=10const:va1=20
、
const:va1=10val=20
、
val=10va1=20
答案:
15、【
单选题
】
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下列属于应用软件的是( )。
[1分]
、
编译程序
、
操作系统
、
教务管理系统
、
汇编程序
答案:
16、【
单选题
】
有下列程序:
#include
#defineN4
voidfun(inta[][N],intb[])
{inti;
for(i=0;i
}
voidmain( )
{intx[][N]={{1,2,3},{4),{5,6,7,8),{9,10}),
y[N],i;
fun(x,y);
for(i=0;i
printf("\n");
}
程序的运行结果是( )。
[1分]
、
1,2,3,4,
、
1,0,7,0,
、
1,4,5,9,
、
3,4,8,10,
答案:
17、【
单选题
】
有如下的程序:
#include
#include
usingnamespacestd;
classMyString
{public:
MyString(constchar*s);
MyString(){delete[]data;}
protected:
unsignedlem
char*data;};
MyStrin9::MyString(constchar*s)
{len=strlen(s);
data=newchar[len+1];
strcpy(data,s);}
intmain()
{MyStringa("C++Programing");
MyStringb(a);
return0;}
在运行上面的程序时出错,出错的原因是( )。
[1分]
、
构造函数的实参不允许是本类的对象
、
没有定义实现深层复制的复制构造函数
、
构造对象a时实参与形参类型不符
、
系统不能生成默认的复制构造函数
答案:
18、【
单选题
】
设变量已正确定义并赋值,以下正确的表达式是( )。
[1分]
、
x=y+5=x+z
、
int(15.8%5)
、
x=y+z+5,++y
、
x=25%5.0
答案:
19、【
单选题
】
下面描述中错误的是( )。
[1分]
、
系统总体结构图支持软件系统的详细设计
、
软件设计是将软件需求转换为软件表示的过程
、
数据结构与数据库设计是软件设计的任务之一
、
PAD图是软件详细设计的表示工具
答案:
20、【
单选题
】
程序段“intx=12;doubley=3.141593;printf(”%d%8.6'f",X,y);”的输出结果是( )。
[1分]
、
123.141593
、
123.141593
、
12,3.141593
、
123.1415930
答案:
21、【
单选题
】
有如下程序:
#include
usingnamespacestd;
classB{
public:
virtualvoidshow(){cout<<"B";}};
classD:publicB{
public:
voidshow(){cout<<"D";}
};
voidfun1(B*ptr){ptr->show();
}voidfun2(B&ref){ref.show();
}voidfun3(BB){b.show();
}
intmain(){
Bb,*p=newD;
Dd;
funl(p);
fun2(b);
fun3(d);
return0;
}
程序的输出结果是( )。
[1分]
答案:
22、【
单选题
】
下列不构成无限循环的语句或语句组是( )。
[1分]
、
n=0;
do{++n;)while(n<=0);
、
n=0;
while(1){n++;)
、
while(n=1O);{n--;}
、
for(n=0,i=1;;i++)n+=i
答案:
23、【
单选题
】
有下列程序:
#include
voidmain( )
{
intx=8;
for(;x>0;x--)
{
if(x%3){printf("%d,",x--),continue;}
printf(”%d,”,--x);
}
}
程序的运行结果是( )。
[1分]
、
7,4,2
、
8,7,5,2
、
9,7,6,4
、
8,5,4,2
答案:
24、【
单选题
】
设有下列程序段:
chars[20]="Beijing",*P;
P=S;
则执行“p=s;”语句后,下列叙述正确的是( )。
[1分]
、
可以用*P表示s[0]
、
S数组中元素的个数和P所指字符串长度相等
、
S和P都是指针变量
、
数组s中的内容和指针变量P中的内容相同
答案:
25、【
单选题
】
对于语句“cout<<setfill('*')<<setw(10)<<1<<serfill('*')<<setw(2)<
[1分]
、
*********1*2
、
********12
、
*******1*2
、
12********
答案:
26、【
单选题
】
若函数中有定义语句“intk;”.则( )。
[1分]
、
系统将自动给k赋初值0
、
这时k中的值无定义
、
系统将自动给k赋初值-1
、
这时k中无任何值
答案:
27、【
单选题
】
下列程序段中的变量已正确定义:
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);printf("*");
程序段的输出结果是( )。
[1分]
、
********
、
****
、
**
、
*
答案:
28、【
单选题
】
下列程序中横线处应填入的语句是()。
classBase
{
public:
voidfun(){cout<<"Baseoffun"<
classDerived:publicBase
{
voidfun()
{
//显示基类的成员函数fun
cout<<"Derivedoffun"<
}
};
[1分]
、
fun();
、
Base.fun();
、
Base::fun();
、
Base->fun();
答案:
29、【
单选题
】
若有定义语句“inti=2,j=3;”,则表达式i/j的结果是( )。
[1分]
、
0
、
0.7
、
0.66667
、
0.66666667
答案:
30、【
单选题
】
下列叙述中错误的是( )。
[1分]
、
在程序中凡是以“#”开始的语句行都是预处理命令行
、
预处理命令行的最后不能以分号表示结束
、
#defineMAX是合法的宏定义命令行
、
C程序中预处理命令行的处理是在程序执行的过程中进行的
答案:
31、【
单选题
】
下列关于栈的叙述正确的是( )。
[1分]
、
栈按“先进先出”组织数据
、
栈按“先进后出”组织数据
、
只能在栈底插入数据
、
不能删除数据
答案:
32、【
单选题
】
对于类定义:
classA{
public:
virtualvoidfuncl(){}
voidfunc2(){}
};
classB:publicA{
public:
voidfuncl(){cout<<"classBfunc1"<<endl;}
virtualvoidfunc2(){cout<<"classBfunc2"
< <endl;}
};
下面正确的叙述是( )。
[1分]
、
A::func2( )和B::func1( )都赵虚函数
、
A::rune2( )和B::func1( )都不是虚函数
、
B::func1( )是虚函数,而A::fune2( )不是虚函数
、
B::func1( )不是虚函数,而A::func2( )是虚函数
答案:
33、【
单选题
】
有下列程序:
#include
voidmain( )
{char*a[]={"abed","ef","gh","ijk");inti;
for(i=0;i<4;i++)printf("%C",*a[i]);
}
程序运行后的输出结果是( )。
[1分]
、
aegi
、
dfhk
、
abed
、
abcdcfghijk
答案:
34、【
单选题
】
函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[o]=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为( )。
[1分]
答案:
35、【
单选题
】
已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则( )。
[1分]
、
FA必须定义在FB之前
、
FB必须定义在FA之前
、
若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
、
若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
答案:
36、【
单选题
】
下列表达式的值为false的是( )。
[1分]
、
1<3&&5<7
、
!(2>4)
、
3&0&&l
、
!(5<8)‖(2<8)
答案:
37、【
单选题
】
下列叙述中错误的是( )。
[1分]
、
在程序中凡是以“#”开始的语句行都是预处理命令行
、
预处理命令行的最后不能以分号表示结束
、
#defineMAX是合法的宏定义命令行
、
C++中预处理命令行的处理是在程序执行的过程中进行的
答案:
38、【
单选题
】
有下列程序:
#include
voidmain( )
{inti=5;
do
{if(i%3=1)
if(i%5==2)
{printf("*%d",i);break;}
i++:
}while(i!=O);
printf("\n");
}
程序的运行结果是( )。
[1分]
答案:
39、【
单选题
】
类A是类B的友元,类B是类C的友元,则下列说法正确的是( )。
[1分]
、
类B是类A的友元
、
类C是类A的友元
、
类A是类C的友元
、
以上都不对
答案:
40、【
单选题
】
有如下程序:
#included
usingnamespacestd;
classTestClass
{inta;
pubIic:
TestClass(intx){a=x;}
voidshow(){cout<
classTestClassl:publicTestClass
{intb;
public:
TestClassl(inti):TestClass(i+1),b(i){}
voidshow(){cout<
intmain()
{TestClassb(5),*P;
TestClassld(1):
p=&d;
p->show();
return0;}
该程序运行后的打印结果是( )。
[1分]
答案: