2013年9月全国计算机等级《二级C++》上机模考试卷(2) - 233网校计算机二级题库:在线全真
1、 有下列程序:
#include
intfun(intx,inyy)
{if(x==y)return(x);
elsereturn((x+y)/2);
}
voidmain( )
{inta=4,b=5,c=6;
printf("%dn",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是( )。
A.3
B.6
C.8
D.12
2、 已知字母A的ASCIl代码值为65,若变量kk为char型,下列不能正确判断出kk中的值为大写字母的表达式是( )。
A.kk>='A'&&kk<='Z'
B.!(kk>='A'‖kk<='2')
C.(kk+32)>='a'&&(kk+32)<='2'
D.isalpha(kk)&&(kk<=91)
3、有如下程序:
#included
usingnamespacestd;
classTestClass
{
private:
intx,Y;
public:
TestClass(inti,intj)
{
x=i:
y=j;
}
voidprint()
{
cout<<"printl"<
voidprint()const
{
cout<<"print2"<
};
intmain()
{
constTestClassa(1,2);
print();
return0;
}
该程序运行后的输出结果是( )。
A.printl
B.print2
C.printlprint2
D.程序编译时出错
4、 有如下程序:
#include
usingnamespacestd;
classBase
{
public:
Base(){cout<<"BB";f();}
voidf(){cout<<"BF";}
};
classDerived:publicBase
{
public:
Derived(){cout<<"DD";}
voidf(){eout<<"Df";}
};
intmain(){Derivedd;return0;}
执行上面的程序将输出( )。
A.BBBfDD
B.BBDfDDDf
C.DD
D.DDBBBf
5、在计算机中,算法是指( )。
A.查询方法
B.加工方法
C.解题方案的准确而完整的描述
D.排序方法
6、
有如下程序:
#include
usingnamespacestd;
intmain( ){
intf,f1=0,f2=1;
for(inti=3;i<=6;i++){
f=f1+f2:
f1=f2;f2=f;
}
cout<
}
运行时的输出结果是( )。
A.2
B.3
C.5
D.8
7、
对于模板定义关键字class和typename说法不正确的是( )。
A.程序中的class并不能都替换为typename
B.class和typename都可互相替换
C.程序中的typename都能替换为class
D.程序中的部分class可以替换为typename
8、
下面程序的执行结果是( )。
#include"iostream.h"
voidmain()
{int*P,r;
P=newint:
*P=20:
r=sizeof(*p);
cout<
A.程序错误
B.内存为20地址的大小
C.20
D.4
9、
类MyClass的定义如下,若要对value赋值,则下面语句正确的是( )。
classMyClass
{
public:
MyClass( ){}
MyClass(inti){value=newint(i);}
int*value;
};
A.MyClassmy;my.value=10;
B.MyClassmy;*my.value=10;
C.MyClassmy;my.*value=10;
D.MyClassmy(10);
10、
当变量C的值不为2、4、6时,值也为“真”的表达式是( )。
A.(c==2)‖(c==4)‖(c==6)
B.(c>一2&&c<=6)‖(C!=3)‖(C!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
11、
概要设计中要完成的事情是( )。
A.系统结构和数据结构的设计
B.系统结构和过程的设计
C.过程和接口的设计
D.数据结构和过程的设计
12、
有下列程序:
#include
#definePT3.5;
#defineS(x)PT*x*x;
voidmain( )
(inta=1.b=2;printf("%4.1f\n",S(a+b));}
程序运行后的输出结果是( )。
A.14.0
B.31.5
C.7.5
D.程序有错,无输出结果
13、
有下列程序:
#include
voidmain( )
{inta1,a2charc1,c2;
scanf("%d%c%d%C",&a1,&c1,&a2,&c2);
printf("%d%c%d%C",a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是12,a,34.
A.12a34b
B.
C.12,a,34,b
D.
14、
下列虚基类的声明中正确的是( )。
A.clasSvirtualB:publicA
B.virtualclassB:publicA
C.classB:publieAvirtual
D.classB:virtualpublicA
15、
设有定义“chars[8];inti=0;”,下列不能将一行(不超过80个字符)带有空格的字符国正确读入的语句或语句组是( )。
A.gets(s);
B.while((s[i++]=getchar( ))!='\n');s[i]='\0';
C.seanf("%S",s);
D.do{scanf("%C",&s[i]);}while(s[i++]!='\n');s[i]='\0';
16、
下面关于虚函数的描述中正确的是( )。
A.虚函数是一个静态成员函数
B.虚函数是一个非成员函数
C.虚函数可以在函数说明时定义,也可以在函数实现时定义
D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
17、
下列错误的定义语句是( )。
A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3),{1,2,3),{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
18、
数据库管理系统是( )。
A.操作系统的一部分
B.在操作系统支持下的系统软件
C.一种编译系统
D.一种操作系统
19、
Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是( )。
Samplea[2],*p=newSample;
A.0
B.1
C.2
D.3
20、
以下关于友元函数的叙述不正确的是( )。
A.友元函数提供了类之间数据共享的一个途径
B.一个友元函数可以访问任何类的任何成员
C.友元函数破坏了数据的封装
D.友元函数增加了程序设计的灵活性
21、
在软件开发中,需求分析阶段产生的主要文档是( )。
A.可行性分析报告
B.软件需求规格说明书
C.概要设计说明书
D.集成设计计划
22、
在软件开发中,需求分析阶段产生的主要文档是( )。
A.软件集成测试计划
B.软件详细设计说明书
C.用户手册
D.软件需求规格说明书
23、
生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。
A.无需任何条件
B.基类中显式定义了构造函数
C.派生类中显式定义了构造函数
D.派生类构造函数明确调用了基类构造函数
24、
下列选项中不属于字符常量的是( )。
A.'C'
B."C"
C.'\xCC'
D.'\072'
25、
有下列程序:
#include
voidmain( )
{char*s={"ABC");
do
{printf("%d",*s%10);s++;
}while(*s);
}
注意:字母A的ASCIl码值为65。程序运行后的输出结果是( )。
A.5670
B.656667
C.567
D.ABC
26、
数据库管理系统中负责数据模式定义的语有是( )。
A.数据定义语言
B.数据管理语言
C.数据操纵语言
D.数据控制语言
27、
有如下程序:
#include
usingnamespacestd;
classAA{
public;
AA( ){cOUt<<'1';)
};
classBB:publicAA{
intk;
public:
BB( ):k(0){tout<<'12';}
BB(intn):k(n)(cout<<'3';)
};
intmain( ){
BBb(4),c;
return0;
}
运行时的输出结果是( ).
A.1312
B.132
C.32
D.1412
28、
下列关于宏的叙述中正确的是( )。
A.宏名必须用大写字母表示
B.宏定义必须位于源程序中所有语句之前
C.宏替换没有数据类型限制
D.宏调用比函数调用耗费时间
29、下列叙述中正确的是( )。
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
30、
若已定义
inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;
则对数组元素不正确的引用是( )。
A.a[p-a]
B.*(&a[i])
C.p[i]
D.*(*(a+i))
31、
控制格式输入/输出的操作中,设置域宽的函数是( )。
A.WS
B.oct
C.setfill(int)
D.setw(int)
32、有下列二叉树,对此二叉树前序遍历的结果是( )。
A.ACFXDBEYZ
B.ABEFXYZCD
C.ABCDEFXYZ
D.ABDYECFXZ
33、
设有宏定义“#definelsDIV(k,n)((k%n==1?1:0)”且变量m已正确定义并赋值,则宏调用“lsDIV(m,5)&&IsDIV(m,7)”为真时所要表达的是( )。
A.判断m是否能被5或者7整除
B.判断m是甭能被5和7整除
C.判断m被5或者7整除是否余1
D.判断m被5和7整除是否都余l
34、
以下程序的输出结果是( )。
#include
longfun(intn)
{longS;
if(n==1‖n==2)s=2;
elses=n-fun(n-1):
returnS;
}
voidmain(){cout<
B.2
C.3
D.4
35、下列程序的执行结果是( )。
#include
#include
classTestClass
{
public:
intX,y;
TestClass(){x=y=0;}
TestClass(inta,intb)(x=a;y=b;}voiddisp()
{
cout<<"x="<
};
voidmain()
{
TestClasss1(2,3);
s1.disp();
}
A.x=2,y=2
B.x=2,y=3
C.x=3,y=2
D.x=3,y=3
36、
有下列程序:
#include
intfun(int(*s)[4],intn,intk)
{intm,i;
m=s[O][k];
for(i=1;i
[k];
returnm;
}
voidmain( )
{inta[4][4]=({1,2,3,4),{11,12,13,14},{21,
22,23,24},{31,32,33,34)};
printf(”%dn”,fun(a,4,O));
}
程序的运行结果是( )。
A.4
B.34
C.31
D.32
37、
有如下程序:
#include
voidmain()
{charch[2][5]={"6937","8254"),*p[2];
inti,j,s=0;
for(i=0;i(2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0';j+=2)
s=10*s+p[i][j]-'0';
cout<
该程序的输出结果是( )。
A.69825
B.63825
C.6385
D.693825
38、
为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。
A.内联函数
B.重载函数
C.递归函数
D.函数模板
39、
下列选项中属于面向对象设计方法主要特征的是( )。
A.继承
B.自顶向下
C.模块化
D.逐步求精
40、
下列程序输出的结果是( )。
#include
funl(chara,charb){charC;c=a;a=b;b=C;)
fun2(char*a,charb){charC;c=*a;*a=b;b=c;)
fun3(char*a,char*b){charC;C=*a;*a=*b;*b=C;)
voidmain( )
{
chara,b;
a='A';b='B';fun1(a,b);putchar(a);putchar(b);
a='A';b='B';fun2(&a,b);putchar(a);putchar(b);
a='A';b='B';fun3(&a,&b);putchar(a);putchar(b);
putchar('\n');
}
A.BABBAB
B.ABBBBA
C.ABBABA
D.ABABBA
二、程序改错题(18分)
41、使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使得程序输出:
Hello
test
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在
//******error******的下面。
试题程序:
#include
//********error********
template
voidfun(Tt)
{
std::cout<<"test"<
//********error********
template
voidfun(boolt)
{
std::cout<<(t?"Hell0":"Hi")<
intmain()
{
//********error********
boolflag=TRUE;
fun(flag);
fun((int)flag);
return0;
}
三、简单应用题(24分)
42、使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(intn)的功能是实现对一个整数的加密,具体的加密方法是一个4位长的整数,用每位数字加上3然后除以9的余数代替该数字,再将第1位和第4位交换,第2位和第3位交换,然后返回得到的密码。
程序输出结果为
1864
2075
注意:不能修改其他部分的代码。
试题程序:
#include
#include
intfun(intn)
{
}
intmain()
{
inti=1357:
cout<
cout<
}
四、综合应用题(18分)
43、(1)应添加“#defineTRUE1”。
(2)应添加“classA1;”。
(3)应添加“friendboolfunc(A2&objl,Al&obj2);”。
(4)将“retllin”补充完整为“returnobjl.m_A2==TRUE&&obj2.m_A1==TRUE;”。
【解析】#define命令一般用一个指定的标识符(即宏
名)来代表一个字符串,其定义形式一般为“#define宏名(参数表)字符串”,因此第1处应添加“#defineTRUEl”。类声明格式为“class<类名>;”,故第2处应添加“class
A1;”。友元不是本类的成员函数,在它的函数体内可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字friend修饰的非成员函数,第3处应添加“friendboolfune(A2&objl,Al&obj2);”。函数func返回变量m_A2和m_A1的逻辑与运算结果,因此第4处的语句应改为“returnobj1.m_A2==TRUE&&obj2.m_A1==TRUE;”。
题库优势
相关阅读