无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

2013年9月全国计算机等级《二级C++》上机临考冲刺试卷(4) - 233网校计算机二级题库:在线

2013-12-20来源/作者:管理员点击次数:450

一、选择题(每小题1分,共40分)
1、下列程序的输出结果是(  )。
#included
usingnamespacestd;
intmain()
{
chara[]="Hell0,Test";
char*p=a;
while(*p)
{
if(*p>='a'&&*p<='z')
cout< elsecout<<*P;
p++;
}
return0;
}
A.hello,test
B.Hello,Test
C.HELLO,TEST
D.hELLO,tEST

2、 有如下程序:
#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;
}
执行这个程序的输出结果是(  )。
A.BAA~A~B~A
B.ABA~B~A~A
C.BAA~B~A~A
D.ABA~A~B~A

3、 执行下列语句后,输出结果为(  )。
cout.put('S');
cout<<'C'<<'a';
A.ca
B.sca
C.S
D.a

4、 有如下函数模板定义:
templateT2plus(T1t1,T3t3){returnt1+t3;}
则以下调用正确的是(  )。
A.plus(3,5L);
B.plus<>(3,5L);
C.plus(3,5L);
D.plus(3,5L);

5、 下列定义中P指向的地址可更改,但*P不能够更改的是(  )。
A.constint*P;
B.int*constP;
C.constint*constP;
D.int*P;

6、 有下列程序:
#include
voidmain(  )
{inti,j;
for(i=3;i>=1;i--)
{for(j=1;j<=2;j++)printf(”%d”,i+j);
printf("\n");
}
}
程序的运行结果是(  )。
A.234
B.432
345543
34
C.23
D.45
3434
2323

7、若变量已正确定义为int型,要通过语句“scanf(”%d,%d”,&a,&b,&c);”给a赋值l、给b赋值2、给c赋值3,
A.
B.
C.
D.

8、 下列叙述中错误的是(  )。
A.软件测试的目的是发现错误并改正错误
B.对被调试的程序进行“错误定位”是程序调试的必要步骤
C.程序调试通常也称为Debug
D.软件测试应严格执行测试计划。排除测试的随意性

9、 结构化程序设计的三种基本结构是(  )。
A.过程、子程序和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移

10、从工程管理角度,软件设计一般分为两步完成,它们是(  )。
A.概要设计与详细设计
B.数据设计与接口设计
C.软件结构设计与数据设计
D.过程设计与数据设计

11、 若PAT是一个类,则程序运行时,语句“PAT(*ad){3};”调用PAT的构造函数的次数是(  )。
A.0
B.1
C.2
D.3

12、 已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是(  )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;

13、 下列关于this指针的描述中,正确的是(  )。
A.类的成员函数都有this指针
B.类的友元函数都有this指针
C.任何与类相关的函数都有this指针
D.类的非静态成员函数都有this指针

14、 软件设计中模块划分应遵循的准则是(  )。
A.低内聚低耦合
B.高内聚低耦合
C.低内聚高耦合
D.高内聚高耦合

15、 下列选项巾正确的定义语句是(  )。
A.doublea;b;
B.doublea=b=7;
C.doublea=7,b=7;
D.double,a,b;

16、 有如下程序:
#include
usingnamespacestd;
intmain()
{
int*P;
*P=9:
cout<<"ThevalueatP:"<<*P;
return0;
}
编译运行程序将出现的情况是(  )。
A.编译时出现语法错误,不能生成可执行文件
B.运行时一定输出ThevalueatP:9
C.运行时一定输出ThevalueatP:*9
D.运行时有可能出错

17、 假定其中的x的单位是角度且不考虑π的值的精
是(  )。
A.sqrt(cos(x))
B.sqrt(abs(cos(X*3.14/180)))
C.sqrt(abs(cos(X*(/180)))
D.sqrt(fabs(cos(x*3.14/180)))

18、 下列描述中正确的是(  )。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合

19、 以下选项中合法的实型常数是(  )。
A.5E2.0
B.E—3
C.2EO
D.1.3E

20、 下列叙述中正确的是(  )。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构

21、 已知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是(  )。
A.f(v1,v2)
B.t(v1,&v2)
C.f(&v1,v2)
D.f(&v1,&v2);

22、 下列函数的运行结果是(  )。
#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<A.-1
B.1
C.2
D.编译出错,无法运行

23、 如果表达式“--x/y”中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为(  )。
A.operator/(X.operator--(  ),y);
B.operator/(operator--(x),y);
C.X.operator--(  ).operator/(y);
D.y.operator/operator--(x));

24、 Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是(  )。
A.cpp
B.exe
C.obj
D.1ik

25、 有如下程序:
#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)被调用的次数分别是(  )。
A.1和1
B.1和2
C.2和3
D.2和4

26、 下列关于类和对象的叙述中,错误的是(  )。
A.一个类只能有一个对象
B.对象是类的具体实例
C.类是对某一类对象的抽象
D.类和对象的关系是一种数据类型与变量的关系

27、下列叙述正确的是(  )。
A.算法的执行效率与数据的存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上三种描述都不对

28、 有下列程序:
#include
voidmain(  )
{inta=S,b=1,t;
t=(a<<2)|b;printf("%d\n",t);
}
程序运行后的输出结果是(  )。
A.21
B.11
C.6
D.1

29、下面类的定义,有(  )处错误。
classMyClass
{public:
voidMyClass();
~MyClass(intvahle);
private:
inti=0;};
A.1
B.2
C.3
D.4

30、 有如下程序:
#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< return0;
}
运行时的输出结果是(  )。
A.10
B.16
C.26
D.36

31、 下列叙述中正确的是(  )。
A.循环队列有队头和队尾两个指针,因此循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定

32、 下列是if语句的基本形式:
if(表达式)语句
其中“表达式”(  )。
A.必须是逻辑表达式
B.必须是关系表达式
C.必须是逻辑表达式或关系表达式
D.可以是任意合法的表达式

33、 以下程序的运行结果是(  )。
#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<<","<A.5,2,3
B.-5,-12,-7
C.-5,-12,-17
D.5,-2,-7

34、 下列选项中不能作为C浯言合法常量的是(  )。
A.'cd'
B.0.1e+6
C."\a"
D.'\011'

35、 设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是(  )。
A.auto
B.xegister
C.static
D.aut0或register

36、 在对函数进行原型声明时,下列语法成分中,不需要的是(  )。
A.函数返回类型
B.函数参数列表
C.函数名
D.函数体

37、 若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是(  )。
A.a[p-a]
B.*(&a[i])
C.p[i]
D.a[10]

38、 有下列程序:
#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);
}
程序的运行结果是(  )。
A.0
B.9
C.6
D.8

39、 有如下函数模板定义:
template
T1FUN(T2n){returnn*5,0;}
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为(  )。
A.FUN(9)
B.FUN<9>
C.FUN(9)
D.FUN<9>(double)
40、 设有“intx=11;”,则表达式(x++*2/3)的值是(  )。
A.7
B.8
C.11
D.12

二、程序改错题(18分)
41、(1)应改为“catch(char*s)”。
(2)应改为“cateh(inti)”。
(3)应改为“catch(…)”。
【解析】本题中第1个标识前的异常抛出语句为“throw("error");”,其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语句修改为“catch(char*S)”。第2个标识前的异常抛出语句为“throw((int)0);”,其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第2处的语句修改为“catch(inti)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为“catch(…)”。

三、简单应用题(24分)
42、使用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:"< return;
}
四、综合应用题(18分)
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;
}

只看不练,假把式······
进入233题库【模拟考场】,在线做题测试,在线查看成绩及详细答案解析!
马上进入

题库优势

更好的做题体验
233计算机二级题库有四种做题模式,可选择自己的喜欢和当前适合的做题模式进行训练。
更多的习题、真题
233计算机二级题库题量储备百万道,包含历年真题,模拟试题等题型,题题结合考试大纲贴近考试 考点。
更专业的试题解析
233计算机二级题库结合考试大纲,将各试题划分了详细的章节知识,更全面的详细的展示答案解析。
进入计算机二级模拟考场>>




相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策