计算机类二级C++
2013年9月全国计算机等级《二级C++》上机临考冲刺试卷(4)
43 题含答案C++
1单选题1 / 43
下列程序的输出结果是( )。
#included
usingnamespacestd;
intmain()
{
chara[]="Hell0,Test";
char*p=a;
while(*p)
{
if(*p>='a'&&*p<='z')
cout<
elsecout<<*P;
p++;
}
return0;
}
查看答案
C. HELLO,TEST
2单选题2 / 43
有如下程序:
#include
usingnamespacestd;
classA
{
public:
A(){cout<<"A";}
~A(){cout<<"~A";}
};
classB
{
A*P:
public:
B(){cout<<"B";p=newA;}
~B(){cout<<"~B";deleteP;}
};
intmain()
{
Bobi;
return0;
}
执行这个程序的输出结果是( )。
查看答案
B. ABA~B~A~A
3单选题3 / 43
执行下列语句后,输出结果为( )。
cout.put('S');
cout<<'C'<<'a';
查看答案
B. sca
4单选题4 / 43
有如下函数模板定义:
templateT2plus(T1t1,T3t3){returnt1+t3;}
则以下调用正确的是( )。
查看答案
D. plus(3,5L);
5单选题5 / 43
下列定义中P指向的地址可更改,但*P不能够更改的是( )。
查看答案
A. constint*P;
6单选题6 / 43
有下列程序:
#include
voidmain( )
{inti,j;
for(i=3;i>=1;i--)
{for(j=1;j<=2;j++)printf(”%d”,i+j);
printf("\n");
}
}
程序的运行结果是( )。
查看答案
D. 45
3434
2323
7单选题7 / 43
若变量已正确定义为int型,要通过语句“scanf(”%d,%d”,&a,&b,&c);”给a赋值l、给b赋值2、给c赋值3,
查看答案
B.
8单选题8 / 43
下列叙述中错误的是( )。
查看答案
A. 软件测试的目的是发现错误并改正错误
9单选题9 / 43
结构化程序设计的三种基本结构是( )。
查看答案
B. 顺序、选择和重复
10单选题10 / 43
从工程管理角度,软件设计一般分为两步完成,它们是( )。
查看答案
A. 概要设计与详细设计
11单选题11 / 43
若PAT是一个类,则程序运行时,语句“PAT(*ad){3};”调用PAT的构造函数的次数是( )。
查看答案
A. 0
12单选题12 / 43
已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是( )。
查看答案
A. ptr->a=100;
13单选题13 / 43
下列关于this指针的描述中,正确的是( )。
查看答案
D. 类的非静态成员函数都有this指针
14单选题14 / 43
软件设计中模块划分应遵循的准则是( )。
查看答案
B. 高内聚低耦合
15单选题15 / 43
下列选项巾正确的定义语句是( )。
查看答案
C. doublea=7,b=7;
16单选题16 / 43
有如下程序:
#include
usingnamespacestd;
intmain()
{
int*P;
*P=9:
cout<<"ThevalueatP:"<<*P;
return0;
}
编译运行程序将出现的情况是( )。
查看答案
D. 运行时有可能出错
17单选题17 / 43
假定其中的x的单位是角度且不考虑π的值

的精是( )。
查看答案
D. sqrt(fabs(cos(x*3.14/180)))
18单选题18 / 43
下列描述中正确的是( )。
查看答案
D. 软件是程序、数据与相关文档的集合
19单选题19 / 43
以下选项中合法的实型常数是( )。
查看答案
C. 2EO
20单选题20 / 43
下列叙述中正确的是( )。
查看答案
D. 双向链表是非线性结构
21单选题21 / 43
已知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是( )。
查看答案
B. t(v1,&v2)
22单选题22 / 43
下列函数的运行结果是( )。
#include
intf(inta,intb)
{intC;
if(a>b)c=l;
elseif(a==b)c=0;
elsec=-1:
return(c);}
voidmain( )
{inti=2,j=3;
intp=f(i,j);
cout<<p;}
查看答案
A. -1
23单选题23 / 43
如果表达式“--x/y”中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为( )。
查看答案
B. operator/(operator--(x),y);
24单选题24 / 43
Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是( )。
查看答案
C. obj
25单选题25 / 43
有如下程序:
#include
usingnamespacestd;
classDemo
{
public:
Demo(){cout<<"defaultconstructor\n";}
Demo(constDemo&x){cont<<"copyconstruc-
tor\n";}
};
DemouserCode(Demob){Democ(b);returnC;}
intmain()
{
Demoa;d;
cout<<"callinguserCode()\n";
d=userCode(a):
return0;
}
执行上面程序的过程中,构造函数Demo( )和Demo(constDem0&x)被调用的次数分别是( )。
查看答案
C. 2和3
26单选题26 / 43
下列关于类和对象的叙述中,错误的是( )。
查看答案
A. 一个类只能有一个对象
27单选题27 / 43
下列叙述正确的是( )。
查看答案
C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止
28单选题28 / 43
有下列程序:
#include
voidmain( )
{inta=S,b=1,t;
t=(a<<2)|b;printf("%d\n",t);
}
程序运行后的输出结果是( )。
查看答案
A. 21
29单选题29 / 43
下面类的定义,有( )处错误。
classMyClass
{public:
voidMyClass();
~MyClass(intvahle);
private:
inti=0;};
查看答案
C. 3
30单选题30 / 43
有如下程序:
#included
usingnamespacestd;
voidfl(int&X,int&y){intz=x;x=y;y=z;)voidf2(intX,inty){intz=x;x=y;y=z;}intmain( ){
intx=10,y=26;
f1(X,y);
f2(x,y);
cout<<y<
return0;
}
运行时的输出结果是( )。
查看答案
A. 10
31单选题31 / 43
下列叙述中正确的是( )。
查看答案
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定
32单选题32 / 43
下列是if语句的基本形式:
if(表达式)语句
其中“表达式”( )。
查看答案
D. 可以是任意合法的表达式
33单选题33 / 43
以下程序的运行结果是( )。
#include(iostream.h>
voidsub(intx,inty,int*z)
{*z=y-x;}
voidmain( )
{inta,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
cout((a<<","<<b<<","<<c<<endl;}
查看答案
B. -5,-12,-7
34单选题34 / 43
下列选项中不能作为C浯言合法常量的是( )。
查看答案
A. 'cd'
35单选题35 / 43
设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是( )。
查看答案
C. static
36单选题36 / 43
在对函数进行原型声明时,下列语法成分中,不需要的是( )。
查看答案
D. 函数体
37单选题37 / 43
若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是( )。
查看答案
D. a[10]
38单选题38 / 43
有下列程序:
#include
intf(intx)
{
inty;
if(x==0‖x==1)return(3);
y=x*x-f(X-2);
returny;
}
voidmain( )
{
intZ;
z=f(3);printf("%d\n",z);
}
程序的运行结果是( )。
查看答案
C. 6
39单选题39 / 43
有如下函数模板定义:
template
T1FUN(T2n){returnn*5,0;}
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。
查看答案
C. FUN(9)
40单选题40 / 43
设有“intx=11;”,则表达式(x++*2/3)的值是( )。
查看答案
A. 7
41主观题41 / 43
(1)应改为“catch(char*s)”。
(2)应改为“cateh(inti)”。
(3)应改为“catch(…)”。
查看答案
使用VC++6.0打开考生文件夹下的源程序文件1.Cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个CAtCh必须抛出执行的任何异常。 程序异常,输出信息为 ErrorOERROR注意:不要改动mAin函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******Error******的下面。
试题程序:
#include<iostream.h)
intmain()
{
try
{
throw("error");
}
//********error********
catch(chars)
{
cout<<s<<endl;
}
try
{
throw((int)0);
}
//********error********
catch()
{
cout<<i<<endl;
}
try
{
throw(O);
throw("error");
}
//********error********
catch()
{
cout<<"ERROR"<<endl;
}
return0;
}
42主观题42 / 43
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成函数fun(char*sl,char*s2)的空出部分。函数fun(char*s1,char*s2)的功能是将在字符串s1中下标为偶数的字符,紧随其后重复出现一次,放在一个新串s2中,s2中字符按原字符串中字符的顺序排列。(注意0为偶数)
例如:当s1中的字符串为“abcdef”时,s2中的字符串应为“aaccee”。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include(iostream.h)
voidfun(char*s1,char*s2)
{
}
voidmain()
{
charsi[100】,s2【1OO];
cout<<"Pleaseenterstringstrin9:"<
cin.getline(s1,100);
fun(s1,s2);
cout<<"Theresultis:"<<s2<<cndl
return;
}
查看答案
inti;
For(i=0;s1[i]!=0;i++)//循环判断每一个字符
{
iF(i%2==0)//判断字符串中下标为偶数位置
{
s2[i]=s1[3];
s2[i+1]=s1[i];
s2[i+2]='\0';//新串添加尾符
}
}
43主观题43 / 43
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义类的公有数据成员函数N0、Name[32],其中N0是int型的数据,Name[32]为字符型。请在注释1后添加适当的语句。
(2)完成函数Set的定义,分别设置N0和Name的值,请在注释2后添加适当的语句。
(3)完成函数print,请在注释3后添加适当的语句,输出结果如下:
N0=12345
Name=HelloWorld!
(4)添加默认构造函数,设置N0为0,Name为空,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
classTC
{
public:
//********1********
//********2********
{
No=no;
for(inti=0;strName[i]!=0;i++)
{
Name[i]=strName[i];
Name[i+1]=0;
}
}
voidprint()
{
//********3********
}
TC()
{
//********4********)
};
intmain()
{
TCstu:
stu.Set(12345,"HelloWorld!");stu.print();
return0;
}
查看答案
(1)应添加“intNo;ChArNAmE[32];”。
(2)应添加“voiDSEt(intno,ChAr*strNAmE)”。
(3)应添加“Cout<<"No="<<No<<EnDl<<"NAmE="<<NAmE<<EnDl;”。
(4)应添加“No=NAmE[0]=0;”。