点击查看:2016年计算机二级《C++》基础练习题及答案汇总
1[填空题]运算符重载仍然保持其原来的优先级、 和 。
参考解析:结合性、语法结构。
解析:运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构。
2[单选题] 有以下程序:
#include
void fun(int a,int b,int C.
{ a=456,b=567,c=678;}
void main()
{
int X=10,Y=20,Z=30;
fun(X,Y,z);
aout<
}
输出结果是( )。
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
参考答案:B
参考解析:本题考查函数中变量的作用范围,在主函数中给变餐x、Y、Z赋值,然后将其作为实参传递给了函数fun(),虽然在函数fun()中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数fun()结束后,主函数3个变量的值未改变。
3[单选题] 若有定义语句“doublex,y,*px,*Py;执行了px=&x;py=&y;”后,正确的输入语句是( )。
A.scanf("%f%f",x,y);B.scanf("%f%f"&x,&y);C.scanf("%If%le",px,py);D.scanf("%lf%If"x,y);
参考答案:C
参考解析:此题主要考查输入函数的字符格式,lf和le表示以带小数点的数学形式或指数形式输入浮点数。
4[单选题] 继承机制的作用是( )。
A.信息隐藏B.数据封装C.定义新类D.数据抽象
参考答案:C
参考解析:数据封装就是数据抽象,即信息隐藏;而继承是实现程序复用的基础。
5[单选题]若有如下类声明
class My Class {
public:
MyClass() {cout <<1;}
};
执行下列语句
MyClass a,b[2],*P[2];
以后,程序的输出结果是( )。
A.11 B.111 C.1111 D.11111
参考答案:B
6[单选题] 下列选项中正确的语句是( )。
A.chars[];s="BOOK!";B.char*s;S={"BOOK!");C.chars[10];s="BOOK";D.char*S;s="BOOK!";
参考答案:D
参考解析:在选项D中,字符指针s指向字符串常量BOOK!。故选项D正确。
7[填空题] __________是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
参考解析:构造函数
【解析】构造函数的主要作用是对数据成员初始化,系统为成员分配内存时,保留这些存储单元的原状。
8[简答题]使用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;
}
参考解析:
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';//新串添加尾符
}
}
【解析】判断一个字符串中的某一个字符下标i是否为偶数,可用“i%2==0”来判断。对串s1中各个字符串逐个进行考查,满足条件的字符就顺序放在新串s2中,否则就不存放。所有字符处理完成后,记得在新串s2的末尾加上结束符“'\0'。
9[简答题]使用VC6打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(intn)返回1,2,3,…,n的和。其中n大于0。
程序要求使用递归实现上述功能。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include
#include
intsum(intn)
{
}
voidmain()
{
cout<<"1+2+3+…+100="<
endl;
return;
}
参考解析:return(n==1)?1:n+sum(n-1);
【解析】本题主要考查三目运算符?:的使用和递归函数的编制。程序功能是计算前n个自然数的和,n为参数。程序的运算过程如下,不是一般性,假设n为3,首先执行sum(3),因为3不等于1,所以return语句返回的值为3+sum(3-1),然后执行sum(3-1)即sum(2),2不等于1,所以return语句返回的值为2+sum(2-1),然后执行sum(2-1)即sum(1),因为1等于1,所以return语句返回的值为1,即问号后的值,所以最终结果为3+2+1=6,而题中n为100,所以结果为5050。
10[填空题]下面程序的输出结果是【9】。
#include
void main()
{
int a[6]={1,2,3,4,5,6};
for(int i=0;i <5;i++)
cout <<
cout <
}
参考解析:12345
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |